UNPKG

92.4 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-translate-core.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@ngx-translate/core/lib/translate.loader.ts","ng://@ngx-translate/core/lib/missing-translation-handler.ts","ng://@ngx-translate/core/lib/util.ts","ng://@ngx-translate/core/lib/translate.parser.ts","ng://@ngx-translate/core/lib/translate.compiler.ts","ng://@ngx-translate/core/lib/translate.store.ts","ng://@ngx-translate/core/lib/translate.service.ts","ng://@ngx-translate/core/lib/translate.directive.ts","ng://@ngx-translate/core/lib/translate.pipe.ts","ng://@ngx-translate/core/public_api.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import {Injectable} from \"@angular/core\";\nimport {Observable, of} from \"rxjs\";\n\nexport abstract class TranslateLoader {\n abstract getTranslation(lang: string): Observable<any>;\n}\n\n/**\n * This loader is just a placeholder that does nothing, in case you don't need a loader at all\n */\n@Injectable()\nexport class TranslateFakeLoader extends TranslateLoader {\n getTranslation(lang: string): Observable<any> {\n return of({});\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {TranslateService} from \"./translate.service\";\n\nexport interface MissingTranslationHandlerParams {\n /**\n * the key that's missing in translation files\n */\n key: string;\n\n /**\n * an instance of the service that was unable to translate the key.\n */\n translateService: TranslateService;\n\n /**\n * interpolation params that were passed along for translating the given key.\n */\n interpolateParams?: Object;\n}\n\nexport abstract class MissingTranslationHandler {\n /**\n * A function that handles missing translations.\n *\n * @param params context for resolving a missing translation\n * @returns a value or an observable\n * If it returns a value, then this value is used.\n * If it return an observable, the value returned by this observable will be used (except if the method was \"instant\").\n * If it doesn't return then the key will be used as a value\n */\n abstract handle(params: MissingTranslationHandlerParams): any;\n}\n\n/**\n * This handler is just a placeholder that does nothing, in case you don't need a missing translation handler at all\n */\n@Injectable()\nexport class FakeMissingTranslationHandler implements MissingTranslationHandler {\n handle(params: MissingTranslationHandlerParams): string {\n return params.key;\n }\n}\n","/* tslint:disable */\n/**\n * Determines if two objects or two values are equivalent.\n *\n * Two objects or values are considered equivalent if at least one of the following is true:\n *\n * * Both objects or values pass `===` comparison.\n * * Both objects or values are of the same type and all of their properties are equal by\n * comparing them with `equals`.\n *\n * @param o1 Object or value to compare.\n * @param o2 Object or value to compare.\n * @returns true if arguments are equal.\n */\nexport function equals(o1: any, o2: any): boolean {\n if (o1 === o2) return true;\n if (o1 === null || o2 === null) return false;\n if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN\n let t1 = typeof o1, t2 = typeof o2, length: number, key: any, keySet: any;\n if (t1 == t2 && t1 == 'object') {\n if (Array.isArray(o1)) {\n if (!Array.isArray(o2)) return false;\n if ((length = o1.length) == o2.length) {\n for (key = 0; key < length; key++) {\n if (!equals(o1[key], o2[key])) return false;\n }\n return true;\n }\n } else {\n if (Array.isArray(o2)) {\n return false;\n }\n keySet = Object.create(null);\n for (key in o1) {\n if (!equals(o1[key], o2[key])) {\n return false;\n }\n keySet[key] = true;\n }\n for (key in o2) {\n if (!(key in keySet) && typeof o2[key] !== 'undefined') {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n}\n/* tslint:enable */\n\nexport function isDefined(value: any): boolean {\n return typeof value !== 'undefined' && value !== null;\n}\n\nexport function isObject(item: any): boolean {\n return (item && typeof item === 'object' && !Array.isArray(item));\n}\n\nexport function mergeDeep(target: any, source: any): any {\n let output = Object.assign({}, target);\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((key: any) => {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, {[key]: source[key]});\n } else {\n output[key] = mergeDeep(target[key], source[key]);\n }\n } else {\n Object.assign(output, {[key]: source[key]});\n }\n });\n }\n return output;\n}\n","import {Injectable} from \"@angular/core\";\nimport {isDefined} from \"./util\";\n\nexport abstract class TranslateParser {\n /**\n * Interpolates a string to replace parameters\n * \"This is a {{ key }}\" ==> \"This is a value\", with params = { key: \"value\" }\n * @param expr\n * @param params\n */\n abstract interpolate(expr: string | Function, params?: any): string;\n\n /**\n * Gets a value from an object by composed key\n * parser.getValue({ key1: { keyA: 'valueI' }}, 'key1.keyA') ==> 'valueI'\n * @param target\n * @param key\n */\n abstract getValue(target: any, key: string): any\n}\n\n@Injectable()\nexport class TranslateDefaultParser extends TranslateParser {\n templateMatcher: RegExp = /{{\\s?([^{}\\s]*)\\s?}}/g;\n\n public interpolate(expr: string | Function, params?: any): string {\n let result: string;\n\n if (typeof expr === 'string') {\n result = this.interpolateString(expr, params);\n } else if (typeof expr === 'function') {\n result = this.interpolateFunction(expr, params);\n } else {\n // this should not happen, but an unrelated TranslateService test depends on it\n result = expr as string;\n }\n\n return result;\n }\n\n getValue(target: any, key: string): any {\n let keys = typeof key === 'string' ? key.split('.') : [key];\n key = '';\n do {\n key += keys.shift();\n if (isDefined(target) && isDefined(target[key]) && (typeof target[key] === 'object' || !keys.length)) {\n target = target[key];\n key = '';\n } else if (!keys.length) {\n target = undefined;\n } else {\n key += '.';\n }\n } while (keys.length);\n\n return target;\n }\n\n private interpolateFunction(fn: Function, params?: any) {\n return fn(params);\n }\n\n private interpolateString(expr: string, params?: any) {\n if (!params) {\n return expr;\n }\n\n return expr.replace(this.templateMatcher, (substring: string, b: string) => {\n let r = this.getValue(params, b);\n return isDefined(r) ? r : substring;\n });\n }\n}\n","import {Injectable} from \"@angular/core\";\n\nexport abstract class TranslateCompiler {\n abstract compile(value: string, lang: string): string | Function;\n\n abstract compileTranslations(translations: any, lang: string): any;\n}\n\n/**\n * This compiler is just a placeholder that does nothing, in case you don't need a compiler at all\n */\n@Injectable()\nexport class TranslateFakeCompiler extends TranslateCompiler {\n compile(value: string, lang: string): string | Function {\n return value;\n }\n\n compileTranslations(translations: any, lang: string): any {\n return translations;\n }\n}\n","import {EventEmitter} from \"@angular/core\";\nimport {DefaultLangChangeEvent, LangChangeEvent, TranslationChangeEvent} from \"./translate.service\";\n\nexport class TranslateStore {\n /**\n * The default lang to fallback when translations are missing on the current lang\n */\n public defaultLang: string;\n\n /**\n * The lang currently used\n */\n public currentLang: string = this.defaultLang;\n\n /**\n * a list of translations per lang\n */\n public translations: any = {};\n\n /**\n * an array of langs\n */\n public langs: Array<string> = [];\n\n /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n */\n public onTranslationChange: EventEmitter<TranslationChangeEvent> = new EventEmitter<TranslationChangeEvent>();\n\n /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n */\n public onLangChange: EventEmitter<LangChangeEvent> = new EventEmitter<LangChangeEvent>();\n\n /**\n * An EventEmitter to listen to default lang change events\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\n * // do something\n * });\n */\n public onDefaultLangChange: EventEmitter<DefaultLangChangeEvent> = new EventEmitter<DefaultLangChangeEvent>();\n}\n","import {EventEmitter, Inject, Injectable, InjectionToken} from \"@angular/core\";\nimport {concat, forkJoin, isObservable, Observable, of, defer} from \"rxjs\";\nimport {concatMap, map, shareReplay, switchMap, take} from \"rxjs/operators\";\nimport {MissingTranslationHandler, MissingTranslationHandlerParams} from \"./missing-translation-handler\";\nimport {TranslateCompiler} from \"./translate.compiler\";\nimport {TranslateLoader} from \"./translate.loader\";\nimport {TranslateParser} from \"./translate.parser\";\n\nimport {TranslateStore} from \"./translate.store\";\nimport {isDefined, mergeDeep} from \"./util\";\n\nexport const USE_STORE = new InjectionToken<string>('USE_STORE');\nexport const USE_DEFAULT_LANG = new InjectionToken<string>('USE_DEFAULT_LANG');\nexport const DEFAULT_LANGUAGE = new InjectionToken<string>('DEFAULT_LANGUAGE');\nexport const USE_EXTEND = new InjectionToken<string>('USE_EXTEND');\n\nexport interface TranslationChangeEvent {\n translations: any;\n lang: string;\n}\n\nexport interface LangChangeEvent {\n lang: string;\n translations: any;\n}\n\nexport interface DefaultLangChangeEvent {\n lang: string;\n translations: any;\n}\n\ndeclare interface Window {\n navigator: any;\n}\n\ndeclare const window: Window;\n\n@Injectable()\nexport class TranslateService {\n private loadingTranslations: Observable<any>;\n private pending: boolean = false;\n private _onTranslationChange: EventEmitter<TranslationChangeEvent> = new EventEmitter<TranslationChangeEvent>();\n private _onLangChange: EventEmitter<LangChangeEvent> = new EventEmitter<LangChangeEvent>();\n private _onDefaultLangChange: EventEmitter<DefaultLangChangeEvent> = new EventEmitter<DefaultLangChangeEvent>();\n private _defaultLang: string;\n private _currentLang: string;\n private _langs: Array<string> = [];\n private _translations: any = {};\n private _translationRequests: any = {};\n\n /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n */\n get onTranslationChange(): EventEmitter<TranslationChangeEvent> {\n return this.isolate ? this._onTranslationChange : this.store.onTranslationChange;\n }\n\n /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n */\n get onLangChange(): EventEmitter<LangChangeEvent> {\n return this.isolate ? this._onLangChange : this.store.onLangChange;\n }\n\n /**\n * An EventEmitter to listen to default lang change events\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\n * // do something\n * });\n */\n get onDefaultLangChange() {\n return this.isolate ? this._onDefaultLangChange : this.store.onDefaultLangChange;\n }\n\n /**\n * The default lang to fallback when translations are missing on the current lang\n */\n get defaultLang(): string {\n return this.isolate ? this._defaultLang : this.store.defaultLang;\n }\n\n set defaultLang(defaultLang: string) {\n if (this.isolate) {\n this._defaultLang = defaultLang;\n } else {\n this.store.defaultLang = defaultLang;\n }\n }\n\n /**\n * The lang currently used\n */\n get currentLang(): string {\n return this.isolate ? this._currentLang : this.store.currentLang;\n }\n\n set currentLang(currentLang: string) {\n if (this.isolate) {\n this._currentLang = currentLang;\n } else {\n this.store.currentLang = currentLang;\n }\n }\n\n /**\n * an array of langs\n */\n get langs(): string[] {\n return this.isolate ? this._langs : this.store.langs;\n }\n\n set langs(langs: string[]) {\n if (this.isolate) {\n this._langs = langs;\n } else {\n this.store.langs = langs;\n }\n }\n\n /**\n * a list of translations per lang\n */\n get translations(): any {\n return this.isolate ? this._translations : this.store.translations;\n }\n\n set translations(translations: any) {\n if (this.isolate) {\n this._translations = translations;\n } else {\n this.store.translations = translations;\n }\n }\n\n /**\n *\n * @param store an instance of the store (that is supposed to be unique)\n * @param currentLoader An instance of the loader currently used\n * @param compiler An instance of the compiler currently used\n * @param parser An instance of the parser currently used\n * @param missingTranslationHandler A handler for missing translations.\n * @param useDefaultLang whether we should use default language translation when current language translation is missing.\n * @param isolate whether this service should use the store or not\n * @param extend To make a child module extend (and use) translations from parent modules.\n * @param defaultLanguage Set the default language using configuration\n */\n constructor(public store: TranslateStore,\n public currentLoader: TranslateLoader,\n public compiler: TranslateCompiler,\n public parser: TranslateParser,\n public missingTranslationHandler: MissingTranslationHandler,\n @Inject(USE_DEFAULT_LANG) private useDefaultLang: boolean = true,\n @Inject(USE_STORE) private isolate: boolean = false,\n @Inject(USE_EXTEND) private extend: boolean = false,\n @Inject(DEFAULT_LANGUAGE) defaultLanguage: string) {\n /** set the default language from configuration */\n if (defaultLanguage) {\n this.setDefaultLang(defaultLanguage);\n }\n }\n\n /**\n * Sets the default language to use as a fallback\n */\n public setDefaultLang(lang: string): void {\n if (lang === this.defaultLang) {\n return;\n }\n\n let pending: Observable<any> = this.retrieveTranslations(lang);\n\n if (typeof pending !== \"undefined\") {\n // on init set the defaultLang immediately\n if (this.defaultLang == null) {\n this.defaultLang = lang;\n }\n\n pending.pipe(take(1))\n .subscribe((res: any) => {\n this.changeDefaultLang(lang);\n });\n } else { // we already have this language\n this.changeDefaultLang(lang);\n }\n }\n\n /**\n * Gets the default language used\n */\n public getDefaultLang(): string {\n return this.defaultLang;\n }\n\n /**\n * Changes the lang currently used\n */\n public use(lang: string): Observable<any> {\n // don't change the language if the language given is already selected\n if (lang === this.currentLang) {\n return of(this.translations[lang]);\n }\n\n let pending: Observable<any> = this.retrieveTranslations(lang);\n\n if (typeof pending !== \"undefined\") {\n // on init set the currentLang immediately\n if (!this.currentLang) {\n this.currentLang = lang;\n }\n\n pending.pipe(take(1))\n .subscribe((res: any) => {\n this.changeLang(lang);\n });\n\n return pending;\n } else { // we have this language, return an Observable\n this.changeLang(lang);\n\n return of(this.translations[lang]);\n }\n }\n\n /**\n * Retrieves the given translations\n */\n private retrieveTranslations(lang: string): Observable<any> {\n let pending: Observable<any>;\n\n // if this language is unavailable or extend is true, ask for it\n if (typeof this.translations[lang] === \"undefined\" || this.extend) {\n this._translationRequests[lang] = this._translationRequests[lang] || this.getTranslation(lang);\n pending = this._translationRequests[lang];\n }\n\n return pending;\n }\n\n /**\n * Gets an object of translations for a given language with the current loader\n * and passes it through the compiler\n */\n public getTranslation(lang: string): Observable<any> {\n this.pending = true;\n const loadingTranslations = this.currentLoader.getTranslation(lang).pipe(\n shareReplay(1),\n take(1),\n );\n\n this.loadingTranslations = loadingTranslations.pipe(\n map((res: Object) => this.compiler.compileTranslations(res, lang)),\n shareReplay(1),\n take(1),\n );\n\n this.loadingTranslations\n .subscribe({\n next: (res: Object) => {\n this.translations[lang] = this.extend && this.translations[lang] ? { ...res, ...this.translations[lang] } : res;\n this.updateLangs();\n this.pending = false;\n },\n error: (err: any) => {\n this.pending = false;\n }\n });\n\n return loadingTranslations;\n }\n\n /**\n * Manually sets an object of translations for a given language\n * after passing it through the compiler\n */\n public setTranslation(lang: string, translations: Object, shouldMerge: boolean = false): void {\n translations = this.compiler.compileTranslations(translations, lang);\n if ((shouldMerge || this.extend) && this.translations[lang]) {\n this.translations[lang] = mergeDeep(this.translations[lang], translations);\n } else {\n this.translations[lang] = translations;\n }\n this.updateLangs();\n this.onTranslationChange.emit({lang: lang, translations: this.translations[lang]});\n }\n\n /**\n * Returns an array of currently available langs\n */\n public getLangs(): Array<string> {\n return this.langs;\n }\n\n /**\n * Add available langs\n */\n public addLangs(langs: Array<string>): void {\n langs.forEach((lang: string) => {\n if (this.langs.indexOf(lang) === -1) {\n this.langs.push(lang);\n }\n });\n }\n\n /**\n * Update the list of available langs\n */\n private updateLangs(): void {\n this.addLangs(Object.keys(this.translations));\n }\n\n /**\n * Returns the parsed result of the translations\n */\n public getParsedResult(translations: any, key: any, interpolateParams?: Object): any {\n let res: string | Observable<string>;\n\n if (key instanceof Array) {\n let result: any = {},\n observables: boolean = false;\n for (let k of key) {\n result[k] = this.getParsedResult(translations, k, interpolateParams);\n if (isObservable(result[k])) {\n observables = true;\n }\n }\n if (observables) {\n const sources = key.map(k => isObservable(result[k]) ? result[k] : of(result[k] as string));\n return forkJoin(sources).pipe(\n map((arr: Array<string>) => {\n let obj: any = {};\n arr.forEach((value: string, index: number) => {\n obj[key[index]] = value;\n });\n return obj;\n })\n );\n }\n return result;\n }\n\n if (translations) {\n res = this.parser.interpolate(this.parser.getValue(translations, key), interpolateParams);\n }\n\n if (typeof res === \"undefined\" && this.defaultLang != null && this.defaultLang !== this.currentLang && this.useDefaultLang) {\n res = this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang], key), interpolateParams);\n }\n\n if (typeof res === \"undefined\") {\n let params: MissingTranslationHandlerParams = {key, translateService: this};\n if (typeof interpolateParams !== 'undefined') {\n params.interpolateParams = interpolateParams;\n }\n res = this.missingTranslationHandler.handle(params);\n }\n\n return typeof res !== \"undefined\" ? res : key;\n }\n\n /**\n * Gets the translated value of a key (or an array of keys)\n * @returns the translated key, or an object of translated keys\n */\n public get(key: string | Array<string>, interpolateParams?: Object): Observable<string | any> {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n // check if we are loading a new translation to use\n if (this.pending) {\n return this.loadingTranslations.pipe(\n concatMap((res: any) => {\n res = this.getParsedResult(res, key, interpolateParams);\n return isObservable(res) ? res : of(res);\n }),\n );\n } else {\n let res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams);\n return isObservable(res) ? res : of(res);\n }\n }\n\n /**\n * Returns a stream of translated values of a key (or an array of keys) which updates\n * whenever the translation changes.\n * @returns A stream of the translated key, or an object of translated keys\n */\n public getStreamOnTranslationChange(key: string | Array<string>, interpolateParams?: Object): Observable<string | any> {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n\n return concat(\n defer(() => this.get(key, interpolateParams)),\n this.onTranslationChange.pipe(\n switchMap((event: TranslationChangeEvent) => {\n const res = this.getParsedResult(event.translations, key, interpolateParams);\n if (typeof res.subscribe === 'function') {\n return res;\n } else {\n return of(res);\n }\n })\n )\n );\n }\n\n /**\n * Returns a stream of translated values of a key (or an array of keys) which updates\n * whenever the language changes.\n * @returns A stream of the translated key, or an object of translated keys\n */\n public stream(key: string | Array<string>, interpolateParams?: Object): Observable<string | any> {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n\n return concat(\n defer(() => this.get(key, interpolateParams)),\n this.onLangChange.pipe(\n switchMap((event: LangChangeEvent) => {\n const res = this.getParsedResult(event.translations, key, interpolateParams);\n return isObservable(res) ? res : of(res);\n })\n ));\n }\n\n /**\n * Returns a translation instantly from the internal state of loaded translation.\n * All rules regarding the current language, the preferred language of even fallback languages will be used except any promise handling.\n */\n public instant(key: string | Array<string>, interpolateParams?: Object): string | any {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n\n let res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams);\n if (isObservable(res)) {\n if (key instanceof Array) {\n let obj: any = {};\n key.forEach((value: string, index: number) => {\n obj[key[index]] = key[index];\n });\n return obj;\n }\n return key;\n } else {\n return res;\n }\n }\n\n /**\n * Sets the translated value of a key, after compiling it\n */\n public set(key: string, value: string, lang: string = this.currentLang): void {\n this.translations[lang][key] = this.compiler.compile(value, lang);\n this.updateLangs();\n this.onTranslationChange.emit({lang: lang, translations: this.translations[lang]});\n }\n\n /**\n * Changes the current lang\n */\n private changeLang(lang: string): void {\n this.currentLang = lang;\n this.onLangChange.emit({lang: lang, translations: this.translations[lang]});\n\n // if there is no default lang, use the one that we just set\n if (this.defaultLang == null) {\n this.changeDefaultLang(lang);\n }\n }\n\n /**\n * Changes the default lang\n */\n private changeDefaultLang(lang: string): void {\n this.defaultLang = lang;\n this.onDefaultLangChange.emit({lang: lang, translations: this.translations[lang]});\n }\n\n /**\n * Allows to reload the lang file from the file\n */\n public reloadLang(lang: string): Observable<any> {\n this.resetLang(lang);\n return this.getTranslation(lang);\n }\n\n /**\n * Deletes inner translation\n */\n public resetLang(lang: string): void {\n this._translationRequests[lang] = undefined;\n this.translations[lang] = undefined;\n }\n\n /**\n * Returns the language code name from the browser, e.g. \"de\"\n */\n public getBrowserLang(): string {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined;\n }\n\n let browserLang: any = window.navigator.languages ? window.navigator.languages[0] : null;\n browserLang = browserLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\n\n if (typeof browserLang === 'undefined') {\n return undefined\n }\n\n if (browserLang.indexOf('-') !== -1) {\n browserLang = browserLang.split('-')[0];\n }\n\n if (browserLang.indexOf('_') !== -1) {\n browserLang = browserLang.split('_')[0];\n }\n\n return browserLang;\n }\n\n /**\n * Returns the culture language code name from the browser, e.g. \"de-DE\"\n */\n public getBrowserCultureLang(): string {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined;\n }\n\n let browserCultureLang: any = window.navigator.languages ? window.navigator.languages[0] : null;\n browserCultureLang = browserCultureLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\n\n return browserCultureLang;\n }\n}\n","import {AfterViewChecked, ChangeDetectorRef, Directive, ElementRef, Input, OnDestroy} from '@angular/core';\nimport {Subscription, isObservable} from 'rxjs';\nimport {DefaultLangChangeEvent, LangChangeEvent, TranslateService, TranslationChangeEvent} from './translate.service';\nimport {equals, isDefined} from './util';\n\n@Directive({\n selector: '[translate],[ngx-translate]'\n})\nexport class TranslateDirective implements AfterViewChecked, OnDestroy {\n key: string;\n lastParams: any;\n currentParams: any;\n onLangChangeSub: Subscription;\n onDefaultLangChangeSub: Subscription;\n onTranslationChangeSub: Subscription;\n\n @Input() set translate(key: string) {\n if (key) {\n this.key = key;\n this.checkNodes();\n }\n }\n\n @Input() set translateParams(params: any) {\n if (!equals(this.currentParams, params)) {\n this.currentParams = params;\n this.checkNodes(true);\n }\n }\n\n constructor(private translateService: TranslateService, private element: ElementRef, private _ref: ChangeDetectorRef) {\n // subscribe to onTranslationChange event, in case the translations of the current lang change\n if (!this.onTranslationChangeSub) {\n this.onTranslationChangeSub = this.translateService.onTranslationChange.subscribe((event: TranslationChangeEvent) => {\n if (event.lang === this.translateService.currentLang) {\n this.checkNodes(true, event.translations);\n }\n });\n }\n\n // subscribe to onLangChange event, in case the language changes\n if (!this.onLangChangeSub) {\n this.onLangChangeSub = this.translateService.onLangChange.subscribe((event: LangChangeEvent) => {\n this.checkNodes(true, event.translations);\n });\n }\n\n // subscribe to onDefaultLangChange event, in case the default language changes\n if (!this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub = this.translateService.onDefaultLangChange.subscribe((event: DefaultLangChangeEvent) => {\n this.checkNodes(true);\n });\n }\n }\n\n ngAfterViewChecked() {\n this.checkNodes();\n }\n\n checkNodes(forceUpdate = false, translations?: any) {\n let nodes: NodeList = this.element.nativeElement.childNodes;\n // if the element is empty\n if (!nodes.length) {\n // we add the key as content\n this.setContent(this.element.nativeElement, this.key);\n nodes = this.element.nativeElement.childNodes;\n }\n for (let i = 0; i < nodes.length; ++i) {\n let node: any = nodes[i];\n if (node.nodeType === 3) { // node type 3 is a text node\n let key: string;\n if (forceUpdate) {\n node.lastKey = null;\n }\n if(isDefined(node.lookupKey)) {\n key = node.lookupKey;\n } else if (this.key) {\n key = this.key;\n } else {\n let content = this.getContent(node);\n let trimmedContent = content.trim();\n if (trimmedContent.length) {\n node.lookupKey = trimmedContent;\n // we want to use the content as a key, not the translation value\n if (content !== node.currentValue) {\n key = trimmedContent;\n // the content was changed from the user, we'll use it as a reference if needed\n node.originalContent = content || node.originalContent;\n } else if (node.originalContent) { // the content seems ok, but the lang has changed\n // the current content is the translation, not the key, use the last real content as key\n key = node.originalContent.trim();\n } else if (content !== node.currentValue) {\n // we want to use the content as a key, not the translation value\n key = trimmedContent;\n // the content was changed from the user, we'll use it as a reference if needed\n node.originalContent = content || node.originalContent;\n }\n }\n }\n this.updateValue(key, node, translations);\n }\n }\n }\n\n updateValue(key: string, node: any, translations: any) {\n if (key) {\n if (node.lastKey === key && this.lastParams === this.currentParams) {\n return;\n }\n\n this.lastParams = this.currentParams;\n\n let onTranslation = (res: string) => {\n if (res !== key) {\n node.lastKey = key;\n }\n if (!node.originalContent) {\n node.originalContent = this.getContent(node);\n }\n node.currentValue = isDefined(res) ? res : (node.originalContent || key);\n // we replace in the original content to preserve spaces that we might have trimmed\n this.setContent(node, this.key ? node.currentValue : node.originalContent.replace(key, node.currentValue));\n this._ref.markForCheck();\n };\n\n if (isDefined(translations)) {\n let res = this.translateService.getParsedResult(translations, key, this.currentParams);\n if (isObservable(res)) {\n res.subscribe(onTranslation);\n } else {\n onTranslation(res);\n }\n } else {\n this.translateService.get(key, this.currentParams).subscribe(onTranslation);\n }\n }\n }\n\n getContent(node: any): string {\n return isDefined(node.textContent) ? node.textContent : node.data;\n }\n\n setContent(node: any, content: string): void {\n if (isDefined(node.textContent)) {\n node.textContent = content;\n } else {\n node.data = content;\n }\n }\n\n ngOnDestroy() {\n if (this.onLangChangeSub) {\n this.onLangChangeSub.unsubscribe();\n }\n\n if (this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub.unsubscribe();\n }\n\n if (this.onTranslationChangeSub) {\n this.onTranslationChangeSub.unsubscribe();\n }\n }\n}\n","import {ChangeDetectorRef, EventEmitter, Injectable, OnDestroy, Pipe, PipeTransform} from '@angular/core';\nimport {isObservable} from 'rxjs';\nimport {DefaultLangChangeEvent, LangChangeEvent, TranslateService, TranslationChangeEvent} from './translate.service';\nimport {equals, isDefined} from './util';\nimport { Subscription } from 'rxjs';\n\n@Injectable()\n@Pipe({\n name: 'translate',\n pure: false // required to update the value when the promise is resolved\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n value: string = '';\n lastKey: string;\n lastParams: any[];\n onTranslationChange: Subscription;\n onLangChange: Subscription;\n onDefaultLangChange: Subscription;\n\n constructor(private translate: TranslateService, private _ref: ChangeDetectorRef) {\n }\n\n updateValue(key: string, interpolateParams?: Object, translations?: any): void {\n let onTranslation = (res: string) => {\n this.value = res !== undefined ? res : key;\n this.lastKey = key;\n this._ref.markForCheck();\n };\n if (translations) {\n let res = this.translate.getParsedResult(translations, key, interpolateParams);\n if (isObservable(res.subscribe)) {\n res.subscribe(onTranslation);\n } else {\n onTranslation(res);\n }\n }\n this.translate.get(key, interpolateParams).subscribe(onTranslation);\n }\n\n transform(query: string, ...args: any[]): any {\n if (!query || !query.length) {\n return query;\n }\n\n // if we ask another time for the same key, return the last value\n if (equals(query, this.lastKey) && equals(args, this.lastParams)) {\n return this.value;\n }\n\n let interpolateParams: Object;\n if (isDefined(args[0]) && args.length) {\n if (typeof args[0] === 'string' && args[0].length) {\n // we accept objects written in the template such as {n:1}, {'n':1}, {n:'v'}\n // which is why we might need to change it to real JSON objects such as {\"n\":1} or {\"n\":\"v\"}\n let validArgs: string = args[0]\n .replace(/(\\')?([a-zA-Z0-9_]+)(\\')?(\\s)?:/g, '\"$2\":')\n .replace(/:(\\s)?(\\')(.*?)(\\')/g, ':\"$3\"');\n try {\n interpolateParams = JSON.parse(validArgs);\n } catch (e) {\n throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${args[0]}`);\n }\n } else if (typeof args[0] === 'object' && !Array.isArray(args[0])) {\n interpolateParams = args[0];\n }\n }\n\n // store the query, in case it changes\n this.lastKey = query;\n\n // store the params, in case they change\n this.lastParams = args;\n\n // set the value\n this.updateValue(query, interpolateParams);\n\n // if there is a subscription to onLangChange, clean it\n this._dispose();\n\n // subscribe to onTranslationChange event, in case the translations change\n if (!this.onTranslationChange) {\n this.onTranslationChange = this.translate.onTranslationChange.subscribe((event: TranslationChangeEvent) => {\n if (this.lastKey && event.lang === this.translate.currentLang) {\n this.lastKey = null;\n this.updateValue(query, interpolateParams, event.translations);\n }\n });\n }\n\n // subscribe to onLangChange event, in case the language changes\n if (!this.onLangChange) {\n this.onLangChange = this.translate.onLangChange.subscribe((event: LangChangeEvent) => {\n if (this.lastKey) {\n this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated\n this.updateValue(query, interpolateParams, event.translations);\n }\n });\n }\n\n // subscribe to onDefaultLangChange event, in case the default language changes\n if (!this.onDefaultLangChange) {\n this.onDefaultLangChange = this.translate.onDefaultLangChange.subscribe(() => {\n if (this.lastKey) {\n this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated\n this.updateValue(query, interpolateParams);\n }\n });\n }\n\n return this.value;\n }\n\n /**\n * Clean any existing subscription to change events\n */\n private _dispose(): void {\n if (typeof this.onTranslationChange !== 'undefined') {\n this.onTranslationChange.unsubscribe();\n this.onTranslationChange = undefined;\n }\n if (typeof this.onLangChange !== 'undefined') {\n this.onLangChange.unsubscribe();\n this.onLangChange = undefined;\n }\n if (typeof this.onDefaultLangChange !== 'undefined') {\n this.onDefaultLangChange.unsubscribe();\n this.onDefaultLangChange = undefined;\n }\n }\n\n ngOnDestroy(): void {\n this._dispose();\n }\n}\n","import {NgModule, ModuleWithProviders, Provider} from \"@angular/core\";\nimport {TranslateLoader, TranslateFakeLoader} from \"./lib/translate.loader\";\nimport {MissingTranslationHandler, FakeMissingTranslationHandler} from \"./lib/missing-translation-handler\";\nimport {TranslateParser, TranslateDefaultParser} from \"./lib/translate.parser\";\nimport {TranslateCompiler, TranslateFakeCompiler} from \"./lib/translate.compiler\";\nimport {TranslateDirective} from \"./lib/translate.directive\";\nimport {TranslatePipe} from \"./lib/translate.pipe\";\nimport {TranslateStore} from \"./lib/translate.store\";\nimport {USE_DEFAULT_LANG, DEFAULT_LANGUAGE, USE_STORE, TranslateService, USE_EXTEND} from \"./lib/translate.service\";\n\nexport * from \"./lib/translate.loader\";\nexport * from \"./lib/translate.service\";\nexport * from \"./lib/missing-translation-handler\";\nexport * from \"./lib/translate.parser\";\nexport * from \"./lib/translate.compiler\";\nexport * from \"./lib/translate.directive\";\nexport * from \"./lib/translate.pipe\";\nexport * from \"./lib/translate.store\";\n\nexport interface TranslateModuleConfig {\n loader?: Provider;\n compiler?: Provider;\n parser?: Provider;\n missingTranslationHandler?: Provider;\n // isolate the service instance, only works for lazy loaded modules or components with the \"providers\" property\n isolate?: boolean;\n // extends translations for a given language instead of ignoring them if present\n extend?: boolean;\n useDefaultLang?: boolean;\n defaultLanguage?: string;\n}\n\n@NgModule({\n declarations: [\n TranslatePipe,\n TranslateDirective\n ],\n exports: [\n TranslatePipe,\n TranslateDirective\n ]\n})\nexport class TranslateModule {\n /**\n * Use this method in your root module to provide the TranslateService\n */\n static forRoot(config: TranslateModuleConfig = {}): ModuleWithProviders<TranslateModule> {\n return {\n ngModule: TranslateModule,\n providers: [\n config.loader || {provide: TranslateLoader, useClass: TranslateFakeLoader},\n config.compiler || {provide: TranslateCompiler, useClass: TranslateFakeCompiler},\n config.parser || {provide: TranslateParser, useClass: TranslateDefaultParser},\n config.missingTranslationHandler || {provide: MissingTranslationHandler, useClass: FakeMissingTranslationHandler},\n TranslateStore,\n {provide: USE_STORE, useValue: config.isolate},\n {provide: USE_DEFAULT_LANG, useValue: config.useDefaultLang},\n {provide: USE_EXTEND, useValue: config.extend},\n {provide: DEFAULT_LANGUAGE, useValue: config.defaultLanguage},\n TranslateService\n ]\n };\n }\n\n /**\n * Use this method in your other (non root) modules to import the directive/pipe\n */\n static forChild(config: TranslateModuleConfig = {}): ModuleWithProviders<TranslateModule> {\n return {\n ngModule: TranslateModule,\n providers: [\n config.loader || {provide: TranslateLoader, useClass: TranslateFakeLoader},\n config.compiler || {provide: TranslateCompiler, useClass: TranslateFakeCompiler},\n config.parser || {provide: TranslateParser, useClass: TranslateDefaultParser},\n config.missingTranslationHandler || {provide: MissingTranslationHandler, useClass: FakeMissingTranslationHandler},\n {provide: USE_STORE, useValue: config.isolate},\n {provide: USE_DEFAULT_LANG, useValue: config.useDefaultLang},\n {provide: USE_EXTEND, useValue: config.extend},\n {provide: DEFAULT_LANGUAGE, useValue: config.defaultLanguage},\n TranslateService\n ]\n };\n }\n}\n"],"names":["of","Injectable","EventEmitter","InjectionToken","take","shareReplay","map","isObservable","forkJoin","concatMap","concat","defer","switchMap","Inject","Directive","ElementRef","ChangeDetectorRef","Input","Pipe","NgModule"],"mappings":"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"}
\No newline at end of file