{"version":3,"sources":["src/app/root-store/actions.ts","src/app/core/locale/locale.service.ts","node_modules/ngx-cookie-service/fesm2022/ngx-cookie-service.mjs"],"sourcesContent":["import { createAction, props } from '@ngrx/store';\r\n\r\nexport const ResetObjectSelection = createAction(\r\n '[Root] Reset Object Selection'\r\n);\r\n\r\nexport const LanguageChanged = createAction(\r\n '[Root] Language Changed',\r\n props<{ lang: string }>(),\r\n);\r\n\r\nexport const ReloadAppointments = createAction(\r\n '[Root] Reload Appointments',\r\n (payload: ReloadAppointmentsPayload = { ignoreSchedulerErrors: false }) => payload, // defined optional payload\r\n);\r\n\r\n\r\nexport interface ReloadAppointmentsPayload {\r\n /**\r\n * Indicates whether to ignore scheduler errors once when reloading appointments.\r\n * Default is false. Set to true when reloading appointments after a block appointment is created.\r\n */\r\n ignoreSchedulerErrors: boolean\r\n}\r\n","import { DOCUMENT, registerLocaleData } from '@angular/common';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { computed, Inject, Injectable, Signal, signal, WritableSignal } from '@angular/core';\r\nimport { DateAdapter } from '@angular/material/core';\r\nimport { Store } from '@ngrx/store';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { CldrIntlService, IntlService, setData } from '@progress/kendo-angular-intl';\r\nimport { MessageService } from '@progress/kendo-angular-l10n';\r\nimport dayjs from 'dayjs';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { combineLatest, from, Observable, of, switchMap, tap } from 'rxjs';\r\nimport { LanguageChanged } from '../../root-store/actions';\r\nimport { RootState } from '../../root-store/root-state.model';\r\nimport { DayjsDateAdapter } from '../material-dayjs-adapter/dayjs-date-adapter';\r\n\r\nexport interface SupportedCulture {\r\n culture: string\r\n language: string\r\n localName: string\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocaleService {\r\n public readonly supported: SupportedCulture[] = [\r\n { culture: 'en-US', language: 'en', localName: 'English' },\r\n { culture: 'de-CH', language: 'de', localName: 'Deutsch' },\r\n { culture: 'fr-CH', language: 'fr', localName: 'Français' },\r\n { culture: 'it-CH', language: 'it', localName: 'Italiano' }\r\n ]\r\n public readonly supportedCultures = this.supported.map(s => s.culture) //['en-US', 'de-CH', 'fr-CH', 'it-CH']; // index 0 is default Culture\r\n\r\n public currentLocale: Signal = signal(this.ngxTranslateService.currentLang)\r\n\r\n public currentLang = computed(() => this.currentLocale().substring(0, 2))\r\n\r\n constructor(\r\n private kendoIntlSvc: IntlService,\r\n private ngxTranslateService: TranslateService,\r\n private cookieService: CookieService,\r\n private store: Store,\r\n private kendoMessageService: MessageService,\r\n private http: HttpClient,\r\n private materialDateAdapter: DateAdapter,\r\n @Inject(DOCUMENT) private document: Document,\r\n ) { }\r\n\r\n async initTranslationsAsync(): Promise {\r\n this.ngxTranslateService.addLangs(this.supportedCultures)\r\n this.ngxTranslateService.setDefaultLang(this.supportedCultures[0])\r\n\r\n // notify Kendo when translations have been loaded from the server\r\n this.ngxTranslateService.onLangChange.subscribe(langChange => {\r\n this.kendoMessageService.notify()\r\n // dispatch language change action, so that page title can be updated and cart is reloaded\r\n this.store.dispatch(LanguageChanged({ lang: langChange.lang }))\r\n })\r\n\r\n const useCulture = this.getCultureFromUrl() || this.getCultureFromCookie() || this.getCultureFromBrowser() || this.supportedCultures[0]\r\n this.ngxTranslateService.use(useCulture)\r\n await this.setCultureInternalAsync(useCulture)\r\n }\r\n\r\n private getCultureFromUrl() {\r\n const pathParts = location.pathname.split('/')\r\n if (pathParts.length < 3)\r\n return;\r\n\r\n return this.tryGetSupportedCulture([pathParts[2]])\r\n }\r\n\r\n // get the first culture that is supported by our app\r\n private getCultureFromBrowser() {\r\n return this.tryGetSupportedCulture(window.navigator.languages)\r\n }\r\n\r\n private tryGetSupportedCulture(languages: readonly string[]) {\r\n const supportedLanguages = this.supported.map(s => s.language)\r\n\r\n for (const lang of languages.map(lang => lang.substring(0, 2).toLowerCase())) {\r\n if (supportedLanguages.includes(lang))\r\n return this.supportedCultures.find(l => l.substring(0, 2) === lang)!\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n public getCultureFromCookie(): string {\r\n const culture = this.cookieService.get('Culture')\r\n\r\n // 2024-10-15 replace 'en' with 'en-US' because we changed the default language from en to en-US\r\n if (culture === 'en')\r\n return 'en-US'\r\n\r\n return culture\r\n }\r\n\r\n async setCultureAsync(culture: string): Promise {\r\n await this.setCultureInternalAsync(culture, true)\r\n }\r\n\r\n private async setCultureInternalAsync(culture: string, setNgxLocale: boolean = false): Promise {\r\n // set the culture-cookie to persist the language and make it available to the server\r\n this.cookieService.set('Culture', culture, 360, '/', undefined, true, 'None');\r\n\r\n (this.currentLocale as WritableSignal).set(culture)\r\n\r\n this.document.documentElement.lang = culture\r\n\r\n // define all locales that need to be loaded, so that we can load them in parallel\r\n let angularLocales: Promise\r\n let dayjsLocale: Promise\r\n switch (culture.toLocaleLowerCase()) {\r\n case 'de-ch':\r\n angularLocales = import('@angular/common/locales/de-CH')\r\n dayjsLocale = import('dayjs/locale/de-ch')\r\n break\r\n case 'fr-ch':\r\n angularLocales = import('@angular/common/locales/fr-CH')\r\n dayjsLocale = import('dayjs/locale/fr-ch')\r\n break\r\n case 'it-ch':\r\n angularLocales = import('@angular/common/locales/it-CH')\r\n dayjsLocale = import('dayjs/locale/it-ch')\r\n break\r\n default:\r\n angularLocales = Promise.resolve(null)\r\n dayjsLocale = Promise.resolve(null) // By default, Day.js comes with English locale, so no need to import it\r\n }\r\n\r\n // load angular locales before ngx-translate, so that ngx-translate can use them (e.g. for date pipe)\r\n const angularLocalesAndNgxTranslate = angularLocales.then(angularLocales => {\r\n if (angularLocales)\r\n registerLocaleData(angularLocales.default, culture)\r\n\r\n if (setNgxLocale)\r\n this.ngxTranslateService.use(culture)\r\n })\r\n\r\n const dayjsLoader = dayjsLocale.then(() => {\r\n dayjs.locale(culture)\r\n this.materialDateAdapter.setLocale(culture)\r\n })\r\n\r\n const kendoLoader$ = this.loadKendoTranslations(culture)\r\n .pipe(tap(() => {\r\n (this.kendoIntlSvc as CldrIntlService).localeId = culture // Kendo Scheduler\r\n }))\r\n\r\n combineLatest([\r\n from(angularLocalesAndNgxTranslate),\r\n from(dayjsLoader),\r\n kendoLoader$\r\n ]).subscribe()\r\n }\r\n\r\n // #region Kendo\r\n\r\n private loadedKendoLocales: { [key: string]: boolean } = {\r\n 'en-US': true\r\n }\r\n private kendoLocalesBaseUrl = \"assets/kendo-angular-intl\"\r\n\r\n private loadKendoTranslations(localeId: string): Observable {\r\n if (this.loadedKendoLocales[localeId])\r\n return of(true)\r\n\r\n return combineLatest([\r\n this.http.get(`${this.kendoLocalesBaseUrl}/${localeId}/numbers.json`),\r\n this.http.get(`${this.kendoLocalesBaseUrl}/${localeId}/calendar.json`)\r\n ]).pipe(switchMap(([numbers, calendar]) => {\r\n setData(numbers)\r\n setData(calendar)\r\n this.loadedKendoLocales[localeId] = true\r\n\r\n return of(true)\r\n }))\r\n }\r\n\r\n // #endregion\r\n}\r\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject } from '@angular/core';\nimport { isPlatformBrowser, DOCUMENT } from '@angular/common';\n\n// This service is based on the `ng2-cookies` package which sadly is not a service and does\n// not use `DOCUMENT` injection and therefore doesn't work well with AoT production builds.\n// Package: https://github.com/BCJTI/ng2-cookies\nlet CookieService = /*#__PURE__*/(() => {\n class CookieService {\n constructor(document,\n // Get the `PLATFORM_ID` so we can check if we're in a browser.\n platformId) {\n this.document = document;\n this.platformId = platformId;\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n }\n /**\n * Get cookie Regular Expression\n *\n * @param name Cookie name\n * @returns property RegExp\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static getCookieRegExp(name) {\n const escapedName = name.replace(/([\\[\\]{}()|=;+?,.*^$])/gi, '\\\\$1');\n return new RegExp('(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');\n }\n /**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @param encodedURIComponent A value representing an encoded URI component.\n *\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static safeDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent);\n } catch {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n /**\n * Return `true` if {@link Document} is accessible, otherwise return `false`\n *\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n check(name) {\n if (!this.documentIsAccessible) {\n return false;\n }\n name = encodeURIComponent(name);\n const regExp = CookieService.getCookieRegExp(name);\n return regExp.test(this.document.cookie);\n }\n /**\n * Get cookies by name\n *\n * @param name Cookie name\n * @returns property value\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n get(name) {\n if (this.check(name)) {\n name = encodeURIComponent(name);\n const regExp = CookieService.getCookieRegExp(name);\n const result = regExp.exec(this.document.cookie);\n return result[1] ? CookieService.safeDecodeURIComponent(result[1]) : '';\n } else {\n return '';\n }\n }\n /**\n * Get all cookies in JSON format\n *\n * @returns all the cookies in json\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n getAll() {\n if (!this.documentIsAccessible) {\n return {};\n }\n const cookies = {};\n const document = this.document;\n if (document.cookie && document.cookie !== '') {\n document.cookie.split(';').forEach(currentCookie => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[CookieService.safeDecodeURIComponent(cookieName.replace(/^ /, ''))] = CookieService.safeDecodeURIComponent(cookieValue);\n });\n }\n return cookies;\n }\n set(name, value, expiresOrOptions, path, domain, secure, sameSite, partitioned) {\n if (!this.documentIsAccessible) {\n return;\n }\n if (typeof expiresOrOptions === 'number' || expiresOrOptions instanceof Date || path || domain || secure || sameSite) {\n const optionsBody = {\n expires: expiresOrOptions,\n path,\n domain,\n secure,\n sameSite: sameSite ? sameSite : 'Lax',\n partitioned\n };\n this.set(name, value, optionsBody);\n return;\n }\n let cookieString = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n const options = expiresOrOptions ? expiresOrOptions : {};\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const dateExpires = new Date(new Date().getTime() + options.expires * 1000 * 60 * 60 * 24);\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n } else {\n cookieString += 'expires=' + options.expires.toUTCString() + ';';\n }\n }\n if (options.path) {\n cookieString += 'path=' + options.path + ';';\n }\n if (options.domain) {\n cookieString += 'domain=' + options.domain + ';';\n }\n if (options.secure === false && options.sameSite === 'None') {\n options.secure = true;\n console.warn(`[ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None.` + `More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`);\n }\n if (options.secure) {\n cookieString += 'secure;';\n }\n if (!options.sameSite) {\n options.sameSite = 'Lax';\n }\n cookieString += 'sameSite=' + options.sameSite + ';';\n if (options.partitioned) {\n cookieString += 'Partitioned;';\n }\n this.document.cookie = cookieString;\n }\n /**\n * Delete cookie by name\n *\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Cookie secure flag\n * @param sameSite Cookie sameSite flag - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n delete(name, path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const expiresDate = new Date('Thu, 01 Jan 1970 00:00:01 GMT');\n this.set(name, '', {\n expires: expiresDate,\n path,\n domain,\n secure,\n sameSite\n });\n }\n /**\n * Delete all cookies\n *\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Is the Cookie secure\n * @param sameSite Is the cookie same site\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n deleteAll(path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const cookies = this.getAll();\n for (const cookieName in cookies) {\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n static {\n this.ɵfac = function CookieService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CookieService)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(PLATFORM_ID));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CookieService,\n factory: CookieService.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return CookieService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of ngx-cookie-service\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CookieService };\n"],"mappings":"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","names":["ResetObjectSelection","createAction","LanguageChanged","props","ReloadAppointments","payload","ignoreSchedulerErrors","import_dayjs","CookieService","_CookieService","document","platformId","isPlatformBrowser","name","escapedName","encodedURIComponent","result","cookies","currentCookie","cookieName","cookieValue","value","expiresOrOptions","path","domain","secure","sameSite","partitioned","optionsBody","cookieString","options","dateExpires","expiresDate","__ngFactoryType__","ɵɵinject","DOCUMENT","PLATFORM_ID","ɵɵdefineInjectable","LocaleService","constructor","kendoIntlSvc","ngxTranslateService","cookieService","store","kendoMessageService","http","materialDateAdapter","document","supported","culture","language","localName","supportedCultures","map","s","currentLocale","signal","currentLang","computed","substring","loadedKendoLocales","kendoLocalesBaseUrl","initTranslationsAsync","__async","addLangs","setDefaultLang","onLangChange","subscribe","langChange","notify","dispatch","LanguageChanged","lang","useCulture","getCultureFromUrl","getCultureFromCookie","getCultureFromBrowser","use","setCultureInternalAsync","pathParts","location","pathname","split","length","tryGetSupportedCulture","window","navigator","languages","supportedLanguages","toLowerCase","includes","find","l","get","setCultureAsync","setNgxLocale","set","undefined","documentElement","angularLocales","dayjsLocale","toLocaleLowerCase","Promise","resolve","angularLocalesAndNgxTranslate","then","registerLocaleData","default","dayjsLoader","dayjs","locale","setLocale","kendoLoader$","loadKendoTranslations","pipe","tap","localeId","combineLatest","from","of","switchMap","numbers","calendar","setData","ɵɵinject","IntlService","TranslateService","CookieService","Store","MessageService","HttpClient","DateAdapter","DOCUMENT","factory","ɵfac","providedIn","_LocaleService"],"x_google_ignoreList":[2]}