UNPKG

@ngneat/transloco

Version:

The internationalization (i18n) library for Angular

126 lines 8.62 kB
/** * @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=