{"version":3,"file":"chunk-hk8x327t.js","sources":["node_modules/@ngx-translate/core/dist/fesm2022/ngx-translate-core.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, EventEmitter, InjectionToken, Inject, Directive, Input, Pipe, NgModule } from '@angular/core';\nimport { of, isObservable, forkJoin, concat, defer } from 'rxjs';\nimport { take, shareReplay, map, concatMap, switchMap } from 'rxjs/operators';\nclass TranslateLoader {}\n/**\n * This loader is just a placeholder that does nothing, in case you don't need a loader at all\n */\nlet TranslateFakeLoader = /*#__PURE__*/(() => {\n class TranslateFakeLoader extends TranslateLoader {\n getTranslation(lang) {\n return of({});\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵTranslateFakeLoader_BaseFactory;\n return function TranslateFakeLoader_Factory(__ngFactoryType__) {\n return (ɵTranslateFakeLoader_BaseFactory || (ɵTranslateFakeLoader_BaseFactory = i0.ɵɵgetInheritedFactory(TranslateFakeLoader)))(__ngFactoryType__ || TranslateFakeLoader);\n };\n })();\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslateFakeLoader,\n factory: TranslateFakeLoader.ɵfac\n });\n }\n return TranslateFakeLoader;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass MissingTranslationHandler {}\n/**\n * This handler is just a placeholder that does nothing, in case you don't need a missing translation handler at all\n */\nlet FakeMissingTranslationHandler = /*#__PURE__*/(() => {\n class FakeMissingTranslationHandler {\n handle(params) {\n return params.key;\n }\n static ɵfac = function FakeMissingTranslationHandler_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FakeMissingTranslationHandler)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FakeMissingTranslationHandler,\n factory: FakeMissingTranslationHandler.ɵfac\n });\n }\n return FakeMissingTranslationHandler;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\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 */\nfunction equals(o1, o2) {\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,\n t2 = typeof o2,\n length,\n key,\n keySet;\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 */\nfunction isDefined(value) {\n return typeof value !== 'undefined' && value !== null;\n}\nfunction isObject(item) {\n return item && typeof item === 'object' && !Array.isArray(item);\n}\nfunction mergeDeep(target, source) {\n let output = Object.assign({}, target);\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach(key => {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, {\n [key]: source[key]\n });\n } else {\n output[key] = mergeDeep(target[key], source[key]);\n }\n } else {\n Object.assign(output, {\n [key]: source[key]\n });\n }\n });\n }\n return output;\n}\nclass TranslateParser {}\nlet TranslateDefaultParser = /*#__PURE__*/(() => {\n class TranslateDefaultParser extends TranslateParser {\n templateMatcher = /{{\\s?([^{}\\s]*)\\s?}}/g;\n interpolate(expr, params) {\n let result;\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;\n }\n return result;\n }\n getValue(target, key) {\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 return target;\n }\n interpolateFunction(fn, params) {\n return fn(params);\n }\n interpolateString(expr, params) {\n if (!params) {\n return expr;\n }\n return expr.replace(this.templateMatcher, (substring, b) => {\n let r = this.getValue(params, b);\n return isDefined(r) ? r : substring;\n });\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵTranslateDefaultParser_BaseFactory;\n return function TranslateDefaultParser_Factory(__ngFactoryType__) {\n return (ɵTranslateDefaultParser_BaseFactory || (ɵTranslateDefaultParser_BaseFactory = i0.ɵɵgetInheritedFactory(TranslateDefaultParser)))(__ngFactoryType__ || TranslateDefaultParser);\n };\n })();\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslateDefaultParser,\n factory: TranslateDefaultParser.ɵfac\n });\n }\n return TranslateDefaultParser;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass TranslateCompiler {}\n/**\n * This compiler is just a placeholder that does nothing, in case you don't need a compiler at all\n */\nlet TranslateFakeCompiler = /*#__PURE__*/(() => {\n class TranslateFakeCompiler extends TranslateCompiler {\n compile(value, lang) {\n return value;\n }\n compileTranslations(translations, lang) {\n return translations;\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵTranslateFakeCompiler_BaseFactory;\n return function TranslateFakeCompiler_Factory(__ngFactoryType__) {\n return (ɵTranslateFakeCompiler_BaseFactory || (ɵTranslateFakeCompiler_BaseFactory = i0.ɵɵgetInheritedFactory(TranslateFakeCompiler)))(__ngFactoryType__ || TranslateFakeCompiler);\n };\n })();\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslateFakeCompiler,\n factory: TranslateFakeCompiler.ɵfac\n });\n }\n return TranslateFakeCompiler;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass TranslateStore {\n /**\n * The default lang to fallback when translations are missing on the current lang\n */\n defaultLang;\n /**\n * The lang currently used\n */\n currentLang = this.defaultLang;\n /**\n * a list of translations per lang\n */\n translations = {};\n /**\n * an array of langs\n */\n langs = [];\n /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n */\n onTranslationChange = new EventEmitter();\n /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n */\n onLangChange = new EventEmitter();\n /**\n * An EventEmitter to listen to default lang change events\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\n * // do something\n * });\n */\n onDefaultLangChange = new EventEmitter();\n}\nconst USE_STORE = new InjectionToken('USE_STORE');\nconst USE_DEFAULT_LANG = new InjectionToken('USE_DEFAULT_LANG');\nconst DEFAULT_LANGUAGE = new InjectionToken('DEFAULT_LANGUAGE');\nconst USE_EXTEND = new InjectionToken('USE_EXTEND');\nlet TranslateService = /*#__PURE__*/(() => {\n class TranslateService {\n store;\n currentLoader;\n compiler;\n parser;\n missingTranslationHandler;\n useDefaultLang;\n isolate;\n extend;\n loadingTranslations;\n pending = false;\n _onTranslationChange = new EventEmitter();\n _onLangChange = new EventEmitter();\n _onDefaultLangChange = new EventEmitter();\n _defaultLang;\n _currentLang;\n _langs = [];\n _translations = {};\n _translationRequests = {};\n /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n */\n get onTranslationChange() {\n return this.isolate ? this._onTranslationChange : this.store.onTranslationChange;\n }\n /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n */\n get onLangChange() {\n return this.isolate ? this._onLangChange : this.store.onLangChange;\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 * The default lang to fallback when translations are missing on the current lang\n */\n get defaultLang() {\n return this.isolate ? this._defaultLang : this.store.defaultLang;\n }\n set defaultLang(defaultLang) {\n if (this.isolate) {\n this._defaultLang = defaultLang;\n } else {\n this.store.defaultLang = defaultLang;\n }\n }\n /**\n * The lang currently used\n */\n get currentLang() {\n return this.isolate ? this._currentLang : this.store.currentLang;\n }\n set currentLang(currentLang) {\n if (this.isolate) {\n this._currentLang = currentLang;\n } else {\n this.store.currentLang = currentLang;\n }\n }\n /**\n * an array of langs\n */\n get langs() {\n return this.isolate ? this._langs : this.store.langs;\n }\n set langs(langs) {\n if (this.isolate) {\n this._langs = langs;\n } else {\n this.store.langs = langs;\n }\n }\n /**\n * a list of translations per lang\n */\n get translations() {\n return this.isolate ? this._translations : this.store.translations;\n }\n set translations(translations) {\n if (this.isolate) {\n this._translations = translations;\n } else {\n this.store.translations = translations;\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(store, currentLoader, compiler, parser, missingTranslationHandler, useDefaultLang = true, isolate = false, extend = false, defaultLanguage) {\n this.store = store;\n this.currentLoader = currentLoader;\n this.compiler = compiler;\n this.parser = parser;\n this.missingTranslationHandler = missingTranslationHandler;\n this.useDefaultLang = useDefaultLang;\n this.isolate = isolate;\n this.extend = extend;\n /** set the default language from configuration */\n if (defaultLanguage) {\n this.setDefaultLang(defaultLanguage);\n }\n }\n /**\n * Sets the default language to use as a fallback\n */\n setDefaultLang(lang) {\n if (lang === this.defaultLang) {\n return;\n }\n let pending = this.retrieveTranslations(lang);\n if (typeof pending !== \"undefined\") {\n // on init set the defaultLang immediately\n if (this.defaultLang == null) {\n this.defaultLang = lang;\n }\n pending.pipe(take(1)).subscribe(res => {\n this.changeDefaultLang(lang);\n });\n } else {\n // we already have this language\n this.changeDefaultLang(lang);\n }\n }\n /**\n * Gets the default language used\n */\n getDefaultLang() {\n return this.defaultLang;\n }\n /**\n * Changes the lang currently used\n */\n use(lang) {\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 let pending = this.retrieveTranslations(lang);\n if (typeof pending !== \"undefined\") {\n // on init set the currentLang immediately\n if (!this.currentLang) {\n this.currentLang = lang;\n }\n pending.pipe(take(1)).subscribe(res => {\n this.changeLang(lang);\n });\n return pending;\n } else {\n // we have this language, return an Observable\n this.changeLang(lang);\n return of(this.translations[lang]);\n }\n }\n /**\n * Retrieves the given translations\n */\n retrieveTranslations(lang) {\n let pending;\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 return pending;\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 getTranslation(lang) {\n this.pending = true;\n const loadingTranslations = this.currentLoader.getTranslation(lang).pipe(shareReplay(1), take(1));\n this.loadingTranslations = loadingTranslations.pipe(map(res => this.compiler.compileTranslations(res, lang)), shareReplay(1), take(1));\n this.loadingTranslations.subscribe({\n next: res => {\n this.translations[lang] = this.extend && this.translations[lang] ? {\n ...res,\n ...this.translations[lang]\n } : res;\n this.updateLangs();\n this.pending = false;\n },\n error: err => {\n this.pending = false;\n }\n });\n return loadingTranslations;\n }\n /**\n * Manually sets an object of translations for a given language\n * after passing it through the compiler\n */\n setTranslation(lang, translations, shouldMerge = false) {\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({\n lang: lang,\n translations: this.translations[lang]\n });\n }\n /**\n * Returns an array of currently available langs\n */\n getLangs() {\n return this.langs;\n }\n /**\n * Add available langs\n */\n addLangs(langs) {\n langs.forEach(lang => {\n if (this.langs.indexOf(lang) === -1) {\n this.langs.push(lang);\n }\n });\n }\n /**\n * Update the list of available langs\n */\n updateLangs() {\n this.addLangs(Object.keys(this.translations));\n }\n /**\n * Returns the parsed result of the translations\n */\n getParsedResult(translations, key, interpolateParams) {\n let res;\n if (key instanceof Array) {\n let result = {},\n observables = 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]));\n return forkJoin(sources).pipe(map(arr => {\n let obj = {};\n arr.forEach((value, index) => {\n obj[key[index]] = value;\n });\n return obj;\n }));\n }\n return result;\n }\n if (translations) {\n res = this.parser.interpolate(this.parser.getValue(translations, key), interpolateParams);\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 if (typeof res === \"undefined\") {\n let params = {\n key,\n translateService: this\n };\n if (typeof interpolateParams !== 'undefined') {\n params.interpolateParams = interpolateParams;\n }\n res = this.missingTranslationHandler.handle(params);\n }\n return typeof res !== \"undefined\" ? res : key;\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 get(key, interpolateParams) {\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(concatMap(res => {\n res = this.getParsedResult(res, key, interpolateParams);\n return isObservable(res) ? res : of(res);\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 * 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 getStreamOnTranslationChange(key, interpolateParams) {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n return concat(defer(() => this.get(key, interpolateParams)), this.onTranslationChange.pipe(switchMap(event => {\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 * 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 stream(key, interpolateParams) {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n return concat(defer(() => this.get(key, interpolateParams)), this.onLangChange.pipe(switchMap(event => {\n const res = this.getParsedResult(event.translations, key, interpolateParams);\n return isObservable(res) ? res : of(res);\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 instant(key, interpolateParams) {\n if (!isDefined(key) || !key.length) {\n throw new Error(`Parameter \"key\" required`);\n }\n let res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams);\n if (isObservable(res)) {\n if (key instanceof Array) {\n let obj = {};\n key.forEach((value, index) => {\n obj[key[index]] = key[index];\n });\n return obj;\n }\n return key;\n } else {\n return res;\n }\n }\n /**\n * Sets the translated value of a key, after compiling it\n */\n set(key, value, lang = this.currentLang) {\n this.translations[lang][key] = this.compiler.compile(value, lang);\n this.updateLangs();\n this.onTranslationChange.emit({\n lang: lang,\n translations: this.translations[lang]\n });\n }\n /**\n * Changes the current lang\n */\n changeLang(lang) {\n this.currentLang = lang;\n this.onLangChange.emit({\n lang: lang,\n 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 * Changes the default lang\n */\n changeDefaultLang(lang) {\n this.defaultLang = lang;\n this.onDefaultLangChange.emit({\n lang: lang,\n translations: this.translations[lang]\n });\n }\n /**\n * Allows to reload the lang file from the file\n */\n reloadLang(lang) {\n this.resetLang(lang);\n return this.getTranslation(lang);\n }\n /**\n * Deletes inner translation\n */\n resetLang(lang) {\n this._translationRequests[lang] = undefined;\n this.translations[lang] = undefined;\n }\n /**\n * Returns the language code name from the browser, e.g. \"de\"\n */\n getBrowserLang() {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined;\n }\n let browserLang = window.navigator.languages ? window.navigator.languages[0] : null;\n browserLang = browserLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\n if (typeof browserLang === 'undefined') {\n return undefined;\n }\n if (browserLang.indexOf('-') !== -1) {\n browserLang = browserLang.split('-')[0];\n }\n if (browserLang.indexOf('_') !== -1) {\n browserLang = browserLang.split('_')[0];\n }\n return browserLang;\n }\n /**\n * Returns the culture language code name from the browser, e.g. \"de-DE\"\n */\n getBrowserCultureLang() {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined;\n }\n let browserCultureLang = window.navigator.languages ? window.navigator.languages[0] : null;\n browserCultureLang = browserCultureLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\n return browserCultureLang;\n }\n static ɵfac = function TranslateService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TranslateService)(i0.ɵɵinject(TranslateStore), i0.ɵɵinject(TranslateLoader), i0.ɵɵinject(TranslateCompiler), i0.ɵɵinject(TranslateParser), i0.ɵɵinject(MissingTranslationHandler), i0.ɵɵinject(USE_DEFAULT_LANG), i0.ɵɵinject(USE_STORE), i0.ɵɵinject(USE_EXTEND), i0.ɵɵinject(DEFAULT_LANGUAGE));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslateService,\n factory: TranslateService.ɵfac\n });\n }\n return TranslateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TranslateDirective = /*#__PURE__*/(() => {\n class TranslateDirective {\n translateService;\n element;\n _ref;\n key;\n lastParams;\n currentParams;\n onLangChangeSub;\n onDefaultLangChangeSub;\n onTranslationChangeSub;\n set translate(key) {\n if (key) {\n this.key = key;\n this.checkNodes();\n }\n }\n set translateParams(params) {\n if (!equals(this.currentParams, params)) {\n this.currentParams = params;\n this.checkNodes(true);\n }\n }\n constructor(translateService, element, _ref) {\n this.translateService = translateService;\n this.element = element;\n this._ref = _ref;\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 => {\n if (event.lang === this.translateService.currentLang) {\n this.checkNodes(true, event.translations);\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 => {\n this.checkNodes(true, event.translations);\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 => {\n this.checkNodes(true);\n });\n }\n }\n ngAfterViewChecked() {\n this.checkNodes();\n }\n checkNodes(forceUpdate = false, translations) {\n let nodes = 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 = nodes[i];\n if (node.nodeType === 3) {\n // node type 3 is a text node\n let key;\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) {\n // 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 updateValue(key, node, translations) {\n if (key) {\n if (node.lastKey === key && this.lastParams === this.currentParams) {\n return;\n }\n this.lastParams = this.currentParams;\n let onTranslation = res => {\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 if (isDefined(translations)) {\n let res = this.translateService.getParsedResult(translations, key, this.currentParams);\n if (isObservable(res)) {\n res.subscribe({\n next: onTranslation\n });\n } else {\n onTranslation(res);\n }\n } else {\n this.translateService.get(key, this.currentParams).subscribe(onTranslation);\n }\n }\n }\n getContent(node) {\n return isDefined(node.textContent) ? node.textContent : node.data;\n }\n setContent(node, content) {\n if (isDefined(node.textContent)) {\n node.textContent = content;\n } else {\n node.data = content;\n }\n }\n ngOnDestroy() {\n if (this.onLangChangeSub) {\n this.onLangChangeSub.unsubscribe();\n }\n if (this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub.unsubscribe();\n }\n if (this.onTranslationChangeSub) {\n this.onTranslationChangeSub.unsubscribe();\n }\n }\n static ɵfac = function TranslateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TranslateDirective)(i0.ɵɵdirectiveInject(TranslateService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TranslateDirective,\n selectors: [[\"\", \"translate\", \"\"], [\"\", \"ngx-translate\", \"\"]],\n inputs: {\n translate: \"translate\",\n translateParams: \"translateParams\"\n }\n });\n }\n return TranslateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TranslatePipe = /*#__PURE__*/(() => {\n class TranslatePipe {\n translate;\n _ref;\n value = '';\n lastKey = null;\n lastParams = [];\n onTranslationChange;\n onLangChange;\n onDefaultLangChange;\n constructor(translate, _ref) {\n this.translate = translate;\n this._ref = _ref;\n }\n updateValue(key, interpolateParams, translations) {\n let onTranslation = res => {\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 transform(query, ...args) {\n if (!query || !query.length) {\n return query;\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 let interpolateParams = undefined;\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 = args[0].replace(/(\\')?([a-zA-Z0-9_]+)(\\')?(\\s)?:/g, '\"$2\":').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 // store the query, in case it changes\n this.lastKey = query;\n // store the params, in case they change\n this.lastParams = args;\n // set the value\n this.updateValue(query, interpolateParams);\n // if there is a subscription to onLangChange, clean it\n this._dispose();\n // subscribe to onTranslationChange event, in case the translations change\n if (!this.onTranslationChange) {\n this.onTranslationChange = this.translate.onTranslationChange.subscribe(event => {\n if (this.lastKey && event.lang === this.translate.currentLang) {\n this.lastKey = null;\n this.updateValue(query, interpolateParams, event.translations);\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 => {\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 // 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 return this.value;\n }\n /**\n * Clean any existing subscription to change events\n */\n _dispose() {\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 ngOnDestroy() {\n this._dispose();\n }\n static ɵfac = function TranslatePipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TranslatePipe)(i0.ɵɵdirectiveInject(TranslateService, 16), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef, 16));\n };\n static ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"translate\",\n type: TranslatePipe,\n pure: false\n });\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslatePipe,\n factory: TranslatePipe.ɵfac\n });\n }\n return TranslatePipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TranslateModule = /*#__PURE__*/(() => {\n class TranslateModule {\n /**\n * Use this method in your root module to provide the TranslateService\n */\n static forRoot(config = {}) {\n return {\n ngModule: TranslateModule,\n providers: [config.loader || {\n provide: TranslateLoader,\n useClass: TranslateFakeLoader\n }, config.compiler || {\n provide: TranslateCompiler,\n useClass: TranslateFakeCompiler\n }, config.parser || {\n provide: TranslateParser,\n useClass: TranslateDefaultParser\n }, config.missingTranslationHandler || {\n provide: MissingTranslationHandler,\n useClass: FakeMissingTranslationHandler\n }, TranslateStore, {\n provide: USE_STORE,\n useValue: config.isolate\n }, {\n provide: USE_DEFAULT_LANG,\n useValue: config.useDefaultLang\n }, {\n provide: USE_EXTEND,\n useValue: config.extend\n }, {\n provide: DEFAULT_LANGUAGE,\n useValue: config.defaultLanguage\n }, TranslateService]\n };\n }\n /**\n * Use this method in your other (non root) modules to import the directive/pipe\n */\n static forChild(config = {}) {\n return {\n ngModule: TranslateModule,\n providers: [config.loader || {\n provide: TranslateLoader,\n useClass: TranslateFakeLoader\n }, config.compiler || {\n provide: TranslateCompiler,\n useClass: TranslateFakeCompiler\n }, config.parser || {\n provide: TranslateParser,\n useClass: TranslateDefaultParser\n }, config.missingTranslationHandler || {\n provide: MissingTranslationHandler,\n useClass: FakeMissingTranslationHandler\n }, {\n provide: USE_STORE,\n useValue: config.isolate\n }, {\n provide: USE_DEFAULT_LANG,\n useValue: config.useDefaultLang\n }, {\n provide: USE_EXTEND,\n useValue: config.extend\n }, {\n provide: DEFAULT_LANGUAGE,\n useValue: config.defaultLanguage\n }, TranslateService]\n };\n }\n static ɵfac = function TranslateModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TranslateModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TranslateModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n return TranslateModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DEFAULT_LANGUAGE, FakeMissingTranslationHandler, MissingTranslationHandler, TranslateCompiler, TranslateDefaultParser, TranslateDirective, TranslateFakeCompiler, TranslateFakeLoader, TranslateLoader, TranslateModule, TranslateParser, TranslatePipe, TranslateService, TranslateStore, USE_DEFAULT_LANG, USE_EXTEND, USE_STORE };\n"],"names":["TranslateLoader","TranslateFakeLoader","_TranslateFakeLoader","lang","of","__publicField","ɵTranslateFakeLoader_BaseFactory","__ngFactoryType__","ɵɵgetInheritedFactory","ɵɵdefineInjectable","MissingTranslationHandler","FakeMissingTranslationHandler","_FakeMissingTranslationHandler","params","equals","o1","o2","t1","t2","length","key","keySet","isDefined","value","isObject","item","mergeDeep","target","source","output","TranslateParser","TranslateDefaultParser","_TranslateDefaultParser","expr","result","keys","fn","substring","b","r","ɵTranslateDefaultParser_BaseFactory","TranslateCompiler","TranslateFakeCompiler","_TranslateFakeCompiler","translations","ɵTranslateFakeCompiler_BaseFactory","TranslateStore","EventEmitter","USE_STORE","InjectionToken","USE_DEFAULT_LANG","DEFAULT_LANGUAGE","USE_EXTEND","TranslateService","_TranslateService","store","currentLoader","compiler","parser","missingTranslationHandler","useDefaultLang","isolate","extend","defaultLanguage","defaultLang","currentLang","langs","pending","take","res","loadingTranslations","shareReplay","map","__spreadValues","P","err","shouldMerge","interpolateParams","observables","k","isObservable","sources","forkJoin","arr","obj","index","concatMap","concat","defer","switchMap","event","browserLang","browserCultureLang","ɵɵinject","TranslateDirective","_TranslateDirective","translateService","element","_ref","forceUpdate","nodes","i","node","content","trimmedContent","onTranslation","ɵɵdirectiveInject","ElementRef","ChangeDetectorRef","ɵɵdefineDirective","TranslatePipe","_TranslatePipe","translate","query","args","validArgs","ɵɵdefinePipe","TranslateModule","_TranslateModule","config","ɵɵdefineNgModule","ɵɵdefineInjector"],"mappings":"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","x_google_ignoreList":[0]}