@ngneat/transloco
Version:
The internationalization (i18n) library for Angular
126 lines • 8.62 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/shared.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { hasInlineLoader, isString } from './helpers';
import { take } from 'rxjs/operators';
/*
* @example
*
* given: lazy-page/en => lazy-page
*
*/
/**
* @param {?} lang
* @return {?}
*/
export function getScopeFromLang(lang) {
if (!lang) {
return '';
}
/** @type {?} */
const split = lang.split('/');
split.pop();
return split.join('/');
}
/*
* @example
*
* given: lazy-page/en => en
*
*/
/**
* @param {?} lang
* @return {?}
*/
export function getLangFromScope(lang) {
if (!lang) {
return '';
}
/** @type {?} */
const split = lang.split('/');
return split.pop();
}
/**
* \@example
*
* getPipeValue('todos|scoped', 'scoped') [true, 'todos']
* getPipeValue('en|static', 'static') [true, 'en']
* getPipeValue('en', 'static') [false, 'en']
* @param {?} str
* @param {?} value
* @param {?=} char
* @return {?}
*/
export function getPipeValue(str, value, char = '|') {
if (isString(str)) {
/** @type {?} */
const splitted = str.split(char);
/** @type {?} */
const lastItem = splitted.pop();
return lastItem === value ? [true, splitted.toString()] : [false, lastItem];
}
return [false, ''];
}
/**
* @param {?} service
* @param {?} lang
* @return {?}
*/
export function shouldListenToLangChanges(service, lang) {
const [hasStatic] = getPipeValue(lang, 'static');
if (hasStatic === false) {
// If we didn't get 'lang|static' check if it's set in the global level
return service.config.reRenderOnLangChange;
}
// We have 'lang|static' so don't listen to lang changes
return false;
}
/**
* @param {?} listenToLangChange
* @return {?}
*/
export function listenOrNotOperator(listenToLangChange) {
return listenToLangChange ? (/**
* @param {?} source
* @return {?}
*/
source => source) : take(1);
}
/**
* @param {?} inlineLoader
* @param {?} scope
* @return {?}
*/
function prependScope(inlineLoader, scope) {
return Object.keys(inlineLoader).reduce((/**
* @param {?} acc
* @param {?} lang
* @return {?}
*/
(acc, lang) => {
acc[`${scope}/${lang}`] = inlineLoader[lang];
return acc;
}), {});
}
/**
* @param {?} providerScope
* @param {?} scope
* @return {?}
*/
export function resolveInlineLoader(providerScope, scope) {
return hasInlineLoader(providerScope) ? prependScope(providerScope.loader, scope) : null;
}
/**
* @param {?} lang
* @return {?}
*/
export function getEventPayload(lang) {
return {
scope: getScopeFromLang(lang) || null,
langName: getLangFromScope(lang),
lang
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5nbmVhdC90cmFuc2xvY28vIiwic291cmNlcyI6WyJsaWIvc2hhcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQVN0QyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWTtJQUMzQyxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsT0FBTyxFQUFFLENBQUM7S0FDWDs7VUFDSyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ1osT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3pCLENBQUM7Ozs7Ozs7Ozs7O0FBUUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQVk7SUFDM0MsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNULE9BQU8sRUFBRSxDQUFDO0tBQ1g7O1VBQ0ssS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzdCLE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3JCLENBQUM7Ozs7Ozs7Ozs7OztBQVNELE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxJQUFJLEdBQUcsR0FBRztJQUNqRSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTs7Y0FDWCxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7O2NBQzFCLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQy9CLE9BQU8sUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBQzdFO0lBRUQsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNyQixDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsT0FBeUIsRUFBRSxJQUFZO1VBQ3pFLENBQUMsU0FBUyxDQUFDLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7SUFDaEQsSUFBSSxTQUFTLEtBQUssS0FBSyxFQUFFO1FBQ3ZCLHVFQUF1RTtRQUN2RSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7S0FDNUM7SUFFRCx3REFBd0Q7SUFDeEQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxrQkFBMkI7SUFDN0QsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDOzs7O0lBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RCxDQUFDOzs7Ozs7QUFFRCxTQUFTLFlBQVksQ0FBQyxZQUFZLEVBQUUsS0FBSztJQUN2QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTTs7Ozs7SUFBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNwRCxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEdBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsYUFBb0MsRUFBRSxLQUFhO0lBQ3JGLE9BQU8sZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzNGLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFZO0lBQzFDLE9BQU87UUFDTCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSTtRQUNyQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUk7S0FDTCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICcuL3RyYW5zbG9jby5zZXJ2aWNlJztcbmltcG9ydCB7IGhhc0lubGluZUxvYWRlciwgaXNTdHJpbmcgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElubGluZUxvYWRlciwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICcuL3R5cGVzJztcblxuLypcbiAqIEBleGFtcGxlXG4gKlxuICogZ2l2ZW46IGxhenktcGFnZS9lbiA9PiBsYXp5LXBhZ2VcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY29wZUZyb21MYW5nKGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghbGFuZykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zdCBzcGxpdCA9IGxhbmcuc3BsaXQoJy8nKTtcbiAgc3BsaXQucG9wKCk7XG4gIHJldHVybiBzcGxpdC5qb2luKCcvJyk7XG59XG5cbi8qXG4gKiBAZXhhbXBsZVxuICpcbiAqIGdpdmVuOiBsYXp5LXBhZ2UvZW4gPT4gZW5cbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5nRnJvbVNjb3BlKGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghbGFuZykge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zdCBzcGxpdCA9IGxhbmcuc3BsaXQoJy8nKTtcbiAgcmV0dXJuIHNwbGl0LnBvcCgpO1xufVxuXG4vKipcbiAqIEBleGFtcGxlXG4gKlxuICogZ2V0UGlwZVZhbHVlKCd0b2Rvc3xzY29wZWQnLCAnc2NvcGVkJykgW3RydWUsICd0b2RvcyddXG4gKiBnZXRQaXBlVmFsdWUoJ2VufHN0YXRpYycsICdzdGF0aWMnKSBbdHJ1ZSwgJ2VuJ11cbiAqIGdldFBpcGVWYWx1ZSgnZW4nLCAnc3RhdGljJykgW2ZhbHNlLCAnZW4nXVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGlwZVZhbHVlKHN0cjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBjaGFyID0gJ3wnKTogW2Jvb2xlYW4sIHN0cmluZ10ge1xuICBpZiAoaXNTdHJpbmcoc3RyKSkge1xuICAgIGNvbnN0IHNwbGl0dGVkID0gc3RyLnNwbGl0KGNoYXIpO1xuICAgIGNvbnN0IGxhc3RJdGVtID0gc3BsaXR0ZWQucG9wKCk7XG4gICAgcmV0dXJuIGxhc3RJdGVtID09PSB2YWx1ZSA/IFt0cnVlLCBzcGxpdHRlZC50b1N0cmluZygpXSA6IFtmYWxzZSwgbGFzdEl0ZW1dO1xuICB9XG5cbiAgcmV0dXJuIFtmYWxzZSwgJyddO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkTGlzdGVuVG9MYW5nQ2hhbmdlcyhzZXJ2aWNlOiBUcmFuc2xvY29TZXJ2aWNlLCBsYW5nOiBzdHJpbmcpIHtcbiAgY29uc3QgW2hhc1N0YXRpY10gPSBnZXRQaXBlVmFsdWUobGFuZywgJ3N0YXRpYycpO1xuICBpZiAoaGFzU3RhdGljID09PSBmYWxzZSkge1xuICAgIC8vIElmIHdlIGRpZG4ndCBnZXQgJ2xhbmd8c3RhdGljJyBjaGVjayBpZiBpdCdzIHNldCBpbiB0aGUgZ2xvYmFsIGxldmVsXG4gICAgcmV0dXJuIHNlcnZpY2UuY29uZmlnLnJlUmVuZGVyT25MYW5nQ2hhbmdlO1xuICB9XG5cbiAgLy8gV2UgaGF2ZSAnbGFuZ3xzdGF0aWMnIHNvIGRvbid0IGxpc3RlbiB0byBsYW5nIGNoYW5nZXNcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGlzdGVuT3JOb3RPcGVyYXRvcihsaXN0ZW5Ub0xhbmdDaGFuZ2U6IGJvb2xlYW4pIHtcbiAgcmV0dXJuIGxpc3RlblRvTGFuZ0NoYW5nZSA/IHNvdXJjZSA9PiBzb3VyY2UgOiB0YWtlKDEpO1xufVxuXG5mdW5jdGlvbiBwcmVwZW5kU2NvcGUoaW5saW5lTG9hZGVyLCBzY29wZSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMoaW5saW5lTG9hZGVyKS5yZWR1Y2UoKGFjYywgbGFuZykgPT4ge1xuICAgIGFjY1tgJHtzY29wZX0vJHtsYW5nfWBdID0gaW5saW5lTG9hZGVyW2xhbmddO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVJbmxpbmVMb2FkZXIocHJvdmlkZXJTY29wZTogVHJhbnNsb2NvU2NvcGUgfCBudWxsLCBzY29wZTogc3RyaW5nKTogSW5saW5lTG9hZGVyIHwgbnVsbCB7XG4gIHJldHVybiBoYXNJbmxpbmVMb2FkZXIocHJvdmlkZXJTY29wZSkgPyBwcmVwZW5kU2NvcGUocHJvdmlkZXJTY29wZS5sb2FkZXIsIHNjb3BlKSA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFdmVudFBheWxvYWQobGFuZzogc3RyaW5nKSB7XG4gIHJldHVybiB7XG4gICAgc2NvcGU6IGdldFNjb3BlRnJvbUxhbmcobGFuZykgfHwgbnVsbCxcbiAgICBsYW5nTmFtZTogZ2V0TGFuZ0Zyb21TY29wZShsYW5nKSxcbiAgICBsYW5nXG4gIH07XG59XG4iXX0=