{"version":3,"sources":["node_modules/@ngneat/svg-icon/fesm2020/ngneat-svg-icon.mjs","node_modules/@ngx-translate/core/dist/fesm2022/ngx-translate-core.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { inject, forwardRef, Injectable, Inject, InjectionToken, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, Component, ChangeDetectionStrategy, Input, Pipe } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nclass SvgIcon {\n constructor(content) {\n this.content = content;\n this.init = false;\n }\n}\nlet SvgIconRegistry = /*#__PURE__*/(() => {\n class SvgIconRegistry {\n constructor(config) {\n this.svgMap = new Map();\n this.document = inject(DOCUMENT);\n if (config?.icons) {\n this.register(config.icons);\n }\n if (config?.missingIconFallback) {\n this.register(config.missingIconFallback);\n }\n }\n getAll() {\n return this.svgMap;\n }\n get(key, config = {}) {\n const icon = key && this.svgMap.get(key);\n if (!icon) {\n return undefined;\n }\n if (!icon.init) {\n const svg = this.toElement(icon.content);\n svg.setAttribute('fit', '');\n svg.setAttribute('height', '100%');\n svg.setAttribute('width', '100%');\n svg.setAttribute('preserveAspectRatio', config.preserveAspectRatio ?? 'xMidYMid meet');\n svg.setAttribute('focusable', 'false');\n icon.content = svg.outerHTML;\n icon.init = true;\n }\n if (config.asDataUrl) {\n const svg = this.toElement(icon.content).outerHTML;\n return `data:image/svg+xml;base64,${btoa(svg)}`;\n }\n return icon.content;\n }\n register(icons) {\n for (const {\n name,\n data\n } of Array.isArray(icons) ? icons : [icons]) {\n if (!this.svgMap.has(name)) {\n this.svgMap.set(name, new SvgIcon(data));\n }\n }\n }\n getSvgElement(name) {\n const content = this.get(name);\n if (!content) {\n return undefined;\n }\n const div = this.document.createElement('div');\n div.innerHTML = content;\n return div.querySelector('svg');\n }\n toElement(content) {\n const div = this.document.createElement('div');\n div.innerHTML = content;\n return div.querySelector('svg');\n }\n }\n SvgIconRegistry.ɵfac = function SvgIconRegistry_Factory(t) {\n return new (t || SvgIconRegistry)(i0.ɵɵinject(forwardRef(() => SVG_ICONS_CONFIG)));\n };\n SvgIconRegistry.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SvgIconRegistry,\n factory: SvgIconRegistry.ɵfac,\n providedIn: 'root'\n });\n return SvgIconRegistry;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst SVG_ICONS_CONFIG = new InjectionToken('SVG_ICONS_CONFIG', {\n providedIn: 'root',\n factory() {\n return {};\n }\n});\nconst SVG_ICONS = new InjectionToken('SVG_ICONS');\nconst SVG_MISSING_ICON_FALLBACK = new InjectionToken('SVG_MISSING_ICON_FALLBACK', {\n providedIn: 'root',\n factory() {\n return undefined;\n }\n});\nfunction provideSvgIcons(icons) {\n return makeEnvironmentProviders([{\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue() {\n inject(SvgIconRegistry).register(icons);\n }\n }]);\n}\nfunction provideSvgIconsConfig(config) {\n return makeEnvironmentProviders([{\n provide: SVG_ICONS_CONFIG,\n useValue: config\n }]);\n}\nlet SvgIconComponent = /*#__PURE__*/(() => {\n class SvgIconComponent {\n constructor(host, registry, config) {\n this.host = host;\n this.registry = registry;\n this.config = config;\n this.noShrink = false;\n this.init = false;\n this.mergedConfig = this.createConfig();\n }\n get element() {\n return this.host.nativeElement;\n }\n ngOnChanges(changes) {\n if (changes.key) {\n this.setIcon(this.key);\n }\n if (changes.size?.currentValue) {\n this.setIconSize(this.mergedConfig.sizes[this.size]);\n }\n if (changes.fontSize?.currentValue) {\n this.setIconSize(coerceCssPixelValue(this.fontSize));\n }\n // If on the first change no size was passed, set the default size\n if (!this.init && !changes.size?.currentValue && !changes.fontSize?.currentValue) {\n this.setIconSize(this.mergedConfig.sizes[this.mergedConfig.defaultSize || 'md']);\n }\n if (changes.width?.currentValue) {\n this.element.style.width = `var(--svg-icon-width, ${coerceCssPixelValue(this.width)})`;\n }\n if (changes.height?.currentValue) {\n this.element.style.height = `var(--svg-icon-height, ${coerceCssPixelValue(this.height)})`;\n }\n if (changes.color?.currentValue) {\n this.element.style.color = `var(--svg-icon-color, ${this.color})`;\n }\n this.init = true;\n }\n createConfig() {\n const defaults = {\n sizes: {\n xs: '0.5rem',\n sm: '0.75rem',\n md: `1rem`,\n lg: '1.5rem',\n xl: '2rem',\n xxl: '2.5rem'\n }\n };\n const mergedConfig = {\n ...defaults,\n ...this.config\n };\n mergedConfig.sizes = Object.entries({\n ...defaults.sizes,\n ...mergedConfig.sizes\n }).reduce((acc, [key, value]) => {\n acc[key] = `var(--svg-icon-font-size-${key}, ${value})`;\n return acc;\n }, {});\n return mergedConfig;\n }\n setIconSize(size) {\n this.element.style.fontSize = size;\n if (this.noShrink) {\n this.element.style.minWidth = size;\n }\n }\n setIcon(name) {\n const config = {\n preserveAspectRatio: this.preserveAspectRatio\n };\n const icon = this.registry.get(name, config) ?? this.registry.get(this.fallback ?? this.config.missingIconFallback?.name, config);\n if (icon) {\n this.element.setAttribute('aria-label', `${name}-icon`);\n this.element.classList.remove(getIconClassName(this.lastKey));\n this.lastKey = name;\n this.element.classList.add(getIconClassName(name));\n this.element.innerHTML = icon;\n }\n }\n }\n SvgIconComponent.ɵfac = function SvgIconComponent_Factory(t) {\n return new (t || SvgIconComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(SvgIconRegistry), i0.ɵɵdirectiveInject(SVG_ICONS_CONFIG));\n };\n SvgIconComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SvgIconComponent,\n selectors: [[\"svg-icon\"]],\n hostAttrs: [\"role\", \"img\", \"aria-hidden\", \"true\"],\n inputs: {\n key: \"key\",\n fallback: \"fallback\",\n size: \"size\",\n width: \"width\",\n height: \"height\",\n fontSize: \"fontSize\",\n color: \"color\",\n noShrink: \"noShrink\",\n preserveAspectRatio: \"preserveAspectRatio\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function SvgIconComponent_Template(rf, ctx) {},\n styles: [\"[_nghost-%COMP%]{display:inline-block;fill:currentColor;width:var(--svg-icon-width, 1em);height:var(--svg-icon-height, 1em)}\"],\n changeDetection: 0\n });\n return SvgIconComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : `${value}px`;\n}\nfunction getIconClassName(key) {\n return `svg-icon-${key}`;\n}\nlet SvgToDataUrlPipe = /*#__PURE__*/(() => {\n class SvgToDataUrlPipe {\n constructor() {\n this.registry = inject(SvgIconRegistry);\n }\n transform(key) {\n return this.registry.get(key, {\n asDataUrl: true\n });\n }\n }\n SvgToDataUrlPipe.ɵfac = function SvgToDataUrlPipe_Factory(t) {\n return new (t || SvgToDataUrlPipe)();\n };\n SvgToDataUrlPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"svgToDataUrl\",\n type: SvgToDataUrlPipe,\n pure: true,\n standalone: true\n });\n return SvgToDataUrlPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction injectRegisterIcons(...params) {\n inject(SvgIconRegistry).register(...params);\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SvgIconComponent, SvgIconRegistry, SvgToDataUrlPipe, injectRegisterIcons, provideSvgIcons, provideSvgIconsConfig };\n","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(t) {\n return (ɵTranslateFakeLoader_BaseFactory || (ɵTranslateFakeLoader_BaseFactory = i0.ɵɵgetInheritedFactory(TranslateFakeLoader)))(t || 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(t) {\n return new (t || 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(t) {\n return (ɵTranslateDefaultParser_BaseFactory || (ɵTranslateDefaultParser_BaseFactory = i0.ɵɵgetInheritedFactory(TranslateDefaultParser)))(t || 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(t) {\n return (ɵTranslateFakeCompiler_BaseFactory || (ɵTranslateFakeCompiler_BaseFactory = i0.ɵɵgetInheritedFactory(TranslateFakeCompiler)))(t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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(t) {\n return new (t || 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"],"mappings":"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","names":["init_define_NGX_ENV","SvgIcon","content","SvgIconRegistry","config","inject","DOCUMENT","key","icon","svg","icons","name","data","div","t","ɵɵinject","forwardRef","SVG_ICONS_CONFIG","ɵɵdefineInjectable","InjectionToken","SVG_ICONS","SVG_MISSING_ICON_FALLBACK","provideSvgIconsConfig","config","makeEnvironmentProviders","SVG_ICONS_CONFIG","SvgIconComponent","host","registry","changes","coerceCssPixelValue","defaults","mergedConfig","__spreadValues","acc","key","value","size","name","icon","getIconClassName","t","ɵɵdirectiveInject","ElementRef","SvgIconRegistry","ɵɵdefineComponent","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","rf","ctx","init_define_NGX_ENV","TranslateLoader","TranslateFakeLoader","lang","of","ɵTranslateFakeLoader_BaseFactory","t","ɵɵgetInheritedFactory","ɵɵdefineInjectable","MissingTranslationHandler","FakeMissingTranslationHandler","params","equals","o1","o2","t1","t2","length","key","keySet","isDefined","value","isObject","item","mergeDeep","target","source","output","TranslateParser","TranslateDefaultParser","expr","result","keys","fn","substring","b","ɵTranslateDefaultParser_BaseFactory","TranslateCompiler","TranslateFakeCompiler","translations","ɵTranslateFakeCompiler_BaseFactory","TranslateStore","EventEmitter","USE_STORE","InjectionToken","USE_DEFAULT_LANG","DEFAULT_LANGUAGE","USE_EXTEND","TranslateService","defaultLang","currentLang","langs","store","currentLoader","compiler","parser","missingTranslationHandler","useDefaultLang","isolate","extend","defaultLanguage","pending","take","res","loadingTranslations","shareReplay","map","__spreadValues","err","shouldMerge","interpolateParams","observables","k","isObservable","sources","forkJoin","arr","obj","index","concatMap","concat","defer","switchMap","event","browserLang","browserCultureLang","ɵɵinject","TranslatePipe","translate","_ref","key","interpolateParams","translations","onTranslation","res","isObservable","query","args","equals","isDefined","validArgs","event","ɵɵdirectiveInject","TranslateService","ChangeDetectorRef","ɵɵdefinePipe","ɵɵdefineInjectable","TranslateModule","config","TranslateLoader","TranslateFakeLoader","TranslateCompiler","TranslateFakeCompiler","TranslateParser","TranslateDefaultParser","MissingTranslationHandler","FakeMissingTranslationHandler","TranslateStore","USE_STORE","USE_DEFAULT_LANG","USE_EXTEND","DEFAULT_LANGUAGE","ɵɵdefineNgModule","ɵɵdefineInjector"],"x_google_ignoreList":[0,1]}