{"version":3,"sources":["node_modules/@ngx-translate/core/fesm2020/ngx-translate-core.mjs","node_modules/@angular/material/fesm2022/slide-toggle.mjs","src/app/shared/services/translate-wrapper.service.ts"],"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/**\r\n * This loader is just a placeholder that does nothing, in case you don't need a loader at all\r\n */\nlet TranslateFakeLoader = /*#__PURE__*/(() => {\n class TranslateFakeLoader extends TranslateLoader {\n getTranslation(lang) {\n return of({});\n }\n }\n TranslateFakeLoader.ɵ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 TranslateFakeLoader.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslateFakeLoader,\n factory: TranslateFakeLoader.ɵfac\n });\n return TranslateFakeLoader;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass MissingTranslationHandler {}\n/**\r\n * This handler is just a placeholder that does nothing, in case you don't need a missing translation handler at all\r\n */\nlet FakeMissingTranslationHandler = /*#__PURE__*/(() => {\n class FakeMissingTranslationHandler {\n handle(params) {\n return params.key;\n }\n }\n FakeMissingTranslationHandler.ɵfac = function FakeMissingTranslationHandler_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || FakeMissingTranslationHandler)();\n };\n FakeMissingTranslationHandler.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FakeMissingTranslationHandler,\n factory: FakeMissingTranslationHandler.ɵfac\n });\n return FakeMissingTranslationHandler;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/* tslint:disable */\n/**\r\n * Determines if two objects or two values are equivalent.\r\n *\r\n * Two objects or values are considered equivalent if at least one of the following is true:\r\n *\r\n * * Both objects or values pass `===` comparison.\r\n * * Both objects or values are of the same type and all of their properties are equal by\r\n * comparing them with `equals`.\r\n *\r\n * @param o1 Object or value to compare.\r\n * @param o2 Object or value to compare.\r\n * @returns true if arguments are equal.\r\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 constructor() {\n super(...arguments);\n this.templateMatcher = /{{\\s?([^{}\\s]*)\\s?}}/g;\n }\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 }\n TranslateDefaultParser.ɵ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 TranslateDefaultParser.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslateDefaultParser,\n factory: TranslateDefaultParser.ɵfac\n });\n return TranslateDefaultParser;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass TranslateCompiler {}\n/**\r\n * This compiler is just a placeholder that does nothing, in case you don't need a compiler at all\r\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 }\n TranslateFakeCompiler.ɵ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 TranslateFakeCompiler.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslateFakeCompiler,\n factory: TranslateFakeCompiler.ɵfac\n });\n return TranslateFakeCompiler;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass TranslateStore {\n constructor() {\n /**\r\n * The lang currently used\r\n */\n this.currentLang = this.defaultLang;\n /**\r\n * a list of translations per lang\r\n */\n this.translations = {};\n /**\r\n * an array of langs\r\n */\n this.langs = [];\n /**\r\n * An EventEmitter to listen to translation change events\r\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\r\n * // do something\r\n * });\r\n */\n this.onTranslationChange = new EventEmitter();\n /**\r\n * An EventEmitter to listen to lang change events\r\n * onLangChange.subscribe((params: LangChangeEvent) => {\r\n * // do something\r\n * });\r\n */\n this.onLangChange = new EventEmitter();\n /**\r\n * An EventEmitter to listen to default lang change events\r\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\r\n * // do something\r\n * });\r\n */\n this.onDefaultLangChange = new EventEmitter();\n }\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 /**\r\n *\r\n * @param store an instance of the store (that is supposed to be unique)\r\n * @param currentLoader An instance of the loader currently used\r\n * @param compiler An instance of the compiler currently used\r\n * @param parser An instance of the parser currently used\r\n * @param missingTranslationHandler A handler for missing translations.\r\n * @param useDefaultLang whether we should use default language translation when current language translation is missing.\r\n * @param isolate whether this service should use the store or not\r\n * @param extend To make a child module extend (and use) translations from parent modules.\r\n * @param defaultLanguage Set the default language using configuration\r\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 this.pending = false;\n this._onTranslationChange = new EventEmitter();\n this._onLangChange = new EventEmitter();\n this._onDefaultLangChange = new EventEmitter();\n this._langs = [];\n this._translations = {};\n this._translationRequests = {};\n /** set the default language from configuration */\n if (defaultLanguage) {\n this.setDefaultLang(defaultLanguage);\n }\n }\n /**\r\n * An EventEmitter to listen to translation change events\r\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\r\n * // do something\r\n * });\r\n */\n get onTranslationChange() {\n return this.isolate ? this._onTranslationChange : this.store.onTranslationChange;\n }\n /**\r\n * An EventEmitter to listen to lang change events\r\n * onLangChange.subscribe((params: LangChangeEvent) => {\r\n * // do something\r\n * });\r\n */\n get onLangChange() {\n return this.isolate ? this._onLangChange : this.store.onLangChange;\n }\n /**\r\n * An EventEmitter to listen to default lang change events\r\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\r\n * // do something\r\n * });\r\n */\n get onDefaultLangChange() {\n return this.isolate ? this._onDefaultLangChange : this.store.onDefaultLangChange;\n }\n /**\r\n * The default lang to fallback when translations are missing on the current lang\r\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 /**\r\n * The lang currently used\r\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 /**\r\n * an array of langs\r\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 /**\r\n * a list of translations per lang\r\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 /**\r\n * Sets the default language to use as a fallback\r\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 /**\r\n * Gets the default language used\r\n */\n getDefaultLang() {\n return this.defaultLang;\n }\n /**\r\n * Changes the lang currently used\r\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 /**\r\n * Retrieves the given translations\r\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 /**\r\n * Gets an object of translations for a given language with the current loader\r\n * and passes it through the compiler\r\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 /**\r\n * Manually sets an object of translations for a given language\r\n * after passing it through the compiler\r\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 /**\r\n * Returns an array of currently available langs\r\n */\n getLangs() {\n return this.langs;\n }\n /**\r\n * Add available langs\r\n */\n addLangs(langs) {\n langs.forEach(lang => {\n if (this.langs.indexOf(lang) === -1) {\n this.langs.push(lang);\n }\n });\n }\n /**\r\n * Update the list of available langs\r\n */\n updateLangs() {\n this.addLangs(Object.keys(this.translations));\n }\n /**\r\n * Returns the parsed result of the translations\r\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 /**\r\n * Gets the translated value of a key (or an array of keys)\r\n * @returns the translated key, or an object of translated keys\r\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 /**\r\n * Returns a stream of translated values of a key (or an array of keys) which updates\r\n * whenever the translation changes.\r\n * @returns A stream of the translated key, or an object of translated keys\r\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 /**\r\n * Returns a stream of translated values of a key (or an array of keys) which updates\r\n * whenever the language changes.\r\n * @returns A stream of the translated key, or an object of translated keys\r\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 /**\r\n * Returns a translation instantly from the internal state of loaded translation.\r\n * All rules regarding the current language, the preferred language of even fallback languages will be used except any promise handling.\r\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 /**\r\n * Sets the translated value of a key, after compiling it\r\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 /**\r\n * Changes the current lang\r\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 /**\r\n * Changes the default lang\r\n */\n changeDefaultLang(lang) {\n this.defaultLang = lang;\n this.onDefaultLangChange.emit({\n lang: lang,\n translations: this.translations[lang]\n });\n }\n /**\r\n * Allows to reload the lang file from the file\r\n */\n reloadLang(lang) {\n this.resetLang(lang);\n return this.getTranslation(lang);\n }\n /**\r\n * Deletes inner translation\r\n */\n resetLang(lang) {\n this._translationRequests[lang] = undefined;\n this.translations[lang] = undefined;\n }\n /**\r\n * Returns the language code name from the browser, e.g. \"de\"\r\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 /**\r\n * Returns the culture language code name from the browser, e.g. \"de-DE\"\r\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 }\n TranslateService.ɵ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 TranslateService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslateService,\n factory: TranslateService.ɵfac\n });\n return TranslateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TranslateDirective = /*#__PURE__*/(() => {\n class TranslateDirective {\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 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 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 }\n TranslateDirective.ɵfac = function TranslateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TranslateDirective)(i0.ɵɵdirectiveInject(TranslateService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n TranslateDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: TranslateDirective,\n selectors: [[\"\", \"translate\", \"\"], [\"\", \"ngx-translate\", \"\"]],\n inputs: {\n translate: \"translate\",\n translateParams: \"translateParams\"\n }\n });\n return TranslateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TranslatePipe = /*#__PURE__*/(() => {\n class TranslatePipe {\n constructor(translate, _ref) {\n this.translate = translate;\n this._ref = _ref;\n this.value = '';\n this.lastKey = null;\n this.lastParams = [];\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 /**\r\n * Clean any existing subscription to change events\r\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 }\n TranslatePipe.ɵfac = function TranslatePipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TranslatePipe)(i0.ɵɵdirectiveInject(TranslateService, 16), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef, 16));\n };\n TranslatePipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"translate\",\n type: TranslatePipe,\n pure: false\n });\n TranslatePipe.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TranslatePipe,\n factory: TranslatePipe.ɵfac\n });\n return TranslatePipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TranslateModule = /*#__PURE__*/(() => {\n class TranslateModule {\n /**\r\n * Use this method in your root module to provide the TranslateService\r\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 /**\r\n * Use this method in your other (non root) modules to import the directive/pipe\r\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 }\n TranslateModule.ɵfac = function TranslateModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || TranslateModule)();\n };\n TranslateModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TranslateModule\n });\n TranslateModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n return TranslateModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\r\n * Generated bundle index. Do not edit.\r\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 };","import * as i0 from '@angular/core';\nimport { InjectionToken, forwardRef, EventEmitter, ANIMATION_MODULE_TYPE, booleanAttribute, numberAttribute, Component, ViewEncapsulation, ChangeDetectionStrategy, Attribute, Inject, Optional, ViewChild, Input, Output, Directive, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, CheckboxRequiredValidator } from '@angular/forms';\nimport * as i1 from '@angular/cdk/a11y';\nimport { MatRipple, _MatInternalFormField, MatCommonModule } from '@angular/material/core';\n\n/** Injection token to be used to override the default options for `mat-slide-toggle`. */\nconst _c0 = [\"switch\"];\nconst _c1 = [\"*\"];\nfunction MatSlideToggle_Conditional_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 10);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 12);\n i0.ɵɵelement(2, \"path\", 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"svg\", 14);\n i0.ɵɵelement(4, \"path\", 15);\n i0.ɵɵelementEnd()();\n }\n}\nconst MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-slide-toggle-default-options', {\n providedIn: 'root',\n factory: () => ({\n disableToggleValue: false,\n hideIcon: false,\n disabledInteractive: false\n })\n});\n\n/**\n * @deprecated Will stop being exported.\n * @breaking-change 19.0.0\n */\nconst MAT_SLIDE_TOGGLE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: /*#__PURE__*/forwardRef(() => MatSlideToggle),\n multi: true\n};\n/** Change event object emitted by a slide toggle. */\nclass MatSlideToggleChange {\n constructor( /** The source slide toggle of the event. */\n source, /** The new `checked` value of the slide toggle. */\n checked) {\n this.source = source;\n this.checked = checked;\n }\n}\n// Increasing integer for generating unique ids for slide-toggle components.\nlet nextUniqueId = 0;\nlet MatSlideToggle = /*#__PURE__*/(() => {\n class MatSlideToggle {\n _createChangeEvent(isChecked) {\n return new MatSlideToggleChange(this, isChecked);\n }\n /** Returns the unique id for the visual hidden button. */\n get buttonId() {\n return `${this.id || this._uniqueId}-button`;\n }\n /** Focuses the slide-toggle. */\n focus() {\n this._switchElement.nativeElement.focus();\n }\n /** Whether the slide-toggle element is checked or not. */\n get checked() {\n return this._checked;\n }\n set checked(value) {\n this._checked = value;\n this._changeDetectorRef.markForCheck();\n }\n /** Returns the unique id for the visual hidden input. */\n get inputId() {\n return `${this.id || this._uniqueId}-input`;\n }\n constructor(_elementRef, _focusMonitor, _changeDetectorRef, tabIndex, defaults, animationMode) {\n this._elementRef = _elementRef;\n this._focusMonitor = _focusMonitor;\n this._changeDetectorRef = _changeDetectorRef;\n this.defaults = defaults;\n this._onChange = _ => {};\n this._onTouched = () => {};\n this._validatorOnChange = () => {};\n this._checked = false;\n /** Name value will be applied to the input element if present. */\n this.name = null;\n /** Whether the label should appear after or before the slide-toggle. Defaults to 'after'. */\n this.labelPosition = 'after';\n /** Used to set the aria-label attribute on the underlying input element. */\n this.ariaLabel = null;\n /** Used to set the aria-labelledby attribute on the underlying input element. */\n this.ariaLabelledby = null;\n /** Whether the slide toggle is disabled. */\n this.disabled = false;\n /** Whether the slide toggle has a ripple. */\n this.disableRipple = false;\n /** Tabindex of slide toggle. */\n this.tabIndex = 0;\n /** An event will be dispatched each time the slide-toggle changes its value. */\n this.change = new EventEmitter();\n /**\n * An event will be dispatched each time the slide-toggle input is toggled.\n * This event is always emitted when the user toggles the slide toggle, but this does not mean\n * the slide toggle's value has changed.\n */\n this.toggleChange = new EventEmitter();\n this.tabIndex = parseInt(tabIndex) || 0;\n this.color = defaults.color || 'accent';\n this._noopAnimations = animationMode === 'NoopAnimations';\n this.id = this._uniqueId = `mat-mdc-slide-toggle-${++nextUniqueId}`;\n this.hideIcon = defaults.hideIcon ?? false;\n this.disabledInteractive = defaults.disabledInteractive ?? false;\n this._labelId = this._uniqueId + '-label';\n }\n ngAfterContentInit() {\n this._focusMonitor.monitor(this._elementRef, true).subscribe(focusOrigin => {\n if (focusOrigin === 'keyboard' || focusOrigin === 'program') {\n this._focused = true;\n this._changeDetectorRef.markForCheck();\n } else if (!focusOrigin) {\n // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n // Angular does not expect events to be raised during change detection, so any state\n // change (such as a form control's ng-touched) will cause a changed-after-checked error.\n // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n // telling the form control it has been touched until the next tick.\n Promise.resolve().then(() => {\n this._focused = false;\n this._onTouched();\n this._changeDetectorRef.markForCheck();\n });\n }\n });\n }\n ngOnChanges(changes) {\n if (changes['required']) {\n this._validatorOnChange();\n }\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n }\n /** Implemented as part of ControlValueAccessor. */\n writeValue(value) {\n this.checked = !!value;\n }\n /** Implemented as part of ControlValueAccessor. */\n registerOnChange(fn) {\n this._onChange = fn;\n }\n /** Implemented as part of ControlValueAccessor. */\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n /** Implemented as a part of Validator. */\n validate(control) {\n return this.required && control.value !== true ? {\n 'required': true\n } : null;\n }\n /** Implemented as a part of Validator. */\n registerOnValidatorChange(fn) {\n this._validatorOnChange = fn;\n }\n /** Implemented as a part of ControlValueAccessor. */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._changeDetectorRef.markForCheck();\n }\n /** Toggles the checked state of the slide-toggle. */\n toggle() {\n this.checked = !this.checked;\n this._onChange(this.checked);\n }\n /**\n * Emits a change event on the `change` output. Also notifies the FormControl about the change.\n */\n _emitChangeEvent() {\n this._onChange(this.checked);\n this.change.emit(this._createChangeEvent(this.checked));\n }\n /** Method being called whenever the underlying button is clicked. */\n _handleClick() {\n if (!this.disabled) {\n this.toggleChange.emit();\n if (!this.defaults.disableToggleValue) {\n this.checked = !this.checked;\n this._onChange(this.checked);\n this.change.emit(new MatSlideToggleChange(this, this.checked));\n }\n }\n }\n _getAriaLabelledBy() {\n if (this.ariaLabelledby) {\n return this.ariaLabelledby;\n }\n // Even though we have a `label` element with a `for` pointing to the button, we need the\n // `aria-labelledby`, because the button gets flagged as not having a label by tools like axe.\n return this.ariaLabel ? null : this._labelId;\n }\n static {\n this.ɵfac = function MatSlideToggle_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSlideToggle)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.FocusMonitor), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵinjectAttribute('tabindex'), i0.ɵɵdirectiveInject(MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS), i0.ɵɵdirectiveInject(ANIMATION_MODULE_TYPE, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSlideToggle,\n selectors: [[\"mat-slide-toggle\"]],\n viewQuery: function MatSlideToggle_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._switchElement = _t.first);\n }\n },\n hostAttrs: [1, \"mat-mdc-slide-toggle\"],\n hostVars: 13,\n hostBindings: function MatSlideToggle_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵattribute(\"tabindex\", null)(\"aria-label\", null)(\"name\", null)(\"aria-labelledby\", null);\n i0.ɵɵclassMap(ctx.color ? \"mat-\" + ctx.color : \"\");\n i0.ɵɵclassProp(\"mat-mdc-slide-toggle-focused\", ctx._focused)(\"mat-mdc-slide-toggle-checked\", ctx.checked)(\"_mat-animation-noopable\", ctx._noopAnimations);\n }\n },\n inputs: {\n name: \"name\",\n id: \"id\",\n labelPosition: \"labelPosition\",\n ariaLabel: [0, \"aria-label\", \"ariaLabel\"],\n ariaLabelledby: [0, \"aria-labelledby\", \"ariaLabelledby\"],\n ariaDescribedby: [0, \"aria-describedby\", \"ariaDescribedby\"],\n required: [2, \"required\", \"required\", booleanAttribute],\n color: \"color\",\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n disableRipple: [2, \"disableRipple\", \"disableRipple\", booleanAttribute],\n tabIndex: [2, \"tabIndex\", \"tabIndex\", value => value == null ? 0 : numberAttribute(value)],\n checked: [2, \"checked\", \"checked\", booleanAttribute],\n hideIcon: [2, \"hideIcon\", \"hideIcon\", booleanAttribute],\n disabledInteractive: [2, \"disabledInteractive\", \"disabledInteractive\", booleanAttribute]\n },\n outputs: {\n change: \"change\",\n toggleChange: \"toggleChange\"\n },\n exportAs: [\"matSlideToggle\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([MAT_SLIDE_TOGGLE_VALUE_ACCESSOR, {\n provide: NG_VALIDATORS,\n useExisting: MatSlideToggle,\n multi: true\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 13,\n vars: 27,\n consts: [[\"switch\", \"\"], [\"mat-internal-form-field\", \"\", 3, \"labelPosition\"], [\"role\", \"switch\", \"type\", \"button\", 1, \"mdc-switch\", 3, \"click\", \"tabIndex\", \"disabled\"], [1, \"mdc-switch__track\"], [1, \"mdc-switch__handle-track\"], [1, \"mdc-switch__handle\"], [1, \"mdc-switch__shadow\"], [1, \"mdc-elevation-overlay\"], [1, \"mdc-switch__ripple\"], [\"mat-ripple\", \"\", 1, \"mat-mdc-slide-toggle-ripple\", \"mat-mdc-focus-indicator\", 3, \"matRippleTrigger\", \"matRippleDisabled\", \"matRippleCentered\"], [1, \"mdc-switch__icons\"], [1, \"mdc-label\", 3, \"click\", \"for\"], [\"viewBox\", \"0 0 24 24\", \"aria-hidden\", \"true\", 1, \"mdc-switch__icon\", \"mdc-switch__icon--on\"], [\"d\", \"M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z\"], [\"viewBox\", \"0 0 24 24\", \"aria-hidden\", \"true\", 1, \"mdc-switch__icon\", \"mdc-switch__icon--off\"], [\"d\", \"M20 13H4v-2h16v2z\"]],\n template: function MatSlideToggle_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"button\", 2, 0);\n i0.ɵɵlistener(\"click\", function MatSlideToggle_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleClick());\n });\n i0.ɵɵelement(3, \"span\", 3);\n i0.ɵɵelementStart(4, \"span\", 4)(5, \"span\", 5)(6, \"span\", 6);\n i0.ɵɵelement(7, \"span\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"span\", 8);\n i0.ɵɵelement(9, \"span\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(10, MatSlideToggle_Conditional_10_Template, 5, 0, \"span\", 10);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(11, \"label\", 11);\n i0.ɵɵlistener(\"click\", function MatSlideToggle_Template_label_click_11_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView($event.stopPropagation());\n });\n i0.ɵɵprojection(12);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const switch_r2 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"labelPosition\", ctx.labelPosition);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"mdc-switch--selected\", ctx.checked)(\"mdc-switch--unselected\", !ctx.checked)(\"mdc-switch--checked\", ctx.checked)(\"mdc-switch--disabled\", ctx.disabled)(\"mat-mdc-slide-toggle-disabled-interactive\", ctx.disabledInteractive);\n i0.ɵɵproperty(\"tabIndex\", ctx.disabled && !ctx.disabledInteractive ? -1 : ctx.tabIndex)(\"disabled\", ctx.disabled && !ctx.disabledInteractive);\n i0.ɵɵattribute(\"id\", ctx.buttonId)(\"name\", ctx.name)(\"aria-label\", ctx.ariaLabel)(\"aria-labelledby\", ctx._getAriaLabelledBy())(\"aria-describedby\", ctx.ariaDescribedby)(\"aria-required\", ctx.required || null)(\"aria-checked\", ctx.checked)(\"aria-disabled\", ctx.disabled && ctx.disabledInteractive ? \"true\" : null);\n i0.ɵɵadvance(8);\n i0.ɵɵproperty(\"matRippleTrigger\", switch_r2)(\"matRippleDisabled\", ctx.disableRipple || ctx.disabled)(\"matRippleCentered\", true);\n i0.ɵɵadvance();\n i0.ɵɵconditional(!ctx.hideIcon ? 10 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"for\", ctx.buttonId);\n i0.ɵɵattribute(\"id\", ctx._labelId);\n }\n },\n dependencies: [MatRipple, _MatInternalFormField],\n styles: [\".mdc-switch{align-items:center;background:none;border:none;cursor:pointer;display:inline-flex;flex-shrink:0;margin:0;outline:none;overflow:visible;padding:0;position:relative;width:var(--mdc-switch-track-width)}.mdc-switch.mdc-switch--disabled{cursor:default;pointer-events:none}.mdc-switch.mat-mdc-slide-toggle-disabled-interactive{pointer-events:auto}.mdc-switch__track{overflow:hidden;position:relative;width:100%;height:var(--mdc-switch-track-height);border-radius:var(--mdc-switch-track-shape, var(--mat-app-corner-full))}.mdc-switch--disabled.mdc-switch .mdc-switch__track{opacity:var(--mdc-switch-disabled-track-opacity)}.mdc-switch__track::before,.mdc-switch__track::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:\\\"\\\";height:100%;left:0;position:absolute;width:100%;border-width:var(--mat-switch-track-outline-width);border-color:var(--mat-switch-track-outline-color, var(--mat-app-outline))}.cdk-high-contrast-active .mdc-switch__track::before,.cdk-high-contrast-active .mdc-switch__track::after{border-color:currentColor}.mdc-switch--selected .mdc-switch__track::before,.mdc-switch--selected .mdc-switch__track::after{border-width:var(--mat-switch-selected-track-outline-width);border-color:var(--mat-switch-selected-track-outline-color)}.mdc-switch--disabled .mdc-switch__track::before,.mdc-switch--disabled .mdc-switch__track::after{border-width:var(--mat-switch-disabled-unselected-track-outline-width);border-color:var(--mat-switch-disabled-unselected-track-outline-color, var(--mat-app-on-surface))}.mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0, 0, 0.2, 1);transform:translateX(0);background:var(--mdc-switch-unselected-track-color, var(--mat-app-surface-variant))}.mdc-switch--selected .mdc-switch__track::before{transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.6, 1);transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch--selected .mdc-switch__track::before{transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::before{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch--unselected .mdc-switch__track::before{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-hover-track-color, var(--mat-app-surface-variant))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:var(--mdc-switch-unselected-focus-track-color, var(--mat-app-surface-variant))}.mdc-switch:enabled:active .mdc-switch__track::before{background:var(--mdc-switch-unselected-pressed-track-color, var(--mat-app-surface-variant))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::before,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::before,.mdc-switch.mdc-switch--disabled .mdc-switch__track::before{background:var(--mdc-switch-disabled-unselected-track-color, var(--mat-app-surface-variant))}.mdc-switch__track::after{transform:translateX(-100%);background:var(--mdc-switch-selected-track-color, var(--mat-app-primary))}[dir=rtl] .mdc-switch__track::after{transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::after{transform:translateX(0)}.mdc-switch--selected .mdc-switch__track::after{opacity:var(--mat-switch-visible-track-opacity);transition:var(--mat-switch-visible-track-transition)}.mdc-switch--unselected .mdc-switch__track::after{opacity:var(--mat-switch-hidden-track-opacity);transition:var(--mat-switch-hidden-track-transition)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-hover-track-color, var(--mat-app-primary))}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:var(--mdc-switch-selected-focus-track-color, var(--mat-app-primary))}.mdc-switch:enabled:active .mdc-switch__track::after{background:var(--mdc-switch-selected-pressed-track-color, var(--mat-app-primary))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__track::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__track::after,.mdc-switch.mdc-switch--disabled .mdc-switch__track::after{background:var(--mdc-switch-disabled-selected-track-color, var(--mat-app-on-surface))}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;transition:transform 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);left:0;right:auto;transform:translateX(0);width:calc(100% - var(--mdc-switch-handle-width))}[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{transform:translateX(100%)}[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{transform:translateX(-100%)}.mdc-switch__handle{display:flex;pointer-events:auto;position:absolute;top:50%;transform:translateY(-50%);left:0;right:auto;transition:width 75ms cubic-bezier(0.4, 0, 0.2, 1),height 75ms cubic-bezier(0.4, 0, 0.2, 1),margin 75ms cubic-bezier(0.4, 0, 0.2, 1);width:var(--mdc-switch-handle-width);height:var(--mdc-switch-handle-height);border-radius:var(--mdc-switch-handle-shape, var(--mat-app-corner-full))}[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle{width:var(--mat-switch-unselected-handle-size);height:var(--mat-switch-unselected-handle-size);margin:var(--mat-switch-unselected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-unselected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle{width:var(--mat-switch-selected-handle-size);height:var(--mat-switch-selected-handle-size);margin:var(--mat-switch-selected-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--selected .mdc-switch__handle:has(.mdc-switch__icons){margin:var(--mat-switch-selected-with-icon-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch__handle:has(.mdc-switch__icons){width:var(--mat-switch-with-icon-handle-size);height:var(--mat-switch-with-icon-handle-size)}.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) .mdc-switch__handle{width:var(--mat-switch-pressed-handle-size);height:var(--mat-switch-pressed-handle-size)}.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-selected-pressed-handle-horizontal-margin)}.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) .mdc-switch__handle{margin:var(--mat-switch-unselected-pressed-handle-horizontal-margin)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-selected-handle-opacity)}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__handle::after{opacity:var(--mat-switch-disabled-unselected-handle-opacity)}.mdc-switch__handle::before,.mdc-switch__handle::after{border:1px solid rgba(0,0,0,0);border-radius:inherit;box-sizing:border-box;content:\\\"\\\";width:100%;height:100%;left:0;position:absolute;top:0;transition:background-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1),border-color 75ms 0ms cubic-bezier(0.4, 0, 0.2, 1);z-index:-1}.cdk-high-contrast-active .mdc-switch__handle::before,.cdk-high-contrast-active .mdc-switch__handle::after{border-color:currentColor}.mdc-switch--selected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-selected-handle-color, var(--mat-app-on-primary))}.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-hover-handle-color, var(--mat-app-primary-container))}.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-selected-focus-handle-color, var(--mat-app-primary-container))}.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-selected-pressed-handle-color, var(--mat-app-primary-container))}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:hover:not(:focus):not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:focus:not(:active) .mdc-switch__handle::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled.mdc-switch--selected:active .mdc-switch__handle::after,.mdc-switch--selected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-selected-handle-color, var(--mat-app-surface))}.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:var(--mdc-switch-unselected-handle-color, var(--mat-app-outline))}.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-hover-handle-color, var(--mat-app-on-surface-variant))}.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:var(--mdc-switch-unselected-focus-handle-color, var(--mat-app-on-surface-variant))}.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:var(--mdc-switch-unselected-pressed-handle-color, var(--mat-app-on-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__handle::after{background:var(--mdc-switch-disabled-unselected-handle-color, var(--mat-app-on-surface))}.mdc-switch__handle::before{background:var(--mdc-switch-handle-surface-color)}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-switch:enabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-handle-elevation-shadow)}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:hover:not(:focus):not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:focus:not(:active) .mdc-switch__shadow,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:active .mdc-switch__shadow,.mdc-switch.mdc-switch--disabled .mdc-switch__shadow{box-shadow:var(--mdc-switch-disabled-handle-elevation-shadow)}.mdc-switch__ripple{left:50%;position:absolute;top:50%;transform:translate(-50%, -50%);z-index:-1;width:var(--mdc-switch-state-layer-size);height:var(--mdc-switch-state-layer-size)}.mdc-switch__ripple::after{content:\\\"\\\";opacity:0}.mdc-switch--disabled .mdc-switch__ripple::after{display:none}.mat-mdc-slide-toggle-disabled-interactive .mdc-switch__ripple::after{display:block}.mdc-switch:hover .mdc-switch__ripple::after{opacity:.04;transition:75ms opacity cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mdc-switch .mdc-switch__ripple::after{opacity:.12}.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:focus .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:active .mdc-switch__ripple::after,.mat-mdc-slide-toggle-disabled-interactive.mdc-switch--disabled:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-hover-state-layer-color, var(--mat-app-on-surface))}.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-focus-state-layer-color, var(--mat-app-on-surface))}.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-unselected-pressed-state-layer-color, var(--mat-app-on-surface));opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after{background:var(--mdc-switch-selected-hover-state-layer-color, var(--mat-app-primary))}.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after{background:var(--mdc-switch-selected-focus-state-layer-color, var(--mat-app-primary))}.mdc-switch--selected:enabled:active .mdc-switch__ripple::after{background:var(--mdc-switch-selected-pressed-state-layer-color, var(--mat-app-primary));opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, var(--mat-app-pressed-state-layer-opacity));transition:opacity 75ms linear}.mdc-switch__icons{position:relative;height:100%;width:100%;z-index:1}.mdc-switch--disabled.mdc-switch--unselected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-unselected-icon-opacity)}.mdc-switch--disabled.mdc-switch--selected .mdc-switch__icons{opacity:var(--mdc-switch-disabled-selected-icon-opacity)}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;transition:opacity 30ms 0ms cubic-bezier(0.4, 0, 1, 1)}.mdc-switch--unselected .mdc-switch__icon{width:var(--mdc-switch-unselected-icon-size);height:var(--mdc-switch-unselected-icon-size);fill:var(--mdc-switch-unselected-icon-color, var(--mat-app-surface-variant))}.mdc-switch--unselected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-unselected-icon-color, var(--mat-app-surface-variant))}.mdc-switch--selected .mdc-switch__icon{width:var(--mdc-switch-selected-icon-size);height:var(--mdc-switch-selected-icon-size);fill:var(--mdc-switch-selected-icon-color, var(--mat-app-on-primary-container))}.mdc-switch--selected.mdc-switch--disabled .mdc-switch__icon{fill:var(--mdc-switch-disabled-selected-icon-color, var(--mat-app-on-surface))}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;transition:opacity 45ms 30ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-slide-toggle{-webkit-user-select:none;user-select:none;display:inline-block;-webkit-tap-highlight-color:rgba(0,0,0,0);outline:0}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple,.mat-mdc-slide-toggle .mdc-switch__ripple::after{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-slide-toggle .mat-mdc-slide-toggle-ripple:not(:empty),.mat-mdc-slide-toggle .mdc-switch__ripple::after:not(:empty){transform:translateZ(0)}.mat-mdc-slide-toggle.mat-mdc-slide-toggle-focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-slide-toggle .mat-internal-form-field{color:var(--mat-switch-label-text-color, var(--mat-app-on-surface));font-family:var(--mat-switch-label-text-font, var(--mat-app-body-medium-font));line-height:var(--mat-switch-label-text-line-height, var(--mat-app-body-medium-line-height));font-size:var(--mat-switch-label-text-size, var(--mat-app-body-medium-size));letter-spacing:var(--mat-switch-label-text-tracking, var(--mat-app-body-medium-tracking));font-weight:var(--mat-switch-label-text-weight, var(--mat-app-body-medium-weight))}.mat-mdc-slide-toggle .mat-ripple-element{opacity:.12}.mat-mdc-slide-toggle .mat-mdc-focus-indicator::before{border-radius:50%}.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle-track,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__icon,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__handle::after,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::before,.mat-mdc-slide-toggle._mat-animation-noopable .mdc-switch__track::after{transition:none}.mat-mdc-slide-toggle .mdc-switch:enabled+.mdc-label{cursor:pointer}.mat-mdc-slide-toggle .mdc-switch--disabled+label{color:var(--mdc-switch-disabled-label-text-color)}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return MatSlideToggle;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @deprecated No longer used, `MatCheckbox` implements required validation directly.\n * @breaking-change 19.0.0\n */\nconst MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: /*#__PURE__*/forwardRef(() => MatSlideToggleRequiredValidator),\n multi: true\n};\n/**\n * Validator for Material slide-toggle components with the required attribute in a\n * template-driven form. The default validator for required form controls asserts\n * that the control value is not undefined but that is not appropriate for a slide-toggle\n * where the value is always defined.\n *\n * Required slide-toggle form controls are valid when checked.\n *\n * @deprecated No longer used, `MatCheckbox` implements required validation directly.\n * @breaking-change 19.0.0\n */\nlet MatSlideToggleRequiredValidator = /*#__PURE__*/(() => {\n class MatSlideToggleRequiredValidator extends CheckboxRequiredValidator {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵMatSlideToggleRequiredValidator_BaseFactory;\n return function MatSlideToggleRequiredValidator_Factory(__ngFactoryType__) {\n return (ɵMatSlideToggleRequiredValidator_BaseFactory || (ɵMatSlideToggleRequiredValidator_BaseFactory = i0.ɵɵgetInheritedFactory(MatSlideToggleRequiredValidator)))(__ngFactoryType__ || MatSlideToggleRequiredValidator);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSlideToggleRequiredValidator,\n selectors: [[\"mat-slide-toggle\", \"required\", \"\", \"formControlName\", \"\"], [\"mat-slide-toggle\", \"required\", \"\", \"formControl\", \"\"], [\"mat-slide-toggle\", \"required\", \"\", \"ngModel\", \"\"]],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n }\n return MatSlideToggleRequiredValidator;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * @deprecated No longer used, `MatSlideToggle` implements required validation directly.\n * @breaking-change 19.0.0\n */\nlet _MatSlideToggleRequiredValidatorModule = /*#__PURE__*/(() => {\n class _MatSlideToggleRequiredValidatorModule {\n static {\n this.ɵfac = function _MatSlideToggleRequiredValidatorModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _MatSlideToggleRequiredValidatorModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _MatSlideToggleRequiredValidatorModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return _MatSlideToggleRequiredValidatorModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MatSlideToggleModule = /*#__PURE__*/(() => {\n class MatSlideToggleModule {\n static {\n this.ɵfac = function MatSlideToggleModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatSlideToggleModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatSlideToggleModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatSlideToggle, MatCommonModule, MatCommonModule]\n });\n }\n }\n return MatSlideToggleModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS, MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR, MAT_SLIDE_TOGGLE_VALUE_ACCESSOR, MatSlideToggle, MatSlideToggleChange, MatSlideToggleModule, MatSlideToggleRequiredValidator, _MatSlideToggleRequiredValidatorModule };\n","import { Injectable } from '@angular/core';\r\nimport { LocalStorageRefService } from '@app/shared/services/browser/local-storage-ref.service';\r\nimport { Logger } from '@app/logger/logger';\r\nimport { Observable } from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nexport const LANGUAGE_APP_SETTING = 'language';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TranslateWrapperService {\r\n public static languages = ['en', 'es', 'fr'];\r\n\r\n constructor(\r\n private localStorageRef: LocalStorageRefService,\r\n private logger: Logger,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n get current(): string {\r\n return this.translateService.currentLang;\r\n }\r\n\r\n public initializeLanguage(): void {\r\n const navLanguage = navigator.language.split('-')[0];\r\n const localLang = this.localStorageRef.language;\r\n const selectedLang = this.isLangValid(localLang)\r\n ? localLang\r\n : this.isLangValid(navLanguage)\r\n ? navLanguage\r\n : '';\r\n\r\n this.translateService.addLangs(TranslateWrapperService.languages);\r\n this.setDefaultLang();\r\n\r\n if (selectedLang) {\r\n this.logger.info('Browser language set to', selectedLang);\r\n this.use(selectedLang);\r\n } else {\r\n this.logger.info(`Current languages (${localLang}, ${navLanguage}) not supported`);\r\n this.use('en');\r\n }\r\n\r\n this.localStorageRef.language = this.current;\r\n }\r\n\r\n public setDefaultLang(lang?: string): void {\r\n this.translateService.setDefaultLang(lang ?? 'en');\r\n }\r\n\r\n public use(lang: string): void {\r\n this.translateService.use(lang);\r\n }\r\n\r\n public get(key: string | string[], interpolateParams?: Object): Observable {\r\n return this.translateService.get(key, interpolateParams);\r\n }\r\n\r\n public instant(key: string | string[], interpolateParams?: Object): any {\r\n return this.translateService.instant(key, interpolateParams);\r\n }\r\n\r\n public update(lang: string): void {\r\n if (!this.isLangValid(lang)) {\r\n this.logger.warn('Invalid language selected');\r\n return;\r\n }\r\n\r\n const currentLanguage = this.localStorageRef.language;\r\n\r\n if (currentLanguage === lang) {\r\n return;\r\n } else {\r\n this.localStorageRef.language = lang;\r\n this.use(lang);\r\n }\r\n }\r\n\r\n public isLangValid(lang: string): boolean {\r\n return TranslateWrapperService.languages.includes(lang);\r\n }\r\n}\r\n"],"mappings":"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","names":["TranslateLoader","TranslateFakeLoader","lang","of","ɵTranslateFakeLoader_BaseFactory","__ngFactoryType__","ɵɵ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","store","currentLoader","compiler","parser","missingTranslationHandler","useDefaultLang","isolate","extend","defaultLanguage","defaultLang","currentLang","langs","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","__ngFactoryType__","ɵɵ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","_c0","_c1","MatSlideToggle_Conditional_10_Template","rf","ctx","ɵɵelementStart","ɵɵnamespaceSVG","ɵɵelement","ɵɵelementEnd","MAT_SLIDE_TOGGLE_DEFAULT_OPTIONS","InjectionToken","MAT_SLIDE_TOGGLE_VALUE_ACCESSOR","NG_VALUE_ACCESSOR","forwardRef","MatSlideToggle","MatSlideToggleChange","source","checked","nextUniqueId","isChecked","value","_elementRef","_focusMonitor","_changeDetectorRef","tabIndex","defaults","animationMode","_","EventEmitter","focusOrigin","changes","fn","control","isDisabled","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","FocusMonitor","ChangeDetectorRef","ɵɵinjectAttribute","ANIMATION_MODULE_TYPE","ɵɵdefineComponent","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵhostProperty","ɵɵattribute","ɵɵclassMap","ɵɵclassProp","booleanAttribute","numberAttribute","ɵɵProvidersFeature","NG_VALIDATORS","ɵɵInputTransformsFeature","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","_r1","ɵɵgetCurrentView","ɵɵprojectionDef","ɵɵlistener","ɵɵrestoreView","ɵɵresetView","ɵɵtemplate","$event","ɵɵprojection","switch_r2","ɵɵreference","ɵɵproperty","ɵɵadvance","ɵɵconditional","MatRipple","_MatInternalFormField","MatSlideToggleModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","MatSlideToggle","MatCommonModule","TranslateWrapperService","localStorageRef","logger","translateService","languages","constructor","current","currentLang","initializeLanguage","navLanguage","navigator","language","split","localLang","selectedLang","isLangValid","addLangs","setDefaultLang","info","use","lang","get","key","interpolateParams","instant","update","warn","includes","ɵɵinject","LocalStorageRefService","Logger","TranslateService","factory","ɵfac","providedIn"],"x_google_ignoreList":[0,1]}