{"version":3,"file":"main.js","mappings":"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","names":["environment","appUrl","production","webApiUri","webApiManagementUri","localWebApiUris","Formular","oauth","identityProvider","clientId","b2cTenant","flowSignInSignUp","flowPasswordReset","dataUsageAgreement","usageAgreement","widerrufFile","featureFlags","latestVorgaenge","informationenZurRechnungsrelevanz","headerMenuProfile","headerMenuOrganisationSettings","headerMenuHelp","sideNavEigeneFilter","vorgaengeColumnSettings","vorgaengeSaveView","werSchrittTablesSortable","fertigSchrittCosts","resourceLocale","getTranslationsByUrl","url","id","setLocaleId","response","fetch","ok","data","text","fileData","JSON","parse","translations","parseTranslations","getTranslationsById","baseUrl","fallbacks","getLanguageUrl","parts","split","length","parentId","i","shift","enableProdMode","ignoreCountry","tryAllLanguages","fallbackId","locale","cookieName","options","name","tag","values","decodedCookie","document","cookie","value","trim","indexOf","substring","getCookie","languages","language","navigator","push","getTranslationsEx","getTranslations","then","loadTranslations","catch","console","warn","finally","l","module","__NgCli_bootstrap_1","bootstrapModule","AppModule","err","error"],"sourceRoot":"webpack:///","sources":["./src/environments/environment.dev.ts","./src/translation-loader.ts","./src/main.ts"],"sourcesContent":["import { AppConfig } from 'src/app/core/configs/app-config';\n\nexport const environment: AppConfig = {\n appUrl: 'https://dev.portal.infrest.de',\n production: false,\n webApiUri: 'https://dev.lap.api.app.portal.infrest.de/',\n webApiManagementUri: 'https://dev.lap.api.portal.infrest.de/',\n localWebApiUris: {\n Formular: 'https://dev.lap.api.app.portal.infrest.de/'\n },\n oauth: {\n identityProvider: 'https://infrestcustomersdev.b2clogin.com/32dfe5f8-48ea-4860-8986-eacd65217e23/v2.0/',\n clientId: '3fa296d9-a81b-4055-9077-0650e2d7d88e',\n b2cTenant: 'infrestcustomersdev',\n flowSignInSignUp: 'b2c_1_sign_in_and_up',\n flowPasswordReset: 'b2c_1_password_reset'\n },\n dataUsageAgreement: 'https://www.infrest.de/footernavigation/datenschutzhinweise/',\n usageAgreement: 'https://www.infrest.de/fileadmin/InfreSt.de/03_Dokumentenablage/NV_Einmalnutzer_ab_01122021.pdf',\n widerrufFile: 'https://dev-static.portal.infrest.de/docs/Widerrufsbelehrung_fuer_Privatkunden.pdf',\n featureFlags: {\n latestVorgaenge: false,\n informationenZurRechnungsrelevanz: true,\n headerMenuProfile: false,\n headerMenuOrganisationSettings: false,\n headerMenuHelp: false,\n sideNavEigeneFilter: true,\n vorgaengeColumnSettings: false,\n vorgaengeSaveView: false,\n werSchrittTablesSortable: false,\n fertigSchrittCosts: true\n }\n};\n","export type Translations = Record;\n\n// Stores the locale id of the loaded resource\nlet resourceLocale = 'en-US';\n\n// Convert JSON resource file data to Translations\nconst parseTranslations = (fileData: string): Translations => JSON.parse(fileData).translations;\n\n// Get a resource file URL\nconst getLanguageUrl = (baseUrl: string, id: string) => `${baseUrl}/${id}`;\n\nconst getCookie = (name: string) => {\n const tag = name + '=';\n const decodedCookie = decodeURIComponent(document.cookie);\n const values = decodedCookie.split(';');\n\n for (let value of values) {\n value = value.trim();\n\n if (value.indexOf(tag) == 0) return value.substring(tag.length, value.length);\n }\n\n return '';\n};\n\n// Load resources from the specific URL\nexport const getTranslationsByUrl = async (url: string, id: string, setLocaleId = true): Promise => {\n const response = await fetch(url);\n if (!response.ok) return null;\n\n const data = await response.text();\n if (data && setLocaleId) resourceLocale = id;\n return parseTranslations(data);\n};\n\n// Load resources matching the give language id. If not found, use the fallback ids.\nexport const getTranslationsById = async (baseUrl: string, id: string, fallbacks: string[], setLocaleId: boolean): Promise => {\n const translations = await getTranslationsByUrl(getLanguageUrl(baseUrl, id), id, setLocaleId);\n\n // If translations were found return it\n if (translations) return translations;\n\n // No translations were found. Try the parent language, if any.\n const parts = id.split('-');\n\n if (parts.length > 1) {\n // Try the parent id. For example de-DE -> de\n let parentId = parts[0];\n\n for (let i = 1; i < parts.length - 1; i++) parentId = parentId + '-' + parts[i];\n\n return getTranslationsById(baseUrl, parentId, fallbacks, setLocaleId);\n } else {\n // No more parents. Try the first language in the fallback list, if any.\n if (fallbacks.length > 0) {\n const id = fallbacks.shift();\n return getTranslationsById(baseUrl, id, fallbacks, setLocaleId);\n } else {\n // No more fallback languages. Return null (e.g., no translations found)\n return null;\n }\n }\n};\n\nexport type TranslateOptions = {\n ignoreCountry?: boolean; // Ignore the country part in the locale if. Default false\n tryAllLanguages?: boolean; // Try all languages in Accept-Language. Default true\n setLocaleId?: boolean; // Set LOCALE_ID to match the loaded resource. Default true\n fallbackId?: string; // Specifies the fallback language/locale id. Default en\n locale?: string; // Specifies the locale to be loaded. Separate multiple locales with a semicolon (;). If null or empty use the browser language. Default null\n cookieName?: string; // Specifies the cookie name that stores the language. If null cookies are ignored. Default null\n};\n\n// Load resources matching the browser language(s)\nexport const getTranslationsEx = (baseUrl: string, options: TranslateOptions = null): Promise => {\n const ignoreCountry = options?.ignoreCountry ?? false;\n const tryAllLanguages = options?.tryAllLanguages ?? true;\n const setLocaleId = options?.setLocaleId ?? true;\n const fallbackId = options?.fallbackId ?? 'en';\n let locale = options?.locale ?? null;\n const cookieName = options?.cookieName ?? null;\n\n if (cookieName) locale = getCookie(cookieName);\n\n // Get a copy of the browser languages\n let languages = [];\n\n if (locale) languages = locale.split(';');\n else if (!ignoreCountry) languages = [...navigator.languages];\n else {\n for (const language of navigator.languages) {\n const parts = language.split('-');\n const id = parts[0];\n\n if (languages.indexOf(id) == -1) languages.push(id);\n }\n }\n\n // Take the first id from the language list\n const id = languages.shift();\n\n // If only first should be tried clear the language list\n if (!tryAllLanguages) languages = [];\n\n // If a fallback has been specified and the language list does not contain it, add the fallback to the list\n if (fallbackId && fallbackId !== id && languages.indexOf(fallbackId) == -1) languages.push(fallbackId);\n\n // Get the translations\n return getTranslationsById(baseUrl, id, languages, setLocaleId);\n};\n\n// Load resources matching the browser language(s)\nexport function getTranslations(\n baseUrl: string,\n ignoreCountry = false,\n tryAllLanguages = true,\n setLocaleId = true,\n fallbackId = 'en',\n locale: string = null,\n cookieName: string = null\n): Promise {\n const options: TranslateOptions = {\n ignoreCountry,\n tryAllLanguages,\n setLocaleId,\n fallbackId,\n locale,\n cookieName\n };\n\n return getTranslationsEx(baseUrl, options);\n}\n","import { enableProdMode } from '@angular/core';\nimport { loadTranslations } from '@angular/localize';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { environment } from './environments/environment';\nimport { getTranslations } from './translation-loader';\n\nif (environment.production) {\n enableProdMode();\n}\n\ngetTranslations(environment.webApiManagementUri + 'api/v1/translation')\n .then(translations => {\n if (translations) loadTranslations(translations);\n })\n .catch(() => {\n console.warn('Could not load translations');\n })\n .finally(() => {\n import('./app/app.module').then(module => {\n platformBrowserDynamic()\n .bootstrapModule(module.AppModule)\n .catch(err => console.error(err));\n });\n });\n"]}