@ngneat/transloco
Version:
The internationalization (i18n) library for Angular
76 lines • 5.72 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/lang-resolver.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { getLangFromScope, getPipeValue, getScopeFromLang } from './shared';
export class LangResolver {
constructor() {
this.initialized = false;
}
// inline => provider => active
/**
* @param {?=} __0
* @return {?}
*/
resolve({ inline, provider, active } = { inline: undefined, provider: undefined, active: undefined }) {
/** @type {?} */
let lang = active;
/**
* When the user changes the lang we need to update
* the view. Otherwise, the lang will remain the inline/provided lang
*/
if (this.initialized) {
lang = active;
return lang;
}
if (provider) {
const [_, extracted] = getPipeValue(provider, 'static');
lang = extracted;
}
if (inline) {
const [_, extracted] = getPipeValue(inline, 'static');
lang = extracted;
}
this.initialized = true;
return lang;
}
/**
*
* Resolve the lang
*
* \@example
*
* resolveLangBasedOnScope('todos/en') => en
* resolveLangBasedOnScope('en') => en
*
* @param {?} lang
* @return {?}
*/
resolveLangBasedOnScope(lang) {
/** @type {?} */
const scope = getScopeFromLang(lang);
return scope ? getLangFromScope(lang) : lang;
}
/**
*
* Resolve the lang path for loading
*
* \@example
*
* resolveLangPath('todos', 'en') => todos/en
* resolveLangPath('en') => en
*
* @param {?} lang
* @param {?} scope
* @return {?}
*/
resolveLangPath(lang, scope) {
return scope ? `${scope}/${lang}` : lang;
}
}
if (false) {
/** @type {?} */
LangResolver.prototype.initialized;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ25lYXQvdHJhbnNsb2NvLyIsInNvdXJjZXMiOlsibGliL2xhbmctcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBUTVFLE1BQU0sT0FBTyxZQUFZO0lBQXpCO1FBQ0UsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUEwRHRCLENBQUM7Ozs7OztJQXZEQyxPQUFPLENBQ0wsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sS0FBeUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTs7WUFFNUcsSUFBSSxHQUFHLE1BQU07UUFDakI7OztXQUdHO1FBQ0gsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksR0FBRyxNQUFNLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxRQUFRLEVBQUU7a0JBQ04sQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7WUFDdkQsSUFBSSxHQUFHLFNBQVMsQ0FBQztTQUNsQjtRQUVELElBQUksTUFBTSxFQUFFO2tCQUNKLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO1lBQ3JELElBQUksR0FBRyxTQUFTLENBQUM7U0FDbEI7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7Ozs7Ozs7Ozs7SUFZRCx1QkFBdUIsQ0FBQyxJQUFZOztjQUM1QixLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9DLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBWUQsZUFBZSxDQUFDLElBQVksRUFBRSxLQUF5QjtRQUNyRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7OztJQTFEQyxtQ0FBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMYW5nRnJvbVNjb3BlLCBnZXRQaXBlVmFsdWUsIGdldFNjb3BlRnJvbUxhbmcgfSBmcm9tICcuL3NoYXJlZCc7XG5cbnR5cGUgTGFuZ1Jlc29sdmVyUGFyYW1zID0ge1xuICBpbmxpbmU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJvdmlkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgYWN0aXZlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY2xhc3MgTGFuZ1Jlc29sdmVyIHtcbiAgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvLyBpbmxpbmUgPT4gcHJvdmlkZXIgPT4gYWN0aXZlXG4gIHJlc29sdmUoXG4gICAgeyBpbmxpbmUsIHByb3ZpZGVyLCBhY3RpdmUgfTogTGFuZ1Jlc29sdmVyUGFyYW1zID0geyBpbmxpbmU6IHVuZGVmaW5lZCwgcHJvdmlkZXI6IHVuZGVmaW5lZCwgYWN0aXZlOiB1bmRlZmluZWQgfVxuICApIHtcbiAgICBsZXQgbGFuZyA9IGFjdGl2ZTtcbiAgICAvKipcbiAgICAgKiBXaGVuIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGxhbmcgd2UgbmVlZCB0byB1cGRhdGVcbiAgICAgKiB0aGUgdmlldy4gT3RoZXJ3aXNlLCB0aGUgbGFuZyB3aWxsIHJlbWFpbiB0aGUgaW5saW5lL3Byb3ZpZGVkIGxhbmdcbiAgICAgKi9cbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgbGFuZyA9IGFjdGl2ZTtcbiAgICAgIHJldHVybiBsYW5nO1xuICAgIH1cblxuICAgIGlmIChwcm92aWRlcikge1xuICAgICAgY29uc3QgW18sIGV4dHJhY3RlZF0gPSBnZXRQaXBlVmFsdWUocHJvdmlkZXIsICdzdGF0aWMnKTtcbiAgICAgIGxhbmcgPSBleHRyYWN0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKGlubGluZSkge1xuICAgICAgY29uc3QgW18sIGV4dHJhY3RlZF0gPSBnZXRQaXBlVmFsdWUoaW5saW5lLCAnc3RhdGljJyk7XG4gICAgICBsYW5nID0gZXh0cmFjdGVkO1xuICAgIH1cblxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIHJldHVybiBsYW5nO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIFJlc29sdmUgdGhlIGxhbmdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICpcbiAgICogcmVzb2x2ZUxhbmdCYXNlZE9uU2NvcGUoJ3RvZG9zL2VuJykgPT4gZW5cbiAgICogcmVzb2x2ZUxhbmdCYXNlZE9uU2NvcGUoJ2VuJykgPT4gZW5cbiAgICpcbiAgICovXG4gIHJlc29sdmVMYW5nQmFzZWRPblNjb3BlKGxhbmc6IHN0cmluZykge1xuICAgIGNvbnN0IHNjb3BlID0gZ2V0U2NvcGVGcm9tTGFuZyhsYW5nKTtcbiAgICByZXR1cm4gc2NvcGUgPyBnZXRMYW5nRnJvbVNjb3BlKGxhbmcpIDogbGFuZztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBSZXNvbHZlIHRoZSBsYW5nIHBhdGggZm9yIGxvYWRpbmdcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICpcbiAgICogcmVzb2x2ZUxhbmdQYXRoKCd0b2RvcycsICdlbicpID0+IHRvZG9zL2VuXG4gICAqIHJlc29sdmVMYW5nUGF0aCgnZW4nKSA9PiBlblxuICAgKlxuICAgKi9cbiAgcmVzb2x2ZUxhbmdQYXRoKGxhbmc6IHN0cmluZywgc2NvcGU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBzY29wZSA/IGAke3Njb3BlfS8ke2xhbmd9YCA6IGxhbmc7XG4gIH1cbn1cbiJdfQ==