@smartsoft001-mobilems/angular 2.28.0 → 2.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"smartsoft001-mobilems-angular.mjs","sources":["../tmp-esm2022/lib/translations.js","../tmp-esm2022/lib/environments/environment.js","../tmp-esm2022/lib/services/auth-storage/auth-storage.service.js","../tmp-esm2022/lib/shared.config.js","../tmp-esm2022/lib/services/configs/configs.service.js","../tmp-esm2022/lib/services/contrast/contrast.service.js","../tmp-esm2022/lib/services/dictionary/dictionary.service.js","../tmp-esm2022/lib/services/file-url/file-url.service.js","../tmp-esm2022/lib/services/global/global.service.js","../tmp-esm2022/lib/services/translation/translation.service.js","../tmp-esm2022/lib/services/meta/meta.service.js","../tmp-esm2022/lib/services/modal/modal-container.component.js","../tmp-esm2022/lib/services/modal/modal-ref.js","../tmp-esm2022/lib/services/modal/modal.service.js","../tmp-esm2022/lib/services/search/search.service.js","../tmp-esm2022/lib/services/seo/seo.service.js","../tmp-esm2022/lib/services/settings/settings.service.js","../tmp-esm2022/lib/services/style/style.service.js","../tmp-esm2022/lib/services/wcag/wcag.service.js","../tmp-esm2022/lib/services/crud/crud-base.service.js","../tmp-esm2022/lib/services/index.js","../tmp-esm2022/lib/+state/configs.facade.js","../tmp-esm2022/lib/components/app/app.component.js","../tmp-esm2022/lib/components/page/page.component.js","../tmp-esm2022/lib/components/filters/filters.component.js","../tmp-esm2022/lib/components/scroll-top/scroll-top.component.js","../tmp-esm2022/lib/components/footer/footer.component.js","../tmp-esm2022/lib/components/header/header.component.js","../tmp-esm2022/lib/components/menu/menu.component.js","../tmp-esm2022/lib/components/index.js","../tmp-esm2022/lib/directives/hover.directive.js","../tmp-esm2022/lib/directives/scrollable.directive.js","../tmp-esm2022/lib/directives/index.js","../tmp-esm2022/lib/shared.module.js","../tmp-esm2022/lib/interfaces.js","../tmp-esm2022/lib/guards/authentication.guard.js","../tmp-esm2022/lib/guards/unauthorized.guard.js","../tmp-esm2022/smartsoft001-mobilems-angular.js"],"sourcesContent":["export function setTranslationsAndLang(service) {\n const map = {\n pl: TRANSLATE_DATA_PL,\n };\n Object.keys(map).forEach((key) => {\n service.setTranslation(key, map[key], true);\n });\n if (!service.currentLang) {\n const lang = service.getBrowserLang();\n service.use(lang ?? 'en');\n }\n}\nexport const TRANSLATE_DATA_PL = {\n MODEL: {\n //..\n },\n //..\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi90cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE9BQXlCO0lBQzlELE1BQU0sR0FBRyxHQUFHO1FBQ1YsRUFBRSxFQUFFLGlCQUFpQjtLQUN0QixDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUMvQixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRyxHQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0FBQ0gsQ0FBQztBQU9ELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFtQjtJQUMvQyxLQUFLLEVBQUU7SUFDTCxJQUFJO0tBQ0w7SUFDRCxJQUFJO0NBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFRyYW5zbGF0aW9uc0FuZExhbmcoc2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xuICBjb25zdCBtYXAgPSB7XG4gICAgcGw6IFRSQU5TTEFURV9EQVRBX1BMLFxuICB9O1xuXG4gIE9iamVjdC5rZXlzKG1hcCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgc2VydmljZS5zZXRUcmFuc2xhdGlvbihrZXksIChtYXAgYXMgYW55KVtrZXldLCB0cnVlKTtcbiAgfSk7XG5cbiAgaWYgKCFzZXJ2aWNlLmN1cnJlbnRMYW5nKSB7XG4gICAgY29uc3QgbGFuZyA9IHNlcnZpY2UuZ2V0QnJvd3NlckxhbmcoKTtcbiAgICBzZXJ2aWNlLnVzZShsYW5nID8/ICdlbicpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0ZURhdGEge1xuICBNT0RFTDogb2JqZWN0O1xuICAvLy4uXG59XG5cbmV4cG9ydCBjb25zdCBUUkFOU0xBVEVfREFUQV9QTDogSVRyYW5zbGF0ZURhdGEgPSB7XG4gIE1PREVMOiB7XG4gICAgLy8uLlxuICB9LFxuICAvLy4uXG59O1xuIl19","export const environment = {\n production: false,\n apiUrl: '',\n multimediaUrl: '',\n mainLogoPath: '/assets/gfx/logo/main-logo.png',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsVUFBVSxFQUFFLEtBQUs7SUFDakIsTUFBTSxFQUFFLEVBQUU7SUFDVixhQUFhLEVBQUUsRUFBRTtJQUNqQixZQUFZLEVBQUUsZ0NBQWdDO0NBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XG4gIHByb2R1Y3Rpb246IGZhbHNlLFxuICBhcGlVcmw6ICcnLFxuICBtdWx0aW1lZGlhVXJsOiAnJyxcbiAgbWFpbkxvZ29QYXRoOiAnL2Fzc2V0cy9nZngvbG9nby9tYWluLWxvZ28ucG5nJyxcbn07XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AuthStorageService {\n constructor() {\n this.STORAGE_KEY = 'user';\n }\n setUser(user) {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(this.STORAGE_KEY, JSON.stringify(user));\n }\n }\n getUser() {\n if (typeof localStorage !== 'undefined') {\n const item = localStorage.getItem(this.STORAGE_KEY);\n if (item) {\n try {\n return JSON.parse(item);\n }\n catch (error) {\n console.error('Failed to parse user from localStorage', error);\n return null;\n }\n }\n }\n return null;\n }\n removeUser() {\n if (typeof localStorage !== 'undefined') {\n localStorage.removeItem(this.STORAGE_KEY);\n }\n }\n hasUser() {\n return this.getUser() !== null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AuthStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AuthStorageService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AuthStorageService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2F1dGgtc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8sa0JBQWtCO0lBSC9CO1FBSW1CLGdCQUFXLEdBQUcsTUFBTSxDQUFDO0tBZ0N2QztJQTlCQyxPQUFPLENBQUMsSUFBVztRQUNqQixJQUFJLE9BQU8sWUFBWSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQztvQkFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFVLENBQUM7Z0JBQ25DLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUMvRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUM7SUFDakMsQ0FBQzs4R0FoQ1Usa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSVVzZXIgfSBmcm9tICdAc21hcnRzb2Z0MDAxLW1vYmlsZW1zL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IFNUT1JBR0VfS0VZID0gJ3VzZXInO1xuXG4gIHNldFVzZXIodXNlcjogSVVzZXIpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcbiAgICB9XG4gIH1cblxuICBnZXRVc2VyKCk6IElVc2VyIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBsb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBpdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGl0ZW0pIGFzIElVc2VyO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSB1c2VyIGZyb20gbG9jYWxTdG9yYWdlJywgZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVtb3ZlVXNlcigpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuU1RPUkFHRV9LRVkpO1xuICAgIH1cbiAgfVxuXG4gIGhhc1VzZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcigpICE9PSBudWxsO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SharedConfig {\n constructor() {\n this.apiUrl = '';\n this.multimediaUrl = '';\n this.mainLogoPath = '/assets/gfx/logo/main-logo.png';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedConfig }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedConfig, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2hhcmVkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sWUFBWTtJQUR6QjtRQUVFLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixpQkFBWSxHQUFHLGdDQUFnQyxDQUFDO0tBRWpEOzhHQUxZLFlBQVk7a0hBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNoYXJlZENvbmZpZyB7XG4gIGFwaVVybCA9ICcnO1xuICBtdWx0aW1lZGlhVXJsID0gJyc7XG4gIG1haW5Mb2dvUGF0aCA9ICcvYXNzZXRzL2dmeC9sb2dvL21haW4tbG9nby5wbmcnO1xuICBzdHlsZVZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport moment from 'moment';\nimport { combineLatest, firstValueFrom, lastValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { SharedConfig } from '../../shared.config';\nimport * as i0 from \"@angular/core\";\nexport class ConfigsService {\n constructor() {\n this.httpClient = inject(HttpClient);\n this.config = inject(SharedConfig);\n }\n get() {\n const date = moment().format('YYYY-MM-DD');\n return lastValueFrom(combineLatest([\n this.httpClient.post(this.config.apiUrl + 'object/object-of-the-week', {\n dateStart: date,\n dateEnd: date,\n }),\n this.httpClient.get(this.config.apiUrl + 'setting/theme'),\n ]).pipe(map(([r1, r2]) => {\n return {\n id: '',\n objectOfTheDay: {\n id: Number(r1?.data?.current?.objectId),\n title: r1?.data?.current?.title,\n },\n theme: r2.data,\n };\n })));\n }\n getPage(id) {\n return firstValueFrom(this.httpClient\n .get(this.config.apiUrl + 'page/' + id)\n .pipe(map((r) => r.data)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jb25maWdzL2NvbmZpZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sY0FBYztJQUgzQjtRQUltQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFdBQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FzQ2hEO0lBcENDLEdBQUc7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0MsT0FBTyxhQUFhLENBQ2xCLGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUVqQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRywyQkFBMkIsRUFBRTtnQkFDbkQsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FDckM7U0FDRixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDZixPQUFPO2dCQUNMLEVBQUUsRUFBRSxFQUFFO2dCQUNOLGNBQWMsRUFBRTtvQkFDZCxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQztvQkFDdkMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUs7aUJBQ2hDO2dCQUNELEtBQUssRUFBRSxFQUFFLENBQUMsSUFBYzthQUN6QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFtQjtRQUN6QixPQUFPLGNBQWMsQ0FDbkIsSUFBSSxDQUFDLFVBQVU7YUFDWixHQUFHLENBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUM7YUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzVCLENBQUM7SUFDSixDQUFDOzhHQXZDVSxjQUFjO2tIQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tLCBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvbmZpZywgSVRoZW1lLCBQYWdlIH0gZnJvbSAnQHNtYXJ0c29mdDAwMS1tb2JpbGVtcy9tb2RlbHMnO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ3NTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChTaGFyZWRDb25maWcpO1xuXG4gIGdldCgpOiBQcm9taXNlPENvbmZpZz4ge1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcblxuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKFxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0PHtcbiAgICAgICAgICBkYXRhOiB1bmtub3duICYgeyBjdXJyZW50OiB7IG9iamVjdElkOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfSB9O1xuICAgICAgICB9Pih0aGlzLmNvbmZpZy5hcGlVcmwgKyAnb2JqZWN0L29iamVjdC1vZi10aGUtd2VlaycsIHtcbiAgICAgICAgICBkYXRlU3RhcnQ6IGRhdGUsXG4gICAgICAgICAgZGF0ZUVuZDogZGF0ZSxcbiAgICAgICAgfSksXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQ8eyBkYXRhOiB1bmtub3duIH0+KFxuICAgICAgICAgIHRoaXMuY29uZmlnLmFwaVVybCArICdzZXR0aW5nL3RoZW1lJyxcbiAgICAgICAgKSxcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3IxLCByMl0pID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgb2JqZWN0T2ZUaGVEYXk6IHtcbiAgICAgICAgICAgICAgaWQ6IE51bWJlcihyMT8uZGF0YT8uY3VycmVudD8ub2JqZWN0SWQpLFxuICAgICAgICAgICAgICB0aXRsZTogcjE/LmRhdGE/LmN1cnJlbnQ/LnRpdGxlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoZW1lOiByMi5kYXRhIGFzIElUaGVtZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGdldFBhZ2UoaWQ6IG51bWJlciB8ICdob21lJyk6IFByb21pc2U8UGFnZT4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAuZ2V0PHsgZGF0YTogYW55IH0+KHRoaXMuY29uZmlnLmFwaVVybCArICdwYWdlLycgKyBpZClcbiAgICAgICAgLnBpcGUobWFwKChyKSA9PiByLmRhdGEpKSxcbiAgICApO1xuICB9XG59XG4iXX0=","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, signal, effect, PLATFORM_ID, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nconst DEFAULT_COLORS = {\n black: 'black',\n yellow: 'yellow',\n white: 'white',\n transparentBlack: 'rgba(0, 0, 0, 0.9)',\n wcagColor1: '#F4B735',\n wcagColor2: '#1B1B1B',\n};\nexport class ContrastService {\n constructor() {\n this.platformId = inject(PLATFORM_ID);\n this.isBrowser = isPlatformBrowser(this.platformId);\n this.isActive = signal(false, ...(ngDevMode ? [{ debugName: \"isActive\" }] : []));\n // Apply contrast changes to DOM\n effect(() => {\n if (this.isBrowser) {\n this.applyContrast(this.isActive());\n }\n });\n }\n changeTheme(active) {\n this.isActive.set(active);\n }\n toggle() {\n this.isActive.update((value) => !value);\n }\n applyContrast(active) {\n if (!this.isBrowser)\n return;\n const docElement = document.documentElement;\n if (active) {\n this.setProperties(docElement);\n docElement.classList.add('cv');\n }\n else {\n this.removeProperties(docElement);\n docElement.classList.remove('cv');\n }\n }\n setProperties(element) {\n element.style.setProperty('--cv-black', DEFAULT_COLORS.black);\n element.style.setProperty('--cv-yellow', DEFAULT_COLORS.yellow);\n element.style.setProperty('--cv-white', DEFAULT_COLORS.white);\n element.style.setProperty('--cv-black-transparent', DEFAULT_COLORS.transparentBlack);\n element.style.setProperty('--cv-wcag-color-1', DEFAULT_COLORS.wcagColor1);\n element.style.setProperty('--cv-wcag-color-2', DEFAULT_COLORS.wcagColor2);\n }\n removeProperties(element) {\n element.style.removeProperty('--cv-black');\n element.style.removeProperty('--cv-yellow');\n element.style.removeProperty('--cv-white');\n element.style.removeProperty('--cv-black-transparent');\n element.style.removeProperty('--cv-wcag-color-1');\n element.style.removeProperty('--cv-wcag-color-2');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContrastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContrastService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContrastService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvY29udHJhc3QvY29udHJhc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXaEYsTUFBTSxjQUFjLEdBQW1CO0lBQ3JDLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLE9BQU87SUFDZCxnQkFBZ0IsRUFBRSxvQkFBb0I7SUFDdEMsVUFBVSxFQUFFLFNBQVM7SUFDckIsVUFBVSxFQUFFLFNBQVM7Q0FDdEIsQ0FBQztBQUtGLE1BQU0sT0FBTyxlQUFlO0lBTTFCO1FBTGlCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RCxhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssb0RBQUMsQ0FBQztRQUdoQyxnQ0FBZ0M7UUFDaEMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBZTtRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBZTtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBRTVCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFFNUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0IsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsT0FBb0I7UUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3ZCLHdCQUF3QixFQUN4QixjQUFjLENBQUMsZ0JBQWdCLENBQ2hDLENBQUM7UUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFvQjtRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNwRCxDQUFDOzhHQXhEVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCwgZWZmZWN0LCBQTEFURk9STV9JRCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmludGVyZmFjZSBDb250cmFzdENvbG9ycyB7XG4gIGJsYWNrOiBzdHJpbmc7XG4gIHllbGxvdzogc3RyaW5nO1xuICB3aGl0ZTogc3RyaW5nO1xuICB0cmFuc3BhcmVudEJsYWNrOiBzdHJpbmc7XG4gIHdjYWdDb2xvcjE6IHN0cmluZztcbiAgd2NhZ0NvbG9yMjogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX0NPTE9SUzogQ29udHJhc3RDb2xvcnMgPSB7XG4gIGJsYWNrOiAnYmxhY2snLFxuICB5ZWxsb3c6ICd5ZWxsb3cnLFxuICB3aGl0ZTogJ3doaXRlJyxcbiAgdHJhbnNwYXJlbnRCbGFjazogJ3JnYmEoMCwgMCwgMCwgMC45KScsXG4gIHdjYWdDb2xvcjE6ICcjRjRCNzM1JyxcbiAgd2NhZ0NvbG9yMjogJyMxQjFCMUInLFxufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRyYXN0U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcblxuICByZWFkb25seSBpc0FjdGl2ZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gQXBwbHkgY29udHJhc3QgY2hhbmdlcyB0byBET01cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICAgIHRoaXMuYXBwbHlDb250cmFzdCh0aGlzLmlzQWN0aXZlKCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlVGhlbWUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoYWN0aXZlKTtcbiAgfVxuXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzQWN0aXZlLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29udHJhc3QoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuXG4gICAgY29uc3QgZG9jRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuc2V0UHJvcGVydGllcyhkb2NFbGVtZW50KTtcbiAgICAgIGRvY0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY3YnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVQcm9wZXJ0aWVzKGRvY0VsZW1lbnQpO1xuICAgICAgZG9jRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdjdicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJvcGVydGllcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3YtYmxhY2snLCBERUZBVUxUX0NPTE9SUy5ibGFjayk7XG4gICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jdi15ZWxsb3cnLCBERUZBVUxUX0NPTE9SUy55ZWxsb3cpO1xuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3Ytd2hpdGUnLCBERUZBVUxUX0NPTE9SUy53aGl0ZSk7XG4gICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICctLWN2LWJsYWNrLXRyYW5zcGFyZW50JyxcbiAgICAgIERFRkFVTFRfQ09MT1JTLnRyYW5zcGFyZW50QmxhY2ssXG4gICAgKTtcbiAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWN2LXdjYWctY29sb3ItMScsIERFRkFVTFRfQ09MT1JTLndjYWdDb2xvcjEpO1xuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3Ytd2NhZy1jb2xvci0yJywgREVGQVVMVF9DT0xPUlMud2NhZ0NvbG9yMik7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVByb3BlcnRpZXMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLWN2LWJsYWNrJyk7XG4gICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1jdi15ZWxsb3cnKTtcbiAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLWN2LXdoaXRlJyk7XG4gICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1jdi1ibGFjay10cmFuc3BhcmVudCcpO1xuICAgIGVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tY3Ytd2NhZy1jb2xvci0xJyk7XG4gICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1jdi13Y2FnLWNvbG9yLTInKTtcbiAgfVxufVxuIl19","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { SharedConfig } from '../../shared.config';\nimport * as i0 from \"@angular/core\";\nexport class DictionaryService {\n constructor() {\n this.httpClient = inject(HttpClient);\n this.config = inject(SharedConfig);\n }\n get(type, query = { page: 1 }) {\n let url = this.config.apiUrl +\n `${query.context ? query.context : 'dictionary'}/${type}/search/page/${query.page}?sort=random`;\n if (query.pageSize) {\n url += `&maxPerPage=${query.pageSize}`;\n }\n if (query.searchText) {\n url += `&q=${query.searchText}`;\n }\n return this.httpClient\n .get(url)\n .pipe(map((r) => r.data.items));\n }\n getNode(type, query = {}) {\n let url = this.config.apiUrl +\n `${query.context ? query.context : 'dictionary'}/${type}/tree`;\n if (query.nodeId !== null && query.nodeId !== undefined) {\n //In case the nodeId is 0 or is cast to false\n url += `?id=${query.nodeId}`;\n }\n return this.httpClient\n .get(url)\n .pipe(map((r) => r.data));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: DictionaryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: DictionaryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: DictionaryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFXbkQsTUFBTSxPQUFPLGlCQUFpQjtJQUg5QjtRQUltQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFdBQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FnRGhEO0lBOUNDLEdBQUcsQ0FDRCxJQUFPLEVBQ1AsUUFLSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7UUFFZixJQUFJLEdBQUcsR0FDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDbEIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxnQkFBZ0IsS0FBSyxDQUFDLElBQUksY0FBYyxDQUFDO1FBRWxHLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLEdBQUcsSUFBSSxlQUFlLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsR0FBRyxJQUFJLE1BQU0sS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLEdBQUcsQ0FBeUMsR0FBRyxDQUFDO2FBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTyxDQUNMLElBQU8sRUFDUCxRQUdJLEVBQUU7UUFFTixJQUFJLEdBQUcsR0FDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDbEIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxPQUFPLENBQUM7UUFFakUsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hELDZDQUE2QztZQUM3QyxHQUFHLElBQUksT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDbkIsR0FBRyxDQUE4QixHQUFHLENBQUM7YUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0FqRFUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2hhcmVkQ29uZmlnIH0gZnJvbSAnLi4vLi4vc2hhcmVkLmNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpY3Rpb25hcnlJdGVtIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBoYXNDaGlsZHJlbj86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5U2VydmljZTxUPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoU2hhcmVkQ29uZmlnKTtcblxuICBnZXQoXG4gICAgdHlwZTogVCxcbiAgICBxdWVyeToge1xuICAgICAgc2VhcmNoVGV4dD86IHN0cmluZztcbiAgICAgIHBhZ2U6IG51bWJlcjtcbiAgICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgICAgY29udGV4dD86IHN0cmluZztcbiAgICB9ID0geyBwYWdlOiAxIH0sXG4gICk6IE9ic2VydmFibGU8SURpY3Rpb25hcnlJdGVtW10+IHtcbiAgICBsZXQgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnLmFwaVVybCArXG4gICAgICBgJHtxdWVyeS5jb250ZXh0ID8gcXVlcnkuY29udGV4dCA6ICdkaWN0aW9uYXJ5J30vJHt0eXBlfS9zZWFyY2gvcGFnZS8ke3F1ZXJ5LnBhZ2V9P3NvcnQ9cmFuZG9tYDtcblxuICAgIGlmIChxdWVyeS5wYWdlU2l6ZSkge1xuICAgICAgdXJsICs9IGAmbWF4UGVyUGFnZT0ke3F1ZXJ5LnBhZ2VTaXplfWA7XG4gICAgfVxuXG4gICAgaWYgKHF1ZXJ5LnNlYXJjaFRleHQpIHtcbiAgICAgIHVybCArPSBgJnE9JHtxdWVyeS5zZWFyY2hUZXh0fWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldDx7IGRhdGE6IHsgaXRlbXM6IElEaWN0aW9uYXJ5SXRlbVtdIH0gfT4odXJsKVxuICAgICAgLnBpcGUobWFwKChyKSA9PiByLmRhdGEuaXRlbXMpKTtcbiAgfVxuXG4gIGdldE5vZGUoXG4gICAgdHlwZTogVCxcbiAgICBxdWVyeToge1xuICAgICAgbm9kZUlkPzogbnVtYmVyO1xuICAgICAgY29udGV4dD86IHN0cmluZztcbiAgICB9ID0ge30sXG4gICk6IE9ic2VydmFibGU8SURpY3Rpb25hcnlJdGVtW10+IHtcbiAgICBsZXQgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnLmFwaVVybCArXG4gICAgICBgJHtxdWVyeS5jb250ZXh0ID8gcXVlcnkuY29udGV4dCA6ICdkaWN0aW9uYXJ5J30vJHt0eXBlfS90cmVlYDtcblxuICAgIGlmIChxdWVyeS5ub2RlSWQgIT09IG51bGwgJiYgcXVlcnkubm9kZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vSW4gY2FzZSB0aGUgbm9kZUlkIGlzIDAgb3IgaXMgY2FzdCB0byBmYWxzZVxuICAgICAgdXJsICs9IGA/aWQ9JHtxdWVyeS5ub2RlSWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PHsgZGF0YTogSURpY3Rpb25hcnlJdGVtW10gfT4odXJsKVxuICAgICAgLnBpcGUobWFwKChyKSA9PiByLmRhdGEpKTtcbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { SharedConfig } from '../../shared.config';\nimport * as i0 from \"@angular/core\";\nexport class FileUrlService {\n constructor() {\n this.config = inject(SharedConfig);\n }\n get(fileOrPath, mode = 'cache', noImagePlaceholder = 'assets/no-image.svg') {\n const multimediaUrl = this.config.multimediaUrl;\n if (!multimediaUrl) {\n return noImagePlaceholder;\n }\n let path;\n if (typeof fileOrPath === 'string') {\n path = fileOrPath;\n }\n else {\n if (!fileOrPath || !fileOrPath.filePath) {\n return noImagePlaceholder;\n }\n // Check if it's an upload path (direct URL)\n if (fileOrPath.filePath.indexOf('upload') === -1) {\n return (multimediaUrl + this.getPath(mode) + this.getFileName(fileOrPath));\n }\n path = fileOrPath.filePath;\n }\n // Remove leading slash if present\n if (path[0] === '/') {\n path = path.substring(1);\n }\n return multimediaUrl + path;\n }\n getFileName(file) {\n if (file.filePath &&\n file.extension &&\n file.filePath.indexOf(file.extension) > -1) {\n return file.filePath;\n }\n return file.filePath + '.' + file.extension;\n }\n getPath(mode) {\n switch (mode) {\n case 'big':\n return 'upload/cache/multimedia_big/';\n case 'cache':\n return 'upload/cache/multimedia_detail/';\n case 'noCache':\n return 'upload/multimedia/';\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FileUrlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FileUrlService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FileUrlService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cmwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZmlsZS11cmwvZmlsZS11cmwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBT25ELE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBSW1CLFdBQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0E4RGhEO0lBNURDLEdBQUcsQ0FDRCxVQUE0QixFQUM1QixPQUFvQixPQUFPLEVBQzNCLGtCQUFrQixHQUFHLHFCQUFxQjtRQUUxQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUVoRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxJQUFZLENBQUM7UUFFakIsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixDQUFDO1lBRUQsNENBQTRDO1lBQzVDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDakQsT0FBTyxDQUNMLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQ2xFLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDN0IsQ0FBQztRQUVELGtDQUFrQztRQUNsQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsT0FBTyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBWTtRQUM5QixJQUNFLElBQUksQ0FBQyxRQUFRO1lBQ2IsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQzFDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sT0FBTyxDQUFDLElBQWlCO1FBQy9CLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyw4QkFBOEIsQ0FBQztZQUN4QyxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxpQ0FBaUMsQ0FBQztZQUMzQyxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxvQkFBb0IsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQzs4R0E5RFUsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTXNGaWxlIH0gZnJvbSAnQHNtYXJ0c29mdDAwMS1tb2JpbGVtcy9tb2RlbHMnO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcblxuZXhwb3J0IHR5cGUgRmlsZVVybE1vZGUgPSAnY2FjaGUnIHwgJ2JpZycgfCAnbm9DYWNoZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXJsU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KFNoYXJlZENvbmZpZyk7XG5cbiAgZ2V0KFxuICAgIGZpbGVPclBhdGg/OiBNc0ZpbGUgfCBzdHJpbmcsXG4gICAgbW9kZTogRmlsZVVybE1vZGUgPSAnY2FjaGUnLFxuICAgIG5vSW1hZ2VQbGFjZWhvbGRlciA9ICdhc3NldHMvbm8taW1hZ2Uuc3ZnJyxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBtdWx0aW1lZGlhVXJsID0gdGhpcy5jb25maWcubXVsdGltZWRpYVVybDtcblxuICAgIGlmICghbXVsdGltZWRpYVVybCkge1xuICAgICAgcmV0dXJuIG5vSW1hZ2VQbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBsZXQgcGF0aDogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBmaWxlT3JQYXRoID09PSAnc3RyaW5nJykge1xuICAgICAgcGF0aCA9IGZpbGVPclBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZmlsZU9yUGF0aCB8fCAhZmlsZU9yUGF0aC5maWxlUGF0aCkge1xuICAgICAgICByZXR1cm4gbm9JbWFnZVBsYWNlaG9sZGVyO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBpdCdzIGFuIHVwbG9hZCBwYXRoIChkaXJlY3QgVVJMKVxuICAgICAgaWYgKGZpbGVPclBhdGguZmlsZVBhdGguaW5kZXhPZigndXBsb2FkJykgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXVsdGltZWRpYVVybCArIHRoaXMuZ2V0UGF0aChtb2RlKSArIHRoaXMuZ2V0RmlsZU5hbWUoZmlsZU9yUGF0aClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcGF0aCA9IGZpbGVPclBhdGguZmlsZVBhdGg7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGxlYWRpbmcgc2xhc2ggaWYgcHJlc2VudFxuICAgIGlmIChwYXRoWzBdID09PSAnLycpIHtcbiAgICAgIHBhdGggPSBwYXRoLnN1YnN0cmluZygxKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbXVsdGltZWRpYVVybCArIHBhdGg7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGVOYW1lKGZpbGU6IE1zRmlsZSk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgZmlsZS5maWxlUGF0aCAmJlxuICAgICAgZmlsZS5leHRlbnNpb24gJiZcbiAgICAgIGZpbGUuZmlsZVBhdGguaW5kZXhPZihmaWxlLmV4dGVuc2lvbikgPiAtMVxuICAgICkge1xuICAgICAgcmV0dXJuIGZpbGUuZmlsZVBhdGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGUuZmlsZVBhdGggKyAnLicgKyBmaWxlLmV4dGVuc2lvbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF0aChtb2RlOiBGaWxlVXJsTW9kZSk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICdiaWcnOlxuICAgICAgICByZXR1cm4gJ3VwbG9hZC9jYWNoZS9tdWx0aW1lZGlhX2JpZy8nO1xuICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICByZXR1cm4gJ3VwbG9hZC9jYWNoZS9tdWx0aW1lZGlhX2RldGFpbC8nO1xuICAgICAgY2FzZSAnbm9DYWNoZSc6XG4gICAgICAgIHJldHVybiAndXBsb2FkL211bHRpbWVkaWEvJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Injectable, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class GlobalService {\n constructor() {\n this.showHeader = signal(true, ...(ngDevMode ? [{ debugName: \"showHeader\" }] : []));\n this.showFooter = signal(true, ...(ngDevMode ? [{ debugName: \"showFooter\" }] : []));\n }\n setHeaderVisibility(visible) {\n this.showHeader.set(visible);\n }\n setFooterVisibility(visible) {\n this.showFooter.set(visible);\n }\n hexToRgb(hex) {\n if (!hex)\n return null;\n // Remove # if present\n let cleanHex = hex.replace(/^#/, '');\n // Expand 3-character hex to 6-character (#abc -> #aabbcc)\n if (cleanHex.length === 3) {\n cleanHex = cleanHex\n .split('')\n .map((char) => char + char)\n .join('');\n }\n // Parse 6-character hex\n const result = cleanHex.match(/.{2}/g);\n if (!result || result.length !== 3)\n return null;\n return result.map((x) => parseInt(x, 16));\n }\n rgbToHex(r, g, b) {\n return ('#' +\n [r, g, b]\n .map((x) => {\n const hex = x.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n })\n .join(''));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: GlobalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: GlobalService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: GlobalService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2dsb2JhbC9nbG9iYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLGFBQWE7SUFIMUI7UUFJVyxlQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksc0RBQUMsQ0FBQztRQUMxQixlQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksc0RBQUMsQ0FBQztLQTJDcEM7SUF6Q0MsbUJBQW1CLENBQUMsT0FBZ0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELG1CQUFtQixDQUFDLE9BQWdCO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUNsQixJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXRCLHNCQUFzQjtRQUN0QixJQUFJLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQywwREFBMEQ7UUFDMUQsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLFFBQVEsR0FBRyxRQUFRO2lCQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDO2lCQUNULEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztpQkFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztRQUVELHdCQUF3QjtRQUN4QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFaEQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7UUFDdEMsT0FBTyxDQUNMLEdBQUc7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNULE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUM1QyxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUNaLENBQUM7SUFDSixDQUFDOzhHQTVDVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsU2VydmljZSB7XG4gIHJlYWRvbmx5IHNob3dIZWFkZXIgPSBzaWduYWwodHJ1ZSk7XG4gIHJlYWRvbmx5IHNob3dGb290ZXIgPSBzaWduYWwodHJ1ZSk7XG5cbiAgc2V0SGVhZGVyVmlzaWJpbGl0eSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zaG93SGVhZGVyLnNldCh2aXNpYmxlKTtcbiAgfVxuXG4gIHNldEZvb3RlclZpc2liaWxpdHkodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd0Zvb3Rlci5zZXQodmlzaWJsZSk7XG4gIH1cblxuICBoZXhUb1JnYihoZXg6IHN0cmluZyk6IG51bWJlcltdIHwgbnVsbCB7XG4gICAgaWYgKCFoZXgpIHJldHVybiBudWxsO1xuXG4gICAgLy8gUmVtb3ZlICMgaWYgcHJlc2VudFxuICAgIGxldCBjbGVhbkhleCA9IGhleC5yZXBsYWNlKC9eIy8sICcnKTtcblxuICAgIC8vIEV4cGFuZCAzLWNoYXJhY3RlciBoZXggdG8gNi1jaGFyYWN0ZXIgKCNhYmMgLT4gI2FhYmJjYylcbiAgICBpZiAoY2xlYW5IZXgubGVuZ3RoID09PSAzKSB7XG4gICAgICBjbGVhbkhleCA9IGNsZWFuSGV4XG4gICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgLm1hcCgoY2hhcikgPT4gY2hhciArIGNoYXIpXG4gICAgICAgIC5qb2luKCcnKTtcbiAgICB9XG5cbiAgICAvLyBQYXJzZSA2LWNoYXJhY3RlciBoZXhcbiAgICBjb25zdCByZXN1bHQgPSBjbGVhbkhleC5tYXRjaCgvLnsyfS9nKTtcblxuICAgIGlmICghcmVzdWx0IHx8IHJlc3VsdC5sZW5ndGggIT09IDMpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5tYXAoKHgpID0+IHBhcnNlSW50KHgsIDE2KSk7XG4gIH1cblxuICByZ2JUb0hleChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgJyMnICtcbiAgICAgIFtyLCBnLCBiXVxuICAgICAgICAubWFwKCh4KSA9PiB7XG4gICAgICAgICAgY29uc3QgaGV4ID0geC50b1N0cmluZygxNik7XG4gICAgICAgICAgcmV0dXJuIGhleC5sZW5ndGggPT09IDEgPyAnMCcgKyBoZXggOiBoZXg7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcnKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Injectable, inject, signal, computed } from '@angular/core';\nimport { TranslateService as NgxTranslateService } from '@ngx-translate/core';\nimport * as i0 from \"@angular/core\";\nconst TRANSLATION_CONFIG_KEY = 'TRANSLATION_CONFIG';\nexport class TranslationService {\n constructor() {\n this.translateService = inject(NgxTranslateService);\n this._config = signal({\n language: this.getInitialLanguage(),\n }, ...(ngDevMode ? [{ debugName: \"_config\" }] : []));\n this.config = this._config.asReadonly();\n this.config$ = this.translateService.onLangChange.pipe();\n this.currentLanguage = computed(() => this._config().language, ...(ngDevMode ? [{ debugName: \"currentLanguage\" }] : []));\n }\n getInitialLanguage() {\n if (typeof localStorage !== 'undefined') {\n const stored = localStorage.getItem(TRANSLATION_CONFIG_KEY);\n if (stored) {\n try {\n const parsed = JSON.parse(stored);\n return parsed.language;\n }\n catch (error) {\n console.warn('Failed to parse translation config', error);\n }\n }\n }\n return this.translateService.getBrowserLang() || 'en';\n }\n get(key, params) {\n return this.translateService.instant(key, params);\n }\n async init(defaultLang = 'en', availableLangs = ['en', 'pl']) {\n this.translateService.setDefaultLang(defaultLang);\n this.translateService.addLangs(availableLangs);\n let lang = this._config().language;\n if (!availableLangs.includes(lang)) {\n lang = defaultLang;\n this._config.set({ language: lang });\n }\n await this.translateService.use(lang).toPromise();\n }\n setLanguage(language) {\n this._config.set({ language });\n this.save();\n this.translateService.use(language);\n }\n save() {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(TRANSLATION_CONFIG_KEY, JSON.stringify(this._config()));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: TranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: TranslationService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: TranslationService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUc5RSxNQUFNLHNCQUFzQixHQUFHLG9CQUFvQixDQUFDO0FBU3BELE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFJbUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFL0MsWUFBTyxHQUFHLE1BQU0sQ0FBcUI7WUFDcEQsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtTQUNwQyxtREFBQyxDQUFDO1FBRU0sV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsWUFBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUV4RCxDQUFDO1FBRU0sb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsMkRBQUMsQ0FBQztLQW9EcEU7SUFsRFMsa0JBQWtCO1FBQ3hCLElBQUksT0FBTyxZQUFZLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzVELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDO29CQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUF1QixDQUFDO29CQUN4RCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDeEQsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsTUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUNSLFdBQVcsR0FBRyxJQUFJLEVBQ2xCLGlCQUEyQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7UUFFdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRS9DLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFFbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLEdBQUcsV0FBVyxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxZQUFZLENBQUMsT0FBTyxDQUNsQixzQkFBc0IsRUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDL0IsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOzhHQS9EVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBzaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIGFzIE5neFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuY29uc3QgVFJBTlNMQVRJT05fQ09ORklHX0tFWSA9ICdUUkFOU0xBVElPTl9DT05GSUcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2xhdGlvbkNvbmZpZyB7XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoTmd4VHJhbnNsYXRlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnID0gc2lnbmFsPElUcmFuc2xhdGlvbkNvbmZpZz4oe1xuICAgIGxhbmd1YWdlOiB0aGlzLmdldEluaXRpYWxMYW5ndWFnZSgpLFxuICB9KTtcblxuICByZWFkb25seSBjb25maWcgPSB0aGlzLl9jb25maWcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBjb25maWckID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5waXBlKCkgYXMgT2JzZXJ2YWJsZTx7XG4gICAgbGFuZzogc3RyaW5nO1xuICB9PjtcblxuICByZWFkb25seSBjdXJyZW50TGFuZ3VhZ2UgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9jb25maWcoKS5sYW5ndWFnZSk7XG5cbiAgcHJpdmF0ZSBnZXRJbml0aWFsTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFRSQU5TTEFUSU9OX0NPTkZJR19LRVkpO1xuICAgICAgaWYgKHN0b3JlZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2Uoc3RvcmVkKSBhcyBJVHJhbnNsYXRpb25Db25maWc7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlZC5sYW5ndWFnZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBwYXJzZSB0cmFuc2xhdGlvbiBjb25maWcnLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXRCcm93c2VyTGFuZygpIHx8ICdlbic7XG4gIH1cblxuICBnZXQoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGtleSwgcGFyYW1zKTtcbiAgfVxuXG4gIGFzeW5jIGluaXQoXG4gICAgZGVmYXVsdExhbmcgPSAnZW4nLFxuICAgIGF2YWlsYWJsZUxhbmdzOiBzdHJpbmdbXSA9IFsnZW4nLCAncGwnXSxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRMYW5nKGRlZmF1bHRMYW5nKTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ3MoYXZhaWxhYmxlTGFuZ3MpO1xuXG4gICAgbGV0IGxhbmcgPSB0aGlzLl9jb25maWcoKS5sYW5ndWFnZTtcblxuICAgIGlmICghYXZhaWxhYmxlTGFuZ3MuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIGxhbmcgPSBkZWZhdWx0TGFuZztcbiAgICAgIHRoaXMuX2NvbmZpZy5zZXQoeyBsYW5ndWFnZTogbGFuZyB9KTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmcpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZy5zZXQoeyBsYW5ndWFnZSB9KTtcbiAgICB0aGlzLnNhdmUoKTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmd1YWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZSgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICBUUkFOU0xBVElPTl9DT05GSUdfS0VZLFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLl9jb25maWcoKSksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, map } from 'rxjs/operators';\nimport { SharedConfig } from '../../shared.config';\nimport { TranslationService } from '../translation/translation.service';\nimport * as i0 from \"@angular/core\";\nexport class MetaService {\n constructor() {\n this.meta = inject(Meta);\n this.title = inject(Title);\n this.translationService = inject(TranslationService);\n this.router = inject(Router);\n this.activatedRoute = inject(ActivatedRoute);\n this.config = inject(SharedConfig);\n this.resetMetadata();\n }\n keepUpdatingPageTitle(onRouteChange) {\n if (onRouteChange) {\n this.routerSubscription = this.router.events\n .pipe(filter((event) => event instanceof NavigationEnd), map(() => this.getRouteTitle()))\n .subscribe((dynamicTitle) => {\n if (dynamicTitle) {\n this.setTitle(dynamicTitle);\n }\n });\n return this.routerSubscription;\n }\n else {\n const dynamicTitle = this.getRouteTitle();\n if (dynamicTitle) {\n this.setTitle(dynamicTitle);\n }\n }\n }\n setPageMetadata(title = '', description = '') {\n if (title) {\n this.setTitle(title);\n }\n if (description) {\n this.setDescription(description);\n }\n }\n setObjectMetadata(objectData) {\n if (objectData.image) {\n this.setImageMetadata(objectData.image, objectData.title, objectData.type);\n }\n if (objectData.title) {\n this.setTitle(objectData.title);\n }\n if (objectData.description) {\n this.setDescription(objectData.description);\n }\n }\n setImageMetadata(image, imageAlt, type) {\n const multimediaUrl = this.config.multimediaUrl;\n if (!multimediaUrl || !image?.filePath) {\n return;\n }\n try {\n const imageUrl = this.buildImageUrl(multimediaUrl, image, type);\n this.meta.updateTag({ property: 'og:image', content: imageUrl });\n this.meta.updateTag({ property: 'og:image:type', content: 'image/jpeg' });\n this.meta.updateTag({ property: 'og:image:width', content: '600' });\n this.meta.updateTag({ property: 'og:image:height', content: '600' });\n if (imageAlt) {\n this.meta.updateTag({\n property: 'og:image:alt',\n content: this.removeHtmlTags(imageAlt),\n });\n }\n else {\n this.meta.removeTag(\"property='og:image:alt'\");\n }\n }\n catch (error) {\n console.warn('Failed to set image metadata', error);\n }\n }\n resetMetadata() {\n const baseTitle = this.translationService.get('base-portal-title') || 'Portal';\n this.meta.updateTag({ property: 'og:type', content: 'website' });\n this.meta.updateTag({ property: 'og:title', content: baseTitle });\n this.meta.updateTag({ property: 'og:description', content: '' });\n this.meta.updateTag({ name: 'description', content: '' });\n this.meta.updateTag({\n property: 'og:image',\n content: 'assets/gfx/no-img/no-img-header.jpg',\n });\n this.meta.updateTag({ property: 'og:image:alt', content: baseTitle });\n this.meta.updateTag({ property: 'og:image:type', content: 'image/jpeg' });\n this.meta.updateTag({ property: 'og:image:width', content: '250' });\n this.meta.updateTag({ property: 'og:image:height', content: '250' });\n }\n updateTag(tag) {\n this.meta.updateTag(tag);\n }\n setTitle(titleText) {\n const plainTitle = this.removeHtmlTags(titleText);\n this.title.setTitle(plainTitle);\n this.meta.updateTag({ property: 'og:title', content: plainTitle });\n }\n setDescription(description) {\n const plainDesc = this.removeHtmlTags(description);\n this.meta.updateTag({ property: 'og:description', content: plainDesc });\n this.meta.updateTag({ name: 'description', content: plainDesc });\n }\n destroy() {\n this.routerSubscription?.unsubscribe();\n }\n buildImageUrl(baseUrl, image, type) {\n const cleanBaseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;\n if (type === 'object' && image.filePath) {\n return `${cleanBaseUrl}/${image.filePath}.jpg`;\n }\n return `${cleanBaseUrl}/${image.filePath}`;\n }\n removeHtmlTags(value) {\n if (!value)\n return '';\n return value\n .replace(/<.*?>/g, '')\n .replace(/&nbsp;/g, ' ')\n .replace(/&hyphen;/g, '-')\n .replace(/&ndash;/g, '-')\n .replace(/&mdash;/g, '-')\n .replace(/&#8211;/g, '-')\n .replace(/&#8212;/g, '-')\n .replace(/&bdquo;/g, '\"')\n .replace(/&oacute;/g, 'ó')\n .replace(/&rdquo;/g, '\"')\n .replace(/&quot;/g, '\"');\n }\n getRouteTitle() {\n let child = this.activatedRoute.firstChild;\n while (child?.firstChild) {\n child = child.firstChild;\n }\n if (!child)\n return '';\n const snapshot = child.snapshot;\n if (snapshot.data['subtitle']) {\n return snapshot.data['subtitle'];\n }\n if (snapshot.data['title']) {\n return snapshot.data['title'];\n }\n return '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MetaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MetaService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MetaService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9tZXRhL21ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFrQixLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLeEUsTUFBTSxPQUFPLFdBQVc7SUFVdEI7UUFUaUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUs3QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLGFBQXNCO1FBQzFDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENB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LFVBQVUsQ0FBQztRQUUzQyxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUN6QixLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV0QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBRWhDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7OEdBbExVLFdBQVc7a0hBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBNZXRhRGVmaW5pdGlvbiwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTXNGaWxlIH0gZnJvbSAnQHNtYXJ0c29mdDAwMS1tb2JpbGVtcy9tb2RlbHMnO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWV0YVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IG1ldGEgPSBpbmplY3QoTWV0YSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoU2hhcmVkQ29uZmlnKTtcblxuICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnJlc2V0TWV0YWRhdGEoKTtcbiAgfVxuXG4gIGtlZXBVcGRhdGluZ1BhZ2VUaXRsZShvblJvdXRlQ2hhbmdlOiBib29sZWFuKTogU3Vic2NyaXB0aW9uIHwgdm9pZCB7XG4gICAgaWYgKG9uUm91dGVDaGFuZ2UpIHtcbiAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgbWFwKCgpID0+IHRoaXMuZ2V0Um91dGVUaXRsZSgpKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChkeW5hbWljVGl0bGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGlmIChkeW5hbWljVGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VGl0bGUoZHluYW1pY1RpdGxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGR5bmFtaWNUaXRsZSA9IHRoaXMuZ2V0Um91dGVUaXRsZSgpO1xuICAgICAgaWYgKGR5bmFtaWNUaXRsZSkge1xuICAgICAgICB0aGlzLnNldFRpdGxlKGR5bmFtaWNUaXRsZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0UGFnZU1ldGFkYXRhKHRpdGxlID0gJycsIGRlc2NyaXB0aW9uID0gJycpOiB2b2lkIHtcbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIHRoaXMuc2V0VGl0bGUodGl0bGUpO1xuICAgIH1cbiAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHNldE9iamVjdE1ldGFkYXRhKG9iamVjdERhdGE6IHtcbiAgICBpbWFnZT86IE1zRmlsZTtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xuICB9KTogdm9pZCB7XG4gICAgaWYgKG9iamVjdERhdGEuaW1hZ2UpIHtcbiAgICAgIHRoaXMuc2V0SW1hZ2VNZXRhZGF0YShcbiAgICAgICAgb2JqZWN0RGF0YS5pbWFnZSxcbiAgICAgICAgb2JqZWN0RGF0YS50aXRsZSxcbiAgICAgICAgb2JqZWN0RGF0YS50eXBlLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG9iamVjdERhdGEudGl0bGUpIHtcbiAgICAgIHRoaXMuc2V0VGl0bGUob2JqZWN0RGF0YS50aXRsZSk7XG4gICAgfVxuICAgIGlmIChvYmplY3REYXRhLmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNldERlc2NyaXB0aW9uKG9iamVjdERhdGEuZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHNldEltYWdlTWV0YWRhdGEoaW1hZ2U6IE1zRmlsZSwgaW1hZ2VBbHQ/OiBzdHJpbmcsIHR5cGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBtdWx0aW1lZGlhVXJsID0gdGhpcy5jb25maWcubXVsdGltZWRpYVVybDtcblxuICAgIGlmICghbXVsdGltZWRpYVVybCB8fCAhaW1hZ2U/LmZpbGVQYXRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGltYWdlVXJsID0gdGhpcy5idWlsZEltYWdlVXJsKG11bHRpbWVkaWFVcmwsIGltYWdlLCB0eXBlKTtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlJywgY29udGVudDogaW1hZ2VVcmwgfSk7XG4gICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZTp0eXBlJywgY29udGVudDogJ2ltYWdlL2pwZWcnIH0pO1xuICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2U6d2lkdGgnLCBjb250ZW50OiAnNjAwJyB9KTtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlOmhlaWdodCcsIGNvbnRlbnQ6ICc2MDAnIH0pO1xuXG4gICAgICBpZiAoaW1hZ2VBbHQpIHtcbiAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7XG4gICAgICAgICAgcHJvcGVydHk6ICdvZzppbWFnZTphbHQnLFxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMucmVtb3ZlSHRtbFRhZ3MoaW1hZ2VBbHQpLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWV0YS5yZW1vdmVUYWcoXCJwcm9wZXJ0eT0nb2c6aW1hZ2U6YWx0J1wiKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gc2V0IGltYWdlIG1ldGFkYXRhJywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0TWV0YWRhdGEoKTogdm9pZCB7XG4gICAgY29uc3QgYmFzZVRpdGxlID1cbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmdldCgnYmFzZS1wb3J0YWwtdGl0bGUnKSB8fCAnUG9ydGFsJztcblxuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnR5cGUnLCBjb250ZW50OiAnd2Vic2l0ZScgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBiYXNlVGl0bGUgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiAnJyB9KTtcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudDogJycgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7XG4gICAgICBwcm9wZXJ0eTogJ29nOmltYWdlJyxcbiAgICAgIGNvbnRlbnQ6ICdhc3NldHMvZ2Z4L25vLWltZy9uby1pbWctaGVhZGVyLmpwZycsXG4gICAgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2U6YWx0JywgY29udGVudDogYmFzZVRpdGxlIH0pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlOnR5cGUnLCBjb250ZW50OiAnaW1hZ2UvanBlZycgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2U6d2lkdGgnLCBjb250ZW50OiAnMjUwJyB9KTtcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZTpoZWlnaHQnLCBjb250ZW50OiAnMjUwJyB9KTtcbiAgfVxuXG4gIHVwZGF0ZVRhZyh0YWc6IE1ldGFEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh0YWcpO1xuICB9XG5cbiAgc2V0VGl0bGUodGl0bGVUZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwbGFpblRpdGxlID0gdGhpcy5yZW1vdmVIdG1sVGFncyh0aXRsZVRleHQpO1xuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUocGxhaW5UaXRsZSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBwbGFpblRpdGxlIH0pO1xuICB9XG5cbiAgc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBsYWluRGVzYyA9IHRoaXMucmVtb3ZlSHRtbFRhZ3MoZGVzY3JpcHRpb24pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogcGxhaW5EZXNjIH0pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50OiBwbGFpbkRlc2MgfSk7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEltYWdlVXJsKGJhc2VVcmw6IHN0cmluZywgaW1hZ2U6IE1zRmlsZSwgdHlwZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xlYW5CYXNlVXJsID0gYmFzZVVybC5lbmRzV2l0aCgnLycpID8gYmFzZVVybC5zbGljZSgwLCAtMSkgOiBiYXNlVXJsO1xuXG4gICAgaWYgKHR5cGUgPT09ICdvYmplY3QnICYmIGltYWdlLmZpbGVQYXRoKSB7XG4gICAgICByZXR1cm4gYCR7Y2xlYW5CYXNlVXJsfS8ke2ltYWdlLmZpbGVQYXRofS5qcGdgO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtjbGVhbkJhc2VVcmx9LyR7aW1hZ2UuZmlsZVBhdGh9YDtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSHRtbFRhZ3ModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuXG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAucmVwbGFjZSgvPC4qPz4vZywgJycpXG4gICAgICAucmVwbGFjZSgvJm5ic3A7L2csICcgJylcbiAgICAgIC5yZXBsYWNlKC8maHlwaGVuOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJm5kYXNoOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJm1kYXNoOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJiM4MjExOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJiM4MjEyOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJmJkcXVvOy9nLCAnXCInKVxuICAgICAgLnJlcGxhY2UoLyZvYWN1dGU7L2csICfDsycpXG4gICAgICAucmVwbGFjZSgvJnJkcXVvOy9nLCAnXCInKVxuICAgICAgLnJlcGxhY2UoLyZxdW90Oy9nLCAnXCInKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um91dGVUaXRsZSgpOiBzdHJpbmcge1xuICAgIGxldCBjaGlsZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuZmlyc3RDaGlsZDtcblxuICAgIHdoaWxlIChjaGlsZD8uZmlyc3RDaGlsZCkge1xuICAgICAgY2hpbGQgPSBjaGlsZC5maXJzdENoaWxkO1xuICAgIH1cblxuICAgIGlmICghY2hpbGQpIHJldHVybiAnJztcblxuICAgIGNvbnN0IHNuYXBzaG90ID0gY2hpbGQuc25hcHNob3Q7XG5cbiAgICBpZiAoc25hcHNob3QuZGF0YVsnc3VidGl0bGUnXSkge1xuICAgICAgcmV0dXJuIHNuYXBzaG90LmRhdGFbJ3N1YnRpdGxlJ107XG4gICAgfVxuXG4gICAgaWYgKHNuYXBzaG90LmRhdGFbJ3RpdGxlJ10pIHtcbiAgICAgIHJldHVybiBzbmFwc2hvdC5kYXRhWyd0aXRsZSddO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component, input, output, HostListener, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\n/**\n * Container component for modal overlay and content.\n * Handles backdrop clicks and ESC key press.\n */\nexport class ModalContainerComponent {\n constructor() {\n /**\n * Template to render inside the modal content area.\n */\n this.contentTemplate = input.required(...(ngDevMode ? [{ debugName: \"contentTemplate\" }] : []));\n /**\n * Emits when backdrop is clicked or ESC key is pressed.\n */\n this.backdropClick = output();\n }\n /**\n * Listens for ESC key press on document level.\n */\n onEscapeKey() {\n this.backdropClick.emit();\n }\n /**\n * Handles backdrop click event.\n * @param _event Mouse click event\n */\n onBackdropClick(_event) {\n this.backdropClick.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.0\", type: ModalContainerComponent, isStandalone: true, selector: \"smart-mobilems-modal-container\", inputs: { contentTemplate: { classPropertyName: \"contentTemplate\", publicName: \"contentTemplate\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { backdropClick: \"backdropClick\" }, host: { listeners: { \"document:keydown.escape\": \"onEscapeKey()\" } }, ngImport: i0, template: `\n <div\n class=\"smart-fixed smart-inset-0 smart-bg-black smart-bg-opacity-50 smart-flex smart-items-center smart-justify-center smart-z-50\"\n (click)=\"onBackdropClick($event)\"\n >\n <div\n class=\"smart-bg-white smart-rounded-lg smart-shadow-xl smart-max-w-2xl smart-w-full smart-m-4 smart-max-h-[90vh] smart-overflow-auto\"\n (click)=\"$event.stopPropagation()\"\n >\n <div class=\"smart-p-6\">\n <ng-container *ngTemplateOutlet=\"contentTemplate()\"></ng-container>\n </div>\n </div>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalContainerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'smart-mobilems-modal-container',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"smart-fixed smart-inset-0 smart-bg-black smart-bg-opacity-50 smart-flex smart-items-center smart-justify-center smart-z-50\"\n (click)=\"onBackdropClick($event)\"\n >\n <div\n class=\"smart-bg-white smart-rounded-lg smart-shadow-xl smart-max-w-2xl smart-w-full smart-m-4 smart-max-h-[90vh] smart-overflow-auto\"\n (click)=\"$event.stopPropagation()\"\n >\n <div class=\"smart-p-6\">\n <ng-container *ngTemplateOutlet=\"contentTemplate()\"></ng-container>\n </div>\n </div>\n </div>\n `,\n }]\n }], propDecorators: { onEscapeKey: [{\n type: HostListener,\n args: ['document:keydown.escape']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvbW9kYWwvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUVOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQzs7O0FBRXZCOzs7R0FHRztBQXFCSCxNQUFNLE9BQU8sdUJBQXVCO0lBcEJwQztRQXFCRTs7V0FFRztRQUNILG9CQUFlLEdBQUcsS0FBSyxDQUFDLFFBQVEsMERBQW9CLENBQUM7UUFFckQ7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLE1BQU0sRUFBUSxDQUFDO0tBaUJoQztJQWZDOztPQUVHO0lBRUgsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxNQUFrQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBekJVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDZXQWhCeEI7Ozs7Ozs7Ozs7Ozs7O0dBY1QsMkRBZlMsWUFBWTs7MkZBaUJYLHVCQUF1QjtrQkFwQm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztHQWNUO2lCQUNGOzhCQWdCQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ29udGFpbmVyIGNvbXBvbmVudCBmb3IgbW9kYWwgb3ZlcmxheSBhbmQgY29udGVudC5cbiAqIEhhbmRsZXMgYmFja2Ryb3AgY2xpY2tzIGFuZCBFU0Mga2V5IHByZXNzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1tb2JpbGVtcy1tb2RhbC1jb250YWluZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNtYXJ0LWZpeGVkIHNtYXJ0LWluc2V0LTAgc21hcnQtYmctYmxhY2sgc21hcnQtYmctb3BhY2l0eS01MCBzbWFydC1mbGV4IHNtYXJ0LWl0ZW1zLWNlbnRlciBzbWFydC1qdXN0aWZ5LWNlbnRlciBzbWFydC16LTUwXCJcbiAgICAgIChjbGljayk9XCJvbkJhY2tkcm9wQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNtYXJ0LWJnLXdoaXRlIHNtYXJ0LXJvdW5kZWQtbGcgc21hcnQtc2hhZG93LXhsIHNtYXJ0LW1heC13LTJ4bCBzbWFydC13LWZ1bGwgc21hcnQtbS00IHNtYXJ0LW1heC1oLVs5MHZoXSBzbWFydC1vdmVyZmxvdy1hdXRvXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFydC1wLTZcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlKClcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb250YWluZXJDb21wb25lbnQge1xuICAvKipcbiAgICogVGVtcGxhdGUgdG8gcmVuZGVyIGluc2lkZSB0aGUgbW9kYWwgY29udGVudCBhcmVhLlxuICAgKi9cbiAgY29udGVudFRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiBiYWNrZHJvcCBpcyBjbGlja2VkIG9yIEVTQyBrZXkgaXMgcHJlc3NlZC5cbiAgICovXG4gIGJhY2tkcm9wQ2xpY2sgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAvKipcbiAgICogTGlzdGVucyBmb3IgRVNDIGtleSBwcmVzcyBvbiBkb2N1bWVudCBsZXZlbC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJylcbiAgb25Fc2NhcGVLZXkoKTogdm9pZCB7XG4gICAgdGhpcy5iYWNrZHJvcENsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGJhY2tkcm9wIGNsaWNrIGV2ZW50LlxuICAgKiBAcGFyYW0gX2V2ZW50IE1vdXNlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBvbkJhY2tkcm9wQ2xpY2soX2V2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5iYWNrZHJvcENsaWNrLmVtaXQoKTtcbiAgfVxufVxuIl19","import { Subject } from 'rxjs';\n/**\n * Reference to an opened modal.\n * Provides methods to close the modal and observe its lifecycle.\n */\nexport class ModalRef {\n constructor(closeCallback) {\n this.closeCallback = closeCallback;\n this._afterClosed = new Subject();\n /**\n * Observable that emits when the modal has been closed.\n * Completes after emission.\n */\n this.afterClosed$ = this._afterClosed.asObservable();\n }\n /**\n * Closes the modal and triggers cleanup.\n * Safe to call multiple times.\n */\n close() {\n this.closeCallback();\n this._afterClosed.next();\n this._afterClosed.complete();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQVNuQixZQUE2QixhQUF5QjtRQUF6QixrQkFBYSxHQUFiLGFBQWEsQ0FBWTtRQVJyQyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEQ7OztXQUdHO1FBQ00saUJBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRUEsQ0FBQztJQUUxRDs7O09BR0c7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogUmVmZXJlbmNlIHRvIGFuIG9wZW5lZCBtb2RhbC5cbiAqIFByb3ZpZGVzIG1ldGhvZHMgdG8gY2xvc2UgdGhlIG1vZGFsIGFuZCBvYnNlcnZlIGl0cyBsaWZlY3ljbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2RhbFJlZiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQ2xvc2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gdGhlIG1vZGFsIGhhcyBiZWVuIGNsb3NlZC5cbiAgICogQ29tcGxldGVzIGFmdGVyIGVtaXNzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWZ0ZXJDbG9zZWQkID0gdGhpcy5fYWZ0ZXJDbG9zZWQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjbG9zZUNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7fVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIGFuZCB0cmlnZ2VycyBjbGVhbnVwLlxuICAgKiBTYWZlIHRvIGNhbGwgbXVsdGlwbGUgdGltZXMuXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9hZnRlckNsb3NlZC5uZXh0KCk7XG4gICAgdGhpcy5fYWZ0ZXJDbG9zZWQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19","import { DOCUMENT } from '@angular/common';\nimport { Injectable, ApplicationRef, createComponent, EnvironmentInjector, inject, } from '@angular/core';\nimport { ModalContainerComponent } from './modal-container.component';\nimport { ModalRef } from './modal-ref';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for managing modal dialogs.\n * Provides methods to open, close, and manage modal instances.\n */\nexport class ModalService {\n constructor() {\n this.appRef = inject(ApplicationRef);\n this.injector = inject(EnvironmentInjector);\n this.document = inject(DOCUMENT);\n this.activeModals = [];\n }\n /**\n * Opens a modal with the provided template.\n * @param template TemplateRef to render inside the modal\n * @returns ModalRef instance for controlling the modal\n */\n open(template) {\n const componentRef = createComponent(ModalContainerComponent, {\n environmentInjector: this.injector,\n });\n componentRef.setInput('contentTemplate', template);\n const modalRef = new ModalRef(() => this.closeModal(componentRef));\n componentRef.instance.backdropClick.subscribe(() => {\n modalRef.close();\n });\n this.appRef.attachView(componentRef.hostView);\n const domElem = componentRef.hostView.rootNodes[0];\n this.document.body.appendChild(domElem);\n componentRef.changeDetectorRef.detectChanges();\n this.activeModals.push(componentRef);\n return modalRef;\n }\n /**\n * Closes a specific modal instance.\n * @param componentRef Component reference to close\n */\n closeModal(componentRef) {\n const index = this.activeModals.indexOf(componentRef);\n if (index > -1) {\n this.activeModals.splice(index, 1);\n }\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n }\n /**\n * Closes all currently open modals.\n */\n closeAll() {\n const modals = [...this.activeModals];\n modals.forEach((componentRef) => this.closeModal(componentRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFVBQVUsRUFDVixjQUFjLEVBQ2QsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFdkM7OztHQUdHO0FBSUgsTUFBTSxPQUFPLFlBQVk7SUFIekI7UUFJbUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyQyxpQkFBWSxHQUE0QyxFQUFFLENBQUM7S0F1RHBFO0lBckRDOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsUUFBMEI7UUFDN0IsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLHVCQUF1QixFQUFFO1lBQzVELG1CQUFtQixFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ25DLENBQUMsQ0FBQztRQUVILFlBQVksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRW5FLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakQsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDM0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyQyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUNoQixZQUFtRDtRQUVuRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDOzhHQTNEVSxZQUFZO2tIQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBjcmVhdGVDb21wb25lbnQsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIGluamVjdCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbXBvbmVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsUmVmIH0gZnJvbSAnLi9tb2RhbC1yZWYnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIG1hbmFnaW5nIG1vZGFsIGRpYWxvZ3MuXG4gKiBQcm92aWRlcyBtZXRob2RzIHRvIG9wZW4sIGNsb3NlLCBhbmQgbWFuYWdlIG1vZGFsIGluc3RhbmNlcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgcHJpdmF0ZSBhY3RpdmVNb2RhbHM6IENvbXBvbmVudFJlZjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD5bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBPcGVucyBhIG1vZGFsIHdpdGggdGhlIHByb3ZpZGVkIHRlbXBsYXRlLlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgVGVtcGxhdGVSZWYgdG8gcmVuZGVyIGluc2lkZSB0aGUgbW9kYWxcbiAgICogQHJldHVybnMgTW9kYWxSZWYgaW5zdGFuY2UgZm9yIGNvbnRyb2xsaW5nIHRoZSBtb2RhbFxuICAgKi9cbiAgb3Blbih0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pik6IE1vZGFsUmVmIHtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQoTW9kYWxDb250YWluZXJDb21wb25lbnQsIHtcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoJ2NvbnRlbnRUZW1wbGF0ZScsIHRlbXBsYXRlKTtcblxuICAgIGNvbnN0IG1vZGFsUmVmID0gbmV3IE1vZGFsUmVmKCgpID0+IHRoaXMuY2xvc2VNb2RhbChjb21wb25lbnRSZWYpKTtcblxuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5iYWNrZHJvcENsaWNrLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBtb2RhbFJlZi5jbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgYW55KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMuYWN0aXZlTW9kYWxzLnB1c2goY29tcG9uZW50UmVmKTtcblxuICAgIHJldHVybiBtb2RhbFJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYSBzcGVjaWZpYyBtb2RhbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudFJlZiBDb21wb25lbnQgcmVmZXJlbmNlIHRvIGNsb3NlXG4gICAqL1xuICBwcml2YXRlIGNsb3NlTW9kYWwoXG4gICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8TW9kYWxDb250YWluZXJDb21wb25lbnQ+LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuYWN0aXZlTW9kYWxzLmluZGV4T2YoY29tcG9uZW50UmVmKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5hY3RpdmVNb2RhbHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIGN1cnJlbnRseSBvcGVuIG1vZGFscy5cbiAgICovXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFscyA9IFsuLi50aGlzLmFjdGl2ZU1vZGFsc107XG4gICAgbW9kYWxzLmZvckVhY2goKGNvbXBvbmVudFJlZikgPT4gdGhpcy5jbG9zZU1vZGFsKGNvbXBvbmVudFJlZikpO1xuICB9XG59XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { CrudSearchService, } from '@smartsoft001/crud-shell-angular';\nimport { combineLatest, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { environment } from '../../environments/environment';\nimport * as i0 from \"@angular/core\";\nexport class SearchService extends CrudSearchService {\n constructor() {\n super(...arguments);\n this.http = inject(HttpClient);\n this._currentSearchText = '';\n }\n get currentSearchText() {\n return this._currentSearchText;\n }\n setFilter(val) {\n super.setFilter(val);\n }\n setEnabled(val) {\n super.setEnabled(val);\n }\n setCurrentSearchText(txt) {\n this._currentSearchText = txt;\n }\n search(txt, data = {}) {\n this.setFilter({\n searchText: txt,\n });\n this._currentSearchText = txt;\n return combineLatest([\n this.http\n .get(`${environment.apiUrl}search/Object/page/1?maxPerPage=1&${this.getFilterQuery('objects', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n this.http\n .get(`${environment.apiUrl}public-collections/page/1?maxPerPage=1&${this.getFilterQuery('publicCollections', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n this.http\n .get(`${environment.apiUrl}search/Article/page/1?maxPerPage=1&${this.getFilterQuery('articles', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n this.http\n .get(`${environment.apiUrl}dictionary/Creator/search/page/1?maxPerPage=1&${this.getFilterQuery('creators', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n this.http\n .get(`${environment.apiUrl}dictionary/Imprint/search/page/1?maxPerPage=1&${this.getFilterQuery('imprints', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n ]).pipe(map(([objectsResult, publicCollectionsResult, articlesResult, creatorsResult, imprintsResult,]) => {\n return {\n objects: objectsResult?.data?.paginatorDetails?.totalItemsCount ?? 0,\n publicCollections: publicCollectionsResult?.data?.paginatorDetails\n ?.totalItemsCount ?? 0,\n articles: articlesResult?.data?.paginatorDetails?.totalItemsCount ?? 0,\n creators: creatorsResult?.data?.paginatorDetails?.totalItemsCount ?? 0,\n imprints: imprintsResult?.data?.paginatorDetails?.totalItemsCount ?? 0,\n };\n }));\n }\n getFilterQuery(type, txt, data = {}) {\n const result = [];\n if (txt && type !== 'creators' && type !== 'imprints') {\n result.push(`filter[phrase]=${encodeURIComponent(txt)}`);\n }\n else if (txt) {\n result.push(`q=${encodeURIComponent(txt)}`);\n }\n if (data.keywordId) {\n result.push(`filter[keywords][]=${data.keywordId}`);\n }\n if (data.cycleId) {\n result.push(`filter[cycles][]=${data.cycleId}`);\n }\n if (data.seriesTitleId) {\n result.push(`filter[cycles][]=${data.seriesTitleId}`);\n }\n return result.join('&');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SearchService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SearchService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SearchService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3NlYXJjaC9zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQWtDN0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFIcEQ7O1FBSW1CLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO0tBNkhqQztJQTNIQyxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRVEsU0FBUyxDQUFDLEdBQXlCO1FBQzFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVRLFVBQVUsQ0FBQyxHQUFZO1FBQzlCLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEdBQVc7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxPQUFvQixFQUFF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QUFHLElBQUksSUFBSSxLQUFLLFVBQVUsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0Isa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7YUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7OEdBOUhVLGFBQWE7a0hBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ3J1ZFNlYXJjaFNlcnZpY2UsXG4gIElDcnVkRmlsdGVyLFxufSBmcm9tICdAc21hcnRzb2Z0MDAxL2NydWQtc2hlbGwtYW5ndWxhcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaFNvdXJjZSA9XG4gIHwgJ29iamVjdHMnXG4gIHwgJ3B1YmxpY0NvbGxlY3Rpb25zJ1xuICB8ICdhcnRpY2xlcydcbiAgfCAnY3JlYXRvcnMnXG4gIHwgJ2ltcHJpbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoRGF0YSB7XG4gIGN5Y2xlSWQ/OiBudW1iZXI7XG4gIGtleXdvcmRJZD86IG51bWJlcjtcbiAgc2VyaWVzVGl0bGVJZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoUmVzdWx0cyB7XG4gIG9iamVjdHM6IG51bWJlcjtcbiAgcHVibGljQ29sbGVjdGlvbnM6IG51bWJlcjtcbiAgYXJ0aWNsZXM6IG51bWJlcjtcbiAgY3JlYXRvcnM6IG51bWJlcjtcbiAgaW1wcmludHM6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEFwaVJlc3BvbnNlIHtcbiAgZGF0YT86IHtcbiAgICBwYWdpbmF0b3JEZXRhaWxzPzoge1xuICAgICAgdG90YWxJdGVtc0NvdW50OiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2UgZXh0ZW5kcyBDcnVkU2VhcmNoU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSBfY3VycmVudFNlYXJjaFRleHQgPSAnJztcblxuICBnZXQgY3VycmVudFNlYXJjaFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFNlYXJjaFRleHQ7XG4gIH1cblxuICBvdmVycmlkZSBzZXRGaWx0ZXIodmFsOiBQYXJ0aWFsPElDcnVkRmlsdGVyPik6IHZvaWQge1xuICAgIHN1cGVyLnNldEZpbHRlcih2YWwpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0RW5hYmxlZCh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBzdXBlci5zZXRFbmFibGVkKHZhbCk7XG4gIH1cblxuICBzZXRDdXJyZW50U2VhcmNoVGV4dCh0eHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hUZXh0ID0gdHh0O1xuICB9XG5cbiAgc2VhcmNoKHR4dDogc3RyaW5nLCBkYXRhOiBJU2VhcmNoRGF0YSA9IHt9KTogT2JzZXJ2YWJsZTxJU2VhcmNoUmVzdWx0cz4ge1xuICAgIHRoaXMuc2V0RmlsdGVyKHtcbiAgICAgIHNlYXJjaFRleHQ6IHR4dCxcbiAgICB9KTtcblxuICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hUZXh0ID0gdHh0O1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8QXBpUmVzcG9uc2U+KFxuICAgICAgICAgIGAke2Vudmlyb25tZW50LmFwaVVybH1zZWFyY2gvT2JqZWN0L3BhZ2UvMT9tYXhQZXJQYWdlPTEmJHt0aGlzLmdldEZpbHRlclF1ZXJ5KCdvYmplY3RzJywgdHh0LCBkYXRhKX1gLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwgYXMgQXBpUmVzcG9uc2UgfCBudWxsKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PEFwaVJlc3BvbnNlPihcbiAgICAgICAgICBgJHtlbnZpcm9ubWVudC5hcGlVcmx9cHVibGljLWNvbGxlY3Rpb25zL3BhZ2UvMT9tYXhQZXJQYWdlPTEmJHt0aGlzLmdldEZpbHRlclF1ZXJ5KCdwdWJsaWNDb2xsZWN0aW9ucycsIHR4dCwgZGF0YSl9YCxcbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsIGFzIEFwaVJlc3BvbnNlIHwgbnVsbCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxBcGlSZXNwb25zZT4oXG4gICAgICAgICAgYCR7ZW52aXJvbm1lbnQuYXBpVXJsfXNlYXJjaC9BcnRpY2xlL3BhZ2UvMT9tYXhQZXJQYWdlPTEmJHt0aGlzLmdldEZpbHRlclF1ZXJ5KCdhcnRpY2xlcycsIHR4dCwgZGF0YSl9YCxcbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsIGFzIEFwaVJlc3BvbnNlIHwgbnVsbCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxBcGlSZXNwb25zZT4oXG4gICAgICAgICAgYCR7ZW52aXJvbm1lbnQuYXBpVXJsfWRpY3Rpb25hcnkvQ3JlYXRvci9zZWFyY2gvcGFnZS8xP21heFBlclBhZ2U9MSYke3RoaXMuZ2V0RmlsdGVyUXVlcnkoJ2NyZWF0b3JzJywgdHh0LCBkYXRhKX1gLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwgYXMgQXBpUmVzcG9uc2UgfCBudWxsKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PEFwaVJlc3BvbnNlPihcbiAgICAgICAgICBgJHtlbnZpcm9ubWVudC5hcGlVcmx9ZGljdGlvbmFyeS9JbXByaW50L3NlYXJjaC9wYWdlLzE/bWF4UGVyUGFnZT0xJiR7dGhpcy5nZXRGaWx0ZXJRdWVyeSgnaW1wcmludHMnLCB0eHQsIGRhdGEpfWAsXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCBhcyBBcGlSZXNwb25zZSB8IG51bGwpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbXG4gICAgICAgICAgb2JqZWN0c1Jlc3VsdCxcbiAgICAgICAgICBwdWJsaWNDb2xsZWN0aW9uc1Jlc3VsdCxcbiAgICAgICAgICBhcnRpY2xlc1Jlc3VsdCxcbiAgICAgICAgICBjcmVhdG9yc1Jlc3VsdCxcbiAgICAgICAgICBpbXByaW50c1Jlc3VsdCxcbiAgICAgICAgXSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvYmplY3RzOlxuICAgICAgICAgICAgICBvYmplY3RzUmVzdWx0Py5kYXRhPy5wYWdpbmF0b3JEZXRhaWxzPy50b3RhbEl0ZW1zQ291bnQgPz8gMCxcbiAgICAgICAgICAgIHB1YmxpY0NvbGxlY3Rpb25zOlxuICAgICAgICAgICAgICBwdWJsaWNDb2xsZWN0aW9uc1Jlc3VsdD8uZGF0YT8ucGFnaW5hdG9yRGV0YWlsc1xuICAgICAgICAgICAgICAgID8udG90YWxJdGVtc0NvdW50ID8/IDAsXG4gICAgICAgICAgICBhcnRpY2xlczpcbiAgICAgICAgICAgICAgYXJ0aWNsZXNSZXN1bHQ/LmRhdGE/LnBhZ2luYXRvckRldGFpbHM/LnRvdGFsSXRlbXNDb3VudCA/PyAwLFxuICAgICAgICAgICAgY3JlYXRvcnM6XG4gICAgICAgICAgICAgIGNyZWF0b3JzUmVzdWx0Py5kYXRhPy5wYWdpbmF0b3JEZXRhaWxzPy50b3RhbEl0ZW1zQ291bnQgPz8gMCxcbiAgICAgICAgICAgIGltcHJpbnRzOlxuICAgICAgICAgICAgICBpbXByaW50c1Jlc3VsdD8uZGF0YT8ucGFnaW5hdG9yRGV0YWlscz8udG90YWxJdGVtc0NvdW50ID8/IDAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGdldEZpbHRlclF1ZXJ5KFxuICAgIHR5cGU6IFNlYXJjaFNvdXJjZSxcbiAgICB0eHQ6IHN0cmluZyxcbiAgICBkYXRhOiBJU2VhcmNoRGF0YSA9IHt9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlc3VsdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgaWYgKHR4dCAmJiB0eXBlICE9PSAnY3JlYXRvcnMnICYmIHR5cGUgIT09ICdpbXByaW50cycpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGBmaWx0ZXJbcGhyYXNlXT0ke2VuY29kZVVSSUNvbXBvbmVudCh0eHQpfWApO1xuICAgIH0gZWxzZSBpZiAodHh0KSB7XG4gICAgICByZXN1bHQucHVzaChgcT0ke2VuY29kZVVSSUNvbXBvbmVudCh0eHQpfWApO1xuICAgIH1cblxuICAgIGlmIChkYXRhLmtleXdvcmRJZCkge1xuICAgICAgcmVzdWx0LnB1c2goYGZpbHRlcltrZXl3b3Jkc11bXT0ke2RhdGEua2V5d29yZElkfWApO1xuICAgIH1cblxuICAgIGlmIChkYXRhLmN5Y2xlSWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGBmaWx0ZXJbY3ljbGVzXVtdPSR7ZGF0YS5jeWNsZUlkfWApO1xuICAgIH1cblxuICAgIGlmIChkYXRhLnNlcmllc1RpdGxlSWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGBmaWx0ZXJbY3ljbGVzXVtdPSR7ZGF0YS5zZXJpZXNUaXRsZUlkfWApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQuam9pbignJicpO1xuICB9XG59XG4iXX0=","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, inject, PLATFORM_ID } from '@angular/core';\nimport { Title, Meta } from '@angular/platform-browser';\nimport * as i0 from \"@angular/core\";\nexport class SeoService {\n constructor() {\n this.title = inject(Title);\n this.meta = inject(Meta);\n this.platformId = inject(PLATFORM_ID);\n this.isBrowser = isPlatformBrowser(this.platformId);\n }\n updateTitle(titleText) {\n if (!titleText) {\n console.warn('Title text is empty or undefined.');\n return;\n }\n const decodedTitle = this.decodeHtml(titleText);\n if (decodedTitle) {\n this.title.setTitle(decodedTitle);\n }\n }\n updateMetaTags(metaTags) {\n metaTags.forEach((tag) => this.meta.updateTag(tag));\n }\n updateDescription(description) {\n if (!description) {\n console.warn('Description text is empty or undefined.');\n return;\n }\n const decodedDesc = this.decodeHtml(description);\n if (decodedDesc) {\n this.meta.updateTag({ name: 'description', content: decodedDesc });\n }\n }\n updateOgTags(title, description, image, url) {\n const tags = [];\n if (title) {\n tags.push({\n property: 'og:title',\n content: this.decodeHtml(title) || title,\n });\n }\n if (description) {\n tags.push({\n property: 'og:description',\n content: this.decodeHtml(description) || description,\n });\n }\n if (image) {\n tags.push({ property: 'og:image', content: image });\n }\n if (url) {\n tags.push({ property: 'og:url', content: url });\n }\n this.updateMetaTags(tags);\n }\n decodeHtml(encodedStr) {\n if (!encodedStr)\n return encodedStr;\n // Use DOMParser only in browser environments\n if (this.isBrowser) {\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(encodedStr, 'text/html');\n return doc.documentElement.textContent;\n }\n catch (error) {\n console.warn('DOMParser decode failed, falling back to server-safe decoder', error);\n }\n }\n // Server / SSR fallback: decode numeric entities and common named entities\n try {\n let decoded = encodedStr\n .replace(/&#x([0-9A-Fa-f]+);?/g, (_m, hex) => String.fromCharCode(parseInt(hex, 16)))\n .replace(/&#([0-9]+);?/g, (_m, num) => String.fromCharCode(parseInt(num, 10)));\n const entities = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"',\n apos: \"'\",\n nbsp: '\\u00A0',\n };\n decoded = decoded.replace(/&([a-zA-Z]+);?/g, (_m, name) => Object.prototype.hasOwnProperty.call(entities, name)\n ? entities[name]\n : `&${name};`);\n return decoded;\n }\n catch (error) {\n console.warn('Failed to decode HTML with fallback', error);\n return encodedStr;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SeoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SeoService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SeoService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3Nlby9zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQWtCLE1BQU0sMkJBQTJCLENBQUM7O0FBS3hFLE1BQU0sT0FBTyxVQUFVO0lBSHZCO1FBSW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7S0ErR2pFO0lBN0dDLFdBQVcsQ0FBQyxTQUFpQjtRQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7WUFDbEQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsUUFBMEI7UUFDdkMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUks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QUFFLEVBQUUsR0FBRztnQkFDUCxJQUFJLEVBQUUsR0FBRztnQkFDVCxJQUFJLEVBQUUsR0FBRztnQkFDVCxJQUFJLEVBQUUsUUFBUTthQUNmLENBQUM7WUFFRixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUN4RCxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztnQkFDbEQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUNoQixDQUFDO1lBRUYsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDOzhHQWxIVSxVQUFVO2tIQUFWLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlLCBNZXRhLCBNZXRhRGVmaW5pdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2VvU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1ldGEgPSBpbmplY3QoTWV0YSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcblxuICB1cGRhdGVUaXRsZSh0aXRsZVRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGl0bGVUZXh0KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RpdGxlIHRleHQgaXMgZW1wdHkgb3IgdW5kZWZpbmVkLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZWRUaXRsZSA9IHRoaXMuZGVjb2RlSHRtbCh0aXRsZVRleHQpO1xuICAgIGlmIChkZWNvZGVkVGl0bGUpIHtcbiAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUoZGVjb2RlZFRpdGxlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVNZXRhVGFncyhtZXRhVGFnczogTWV0YURlZmluaXRpb25bXSk6IHZvaWQge1xuICAgIG1ldGFUYWdzLmZvckVhY2goKHRhZykgPT4gdGhpcy5tZXRhLnVwZGF0ZVRhZyh0YWcpKTtcbiAgfVxuXG4gIHVwZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWRlc2NyaXB0aW9uKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0Rlc2NyaXB0aW9uIHRleHQgaXMgZW1wdHkgb3IgdW5kZWZpbmVkLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZWREZXNjID0gdGhpcy5kZWNvZGVIdG1sKGRlc2NyaXB0aW9uKTtcbiAgICBpZiAoZGVjb2RlZERlc2MpIHtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50OiBkZWNvZGVkRGVzYyB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVPZ1RhZ3MoXG4gICAgdGl0bGU/OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgaW1hZ2U/OiBzdHJpbmcsXG4gICAgdXJsPzogc3RyaW5nLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB0YWdzOiBNZXRhRGVmaW5pdGlvbltdID0gW107XG5cbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIHRhZ3MucHVzaCh7XG4gICAgICAgIHByb3BlcnR5OiAnb2c6dGl0bGUnLFxuICAgICAgICBjb250ZW50OiB0aGlzLmRlY29kZUh0bWwodGl0bGUpIHx8IHRpdGxlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICB0YWdzLnB1c2goe1xuICAgICAgICBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJyxcbiAgICAgICAgY29udGVudDogdGhpcy5kZWNvZGVIdG1sKGRlc2NyaXB0aW9uKSB8fCBkZXNjcmlwdGlvbixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpbWFnZSkge1xuICAgICAgdGFncy5wdXNoKHsgcHJvcGVydHk6ICdvZzppbWFnZScsIGNvbnRlbnQ6IGltYWdlIH0pO1xuICAgIH1cblxuICAgIGlmICh1cmwpIHtcbiAgICAgIHRhZ3MucHVzaCh7IHByb3BlcnR5OiAnb2c6dXJsJywgY29udGVudDogdXJsIH0pO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlTWV0YVRhZ3ModGFncyk7XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUh0bWwoZW5jb2RlZFN0cjogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFlbmNvZGVkU3RyKSByZXR1cm4gZW5jb2RlZFN0cjtcblxuICAgIC8vIFVzZSBET01QYXJzZXIgb25seSBpbiBicm93c2VyIGVudmlyb25tZW50c1xuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAgICAgICBjb25zdCBkb2MgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKGVuY29kZWRTdHIsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgcmV0dXJuIGRvYy5kb2N1bWVudEVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ0RPTVBhcnNlciBkZWNvZGUgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gc2VydmVyLXNhZmUgZGVjb2RlcicsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VydmVyIC8gU1NSIGZhbGxiYWNrOiBkZWNvZGUgbnVtZXJpYyBlbnRpdGllcyBhbmQgY29tbW9uIG5hbWVkIGVudGl0aWVzXG4gICAgdHJ5IHtcbiAgICAgIGxldCBkZWNvZGVkID0gZW5jb2RlZFN0clxuICAgICAgICAucmVwbGFjZSgvJiN4KFswLTlBLUZhLWZdKyk7Py9nLCAoX20sIGhleCkgPT5cbiAgICAgICAgICBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGhleCwgMTYpKSxcbiAgICAgICAgKVxuICAgICAgICAucmVwbGFjZSgvJiMoWzAtOV0rKTs/L2csIChfbSwgbnVtKSA9PlxuICAgICAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQobnVtLCAxMCkpLFxuICAgICAgICApO1xuXG4gICAgICBjb25zdCBlbnRpdGllczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgYW1wOiAnJicsXG4gICAgICAgIGx0OiAnPCcsXG4gICAgICAgIGd0OiAnPicsXG4gICAgICAgIHF1b3Q6ICdcIicsXG4gICAgICAgIGFwb3M6IFwiJ1wiLFxuICAgICAgICBuYnNwOiAnXFx1MDBBMCcsXG4gICAgICB9O1xuXG4gICAgICBkZWNvZGVkID0gZGVjb2RlZC5yZXBsYWNlKC8mKFthLXpBLVpdKyk7Py9nLCAoX20sIG5hbWUpID0+XG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnRpdGllcywgbmFtZSlcbiAgICAgICAgICA/IGVudGl0aWVzW25hbWVdXG4gICAgICAgICAgOiBgJiR7bmFtZX07YCxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBkZWNvZGVkO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBkZWNvZGUgSFRNTCB3aXRoIGZhbGxiYWNrJywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGVuY29kZWRTdHI7XG4gICAgfVxuICB9XG59XG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { SharedConfig } from '../../shared.config';\nimport { TranslationService } from '../translation/translation.service';\nimport * as i0 from \"@angular/core\";\nexport class SettingsService {\n constructor() {\n this.translationService = inject(TranslationService);\n this.config = inject(SharedConfig);\n }\n getMediaUrl() {\n const multimediaUrl = this.config.multimediaUrl;\n if (!multimediaUrl) {\n return '';\n }\n // Remove trailing slash if present\n return multimediaUrl.endsWith('/')\n ? multimediaUrl.substring(0, multimediaUrl.length - 1)\n : multimediaUrl;\n }\n getBaseTitle() {\n return this.translationService.get('base-portal-title');\n }\n getCanLink() {\n // Could be extended with preview mode config in the future\n return true;\n }\n getMainLogo() {\n return this.config.mainLogoPath;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SettingsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SettingsService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBS3hFLE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBSW1CLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELFdBQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0EyQmhEO0lBekJDLFdBQVc7UUFDVCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUVoRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsbUNBQW1DO1FBQ25DLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDaEMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3RELENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVTtRQUNSLDJEQUEyRDtRQUMzRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUNsQyxDQUFDOzhHQTVCVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoU2hhcmVkQ29uZmlnKTtcblxuICBnZXRNZWRpYVVybCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG11bHRpbWVkaWFVcmwgPSB0aGlzLmNvbmZpZy5tdWx0aW1lZGlhVXJsO1xuXG4gICAgaWYgKCFtdWx0aW1lZGlhVXJsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoIGlmIHByZXNlbnRcbiAgICByZXR1cm4gbXVsdGltZWRpYVVybC5lbmRzV2l0aCgnLycpXG4gICAgICA/IG11bHRpbWVkaWFVcmwuc3Vic3RyaW5nKDAsIG11bHRpbWVkaWFVcmwubGVuZ3RoIC0gMSlcbiAgICAgIDogbXVsdGltZWRpYVVybDtcbiAgfVxuXG4gIGdldEJhc2VUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5nZXQoJ2Jhc2UtcG9ydGFsLXRpdGxlJyk7XG4gIH1cblxuICBnZXRDYW5MaW5rKCk6IGJvb2xlYW4ge1xuICAgIC8vIENvdWxkIGJlIGV4dGVuZGVkIHdpdGggcHJldmlldyBtb2RlIGNvbmZpZyBpbiB0aGUgZnV0dXJlXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRNYWluTG9nbygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5tYWluTG9nb1BhdGg7XG4gIH1cbn1cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { StyleService as SmartStyleService } from '@smartsoft001/angular';\nimport { SharedConfig } from '../../shared.config';\nimport * as i0 from \"@angular/core\";\nexport class StyleService {\n constructor() {\n this.smartStyleService = inject(SmartStyleService);\n this.config = inject(SharedConfig);\n }\n init(elementRef, customVariables) {\n const variables = {\n ...this.config.styleVariables,\n ...customVariables,\n };\n this.smartStyleService.init(elementRef, variables);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: StyleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: StyleService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: StyleService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvc3R5bGUvc3R5bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sWUFBWTtJQUh6QjtRQUltQixzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBVWhEO0lBUkMsSUFBSSxDQUFDLFVBQXNCLEVBQUUsZUFBcUM7UUFDaEUsTUFBTSxTQUFTLEdBQUc7WUFDaEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWM7WUFDN0IsR0FBRyxlQUFlO1NBQ25CLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNyRCxDQUFDOzhHQVhVLFlBQVk7a0hBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdHlsZVNlcnZpY2UgYXMgU21hcnRTdHlsZVNlcnZpY2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFN0eWxlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc21hcnRTdHlsZVNlcnZpY2UgPSBpbmplY3QoU21hcnRTdHlsZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChTaGFyZWRDb25maWcpO1xuXG4gIGluaXQoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgY3VzdG9tVmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHtcbiAgICAgIC4uLnRoaXMuY29uZmlnLnN0eWxlVmFyaWFibGVzLFxuICAgICAgLi4uY3VzdG9tVmFyaWFibGVzLFxuICAgIH07XG5cbiAgICB0aGlzLnNtYXJ0U3R5bGVTZXJ2aWNlLmluaXQoZWxlbWVudFJlZiwgdmFyaWFibGVzKTtcbiAgfVxufVxuIl19","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject, signal, computed, effect, } from '@angular/core';\nimport { TranslationService } from '../translation/translation.service';\nimport * as i0 from \"@angular/core\";\nconst WCAG_CONFIG_KEY = 'WCAG_CONFIG';\nconst DEFAULT_CONFIG = {\n contrast: 'normal',\n text: 'normal',\n letterSpacing: 'small',\n wordSpacing: 'small',\n};\nexport class WcagService {\n constructor() {\n this.translationService = inject(TranslationService);\n this.platformId = inject(PLATFORM_ID);\n this.isBrowser = isPlatformBrowser(this.platformId);\n this._config = signal(this.loadConfig(), ...(ngDevMode ? [{ debugName: \"_config\" }] : []));\n this.config = this._config.asReadonly();\n this.wordSpacingValue = computed(() => this.getSpacingValue(this._config().wordSpacing), ...(ngDevMode ? [{ debugName: \"wordSpacingValue\" }] : []));\n this.letterSpacingValue = computed(() => this.getSpacingValue(this._config().letterSpacing), ...(ngDevMode ? [{ debugName: \"letterSpacingValue\" }] : []));\n // Apply config changes to DOM\n effect(() => {\n const config = this._config();\n this.applyConfigToDOM(config);\n });\n }\n async init() {\n // Config is already loaded in constructor\n // This method kept for backward compatibility\n }\n setContrast(value) {\n this._config.update((config) => ({ ...config, contrast: value }));\n this.announceChange('setContrast', value);\n this.save();\n }\n setText(value) {\n this._config.update((config) => ({ ...config, text: value }));\n this.announceChange('setText', value);\n this.save();\n }\n setLetterSpacing(value) {\n this._config.update((config) => ({ ...config, letterSpacing: value }));\n this.announceChange('setLetterSpacing', value);\n this.save();\n }\n setWordSpacing(value) {\n this._config.update((config) => ({ ...config, wordSpacing: value }));\n this.announceChange('setWordSpacing', value);\n this.save();\n }\n reset() {\n this._config.set(DEFAULT_CONFIG);\n this.save();\n }\n getSpacingValue(spacing) {\n switch (spacing) {\n case 'normal':\n return 1;\n case 'large':\n return 2;\n default:\n return 0;\n }\n }\n loadConfig() {\n if (this.isBrowser && typeof localStorage !== 'undefined') {\n const stored = localStorage.getItem(WCAG_CONFIG_KEY);\n if (stored) {\n try {\n const parsed = JSON.parse(stored);\n return { ...DEFAULT_CONFIG, ...parsed };\n }\n catch (error) {\n console.warn('Failed to parse WCAG config', error);\n }\n }\n }\n return DEFAULT_CONFIG;\n }\n save() {\n if (this.isBrowser && typeof localStorage !== 'undefined') {\n localStorage.setItem(WCAG_CONFIG_KEY, JSON.stringify(this._config()));\n }\n }\n applyConfigToDOM(config) {\n if (!this.isBrowser)\n return;\n const body = document.getElementsByTagName('body')[0];\n if (!body)\n return;\n body.className = '';\n body.className += ` contrast-${config.contrast}`;\n body.className += ` text-${config.text}`;\n body.className += ` letter-spacing-${config.letterSpacing}`;\n body.className += ` word-spacing-${config.wordSpacing}`;\n }\n announceChange(type, value) {\n if (!this.isBrowser)\n return;\n let announceElement = document.getElementById('wcag-change');\n if (!announceElement) {\n announceElement = document.createElement('span');\n announceElement.id = 'wcag-change';\n announceElement.className = 'sr-only';\n announceElement.setAttribute('aria-atomic', 'true');\n announceElement.setAttribute('aria-live', 'polite');\n document.body.appendChild(announceElement);\n }\n const translationKey = `WCAG.${type}.${value}`;\n announceElement.innerHTML = this.translationService.get(translationKey);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: WcagService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: WcagService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: WcagService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NhZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy93Y2FnL3djYWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBRUwsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRXhFLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQW9CdEMsTUFBTSxjQUFjLEdBQWdCO0lBQ2xDLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLElBQUksRUFBRSxRQUFRO0lBQ2QsYUFBYSxFQUFFLE9BQU87SUFDdEIsV0FBVyxFQUFFLE9BQU87Q0FDckIsQ0FBQztBQUtGLE1BQU0sT0FBTyxXQUFXO0lBZXRCO1FBZGlCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQyxZQUFPLEdBQUcsTUFBTSxDQUFjLElBQUksQ0FBQyxVQUFVLEVBQUUsbURBQUMsQ0FBQztRQUV6RCxXQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQyxxQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyw0REFDakQsQ0FBQztRQUNPLHVCQUFr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LENBQUM7UUFFN0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLGVBQWUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pELGVBQWUsQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDO1lBQ25DLGVBQWUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLGVBQWUsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELGVBQWUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3BELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxRQUFRLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMvQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUUsQ0FBQzs4R0F4SFUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIFBMQVRGT1JNX0lELFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5jb25zdCBXQ0FHX0NPTkZJR19LRVkgPSAnV0NBR19DT05GSUcnO1xuXG5leHBvcnQgdHlwZSBXY2FnQ29udHJhc3QgPSAnaGlnaCcgfCAnbm9ybWFsJyB8ICdncmF5c2NhbGUnO1xuZXhwb3J0IHR5cGUgV2NhZ1RleHQgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuZXhwb3J0IHR5cGUgV2NhZ0xldHRlclNwYWNpbmcgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuZXhwb3J0IHR5cGUgV2NhZ1dvcmRTcGFjaW5nID0gJ3NtYWxsJyB8ICdub3JtYWwnIHwgJ2xhcmdlJztcblxuZXhwb3J0IGludGVyZmFjZSBJV2NhZ0NvbmZpZyB7XG4gIGNvbnRyYXN0OiBXY2FnQ29udHJhc3Q7XG4gIHRleHQ6IFdjYWdUZXh0O1xuICBsZXR0ZXJTcGFjaW5nOiBXY2FnTGV0dGVyU3BhY2luZztcbiAgd29yZFNwYWNpbmc6IFdjYWdXb3JkU3BhY2luZztcbn1cblxuZXhwb3J0IHR5cGUgV2NhZ0NoYW5nZVR5cGUgPVxuICB8ICdzZXRDb250cmFzdCdcbiAgfCAnc2V0VGV4dCdcbiAgfCAnc2V0TGV0dGVyU3BhY2luZydcbiAgfCAnc2V0V29yZFNwYWNpbmcnO1xuXG5jb25zdCBERUZBVUxUX0NPTkZJRzogSVdjYWdDb25maWcgPSB7XG4gIGNvbnRyYXN0OiAnbm9ybWFsJyxcbiAgdGV4dDogJ25vcm1hbCcsXG4gIGxldHRlclNwYWNpbmc6ICdzbWFsbCcsXG4gIHdvcmRTcGFjaW5nOiAnc21hbGwnLFxufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdjYWdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZyA9IHNpZ25hbDxJV2NhZ0NvbmZpZz4odGhpcy5sb2FkQ29uZmlnKCkpO1xuXG4gIHJlYWRvbmx5IGNvbmZpZyA9IHRoaXMuX2NvbmZpZy5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IHdvcmRTcGFjaW5nVmFsdWUgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZ2V0U3BhY2luZ1ZhbHVlKHRoaXMuX2NvbmZpZygpLndvcmRTcGFjaW5nKSxcbiAgKTtcbiAgcmVhZG9ubHkgbGV0dGVyU3BhY2luZ1ZhbHVlID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmdldFNwYWNpbmdWYWx1ZSh0aGlzLl9jb25maWcoKS5sZXR0ZXJTcGFjaW5nKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBBcHBseSBjb25maWcgY2hhbmdlcyB0byBET01cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5fY29uZmlnKCk7XG4gICAgICB0aGlzLmFwcGx5Q29uZmlnVG9ET00oY29uZmlnKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gQ29uZmlnIGlzIGFscmVhZHkgbG9hZGVkIGluIGNvbnN0cnVjdG9yXG4gICAgLy8gVGhpcyBtZXRob2Qga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICB9XG5cbiAgc2V0Q29udHJhc3QodmFsdWU6IFdjYWdDb250cmFzdCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHsgLi4uY29uZmlnLCBjb250cmFzdDogdmFsdWUgfSkpO1xuICAgIHRoaXMuYW5ub3VuY2VDaGFuZ2UoJ3NldENvbnRyYXN0JywgdmFsdWUpO1xuICAgIHRoaXMuc2F2ZSgpO1xuICB9XG5cbiAgc2V0VGV4dCh2YWx1ZTogV2NhZ1RleHQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25maWcudXBkYXRlKChjb25maWcpID0+ICh7IC4uLmNvbmZpZywgdGV4dDogdmFsdWUgfSkpO1xuICAgIHRoaXMuYW5ub3VuY2VDaGFuZ2UoJ3NldFRleHQnLCB2YWx1ZSk7XG4gICAgdGhpcy5zYXZlKCk7XG4gIH1cblxuICBzZXRMZXR0ZXJTcGFjaW5nKHZhbHVlOiBXY2FnTGV0dGVyU3BhY2luZyk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHsgLi4uY29uZmlnLCBsZXR0ZXJTcGFjaW5nOiB2YWx1ZSB9KSk7XG4gICAgdGhpcy5hbm5vdW5jZUNoYW5nZSgnc2V0TGV0dGVyU3BhY2luZycsIHZhbHVlKTtcbiAgICB0aGlzLnNhdmUoKTtcbiAgfVxuXG4gIHNldFdvcmRTcGFjaW5nKHZhbHVlOiBXY2FnV29yZFNwYWNpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25maWcudXBkYXRlKChjb25maWcpID0+ICh7IC4uLmNvbmZpZywgd29yZFNwYWNpbmc6IHZhbHVlIH0pKTtcbiAgICB0aGlzLmFubm91bmNlQ2hhbmdlKCdzZXRXb3JkU3BhY2luZycsIHZhbHVlKTtcbiAgICB0aGlzLnNhdmUoKTtcbiAgfVxuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZy5zZXQoREVGQVVMVF9DT05GSUcpO1xuICAgIHRoaXMuc2F2ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTcGFjaW5nVmFsdWUoXG4gICAgc3BhY2luZzogV2NhZ0xldHRlclNwYWNpbmcgfCBXY2FnV29yZFNwYWNpbmcsXG4gICk6IG51bWJlciB7XG4gICAgc3dpdGNoIChzcGFjaW5nKSB7XG4gICAgICBjYXNlICdub3JtYWwnOlxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgcmV0dXJuIDI7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRDb25maWcoKTogSVdjYWdDb25maWcge1xuICAgIGlmICh0aGlzLmlzQnJvd3NlciAmJiB0eXBlb2YgbG9jYWxTdG9yYWdlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oV0NBR19DT05GSUdfS0VZKTtcbiAgICAgIGlmIChzdG9yZWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHN0b3JlZCk7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLnBhcnNlZCB9O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIHBhcnNlIFdDQUcgY29uZmlnJywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBERUZBVUxUX0NPTkZJRztcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIgJiYgdHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFdDQUdfQ09ORklHX0tFWSwgSlNPTi5zdHJpbmdpZnkodGhpcy5fY29uZmlnKCkpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29uZmlnVG9ET00oY29uZmlnOiBJV2NhZ0NvbmZpZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcblxuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdO1xuICAgIGlmICghYm9keSkgcmV0dXJuO1xuXG4gICAgYm9keS5jbGFzc05hbWUgPSAnJztcbiAgICBib2R5LmNsYXNzTmFtZSArPSBgIGNvbnRyYXN0LSR7Y29uZmlnLmNvbnRyYXN0fWA7XG4gICAgYm9keS5jbGFzc05hbWUgKz0gYCB0ZXh0LSR7Y29uZmlnLnRleHR9YDtcbiAgICBib2R5LmNsYXNzTmFtZSArPSBgIGxldHRlci1zcGFjaW5nLSR7Y29uZmlnLmxldHRlclNwYWNpbmd9YDtcbiAgICBib2R5LmNsYXNzTmFtZSArPSBgIHdvcmQtc3BhY2luZy0ke2NvbmZpZy53b3JkU3BhY2luZ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBhbm5vdW5jZUNoYW5nZSh0eXBlOiBXY2FnQ2hhbmdlVHlwZSwgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcblxuICAgIGxldCBhbm5vdW5jZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2NhZy1jaGFuZ2UnKTtcblxuICAgIGlmICghYW5ub3VuY2VFbGVtZW50KSB7XG4gICAgICBhbm5vdW5jZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBhbm5vdW5jZUVsZW1lbnQuaWQgPSAnd2NhZy1jaGFuZ2UnO1xuICAgICAgYW5ub3VuY2VFbGVtZW50LmNsYXNzTmFtZSA9ICdzci1vbmx5JztcbiAgICAgIGFubm91bmNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtYXRvbWljJywgJ3RydWUnKTtcbiAgICAgIGFubm91bmNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGl2ZScsICdwb2xpdGUnKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYW5ub3VuY2VFbGVtZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGBXQ0FHLiR7dHlwZX0uJHt2YWx1ZX1gO1xuICAgIGFubm91bmNlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5nZXQodHJhbnNsYXRpb25LZXkpO1xuICB9XG59XG4iXX0=","import { CrudService, } from '@smartsoft001/crud-shell-angular';\nimport { firstValueFrom, of, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nexport class CrudBaseService extends CrudService {\n downloadPdf(name, id) {\n return fetch(this.config.apiUrl + this.getUrlNameForDetails() + '/' + id + '/pdf')\n .then((resp) => resp.arrayBuffer())\n .then((resp) => {\n const file = new Blob([resp], { type: 'application/pdf' });\n const fileURL = URL.createObjectURL(file);\n const link = document.createElement('a');\n link.href = fileURL;\n link.download = name + '.pdf';\n link.click();\n });\n }\n getById(id) {\n return firstValueFrom(this.http\n .get(this.config.apiUrl + this.getUrlNameForDetails() + '/' + id)\n .pipe(map((r) => r?.data)));\n }\n getList(filter) {\n let page = 1;\n if (filter?.offset && filter?.limit) {\n page = filter.offset / filter.limit;\n }\n let url = this.getBaseListUrl(page, filter);\n if (filter?.searchText) {\n url += `&filter[phrase]=${filter.searchText}`;\n }\n if (filter?.sortBy) {\n url += `&sort=${filter.sortBy}-${filter.sortDesc ? 'desc' : 'asc'}`;\n }\n else {\n url += `&sort=random`;\n }\n filter?.query?.forEach((q) => {\n const isArray = Array.isArray(q.value);\n if (isArray) {\n q.value.forEach((value) => {\n url += `&filter[${q.key}]${this.getQueryType(q.type, true)}=${value.id}`;\n });\n }\n else {\n url += `&filter[${q.key}]${this.getQueryType(q.type, false)}=${q.value}`;\n }\n });\n return firstValueFrom(this.http\n .get(url)\n .pipe(map((r) => {\n const response = r;\n return {\n data: response.data?.items ?? [],\n totalCount: response.data?.paginatorDetails?.totalItemsCount ?? 0,\n links: {},\n };\n }), catchError(this.handleError)));\n }\n getBaseListUrl(page, filter) {\n return `${this.config.apiUrl}${this.getUrlNameForList() !== 'public-collections'\n ? 'search/' + this.getUrlNameForList()\n : 'public-collections'}/page/${page}?maxPerPage=${filter?.limit}`;\n }\n handleError(err) {\n if (err.status === 404 || err.status === 406) {\n return of({\n data: [],\n totalCount: 0,\n links: {},\n });\n }\n return throwError(() => new Error(`There was an error: ${err.status}`));\n }\n getQueryType(type, isArray) {\n switch (type) {\n case '>=':\n return '[from]';\n case '<=':\n return '[to]';\n case '=':\n return isArray ? '[]' : '';\n default:\n throw 'Type not supported!';\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2NydWQvY3J1ZC1iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsR0FHWixNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxjQUFjLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE1BQU0sT0FBZ0IsZUFFcEIsU0FBUSxXQUFjO0lBSXRCLFdBQVcsQ0FBQyxJQUFZLEVBQUUsRUFBVTtRQUNsQyxPQUFPLEtBQUssQ0FDVixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FDckU7YUFDRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNsQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBRTNELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxNQUFNLENB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QyxNQUFNLEdBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLG9CQUFvQjtZQUMvQyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN0QyxDQUFDLENBQUMsb0JBQ04sU0FBUyxJQUFJLGVBQWUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFUyxXQUFXLENBQUMsR0FBaUM7UUFDckQsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzdDLE9BQU8sRUFBRSxDQUFDO2dCQUNSLElBQUksRUFBRSxFQUFFO2dCQUNSLFVBQVUsRUFBRSxDQUFDO2dCQUNiLEtBQUssRUFBRSxFQUFFO2FBQ1YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLHVCQUF1QixHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFUyxZQUFZLENBQ3BCLElBQTBDLEVBQzFDLE9BQWdCO1FBRWhCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLElBQUk7Z0JBQ1AsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssR0FBRztnQkFDTixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0I7Z0JBQ0UsTUFBTSxxQkFBcUIsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3J1ZFNlcnZpY2UsXG4gIElDcnVkRmlsdGVyLFxuICBJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSxcbn0gZnJvbSAnQHNtYXJ0c29mdDAwMS9jcnVkLXNoZWxsLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDcnVkQmFzZVNlcnZpY2U8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4sXG4+IGV4dGVuZHMgQ3J1ZFNlcnZpY2U8VD4ge1xuICBhYnN0cmFjdCBnZXRVcmxOYW1lRm9yRGV0YWlscygpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGdldFVybE5hbWVGb3JMaXN0KCk6IHN0cmluZztcblxuICBkb3dubG9hZFBkZihuYW1lOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gZmV0Y2goXG4gICAgICB0aGlzLmNvbmZpZy5hcGlVcmwgKyB0aGlzLmdldFVybE5hbWVGb3JEZXRhaWxzKCkgKyAnLycgKyBpZCArICcvcGRmJyxcbiAgICApXG4gICAgICAudGhlbigocmVzcCkgPT4gcmVzcC5hcnJheUJ1ZmZlcigpKVxuICAgICAgLnRoZW4oKHJlc3ApID0+IHtcbiAgICAgICAgY29uc3QgZmlsZSA9IG5ldyBCbG9iKFtyZXNwXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KTtcblxuICAgICAgICBjb25zdCBmaWxlVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgbGluay5ocmVmID0gZmlsZVVSTDtcbiAgICAgICAgbGluay5kb3dubG9hZCA9IG5hbWUgKyAnLnBkZic7XG4gICAgICAgIGxpbmsuY2xpY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0QnlJZChpZDogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8e1xuICAgICAgICAgIGRhdGE6IFQ7XG4gICAgICAgIH0+KHRoaXMuY29uZmlnLmFwaVVybCArIHRoaXMuZ2V0VXJsTmFtZUZvckRldGFpbHMoKSArICcvJyArIGlkKVxuICAgICAgICAucGlwZShtYXAoKHIpID0+IChyIGFzIHsgZGF0YTogVCB9KT8uZGF0YSkpLFxuICAgICk7XG4gIH1cblxuICBnZXRMaXN0PFQ+KFxuICAgIGZpbHRlcj86IElDcnVkRmlsdGVyLFxuICApOiBQcm9taXNlPHsgZGF0YTogVFtdOyB0b3RhbENvdW50OiBudW1iZXI7IGxpbmtzOiB1bmtub3duIH0+IHtcbiAgICBsZXQgcGFnZSA9IDE7XG5cbiAgICBpZiAoZmlsdGVyPy5vZmZzZXQgJiYgZmlsdGVyPy5saW1pdCkge1xuICAgICAgcGFnZSA9IGZpbHRlci5vZmZzZXQgLyBmaWx0ZXIubGltaXQ7XG4gICAgfVxuXG4gICAgbGV0IHVybCA9IHRoaXMuZ2V0QmFzZUxpc3RVcmwocGFnZSwgZmlsdGVyIGFzIHsgbGltaXQ6IG51bWJlciB9KTtcblxuICAgIGlmIChmaWx0ZXI/LnNlYXJjaFRleHQpIHtcbiAgICAgIHVybCArPSBgJmZpbHRlcltwaHJhc2VdPSR7ZmlsdGVyLnNlYXJjaFRleHR9YDtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyPy5zb3J0QnkpIHtcbiAgICAgIHVybCArPSBgJnNvcnQ9JHtmaWx0ZXIuc29ydEJ5fS0ke2ZpbHRlci5zb3J0RGVzYyA/ICdkZXNjJyA6ICdhc2MnfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCArPSBgJnNvcnQ9cmFuZG9tYDtcbiAgICB9XG5cbiAgICBmaWx0ZXI/LnF1ZXJ5Py5mb3JFYWNoKChxOiBJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSkgPT4ge1xuICAgICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkocS52YWx1ZSk7XG5cbiAgICAgIGlmIChpc0FycmF5KSB7XG4gICAgICAgIHEudmFsdWUuZm9yRWFjaCgodmFsdWU6IHVua25vd24gJiB7IGlkOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgIHVybCArPSBgJmZpbHRlclske3Eua2V5fV0ke3RoaXMuZ2V0UXVlcnlUeXBlKHEudHlwZSwgdHJ1ZSl9PSR7XG4gICAgICAgICAgICB2YWx1ZS5pZFxuICAgICAgICAgIH1gO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCArPSBgJmZpbHRlclske3Eua2V5fV0ke3RoaXMuZ2V0UXVlcnlUeXBlKHEudHlwZSwgZmFsc2UpfT0ke1xuICAgICAgICAgIHEudmFsdWVcbiAgICAgICAgfWA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDx7XG4gICAgICAgICAgZGF0YTogdW5rbm93biAmIHtcbiAgICAgICAgICAgIGl0ZW1zOiB1bmtub3duO1xuICAgICAgICAgICAgcGFnaW5hdG9yRGV0YWlsczoge1xuICAgICAgICAgICAgICB0b3RhbEl0ZW1zQ291bnQ6IG51bWJlcjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcbiAgICAgICAgfT4odXJsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gciBhcyB7XG4gICAgICAgICAgICAgIGRhdGE/OiB7XG4gICAgICAgICAgICAgICAgaXRlbXM/OiBUW107XG4gICAgICAgICAgICAgICAgcGFnaW5hdG9yRGV0YWlscz86IHtcbiAgICAgICAgICAgICAgICAgIHRvdGFsSXRlbXNDb3VudD86IG51bWJlcjtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGRhdGE6IHJlc3BvbnNlLmRhdGE/Lml0ZW1zID8/IFtdLFxuICAgICAgICAgICAgICB0b3RhbENvdW50OiByZXNwb25zZS5kYXRhPy5wYWdpbmF0b3JEZXRhaWxzPy50b3RhbEl0ZW1zQ291bnQgPz8gMCxcbiAgICAgICAgICAgICAgbGlua3M6IHt9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpLFxuICAgICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0QmFzZUxpc3RVcmwoXG4gICAgcGFnZTogbnVtYmVyLFxuICAgIGZpbHRlcjoge1xuICAgICAgbGltaXQ6IG51bWJlcjtcbiAgICB9LFxuICApIHtcbiAgICByZXR1cm4gYCR7dGhpcy5jb25maWcuYXBpVXJsfSR7XG4gICAgICB0aGlzLmdldFVybE5hbWVGb3JMaXN0KCkgIT09ICdwdWJsaWMtY29sbGVjdGlvbnMnXG4gICAgICAgID8gJ3NlYXJjaC8nICsgdGhpcy5nZXRVcmxOYW1lRm9yTGlzdCgpXG4gICAgICAgIDogJ3B1YmxpYy1jb2xsZWN0aW9ucydcbiAgICB9L3BhZ2UvJHtwYWdlfT9tYXhQZXJQYWdlPSR7ZmlsdGVyPy5saW1pdH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUVycm9yKGVycjogdW5rbm93biAmIHsgc3RhdHVzOiBudW1iZXIgfSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKGVyci5zdGF0dXMgPT09IDQwNCB8fCBlcnIuc3RhdHVzID09PSA0MDYpIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIGRhdGE6IFtdLFxuICAgICAgICB0b3RhbENvdW50OiAwLFxuICAgICAgICBsaW5rczoge30sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoYFRoZXJlIHdhcyBhbiBlcnJvcjogJHtlcnIuc3RhdHVzfWApKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRRdWVyeVR5cGUoXG4gICAgdHlwZTogJz0nIHwgJyE9JyB8ICc+PScgfCAnPD0nIHwgJzwnIHwgJz4nLFxuICAgIGlzQXJyYXk6IGJvb2xlYW4sXG4gICkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnPj0nOlxuICAgICAgICByZXR1cm4gJ1tmcm9tXSc7XG4gICAgICBjYXNlICc8PSc6XG4gICAgICAgIHJldHVybiAnW3RvXSc7XG4gICAgICBjYXNlICc9JzpcbiAgICAgICAgcmV0dXJuIGlzQXJyYXkgPyAnW10nIDogJyc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyAnVHlwZSBub3Qgc3VwcG9ydGVkISc7XG4gICAgfVxuICB9XG59XG4iXX0=","import { ConfigsFacade } from '../+state/configs.facade';\nimport { AuthStorageService } from './auth-storage/auth-storage.service';\nimport { ConfigsService } from './configs/configs.service';\nimport { ContrastService } from './contrast/contrast.service';\nimport { DictionaryService } from './dictionary/dictionary.service';\nimport { FileUrlService } from './file-url/file-url.service';\nimport { GlobalService } from './global/global.service';\nimport { MetaService } from './meta/meta.service';\nimport { ModalService } from './modal/modal.service';\nimport { SearchService } from './search/search.service';\nimport { SeoService } from './seo/seo.service';\nimport { SettingsService } from './settings/settings.service';\nimport { StyleService } from './style/style.service';\nimport { TranslationService } from './translation/translation.service';\nimport { WcagService } from './wcag/wcag.service';\nexport * from './dictionary/dictionary.service';\nexport * from './configs/configs.service';\nexport * from './crud/crud-base.service';\nexport * from './auth-storage/auth-storage.service';\nexport * from './translation/translation.service';\nexport * from './global/global.service';\nexport * from './file-url/file-url.service';\nexport * from './settings/settings.service';\nexport * from './wcag/wcag.service';\nexport * from './contrast/contrast.service';\nexport * from './meta/meta.service';\nexport * from './seo/seo.service';\nexport * from './style/style.service';\nexport * from './modal/modal.service';\nexport * from './modal/modal-ref';\nexport * from './search/search.service';\nexport const SERVICES = [\n DictionaryService,\n ConfigsService,\n ConfigsFacade,\n AuthStorageService,\n TranslationService,\n GlobalService,\n FileUrlService,\n SettingsService,\n WcagService,\n ContrastService,\n MetaService,\n SeoService,\n StyleService,\n ModalService,\n SearchService,\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3RCLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsYUFBYTtJQUNiLGtCQUFrQjtJQUNsQixrQkFBa0I7SUFDbEIsYUFBYTtJQUNiLGNBQWM7SUFDZCxlQUFlO0lBQ2YsV0FBVztJQUNYLGVBQWU7SUFDZixXQUFXO0lBQ1gsVUFBVTtJQUNWLFlBQVk7SUFDWixZQUFZO0lBQ1osYUFBYTtDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdzRmFjYWRlIH0gZnJvbSAnLi4vK3N0YXRlL2NvbmZpZ3MuZmFjYWRlJztcbmltcG9ydCB7IEF1dGhTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vYXV0aC1zdG9yYWdlL2F1dGgtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbmZpZ3NTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWdzL2NvbmZpZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBDb250cmFzdFNlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXN0L2NvbnRyYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbGVVcmxTZXJ2aWNlIH0gZnJvbSAnLi9maWxlLXVybC9maWxlLXVybC5zZXJ2aWNlJztcbmltcG9ydCB7IEdsb2JhbFNlcnZpY2UgfSBmcm9tICcuL2dsb2JhbC9nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQgeyBNZXRhU2VydmljZSB9IGZyb20gJy4vbWV0YS9tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBTZW9TZXJ2aWNlIH0gZnJvbSAnLi9zZW8vc2VvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IFN0eWxlU2VydmljZSB9IGZyb20gJy4vc3R5bGUvc3R5bGUuc2VydmljZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2NhZ1NlcnZpY2UgfSBmcm9tICcuL3djYWcvd2NhZy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3MvY29uZmlncy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY3J1ZC9jcnVkLWJhc2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGgtc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9nbG9iYWwvZ2xvYmFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9maWxlLXVybC9maWxlLXVybC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3djYWcvd2NhZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29udHJhc3QvY29udHJhc3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21ldGEvbWV0YS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VvL3Nlby5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc3R5bGUvc3R5bGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC9tb2RhbC1yZWYnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgU0VSVklDRVMgPSBbXG4gIERpY3Rpb25hcnlTZXJ2aWNlLFxuICBDb25maWdzU2VydmljZSxcbiAgQ29uZmlnc0ZhY2FkZSxcbiAgQXV0aFN0b3JhZ2VTZXJ2aWNlLFxuICBUcmFuc2xhdGlvblNlcnZpY2UsXG4gIEdsb2JhbFNlcnZpY2UsXG4gIEZpbGVVcmxTZXJ2aWNlLFxuICBTZXR0aW5nc1NlcnZpY2UsXG4gIFdjYWdTZXJ2aWNlLFxuICBDb250cmFzdFNlcnZpY2UsXG4gIE1ldGFTZXJ2aWNlLFxuICBTZW9TZXJ2aWNlLFxuICBTdHlsZVNlcnZpY2UsXG4gIE1vZGFsU2VydmljZSxcbiAgU2VhcmNoU2VydmljZSxcbl07XG4iXX0=","import { __decorate, __metadata } from \"tslib\";\nimport { inject, Injectable, signal } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ReduxAction } from '@smartsoft001/angular';\nimport { ConfigsService } from '../services';\nimport * as i0 from \"@angular/core\";\nexport class ConfigsFacade {\n constructor() {\n this.service = inject(ConfigsService);\n this.sanitizer = inject(DomSanitizer);\n }\n static { this._source = signal(null, ...(ngDevMode ? [{ debugName: \"_source\" }] : [])); }\n get data() {\n return ConfigsFacade._source();\n }\n getPage(id) {\n return this.service.getPage(id).then((page) => {\n if (!page)\n return page;\n return {\n ...page,\n content: this.sanitizer.bypassSecurityTrustHtml(page.content),\n };\n });\n }\n init() {\n return this.service.get().then((config) => {\n ConfigsFacade._source.set(config);\n return config;\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsFacade, providedIn: 'root' }); }\n}\n__decorate([\n ReduxAction(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Number]),\n __metadata(\"design:returntype\", Promise)\n], ConfigsFacade.prototype, \"getPage\", null);\n__decorate([\n ReduxAction(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], ConfigsFacade.prototype, \"init\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsFacade, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], propDecorators: { getPage: [], init: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliLytzdGF0ZS9jb25maWdzLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXBELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSVUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBNkIxQzthQTNCZ0IsWUFBTyxHQUFrQyxNQUFNLENBQzVELElBQUksbURBQ0wsQUFGcUIsQ0FFcEI7SUFFRixJQUFJLElBQUk7UUFDTixPQUFPLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBR0QsT0FBTyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV2QixPQUFPO2dCQUNMLEdBQUcsSUFBSTtnQkFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQzlELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ2hELGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E5QlUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7QUFlbEI7SUFEQyxXQUFXLEVBQUU7Ozs7NENBVWI7QUFHRDtJQURDLFdBQVcsRUFBRTs7Ozt5Q0FNYjsyRkE5QlUsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OEJBY0MsT0FBTyxNQVlQLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUmVkdXhBY3Rpb24gfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBDb25maWcsIFBhZ2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxLW1vYmlsZW1zL21vZGVscyc7XG5cbmltcG9ydCB7IENvbmZpZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlnc0ZhY2FkZSB7XG4gIHByaXZhdGUgc2VydmljZSA9IGluamVjdChDb25maWdzU2VydmljZSk7XG4gIHByaXZhdGUgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX3NvdXJjZTogV3JpdGFibGVTaWduYWw8Q29uZmlnIHwgbnVsbD4gPSBzaWduYWw8Q29uZmlnIHwgbnVsbD4oXG4gICAgbnVsbCxcbiAgKTtcblxuICBnZXQgZGF0YSgpOiBDb25maWcgfCBudWxsIHtcbiAgICByZXR1cm4gQ29uZmlnc0ZhY2FkZS5fc291cmNlKCk7XG4gIH1cblxuICBAUmVkdXhBY3Rpb24oKVxuICBnZXRQYWdlKGlkOiBudW1iZXIpOiBQcm9taXNlPFBhZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldFBhZ2UoaWQpLnRoZW4oKHBhZ2U6IFBhZ2UpID0+IHtcbiAgICAgIGlmICghcGFnZSkgcmV0dXJuIHBhZ2U7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnBhZ2UsXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhZ2UuY29udGVudCksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgQFJlZHV4QWN0aW9uKClcbiAgaW5pdCgpOiBQcm9taXNlPENvbmZpZz4ge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0KCkudGhlbigoY29uZmlnOiBDb25maWcpID0+IHtcbiAgICAgIENvbmZpZ3NGYWNhZGUuX3NvdXJjZS5zZXQoY29uZmlnKTtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { AppBaseComponent } from '@smartsoft001/angular';\nimport * as i0 from \"@angular/core\";\nexport class AppComponent extends AppBaseComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AppComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: AppComponent, isStandalone: true, selector: \"smart-mobilems-app\", usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"header\\\"></ng-content>\\n\\n<main>\\n <router-outlet></router-outlet>\\n</main>\\n\\n<ng-content select=\\\"footer\\\"></ng-content>\\n\", dependencies: [{ kind: \"directive\", type: RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AppComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-mobilems-app', imports: [RouterOutlet], template: \"<ng-content select=\\\"header\\\"></ng-content>\\n\\n<main>\\n <router-outlet></router-outlet>\\n</main>\\n\\n<ng-content select=\\\"footer\\\"></ng-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU96RCxNQUFNLE9BQU8sWUFBYSxTQUFRLGdCQUFnQjs4R0FBckMsWUFBWTtrR0FBWixZQUFZLHFHQ1R6QixvSkFPQSw0Q0REWSxZQUFZOzsyRkFHWCxZQUFZO2tCQUx4QixTQUFTOytCQUNFLG9CQUFvQixXQUNyQixDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1tb2JpbGVtcy1hcHAnLFxuICBpbXBvcnRzOiBbUm91dGVyT3V0bGV0XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQge31cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImhlYWRlclwiPjwvbmctY29udGVudD5cblxuPG1haW4+XG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbjwvbWFpbj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuIl19","import { Directive } from '@angular/core';\nimport { PageBaseComponent } from '@smartsoft001/angular';\nimport * as i0 from \"@angular/core\";\nexport class PageComponent extends PageBaseComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: PageComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.0\", type: PageComponent, isStandalone: true, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: PageComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS9wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUcxRCxNQUFNLE9BQU8sYUFBYyxTQUFRLGlCQUFpQjs4R0FBdkMsYUFBYTtrR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFBhZ2VDb21wb25lbnQgZXh0ZW5kcyBQYWdlQmFzZUNvbXBvbmVudCB7fVxuIl19","import { __decorate, __metadata } from \"tslib\";\nimport { contentChild, Directive, effect, inject, } from '@angular/core';\nimport { BaseComponent } from '@smartsoft001/angular';\nimport { CrudFacade, } from '@smartsoft001/crud-shell-angular';\nimport * as _ from 'lodash';\nimport { Debounce } from 'lodash-decorators';\nimport * as i0 from \"@angular/core\";\nexport class FiltersContext extends BaseComponent {\n set searchText(val) {\n if (this._filter && this._filter.searchText === val)\n return;\n this.refresh({\n searchText: val,\n offset: 0,\n });\n }\n get searchText() {\n return this._filter?.searchText;\n }\n set page(val) {\n const offset = this._filter?.limit ? this._filter?.limit * val : 0;\n if (this._filter && this._filter.offset === offset)\n return;\n this.refresh({\n offset: offset,\n });\n }\n get page() {\n if (!this._filter)\n return 1;\n if (!this._filter.offset || !this._filter.limit)\n return 1;\n return this._filter.offset / this._filter.limit;\n }\n set limit(val) {\n if (this._filter && this._filter.limit === val)\n return;\n this.refresh({\n limit: val,\n offset: 0,\n });\n }\n get limit() {\n if (!this._filter)\n return 20;\n if (!this._filter.limit)\n return 20;\n return this._filter.limit;\n }\n set sortBy(val) {\n if (this._filter && this._filter.sortBy === val)\n return;\n this.refresh({\n sortBy: val,\n });\n }\n get sortBy() {\n return this._filter?.sortBy;\n }\n set query(val) {\n if (this._filter && this._filter.query === val)\n return;\n this.refresh({\n query: val,\n });\n }\n get query() {\n return this._filter?.query;\n }\n set sortDesc(val) {\n if (this._filter && this._filter.sortDesc === val)\n return;\n this.refresh({\n sortDesc: val,\n });\n }\n get sortDesc() {\n return this._filter?.sortDesc;\n }\n set sort(val) {\n if (this._filter && this._filter.sortBy === val)\n return;\n this.refresh({\n sortBy: val?.by,\n sortDesc: val?.desc,\n });\n }\n get sort() {\n return {\n by: this._filter?.sortBy,\n desc: this._filter?.sortDesc,\n };\n }\n set onlyImage(val) {\n if (!val && this.onlyImage && this._filter) {\n const result = this._filter.query\n ? this._filter.query?.filter((q) => !(q.type === '=' && q.key === 'onlyImage'))\n : [];\n this.refresh({\n query: [...result],\n });\n }\n if (val && !this.onlyImage && this._filter) {\n const result = this._filter.query\n ? this._filter.query.filter((q) => !(q.type === '=' && q.key === 'onlyImage'))\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: '=',\n key: 'onlyImage',\n value: 1,\n hidden: true,\n },\n ],\n });\n }\n }\n get onlyImage() {\n return this._filter?.query?.some((q) => q.type === '=' && q.key === 'onlyImage' && q.value === 1);\n }\n set exposure(val) {\n if (!val && this.exposure && this._filter) {\n const result = this._filter.query\n ? this._filter.query?.filter((q) => !(q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja'))\n : [];\n this.refresh({\n query: [...result],\n });\n }\n if (val && !this.exposure && this._filter) {\n const result = this._filter.query\n ? this._filter.query?.filter((q) => !(q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja'))\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: '=',\n key: 'locationType',\n value: 'Ekspozycja',\n hidden: true,\n },\n ],\n });\n }\n }\n get exposure() {\n return this._filter?.query?.some((q) => q.type === '=' && q.key === 'locationType' && q.value === 'Ekspozycja');\n }\n set creators(val) {\n this.filterSet(this.creators, val, 'creators', '=');\n }\n get creators() {\n return this.filterGet('=', 'creators');\n }\n set createDatesFrom(val) {\n this.filterSet(this.createDatesFrom, val, 'createDates', '>=');\n }\n get createDatesFrom() {\n return this.filterGet('>=', 'createDates');\n }\n set createDatesTo(val) {\n this.filterSet(this.createDatesTo, val, 'createDates', '<=');\n }\n get createDatesTo() {\n return this.filterGet('<=', 'createDates');\n }\n set publicationDateFrom(val) {\n this.filterSet(this.publicationDateFrom, val, 'publicationDate', '>=');\n }\n get publicationDateFrom() {\n return this.filterGet('>=', 'publicationDate');\n }\n set publicationDateTo(val) {\n this.filterSet(this.publicationDateTo, val, 'publicationDate', '<=');\n }\n get publicationDateTo() {\n return this.filterGet('<=', 'publicationDate');\n }\n set createPlaces(val) {\n this.filterSet(this.createPlaces, val, 'createPlaces', '=');\n }\n get createPlaces() {\n return this.filterGet('=', 'createPlaces');\n }\n set keywords(val) {\n this.filterSet(this.keywords, val, 'keywords', '=');\n }\n get keywords() {\n return this.filterGet('=', 'keywords');\n }\n set techniques(val) {\n this.filterSet(this.techniques, val, 'techniques', '=');\n }\n get techniques() {\n return this.filterGet('=', 'techniques');\n }\n set materials(val) {\n this.filterSet(this.materials, val, 'materials', '=');\n }\n get materials() {\n return this.filterGet('=', 'materials');\n }\n set category(val) {\n this.filterSet(this.category, val, 'category', '=');\n }\n get category() {\n return this.filterGet('=', 'category');\n }\n set department(val) {\n this.filterSet(this.department, val, 'department', '=');\n }\n get department() {\n return this.filterGet('=', 'department');\n }\n set location(val) {\n this.filterSet(this.category, val, 'location', '=');\n }\n get location() {\n return this.filterGet('=', 'location');\n }\n set locationType(val) {\n this.filterSet(this.category, val, 'locationType', '=');\n }\n get locationType() {\n return this.filterGet('=', 'locationType');\n }\n set cycles(val) {\n this.filterSet(this.cycles, val, 'cycles', '=');\n }\n get cycles() {\n return this.filterGet('=', 'cycles');\n }\n set authors(val) {\n this.filterSet(this.authors, val, 'authors', '=');\n }\n get authors() {\n return this.filterGet('=', 'authors');\n }\n set targetGroups(val) {\n this.filterSet(this.targetGroups, val, 'targetGroups', '=');\n }\n get targetGroups() {\n return this.filterGet('=', 'targetGroups');\n }\n set template(val) {\n this.filterSet(this.template, val, 'template', '=');\n }\n get template() {\n return this.filterGet('=', 'template');\n }\n set types(val) {\n this.filterSet(this.types, val, 'types', '=');\n }\n get types() {\n return this.filterGet('=', 'types');\n }\n set extraNumbersValue(val) {\n this.filterSet(this.creators, val, 'extraNumbersValue', '=');\n }\n get extraNumbersValue() {\n return this.filterGet('=', 'extraNumbersValue');\n }\n constructor() {\n super();\n this.facade = inject((CrudFacade));\n this.totalCount = this.facade.totalCount;\n effect(() => {\n this._filter = this.facade.filter();\n });\n }\n refresh(filter) {\n let change = false;\n Object.keys(filter).forEach((key) => {\n if (!_.isEqual(this._filter[key], filter[key]))\n change = true;\n });\n if (!change)\n return;\n this.facade.read({\n ...this.facade.filter,\n ...filter,\n });\n }\n filterGet(key, type) {\n return this._filter?.query?.find((q) => q.type === key && q.key === type)?.value;\n }\n filterSet(currentValue, val, key, type) {\n if (!val && this._filter) {\n const result = this._filter?.query\n ? this._filter?.query?.filter((q) => !(q.type === type && q.key === key))\n : [];\n this.refresh({\n offset: 0,\n query: [...result],\n });\n }\n if (val && currentValue !== val && this._filter) {\n const result = this._filter?.query\n ? this._filter?.query?.filter((q) => !(q.type === type && q.key === key))\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: type,\n key: key,\n value: val,\n hidden: true,\n },\n ],\n });\n }\n }\n}\n__decorate([\n Debounce(500),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], FiltersContext.prototype, \"refresh\", null);\nexport class FiltersBaseComponent {\n constructor() {\n this.contentTpl = contentChild('contentTpl', ...(ngDevMode ? [{ debugName: \"contentTpl\" }] : []));\n }\n ngAfterContentInit() {\n this.context = new FiltersContext();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FiltersBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.1.0\", type: FiltersBaseComponent, isStandalone: true, selector: \"smart-mobilems-filters\", queries: [{ propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, isSignal: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FiltersBaseComponent, decorators: [{\n type: Directive,\n args: [{\n selector: 'smart-mobilems-filters',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUNMLFVBQVUsR0FHWCxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFJN0MsTUFBTSxPQUFPLGNBQTBDLFNBQVEsYUFBYTtJQUsxRSxJQUFJLFVBQVUsQ0FBQyxHQUF1QjtRQUNwQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUssR0FBRztZQUFFLE9BQU87UUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNYLFVBQVUsRUFBRSxHQUFHO1lBQ2YsTUFBTSxFQUFFLENBQUM7U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsR0FBVztRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElB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QUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQWU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLEdBQWU7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEdBQWU7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQWU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEdBQWU7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEdBQWU7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEdBQWU7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQWU7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEdBQWU7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxjQUFj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QyxDQUFDOzhHQVRtQixvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgU2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9hbmd1bGFyJztcbmltcG9ydCB7XG4gIENydWRGYWNhZGUsXG4gIElDcnVkRmlsdGVyLFxuICBJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSxcbn0gZnJvbSAnQHNtYXJ0c29mdDAwMS9jcnVkLXNoZWxsLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICdsb2Rhc2gtZGVjb3JhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGNsYXNzIEZpbHRlcnNDb250ZXh0PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjYWRlID0gaW5qZWN0KENydWRGYWNhZGU8VD4pO1xuXG4gIHByaXZhdGUgX2ZpbHRlcj86IElDcnVkRmlsdGVyO1xuXG4gIHNldCBzZWFyY2hUZXh0KHZhbDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIuc2VhcmNoVGV4dCA9PT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5yZWZyZXNoKHtcbiAgICAgIHNlYXJjaFRleHQ6IHZhbCxcbiAgICAgIG9mZnNldDogMCxcbiAgICB9KTtcbiAgfVxuICBnZXQgc2VhcmNoVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5zZWFyY2hUZXh0O1xuICB9XG5cbiAgc2V0IHBhZ2UodmFsOiBudW1iZXIpIHtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLl9maWx0ZXI/LmxpbWl0ID8gdGhpcy5fZmlsdGVyPy5saW1pdCAqIHZhbCA6IDA7XG4gICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIub2Zmc2V0ID09PSBvZmZzZXQpIHJldHVybjtcbiAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgfSk7XG4gIH1cbiAgZ2V0IHBhZ2UoKSB7XG4gICAgaWYgKCF0aGlzLl9maWx0ZXIpIHJldHVybiAxO1xuICAgIGlmICghdGhpcy5fZmlsdGVyLm9mZnNldCB8fCAhdGhpcy5fZmlsdGVyLmxpbWl0KSByZXR1cm4gMTtcblxuICAgIHJldHVybiB0aGlzLl9maWx0ZXIub2Zmc2V0IC8gdGhpcy5fZmlsdGVyLmxpbWl0O1xuICB9XG5cbiAgc2V0IGxpbWl0KHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIubGltaXQgPT09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICBsaW1pdDogdmFsLFxuICAgICAgb2Zmc2V0OiAwLFxuICAgIH0pO1xuICB9XG4gIGdldCBsaW1pdCgpIHtcbiAgICBpZiAoIXRoaXMuX2ZpbHRlcikgcmV0dXJuIDIwO1xuICAgIGlmICghdGhpcy5fZmlsdGVyLmxpbWl0KSByZXR1cm4gMjA7XG5cbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyLmxpbWl0O1xuICB9XG5cbiAgc2V0IHNvcnRCeSh2YWw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgdGhpcy5fZmlsdGVyLnNvcnRCeSA9PT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5yZWZyZXNoKHtcbiAgICAgIHNvcnRCeTogdmFsLFxuICAgIH0pO1xuICB9XG4gIGdldCBzb3J0QnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcj8uc29ydEJ5O1xuICB9XG5cbiAgc2V0IHF1ZXJ5KHZhbDogSUNydWRGaWx0ZXJRdWVyeUl0ZW1bXSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgdGhpcy5fZmlsdGVyLnF1ZXJ5ID09PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgcXVlcnk6IHZhbCxcbiAgICB9KTtcbiAgfVxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcj8ucXVlcnk7XG4gIH1cblxuICBzZXQgc29ydERlc2ModmFsOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIuc29ydERlc2MgPT09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICBzb3J0RGVzYzogdmFsLFxuICAgIH0pO1xuICB9XG4gIGdldCBzb3J0RGVzYygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5zb3J0RGVzYztcbiAgfVxuXG4gIHNldCBzb3J0KHZhbDogeyBieT86IHN0cmluZzsgZGVzYz86IGJvb2xlYW4gfSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgdGhpcy5fZmlsdGVyLnNvcnRCeSA9PT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5yZWZyZXNoKHtcbiAgICAgIHNvcnRCeTogdmFsPy5ieSxcbiAgICAgIHNvcnREZXNjOiB2YWw/LmRlc2MsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgc29ydCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnk6IHRoaXMuX2ZpbHRlcj8uc29ydEJ5LFxuICAgICAgZGVzYzogdGhpcy5fZmlsdGVyPy5zb3J0RGVzYyxcbiAgICB9O1xuICB9XG5cbiAgc2V0IG9ubHlJbWFnZSh2YWw6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbCAmJiB0aGlzLm9ubHlJbWFnZSAmJiB0aGlzLl9maWx0ZXIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZpbHRlci5xdWVyeVxuICAgICAgICA/IHRoaXMuX2ZpbHRlci5xdWVyeT8uZmlsdGVyKFxuICAgICAgICAgICAgKHE6IElDcnVkRmlsdGVyUXVlcnlJdGVtKSA9PlxuICAgICAgICAgICAgICAhKHEudHlwZSA9PT0gJz0nICYmIHEua2V5ID09PSAnb25seUltYWdlJyksXG4gICAgICAgICAgKVxuICAgICAgICA6IFtdO1xuXG4gICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICBxdWVyeTogWy4uLnJlc3VsdF0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodmFsICYmICF0aGlzLm9ubHlJbWFnZSAmJiB0aGlzLl9maWx0ZXIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZpbHRlci5xdWVyeVxuICAgICAgICA/IHRoaXMuX2ZpbHRlci5xdWVyeS5maWx0ZXIoXG4gICAgICAgICAgICAocTogSUNydWRGaWx0ZXJRdWVyeUl0ZW0pID0+XG4gICAgICAgICAgICAgICEocS50eXBlID09PSAnPScgJiYgcS5rZXkgPT09ICdvbmx5SW1hZ2UnKSxcbiAgICAgICAgICApXG4gICAgICAgIDogW107XG4gICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgIHF1ZXJ5OiBbXG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICc9JyxcbiAgICAgICAgICAgIGtleTogJ29ubHlJbWFnZScsXG4gICAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldCBvbmx5SW1hZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcj8ucXVlcnk/LnNvbWUoXG4gICAgICAocTogSUNydWRGaWx0ZXJRdWVyeUl0ZW0pID0+XG4gICAgICAgIHEudHlwZSA9PT0gJz0nICYmIHEua2V5ID09PSAnb25seUltYWdlJyAmJiBxLnZhbHVlID09PSAxLFxuICAgICk7XG4gIH1cblxuICBzZXQgZXhwb3N1cmUodmFsOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWwgJiYgdGhpcy5leHBvc3VyZSAmJiB0aGlzLl9maWx0ZXIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZpbHRlci5xdWVyeVxuICAgICAgICA/IHRoaXMuX2ZpbHRlci5xdWVyeT8uZmlsdGVyKFxuICAgICAgICAgICAgKHE6IElDcnVkRmlsdGVyUXVlcnlJdGVtKSA9PlxuICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgIHEudHlwZSA9PT0gJz0nICYmXG4gICAgICAgICAgICAgICAgcS5rZXkgPT09ICdsb2NhdGlvblR5cGUnICYmXG4gICAgICAgICAgICAgICAgcS52YWx1ZSA9PT0gJ0Vrc3BvenljamEnXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgKVxuICAgICAgICA6IFtdO1xuXG4gICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICBxdWVyeTogWy4uLnJlc3VsdF0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodmFsICYmICF0aGlzLmV4cG9zdXJlICYmIHRoaXMuX2ZpbHRlcikge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZmlsdGVyLnF1ZXJ5XG4gICAgICAgID8gdGhpcy5fZmlsdGVyLnF1ZXJ5Py5maWx0ZXIoXG4gICAgICAgICAgICAocTogSUNydWRGaWx0ZXJRdWVyeUl0ZW0pID0+XG4gICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgcS50eXBlID09PSAnPScgJiZcbiAgICAgICAgICAgICAgICBxLmtleSA9PT0gJ2xvY2F0aW9uVHlwZScgJiZcbiAgICAgICAgICAgICAgICBxLnZhbHVlID09PSAnRWtzcG96eWNqYSdcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgIDogW107XG4gICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgIHF1ZXJ5OiBbXG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICc9JyxcbiAgICAgICAgICAgIGtleTogJ2xvY2F0aW9uVHlwZScsXG4gICAgICAgICAgICB2YWx1ZTogJ0Vrc3BvenljamEnLFxuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgZ2V0IGV4cG9zdXJlKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXI/LnF1ZXJ5Py5zb21lKFxuICAgICAgKHE6IElDcnVkRmlsdGVyUXVlcnlJdGVtKSA9PlxuICAgICAgICBxLnR5cGUgPT09ICc9JyAmJiBxLmtleSA9PT0gJ2xvY2F0aW9uVHlwZScgJiYgcS52YWx1ZSA9PT0gJ0Vrc3BvenljamEnLFxuICAgICk7XG4gIH1cblxuICBzZXQgY3JlYXRvcnModmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdG9ycywgdmFsLCAnY3JlYXRvcnMnLCAnPScpO1xuICB9XG4gIGdldCBjcmVhdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnY3JlYXRvcnMnKTtcbiAgfVxuXG4gIHNldCBjcmVhdGVEYXRlc0Zyb20odmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdGVEYXRlc0Zyb20sIHZhbCwgJ2NyZWF0ZURhdGVzJywgJz49Jyk7XG4gIH1cbiAgZ2V0IGNyZWF0ZURhdGVzRnJvbSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz49JywgJ2NyZWF0ZURhdGVzJyk7XG4gIH1cblxuICBzZXQgY3JlYXRlRGF0ZXNUbyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLmNyZWF0ZURhdGVzVG8sIHZhbCwgJ2NyZWF0ZURhdGVzJywgJzw9Jyk7XG4gIH1cbiAgZ2V0IGNyZWF0ZURhdGVzVG8oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KCc8PScsICdjcmVhdGVEYXRlcycpO1xuICB9XG5cbiAgc2V0IHB1YmxpY2F0aW9uRGF0ZUZyb20odmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5wdWJsaWNhdGlvbkRhdGVGcm9tLCB2YWwsICdwdWJsaWNhdGlvbkRhdGUnLCAnPj0nKTtcbiAgfVxuICBnZXQgcHVibGljYXRpb25EYXRlRnJvbSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz49JywgJ3B1YmxpY2F0aW9uRGF0ZScpO1xuICB9XG5cbiAgc2V0IHB1YmxpY2F0aW9uRGF0ZVRvKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMucHVibGljYXRpb25EYXRlVG8sIHZhbCwgJ3B1YmxpY2F0aW9uRGF0ZScsICc8PScpO1xuICB9XG4gIGdldCBwdWJsaWNhdGlvbkRhdGVUbygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJzw9JywgJ3B1YmxpY2F0aW9uRGF0ZScpO1xuICB9XG5cbiAgc2V0IGNyZWF0ZVBsYWNlcyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLmNyZWF0ZVBsYWNlcywgdmFsLCAnY3JlYXRlUGxhY2VzJywgJz0nKTtcbiAgfVxuICBnZXQgY3JlYXRlUGxhY2VzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICdjcmVhdGVQbGFjZXMnKTtcbiAgfVxuXG4gIHNldCBrZXl3b3Jkcyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLmtleXdvcmRzLCB2YWwsICdrZXl3b3JkcycsICc9Jyk7XG4gIH1cbiAgZ2V0IGtleXdvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICdrZXl3b3JkcycpO1xuICB9XG5cbiAgc2V0IHRlY2huaXF1ZXModmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy50ZWNobmlxdWVzLCB2YWwsICd0ZWNobmlxdWVzJywgJz0nKTtcbiAgfVxuICBnZXQgdGVjaG5pcXVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAndGVjaG5pcXVlcycpO1xuICB9XG5cbiAgc2V0IG1hdGVyaWFscyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLm1hdGVyaWFscywgdmFsLCAnbWF0ZXJpYWxzJywgJz0nKTtcbiAgfVxuICBnZXQgbWF0ZXJpYWxzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICdtYXRlcmlhbHMnKTtcbiAgfVxuXG4gIHNldCBjYXRlZ29yeSh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLmNhdGVnb3J5LCB2YWwsICdjYXRlZ29yeScsICc9Jyk7XG4gIH1cbiAgZ2V0IGNhdGVnb3J5KCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICdjYXRlZ29yeScpO1xuICB9XG5cbiAgc2V0IGRlcGFydG1lbnQodmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5kZXBhcnRtZW50LCB2YWwsICdkZXBhcnRtZW50JywgJz0nKTtcbiAgfVxuICBnZXQgZGVwYXJ0bWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnZGVwYXJ0bWVudCcpO1xuICB9XG5cbiAgc2V0IGxvY2F0aW9uKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMuY2F0ZWdvcnksIHZhbCwgJ2xvY2F0aW9uJywgJz0nKTtcbiAgfVxuICBnZXQgbG9jYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KCc9JywgJ2xvY2F0aW9uJyk7XG4gIH1cblxuICBzZXQgbG9jYXRpb25UeXBlKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMuY2F0ZWdvcnksIHZhbCwgJ2xvY2F0aW9uVHlwZScsICc9Jyk7XG4gIH1cbiAgZ2V0IGxvY2F0aW9uVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnbG9jYXRpb25UeXBlJyk7XG4gIH1cblxuICBzZXQgY3ljbGVzKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMuY3ljbGVzLCB2YWwsICdjeWNsZXMnLCAnPScpO1xuICB9XG4gIGdldCBjeWNsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KCc9JywgJ2N5Y2xlcycpO1xuICB9XG5cbiAgc2V0IGF1dGhvcnModmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5hdXRob3JzLCB2YWwsICdhdXRob3JzJywgJz0nKTtcbiAgfVxuICBnZXQgYXV0aG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnYXV0aG9ycycpO1xuICB9XG5cbiAgc2V0IHRhcmdldEdyb3Vwcyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLnRhcmdldEdyb3VwcywgdmFsLCAndGFyZ2V0R3JvdXBzJywgJz0nKTtcbiAgfVxuICBnZXQgdGFyZ2V0R3JvdXBzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICd0YXJnZXRHcm91cHMnKTtcbiAgfVxuXG4gIHNldCB0ZW1wbGF0ZSh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLnRlbXBsYXRlLCB2YWwsICd0ZW1wbGF0ZScsICc9Jyk7XG4gIH1cbiAgZ2V0IHRlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICd0ZW1wbGF0ZScpO1xuICB9XG5cbiAgc2V0IHR5cGVzKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMudHlwZXMsIHZhbCwgJ3R5cGVzJywgJz0nKTtcbiAgfVxuICBnZXQgdHlwZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KCc9JywgJ3R5cGVzJyk7XG4gIH1cblxuICBzZXQgZXh0cmFOdW1iZXJzVmFsdWUodmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdG9ycywgdmFsLCAnZXh0cmFOdW1iZXJzVmFsdWUnLCAnPScpO1xuICB9XG4gIGdldCBleHRyYU51bWJlcnNWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnZXh0cmFOdW1iZXJzVmFsdWUnKTtcbiAgfVxuXG4gIHRvdGFsQ291bnQ6IFNpZ25hbDxudW1iZXI+ID0gKHRoaXMuZmFjYWRlIGFzIGFueSkudG90YWxDb3VudDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuX2ZpbHRlciA9ICh0aGlzLmZhY2FkZSBhcyBhbnkpLmZpbHRlcigpO1xuICAgIH0pO1xuICB9XG5cbiAgQERlYm91bmNlKDUwMClcbiAgcHJpdmF0ZSByZWZyZXNoKGZpbHRlcjogSUNydWRGaWx0ZXIpOiB2b2lkIHtcbiAgICBsZXQgY2hhbmdlID0gZmFsc2U7XG5cbiAgICBPYmplY3Qua2V5cyhmaWx0ZXIpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFfLmlzRXF1YWwoKHRoaXMuX2ZpbHRlciBhcyBhbnkpW2tleV0sIChmaWx0ZXIgYXMgYW55KVtrZXldKSlcbiAgICAgICAgY2hhbmdlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGlmICghY2hhbmdlKSByZXR1cm47XG5cbiAgICAodGhpcy5mYWNhZGUgYXMgYW55KS5yZWFkKHtcbiAgICAgIC4uLih0aGlzLmZhY2FkZSBhcyBhbnkpLmZpbHRlcixcbiAgICAgIC4uLmZpbHRlcixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyR2V0KGtleTogc3RyaW5nLCB0eXBlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5xdWVyeT8uZmluZChcbiAgICAgIChxOiBJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSkgPT4gcS50eXBlID09PSBrZXkgJiYgcS5rZXkgPT09IHR5cGUsXG4gICAgKT8udmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlclNldChcbiAgICBjdXJyZW50VmFsdWU6IEZpbHRlclR5cGUsXG4gICAgdmFsOiBGaWx0ZXJUeXBlLFxuICAgIGtleTogc3RyaW5nLFxuICAgIHR5cGU6IGFueSxcbiAgKSB7XG4gICAgaWYgKCF2YWwgJiYgdGhpcy5fZmlsdGVyKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9maWx0ZXI/LnF1ZXJ5XG4gICAgICAgID8gdGhpcy5fZmlsdGVyPy5xdWVyeT8uZmlsdGVyKFxuICAgICAgICAgICAgKHE6IElDcnVkRmlsdGVyUXVlcnlJdGVtKSA9PiAhKHEudHlwZSA9PT0gdHlwZSAmJiBxLmtleSA9PT0ga2V5KSxcbiAgICAgICAgICApXG4gICAgICAgIDogW107XG5cbiAgICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgcXVlcnk6IFsuLi5yZXN1bHRdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHZhbCAmJiBjdXJyZW50VmFsdWUgIT09IHZhbCAmJiB0aGlzLl9maWx0ZXIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZpbHRlcj8ucXVlcnlcbiAgICAgICAgPyB0aGlzLl9maWx0ZXI/LnF1ZXJ5Py5maWx0ZXIoXG4gICAgICAgICAgICAocTogSUNydWRGaWx0ZXJRdWVyeUl0ZW0pID0+ICEocS50eXBlID09PSB0eXBlICYmIHEua2V5ID09PSBrZXkpLFxuICAgICAgICAgIClcbiAgICAgICAgOiBbXTtcbiAgICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgcXVlcnk6IFtcbiAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IHZhbCxcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LW1vYmlsZW1zLWZpbHRlcnMnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWx0ZXJzQmFzZUNvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PlxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXRcbntcbiAgY29udGV4dD86IEZpbHRlcnNDb250ZXh0PFQ+O1xuXG4gIGNvbnRlbnRUcGwgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZD4oJ2NvbnRlbnRUcGwnKTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0ID0gbmV3IEZpbHRlcnNDb250ZXh0KCk7XG4gIH1cbn1cbiJdfQ==","import { DOCUMENT } from '@angular/common';\nimport { Directive, HostListener, Inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ScrollTopComponent {\n constructor(document) {\n this.document = document;\n }\n onWindowScroll() {\n if (window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop > 200) {\n this.windowScrolled = true;\n }\n else if ((this.windowScrolled && window.pageYOffset) ||\n document.documentElement.scrollTop ||\n document.body.scrollTop < 50) {\n this.windowScrolled = false;\n }\n }\n scrollToTop() {\n const scrollOptions = {\n top: 0,\n left: 0,\n behavior: 'smooth',\n };\n window.scrollTo(scrollOptions);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ScrollTopComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.0\", type: ScrollTopComponent, isStandalone: true, host: { listeners: { \"window:scroll\": \"onWindowScroll()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ScrollTopComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }], propDecorators: { onWindowScroll: [{\n type: HostListener,\n args: ['window:scroll', []]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXRvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsLXRvcC9zY3JvbGwtdG9wLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdoRSxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQXNDLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBRzVELGNBQWM7UUFDWixJQUNFLE1BQU0sQ0FBQyxXQUFXO1lBQ2xCLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUztZQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQzdCLENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO2FBQU0sSUFDTCxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUMzQyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVM7WUFDbEMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxFQUM1QixDQUFDO1lBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxhQUFhLEdBQW9CO1lBQ3JDLEdBQUcsRUFBRSxDQUFDO1lBQ04sSUFBSSxFQUFFLENBQUM7WUFDUCxRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDO1FBRUYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQTlCVSxrQkFBa0Isa0JBR1QsUUFBUTtrR0FIakIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixTQUFTOzswQkFJSyxNQUFNOzJCQUFDLFFBQVE7eUNBRzVCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2Nyb2xsVG9wQ29tcG9uZW50IHtcbiAgd2luZG93U2Nyb2xsZWQhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50KSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgb25XaW5kb3dTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0IHx8XG4gICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8XG4gICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA+IDIwMFxuICAgICkge1xuICAgICAgdGhpcy53aW5kb3dTY3JvbGxlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICh0aGlzLndpbmRvd1Njcm9sbGVkICYmIHdpbmRvdy5wYWdlWU9mZnNldCkgfHxcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIDwgNTBcbiAgICApIHtcbiAgICAgIHRoaXMud2luZG93U2Nyb2xsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzY3JvbGxUb1RvcCgpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JvbGxPcHRpb25zOiBTY3JvbGxUb09wdGlvbnMgPSB7XG4gICAgICB0b3A6IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgIH07XG5cbiAgICB3aW5kb3cuc2Nyb2xsVG8oc2Nyb2xsT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==","import { Component, computed, inject } from '@angular/core';\nimport { ConfigPageType } from '@smartsoft001-mobilems/models';\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport * as i0 from \"@angular/core\";\nexport class FooterComponent {\n constructor() {\n this.configsFacade = inject(ConfigsFacade);\n this.config = computed(() => this.configsFacade.data, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.currentYear = computed(() => new Date().getFullYear(), ...(ngDevMode ? [{ debugName: \"currentYear\" }] : []));\n this.staticPages = computed(() => {\n const config = this.config();\n if (!config?.theme?.footer?.menu)\n return [];\n return config.theme.footer.menu.filter((item) => item.type === ConfigPageType.static);\n }, ...(ngDevMode ? [{ debugName: \"staticPages\" }] : []));\n this.hasStaticPages = computed(() => this.staticPages().length > 0, ...(ngDevMode ? [{ debugName: \"hasStaticPages\" }] : []));\n this.menuItems = computed(() => {\n const config = this.config();\n return config?.theme?.footer?.menu ?? [];\n }, ...(ngDevMode ? [{ debugName: \"menuItems\" }] : []));\n this.hasMenuItems = computed(() => this.menuItems().length > 0, ...(ngDevMode ? [{ debugName: \"hasMenuItems\" }] : []));\n }\n getStaticPageById(id) {\n return this.staticPages().find((page) => page.page.id === id);\n }\n getStaticPageTitle(id) {\n return this.getStaticPageById(id)?.page.title;\n }\n updateConfig(_config) {\n const current = this.config();\n if (!current)\n return;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: FooterComponent, isStandalone: true, selector: \"smart-mobilems-footer\", ngImport: i0, template: ``, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FooterComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-mobilems-footer', standalone: true, imports: [], template: `` }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFFLGNBQWMsRUFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBMEI1RCxNQUFNLE9BQU8sZUFBZTtJQVA1QjtRQVFVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXJDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGtEQUFDLENBQUM7UUFDakQsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsdURBQUMsQ0FBQztRQUV2RCxnQkFBVyxHQUFHLFFBQVEsQ0FBc0IsR0FBRyxFQUFFO1lBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUU1QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ3BDLENBQUMsSUFBSSxFQUE2QixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsTUFBTSxDQUN6RSxDQUFDO1FBQ0osQ0FBQyx1REFBQyxDQUFDO1FBRU0sbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLDBEQUFDLENBQUM7UUFFL0QsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE9BQU8sTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMzQyxDQUFDLHFEQUFDLENBQUM7UUFFTSxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsd0RBQUMsQ0FBQztLQWNyRTtJQVpDLGlCQUFpQixDQUFDLEVBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFBVTtRQUMzQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7SUFFRCxZQUFZLENBQUMsT0FBc0I7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztJQUN2QixDQUFDOzhHQW5DVSxlQUFlO2tHQUFmLGVBQWUsaUZBSGhCLEVBQUU7OzJGQUdELGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxFQUFFLFlBQ0QsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWdQYWdlVHlwZSwgQ29uZmlnTWVudUl0ZW0gfSBmcm9tICdAc21hcnRzb2Z0MDAxLW1vYmlsZW1zL21vZGVscyc7XG5cbmltcG9ydCB7IENvbmZpZ3NGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvY29uZmlncy5mYWNhZGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGb290ZXJTdGF0aWNQYWdlIHtcbiAgdHlwZTogQ29uZmlnUGFnZVR5cGUuc3RhdGljO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYWdlOiB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICB0aXRsZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb290ZXJDb25maWcge1xuICB0aGVtZT86IHtcbiAgICBmb290ZXI/OiB7XG4gICAgICBtZW51PzogQ29uZmlnTWVudUl0ZW1bXTtcbiAgICB9O1xuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1tb2JpbGVtcy1mb290ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6IGBgLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBGb290ZXJDb21wb25lbnQge1xuICBwcml2YXRlIGNvbmZpZ3NGYWNhZGUgPSBpbmplY3QoQ29uZmlnc0ZhY2FkZSk7XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWdzRmFjYWRlLmRhdGEpO1xuICByZWFkb25seSBjdXJyZW50WWVhciA9IGNvbXB1dGVkKCgpID0+IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSk7XG5cbiAgcmVhZG9ubHkgc3RhdGljUGFnZXMgPSBjb21wdXRlZDxJRm9vdGVyU3RhdGljUGFnZVtdPigoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoIWNvbmZpZz8udGhlbWU/LmZvb3Rlcj8ubWVudSkgcmV0dXJuIFtdO1xuXG4gICAgcmV0dXJuIGNvbmZpZy50aGVtZS5mb290ZXIubWVudS5maWx0ZXIoXG4gICAgICAoaXRlbSk6IGl0ZW0gaXMgSUZvb3RlclN0YXRpY1BhZ2UgPT4gaXRlbS50eXBlID09PSBDb25maWdQYWdlVHlwZS5zdGF0aWMsXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaGFzU3RhdGljUGFnZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXRpY1BhZ2VzKCkubGVuZ3RoID4gMCk7XG5cbiAgcmVhZG9ubHkgbWVudUl0ZW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgcmV0dXJuIGNvbmZpZz8udGhlbWU/LmZvb3Rlcj8ubWVudSA/PyBbXTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaGFzTWVudUl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tZW51SXRlbXMoKS5sZW5ndGggPiAwKTtcblxuICBnZXRTdGF0aWNQYWdlQnlJZChpZDogbnVtYmVyKTogSUZvb3RlclN0YXRpY1BhZ2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnN0YXRpY1BhZ2VzKCkuZmluZCgocGFnZSkgPT4gcGFnZS5wYWdlLmlkID09PSBpZCk7XG4gIH1cblxuICBnZXRTdGF0aWNQYWdlVGl0bGUoaWQ6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RhdGljUGFnZUJ5SWQoaWQpPy5wYWdlLnRpdGxlO1xuICB9XG5cbiAgdXBkYXRlQ29uZmlnKF9jb25maWc6IElGb290ZXJDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoIWN1cnJlbnQpIHJldHVybjtcbiAgfVxufVxuIl19","import { isPlatformBrowser } from '@angular/common';\nimport { Component, computed, inject, signal, PLATFORM_ID, } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport * as i0 from \"@angular/core\";\nexport class HeaderComponent {\n constructor() {\n this.configsFacade = inject(ConfigsFacade);\n this.router = inject(Router);\n this.platformId = inject(PLATFORM_ID);\n this.config = computed(() => this.configsFacade.data, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.isMobile = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n return typeof window !== 'undefined' && window.innerWidth <= 640;\n }, ...(ngDevMode ? [{ debugName: \"isMobile\" }] : []));\n this.showWcagConfig = signal(false, ...(ngDevMode ? [{ debugName: \"showWcagConfig\" }] : []));\n this.showSearchPanel = signal(false, ...(ngDevMode ? [{ debugName: \"showSearchPanel\" }] : []));\n this.user = signal(null, ...(ngDevMode ? [{ debugName: \"user\" }] : []));\n this.localCollectionCount = signal(0, ...(ngDevMode ? [{ debugName: \"localCollectionCount\" }] : []));\n this.headerConfig = computed(() => {\n const config = this.config();\n return config?.theme ?? {};\n }, ...(ngDevMode ? [{ debugName: \"headerConfig\" }] : []));\n this.isWcagVisible = computed(() => {\n return (this.showWcagConfig() &&\n this.headerConfig()?.header?.showWcagConfig !== false);\n }, ...(ngDevMode ? [{ debugName: \"isWcagVisible\" }] : []));\n this.isSearchVisible = computed(() => {\n return this.headerConfig()?.header?.showSearch !== false;\n }, ...(ngDevMode ? [{ debugName: \"isSearchVisible\" }] : []));\n this.isLocalCollectionVisible = computed(() => {\n return this.headerConfig()?.header?.showLocalCollection !== false;\n }, ...(ngDevMode ? [{ debugName: \"isLocalCollectionVisible\" }] : []));\n this.isLanguageSelectorVisible = computed(() => {\n return this.headerConfig()?.header?.showLanguageSelector !== false;\n }, ...(ngDevMode ? [{ debugName: \"isLanguageSelectorVisible\" }] : []));\n this.isUserAccountVisible = computed(() => {\n return this.headerConfig()?.header?.showUserAccount !== false;\n }, ...(ngDevMode ? [{ debugName: \"isUserAccountVisible\" }] : []));\n }\n toggleWcagConfig() {\n this.showWcagConfig.update((value) => !value);\n }\n toggleSearchPanel() {\n this.showSearchPanel.update((value) => !value);\n }\n onWcagCloseButtonEvent(closed) {\n this.showWcagConfig.set(!closed);\n }\n onSearchPanelButtonEvent(opened) {\n this.showSearchPanel.set(opened);\n }\n routeToLogin() {\n this.router.navigate(['/login']);\n }\n routeToUserAccount() {\n this.router.navigate(['/profile']);\n }\n routeToLocalCollection() {\n this.router.navigate(['/my-collection']);\n }\n setUser(user) {\n this.user.set(user);\n }\n setLocalCollectionCount(count) {\n this.localCollectionCount.set(count);\n }\n getUser() {\n return this.user();\n }\n getLocalCollectionCount() {\n return this.localCollectionCount();\n }\n updateConfig() {\n const current = this.config();\n if (!current)\n return;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: HeaderComponent, isStandalone: true, selector: \"smart-mobilems-header\", ngImport: i0, template: ``, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: HeaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-mobilems-header', standalone: true, imports: [], template: `` }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQTBCNUQsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRVSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksa0RBQUMsQ0FBQztRQUNqRCxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELE9BQU8sT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDO1FBQ25FLENBQUMsb0RBQUMsQ0FBQztRQUVNLG1CQUFjLEdBQUcsTUFBTSxDQUFVLEtBQUssMERBQUMsQ0FBQztRQUN4QyxvQkFBZSxHQUFH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QUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztJQUN2QixDQUFDOzhHQTdGVSxlQUFlO2tHQUFmLGVBQWUsaUZBSGhCLEVBQUU7OzJGQUdELGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxFQUFFLFlBQ0QsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICBQTEFURk9STV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBDb25maWdzRmFjYWRlIH0gZnJvbSAnLi4vLi4vK3N0YXRlL2NvbmZpZ3MuZmFjYWRlJztcblxuZXhwb3J0IGludGVyZmFjZSBJSGVhZGVyVXNlciB7XG4gIHVzZXJJRDogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIZWFkZXJDb25maWcge1xuICB0aGVtZT86IHtcbiAgICBoZWFkZXI/OiB7XG4gICAgICBzaG93V2NhZ0NvbmZpZz86IGJvb2xlYW47XG4gICAgICBzaG93U2VhcmNoPzogYm9vbGVhbjtcbiAgICAgIHNob3dMb2NhbENvbGxlY3Rpb24/OiBib29sZWFuO1xuICAgICAgc2hvd0xhbmd1YWdlU2VsZWN0b3I/OiBib29sZWFuO1xuICAgICAgc2hvd1VzZXJBY2NvdW50PzogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1tb2JpbGVtcy1oZWFkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6IGBgLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQge1xuICBwcml2YXRlIGNvbmZpZ3NGYWNhZGUgPSBpbmplY3QoQ29uZmlnc0ZhY2FkZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWdzRmFjYWRlLmRhdGEpO1xuICByZWFkb25seSBpc01vYmlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5pbm5lcldpZHRoIDw9IDY0MDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2hvd1djYWdDb25maWcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93U2VhcmNoUGFuZWwgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB1c2VyID0gc2lnbmFsPElIZWFkZXJVc2VyIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGxvY2FsQ29sbGVjdGlvbkNvdW50ID0gc2lnbmFsPG51bWJlcj4oMCk7XG5cbiAgcmVhZG9ubHkgaGVhZGVyQ29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgcmV0dXJuIChjb25maWc/LnRoZW1lIGFzIElIZWFkZXJDb25maWdbJ3RoZW1lJ10pID8/IHt9O1xuICB9KTtcblxuICByZWFkb25seSBpc1djYWdWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNob3dXY2FnQ29uZmlnKCkgJiZcbiAgICAgIHRoaXMuaGVhZGVyQ29uZmlnKCk/LmhlYWRlcj8uc2hvd1djYWdDb25maWcgIT09IGZhbHNlXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaXNTZWFyY2hWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmhlYWRlckNvbmZpZygpPy5oZWFkZXI/LnNob3dTZWFyY2ggIT09IGZhbHNlO1xuICB9KTtcblxuICByZWFkb25seSBpc0xvY2FsQ29sbGVjdGlvblZpc2libGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyQ29uZmlnKCk/LmhlYWRlcj8uc2hvd0xvY2FsQ29sbGVjdGlvbiAhPT0gZmFsc2U7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGlzTGFuZ3VhZ2VTZWxlY3RvclZpc2libGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyQ29uZmlnKCk/LmhlYWRlcj8uc2hvd0xhbmd1YWdlU2VsZWN0b3IgIT09IGZhbHNlO1xuICB9KTtcblxuICByZWFkb25seSBpc1VzZXJBY2NvdW50VmlzaWJsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJDb25maWcoKT8uaGVhZGVyPy5zaG93VXNlckFjY291bnQgIT09IGZhbHNlO1xuICB9KTtcblxuICB0b2dnbGVXY2FnQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1djYWdDb25maWcudXBkYXRlKCh2YWx1ZSkgPT4gIXZhbHVlKTtcbiAgfVxuXG4gIHRvZ2dsZVNlYXJjaFBhbmVsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1NlYXJjaFBhbmVsLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XG4gIH1cblxuICBvbldjYWdDbG9zZUJ1dHRvbkV2ZW50KGNsb3NlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd1djYWdDb25maWcuc2V0KCFjbG9zZWQpO1xuICB9XG5cbiAgb25TZWFyY2hQYW5lbEJ1dHRvbkV2ZW50KG9wZW5lZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd1NlYXJjaFBhbmVsLnNldChvcGVuZWQpO1xuICB9XG5cbiAgcm91dGVUb0xvZ2luKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pO1xuICB9XG5cbiAgcm91dGVUb1VzZXJBY2NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XG4gIH1cblxuICByb3V0ZVRvTG9jYWxDb2xsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL215LWNvbGxlY3Rpb24nXSk7XG4gIH1cblxuICBzZXRVc2VyKHVzZXI6IElIZWFkZXJVc2VyIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudXNlci5zZXQodXNlcik7XG4gIH1cblxuICBzZXRMb2NhbENvbGxlY3Rpb25Db3VudChjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbENvbGxlY3Rpb25Db3VudC5zZXQoY291bnQpO1xuICB9XG5cbiAgZ2V0VXNlcigpOiBJSGVhZGVyVXNlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnVzZXIoKTtcbiAgfVxuXG4gIGdldExvY2FsQ29sbGVjdGlvbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxDb2xsZWN0aW9uQ291bnQoKTtcbiAgfVxuXG4gIHVwZGF0ZUNvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoIWN1cnJlbnQpIHJldHVybjtcbiAgfVxufVxuIl19","import { isPlatformBrowser, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, inject, input, PLATFORM_ID } from '@angular/core';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport * as i0 from \"@angular/core\";\nexport class MenuComponent {\n constructor() {\n this.configsFacade = inject(ConfigsFacade);\n this.router = inject(Router);\n this.platformId = inject(PLATFORM_ID);\n this.menuItems = input([], ...(ngDevMode ? [{ debugName: \"menuItems\" }] : []));\n this.searchEnabled = input(false, ...(ngDevMode ? [{ debugName: \"searchEnabled\" }] : []));\n this.config = computed(() => this.configsFacade.data, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.menuConfig = computed(() => {\n const config = this.config();\n return config?.theme ?? {};\n }, ...(ngDevMode ? [{ debugName: \"menuConfig\" }] : []));\n this.mobileBreakpoint = computed(() => {\n return this.menuConfig()?.menu?.mobileBreakpoint ?? 960;\n }, ...(ngDevMode ? [{ debugName: \"mobileBreakpoint\" }] : []));\n this.isMobileMenu = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n return (typeof window !== 'undefined' &&\n window.innerWidth <= this.mobileBreakpoint());\n }, ...(ngDevMode ? [{ debugName: \"isMobileMenu\" }] : []));\n this._menuOpenState = false;\n }\n toggleMenu() {\n this._menuOpenState = !this._menuOpenState;\n }\n closeMenu() {\n this._menuOpenState = false;\n }\n isOpened() {\n return this._menuOpenState;\n }\n isRouteActive(route) {\n return this.router.isActive(route, {\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'ignored',\n matrixParams: 'ignored',\n });\n }\n getMenuItemTitle(item) {\n if (item.title) {\n return item.title;\n }\n return this.isRouteActive(item.route)\n ? `${item.label} (active)`\n : item.label;\n }\n getMenuItemAriaLabel(item) {\n if (item.ariaLabel) {\n return item.ariaLabel;\n }\n return this.isRouteActive(item.route)\n ? `${item.label} - Current page`\n : item.label;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: MenuComponent, isStandalone: true, selector: \"smart-mobilems-menu\", inputs: { menuItems: { classPropertyName: \"menuItems\", publicName: \"menuItems\", isSignal: true, isRequired: false, transformFunction: null }, searchEnabled: { classPropertyName: \"searchEnabled\", publicName: \"searchEnabled\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"@if (!searchEnabled()) {\\n <h2 class=\\\"smart-sr-only\\\">Main Menu</h2>\\n\\n @if (isMobileMenu()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-py-[1.2rem]\\\"\\n [ngClass]=\\\"isOpened() ? '' : ''\\\"\\n role=\\\"navigation\\\"\\n attr.aria-label=\\\"Main Menu\\\"\\n >\\n <button\\n class=\\\"smart-h-[3.6rem] smart-relative smart-bg-transparent smart-border-0 smart-left-0 smart-flex smart-flex-row smart-items-center smart-text-[1.8rem] smart-font-bold smart-cursor-pointer\\\"\\n (click)=\\\"toggleMenu()\\\"\\n attr.aria-expanded=\\\"{{ isOpened() }}\\\"\\n attr.aria-label=\\\"{{ isOpened() ? 'Close menu' : 'Open menu' }}\\\"\\n >\\n @if (!isOpened()) {\\n <span\\n class=\\\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\\\"\\n >menu</span\\n >\\n } @else {\\n <span\\n class=\\\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\\\"\\n >close</span\\n >\\n }\\n </button>\\n </div>\\n }\\n\\n @if (!isMobileMenu()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-h-full smart-p-0\\\"\\n role=\\\"navigation\\\"\\n attr.aria-label=\\\"Main Menu\\\"\\n >\\n <div role=\\\"menubar\\\">\\n <ng-container *ngTemplateOutlet=\\\"menuTemplate\\\"></ng-container>\\n </div>\\n </div>\\n }\\n\\n @if (isMobileMenu() && isOpened()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-center smart-h-full smart-p-0 smart-border smart-border-[#f3f3f3] smart-bg-[#fefefe] smart-mb-[2.4rem] smart-shadow-[0_0.6rem_1.2rem_#efefef] smart-p-[1.2rem]\\\"\\n >\\n <div role=\\\"navigation\\\" aria-label=\\\"Main\\\">\\n <ng-container *ngTemplateOutlet=\\\"menuTemplate\\\"></ng-container>\\n </div>\\n </div>\\n }\\n}\\n\\n<ng-template #menuTemplate>\\n <ul\\n id=\\\"main-menu\\\"\\n role=\\\"menu\\\"\\n class=\\\"smart-h-full smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-flex-nowrap smart-list-none smart-p-0 smart-m-0 smart-gap-x-[0.3rem]\\\"\\n [ngClass]=\\\"\\n isMobileMenu()\\n ? 'smart-flex-wrap smart-justify-center smart-p-[1.2rem] smart-m-0'\\n : ''\\n \\\"\\n >\\n @for (item of menuItems(); track item.route) {\\n <li\\n class=\\\"smart-inline-flex smart-relative smart-w-auto smart-m-0\\\"\\n [ngClass]=\\\"isMobileMenu() ? 'smart-w-full smart-max-w-full' : ''\\\"\\n >\\n <a\\n class=\\\"smart-flex smart-items-center smart-flex-nowrap smart-text-black smart-transition-[border] smart-ease-in-out smart-duration-500 smart-border-b-[0.6rem] smart-border-b-transparent smart-cursor-pointer smart-justify-center smart-h-full smart-w-full smart-py-[1.2rem] smart-px-[1.8rem] smart-text-[1.6rem] smart-font-medium smart-whitespace-nowrap smart-m-0 smart-no-underline hover:smart-text-black hover:smart-bg-transparent hover:smart-border-b-[0.6rem] hover:smart-border-b-black\\\"\\n role=\\\"menuitem\\\"\\n [routerLink]=\\\"[item.route]\\\"\\n routerLinkActive=\\\"smart-cursor-default smart-text-black smart-bg-transparent smart-border-b-[0.6rem] smart-border-b-black\\\"\\n (click)=\\\"closeMenu()\\\"\\n [attr.title]=\\\"getMenuItemTitle(item)\\\"\\n [attr.aria-label]=\\\"getMenuItemAriaLabel(item)\\\"\\n >\\n @if (item.icon) {\\n <span\\n class=\\\"smart-text-[2.2rem] smart-mr-[0.4rem] smart-material-icons\\\"\\n >{{ item.icon }}</span\\n >\\n }\\n <span class=\\\"smart-inline-block\\\">{{ item.label }}</span>\\n </a>\\n </li>\\n }\\n </ul>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-mobilems-menu', standalone: true, imports: [NgClass, NgTemplateOutlet, RouterLink, RouterLinkActive], template: \"@if (!searchEnabled()) {\\n <h2 class=\\\"smart-sr-only\\\">Main Menu</h2>\\n\\n @if (isMobileMenu()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-py-[1.2rem]\\\"\\n [ngClass]=\\\"isOpened() ? '' : ''\\\"\\n role=\\\"navigation\\\"\\n attr.aria-label=\\\"Main Menu\\\"\\n >\\n <button\\n class=\\\"smart-h-[3.6rem] smart-relative smart-bg-transparent smart-border-0 smart-left-0 smart-flex smart-flex-row smart-items-center smart-text-[1.8rem] smart-font-bold smart-cursor-pointer\\\"\\n (click)=\\\"toggleMenu()\\\"\\n attr.aria-expanded=\\\"{{ isOpened() }}\\\"\\n attr.aria-label=\\\"{{ isOpened() ? 'Close menu' : 'Open menu' }}\\\"\\n >\\n @if (!isOpened()) {\\n <span\\n class=\\\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\\\"\\n >menu</span\\n >\\n } @else {\\n <span\\n class=\\\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\\\"\\n >close</span\\n >\\n }\\n </button>\\n </div>\\n }\\n\\n @if (!isMobileMenu()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-h-full smart-p-0\\\"\\n role=\\\"navigation\\\"\\n attr.aria-label=\\\"Main Menu\\\"\\n >\\n <div role=\\\"menubar\\\">\\n <ng-container *ngTemplateOutlet=\\\"menuTemplate\\\"></ng-container>\\n </div>\\n </div>\\n }\\n\\n @if (isMobileMenu() && isOpened()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-center smart-h-full smart-p-0 smart-border smart-border-[#f3f3f3] smart-bg-[#fefefe] smart-mb-[2.4rem] smart-shadow-[0_0.6rem_1.2rem_#efefef] smart-p-[1.2rem]\\\"\\n >\\n <div role=\\\"navigation\\\" aria-label=\\\"Main\\\">\\n <ng-container *ngTemplateOutlet=\\\"menuTemplate\\\"></ng-container>\\n </div>\\n </div>\\n }\\n}\\n\\n<ng-template #menuTemplate>\\n <ul\\n id=\\\"main-menu\\\"\\n role=\\\"menu\\\"\\n class=\\\"smart-h-full smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-flex-nowrap smart-list-none smart-p-0 smart-m-0 smart-gap-x-[0.3rem]\\\"\\n [ngClass]=\\\"\\n isMobileMenu()\\n ? 'smart-flex-wrap smart-justify-center smart-p-[1.2rem] smart-m-0'\\n : ''\\n \\\"\\n >\\n @for (item of menuItems(); track item.route) {\\n <li\\n class=\\\"smart-inline-flex smart-relative smart-w-auto smart-m-0\\\"\\n [ngClass]=\\\"isMobileMenu() ? 'smart-w-full smart-max-w-full' : ''\\\"\\n >\\n <a\\n class=\\\"smart-flex smart-items-center smart-flex-nowrap smart-text-black smart-transition-[border] smart-ease-in-out smart-duration-500 smart-border-b-[0.6rem] smart-border-b-transparent smart-cursor-pointer smart-justify-center smart-h-full smart-w-full smart-py-[1.2rem] smart-px-[1.8rem] smart-text-[1.6rem] smart-font-medium smart-whitespace-nowrap smart-m-0 smart-no-underline hover:smart-text-black hover:smart-bg-transparent hover:smart-border-b-[0.6rem] hover:smart-border-b-black\\\"\\n role=\\\"menuitem\\\"\\n [routerLink]=\\\"[item.route]\\\"\\n routerLinkActive=\\\"smart-cursor-default smart-text-black smart-bg-transparent smart-border-b-[0.6rem] smart-border-b-black\\\"\\n (click)=\\\"closeMenu()\\\"\\n [attr.title]=\\\"getMenuItemTitle(item)\\\"\\n [attr.aria-label]=\\\"getMenuItemAriaLabel(item)\\\"\\n >\\n @if (item.icon) {\\n <span\\n class=\\\"smart-text-[2.2rem] smart-mr-[0.4rem] smart-material-icons\\\"\\n >{{ item.icon }}</span\\n >\\n }\\n <span class=\\\"smart-inline-block\\\">{{ item.label }}</span>\\n </a>\\n </li>\\n }\\n </ul>\\n</ng-template>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQXlCNUQsTUFBTSxPQUFPLGFBQWE7SUFOMUI7UUFPVSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEMsY0FBUyxHQUFHLEtBQUssQ0FBYyxFQUFFLHFEQUFDLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxLQUFLLENBQVUsS0FBSyx5REFBQyxDQUFDO1FBRXRDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGtEQUFDLENBQUM7UUFFakQsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE9BQVEsTUFBTSxFQUFFLEtBQThCLElBQUksRUFBRSxDQUFDO1FBQ3ZELENBQUMsc0RBQUMsQ0FBQztRQUVNLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixJQUFJLEdBQUcsQ0FBQztRQUMxRCxDQUFDLDREQUFDLENBQUM7UUFFTSxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxPQUFPLENBQ0wsT0FBTyxNQUFNLEtBQUssV0FBVztnQkFDN0IsTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDN0MsQ0FBQztRQUNKLENBQUMsd0RBQUMsQ0FBQztRQUVLLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0tBd0NoQztJQXRDQyxVQUFVO1FBQ1IsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDakMsS0FBSyxFQUFFLE9BQU87WUFDZCxXQUFXLEVBQUUsT0FBTztZQUNwQixRQUFRLEVBQUUsU0FBUztZQUNuQixZQUFZLEVBQUUsU0FBUztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBZTtRQUM5QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbkMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssV0FBVztZQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBZTtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLGlCQUFpQjtZQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQXBFVSxhQUFhO2tHQUFiLGFBQWEsK1dDN0IxQiw2cEhBMkZBLDRDRGpFWSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxVQUFVLG9PQUFFLGdCQUFnQjs7MkZBR3RELGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ29uZmlnc0ZhY2FkZSB9IGZyb20gJy4uLy4uLytzdGF0ZS9jb25maWdzLmZhY2FkZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lbnVJdGVtIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgcm91dGU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGFyaWFMYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWVudUNvbmZpZyB7XG4gIHRoZW1lPzoge1xuICAgIG1lbnU/OiB7XG4gICAgICBlbmFibGVkPzogYm9vbGVhbjtcbiAgICAgIG1vYmlsZUJyZWFrcG9pbnQ/OiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtbW9iaWxlbXMtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0LCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBjb25maWdzRmFjYWRlID0gaW5qZWN0KENvbmZpZ3NGYWNhZGUpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gIHJlYWRvbmx5IG1lbnVJdGVtcyA9IGlucHV0PElNZW51SXRlbVtdPihbXSk7XG4gIHJlYWRvbmx5IHNlYXJjaEVuYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWdzRmFjYWRlLmRhdGEpO1xuXG4gIHJlYWRvbmx5IG1lbnVDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcoKTtcbiAgICByZXR1cm4gKGNvbmZpZz8udGhlbWUgYXMgSU1lbnVDb25maWdbJ3RoZW1lJ10pID8/IHt9O1xuICB9KTtcblxuICByZWFkb25seSBtb2JpbGVCcmVha3BvaW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb25maWcoKT8ubWVudT8ubW9iaWxlQnJlYWtwb2ludCA/PyA5NjA7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGlzTW9iaWxlTWVudSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICB3aW5kb3cuaW5uZXJXaWR0aCA8PSB0aGlzLm1vYmlsZUJyZWFrcG9pbnQoKVxuICAgICk7XG4gIH0pO1xuXG4gIHByaXZhdGUgX21lbnVPcGVuU3RhdGUgPSBmYWxzZTtcblxuICB0b2dnbGVNZW51KCk6IHZvaWQge1xuICAgIHRoaXMuX21lbnVPcGVuU3RhdGUgPSAhdGhpcy5fbWVudU9wZW5TdGF0ZTtcbiAgfVxuXG4gIGNsb3NlTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZW51T3BlblN0YXRlID0gZmFsc2U7XG4gIH1cblxuICBpc09wZW5lZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVudU9wZW5TdGF0ZTtcbiAgfVxuXG4gIGlzUm91dGVBY3RpdmUocm91dGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5pc0FjdGl2ZShyb3V0ZSwge1xuICAgICAgcGF0aHM6ICdleGFjdCcsXG4gICAgICBxdWVyeVBhcmFtczogJ2V4YWN0JyxcbiAgICAgIGZyYWdtZW50OiAnaWdub3JlZCcsXG4gICAgICBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldE1lbnVJdGVtVGl0bGUoaXRlbTogSU1lbnVJdGVtKTogc3RyaW5nIHtcbiAgICBpZiAoaXRlbS50aXRsZSkge1xuICAgICAgcmV0dXJuIGl0ZW0udGl0bGU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzUm91dGVBY3RpdmUoaXRlbS5yb3V0ZSlcbiAgICAgID8gYCR7aXRlbS5sYWJlbH0gKGFjdGl2ZSlgXG4gICAgICA6IGl0ZW0ubGFiZWw7XG4gIH1cblxuICBnZXRNZW51SXRlbUFyaWFMYWJlbChpdGVtOiBJTWVudUl0ZW0pOiBzdHJpbmcge1xuICAgIGlmIChpdGVtLmFyaWFMYWJlbCkge1xuICAgICAgcmV0dXJuIGl0ZW0uYXJpYUxhYmVsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pc1JvdXRlQWN0aXZlKGl0ZW0ucm91dGUpXG4gICAgICA/IGAke2l0ZW0ubGFiZWx9IC0gQ3VycmVudCBwYWdlYFxuICAgICAgOiBpdGVtLmxhYmVsO1xuICB9XG59XG4iLCJAaWYgKCFzZWFyY2hFbmFibGVkKCkpIHtcbiAgPGgyIGNsYXNzPVwic21hcnQtc3Itb25seVwiPk1haW4gTWVudTwvaDI+XG5cbiAgQGlmIChpc01vYmlsZU1lbnUoKSkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic21hcnQtdy1mdWxsIHNtYXJ0LWZsZXggc21hcnQtZmxleC1yb3cgc21hcnQtanVzdGlmeS1lbmQgc21hcnQtaXRlbXMtc3RyZXRjaCBzbWFydC1weS1bMS4ycmVtXVwiXG4gICAgICBbbmdDbGFzc109XCJpc09wZW5lZCgpID8gJycgOiAnJ1wiXG4gICAgICByb2xlPVwibmF2aWdhdGlvblwiXG4gICAgICBhdHRyLmFyaWEtbGFiZWw9XCJNYWluIE1lbnVcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzbWFydC1oLVszLjZyZW1dIHNtYXJ0LXJlbGF0aXZlIHNtYXJ0LWJnLXRyYW5zcGFyZW50IHNtYXJ0LWJvcmRlci0wIHNtYXJ0LWxlZnQtMCBzbWFydC1mbGV4IHNtYXJ0LWZsZXgtcm93IHNtYXJ0LWl0ZW1zLWNlbnRlciBzbWFydC10ZXh0LVsxLjhyZW1dIHNtYXJ0LWZvbnQtYm9sZCBzbWFydC1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVNZW51KClcIlxuICAgICAgICBhdHRyLmFyaWEtZXhwYW5kZWQ9XCJ7eyBpc09wZW5lZCgpIH19XCJcbiAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgaXNPcGVuZWQoKSA/ICdDbG9zZSBtZW51JyA6ICdPcGVuIG1lbnUnIH19XCJcbiAgICAgID5cbiAgICAgICAgQGlmICghaXNPcGVuZWQoKSkge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNtYXJ0LXRleHQtWzNyZW1dIHNtYXJ0LXRleHQtYmxhY2sgc21hcnQtbXItWzAuNnJlbV0gc21hcnQtbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgICAgPm1lbnU8L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNtYXJ0LXRleHQtWzNyZW1dIHNtYXJ0LXRleHQtYmxhY2sgc21hcnQtbXItWzAuNnJlbV0gc21hcnQtbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgICAgPmNsb3NlPC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoIWlzTW9iaWxlTWVudSgpKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzbWFydC13LWZ1bGwgc21hcnQtZmxleCBzbWFydC1mbGV4LXJvdyBzbWFydC1qdXN0aWZ5LWVuZCBzbWFydC1oLWZ1bGwgc21hcnQtcC0wXCJcbiAgICAgIHJvbGU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgIGF0dHIuYXJpYS1sYWJlbD1cIk1haW4gTWVudVwiXG4gICAgPlxuICAgICAgPGRpdiByb2xlPVwibWVudWJhclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVudVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoaXNNb2JpbGVNZW51KCkgJiYgaXNPcGVuZWQoKSkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic21hcnQtdy1mdWxsIHNtYXJ0LWZsZXggc21hcnQtZmxleC1yb3cgc21hcnQtanVzdGlmeS1jZW50ZXIgc21hcnQtaC1mdWxsIHNtYXJ0LXAtMCBzbWFydC1ib3JkZXIgc21hcnQtYm9yZGVyLVsjZjNmM2YzXSBzbWFydC1iZy1bI2ZlZmVmZV0gc21hcnQtbWItWzIuNHJlbV0gc21hcnQtc2hhZG93LVswXzAuNnJlbV8xLjJyZW1fI2VmZWZlZl0gc21hcnQtcC1bMS4ycmVtXVwiXG4gICAgPlxuICAgICAgPGRpdiByb2xlPVwibmF2aWdhdGlvblwiIGFyaWEtbGFiZWw9XCJNYWluXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG59XG5cbjxuZy10ZW1wbGF0ZSAjbWVudVRlbXBsYXRlPlxuICA8dWxcbiAgICBpZD1cIm1haW4tbWVudVwiXG4gICAgcm9sZT1cIm1lbnVcIlxuICAgIGNsYXNzPVwic21hcnQtaC1mdWxsIHNtYXJ0LXctZnVsbCBzbWFydC1mbGV4IHNtYXJ0LWZsZXgtcm93IHNtYXJ0LWp1c3RpZnktZW5kIHNtYXJ0LWl0ZW1zLXN0cmV0Y2ggc21hcnQtZmxleC1ub3dyYXAgc21hcnQtbGlzdC1ub25lIHNtYXJ0LXAtMCBzbWFydC1tLTAgc21hcnQtZ2FwLXgtWzAuM3JlbV1cIlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgaXNNb2JpbGVNZW51KClcbiAgICAgICAgPyAnc21hcnQtZmxleC13cmFwIHNtYXJ0LWp1c3RpZnktY2VudGVyIHNtYXJ0LXAtWzEuMnJlbV0gc21hcnQtbS0wJ1xuICAgICAgICA6ICcnXG4gICAgXCJcbiAgPlxuICAgIEBmb3IgKGl0ZW0gb2YgbWVudUl0ZW1zKCk7IHRyYWNrIGl0ZW0ucm91dGUpIHtcbiAgICAgIDxsaVxuICAgICAgICBjbGFzcz1cInNtYXJ0LWlubGluZS1mbGV4IHNtYXJ0LXJlbGF0aXZlIHNtYXJ0LXctYXV0byBzbWFydC1tLTBcIlxuICAgICAgICBbbmdDbGFzc109XCJpc01vYmlsZU1lbnUoKSA/ICdzbWFydC13LWZ1bGwgc21hcnQtbWF4LXctZnVsbCcgOiAnJ1wiXG4gICAgICA+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJzbWFydC1mbGV4IHNtYXJ0LWl0ZW1zLWNlbnRlciBzbWFydC1mbGV4LW5vd3JhcCBzbWFydC10ZXh0LWJsYWNrIHNtYXJ0LXRyYW5zaXRpb24tW2JvcmRlcl0gc21hcnQtZWFzZS1pbi1vdXQgc21hcnQtZHVyYXRpb24tNTAwIHNtYXJ0LWJvcmRlci1iLVswLjZyZW1dIHNtYXJ0LWJvcmRlci1iLXRyYW5zcGFyZW50IHNtYXJ0LWN1cnNvci1wb2ludGVyIHNtYXJ0LWp1c3RpZnktY2VudGVyIHNtYXJ0LWgtZnVsbCBzbWFydC13LWZ1bGwgc21hcnQtcHktWzEuMnJlbV0gc21hcnQtcHgtWzEuOHJlbV0gc21hcnQtdGV4dC1bMS42cmVtXSBzbWFydC1mb250LW1lZGl1bSBzbWFydC13aGl0ZXNwYWNlLW5vd3JhcCBzbWFydC1tLTAgc21hcnQtbm8tdW5kZXJsaW5lIGhvdmVyOnNtYXJ0LXRleHQtYmxhY2sgaG92ZXI6c21hcnQtYmctdHJhbnNwYXJlbnQgaG92ZXI6c21hcnQtYm9yZGVyLWItWzAuNnJlbV0gaG92ZXI6c21hcnQtYm9yZGVyLWItYmxhY2tcIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiW2l0ZW0ucm91dGVdXCJcbiAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwic21hcnQtY3Vyc29yLWRlZmF1bHQgc21hcnQtdGV4dC1ibGFjayBzbWFydC1iZy10cmFuc3BhcmVudCBzbWFydC1ib3JkZXItYi1bMC42cmVtXSBzbWFydC1ib3JkZXItYi1ibGFja1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlTWVudSgpXCJcbiAgICAgICAgICBbYXR0ci50aXRsZV09XCJnZXRNZW51SXRlbVRpdGxlKGl0ZW0pXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldE1lbnVJdGVtQXJpYUxhYmVsKGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInNtYXJ0LXRleHQtWzIuMnJlbV0gc21hcnQtbXItWzAuNHJlbV0gc21hcnQtbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgICAgICA+e3sgaXRlbS5pY29uIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic21hcnQtaW5saW5lLWJsb2NrXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9saT5cbiAgICB9XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19","import { AppComponent } from './app/app.component';\nexport * from './app/app.component';\nexport * from './page/page.component';\nexport * from './filters/filters.component';\nexport * from './scroll-top/scroll-top.component';\nexport * from '../services/modal/modal-container.component';\nexport * from './footer';\nexport * from './header';\nexport * from './menu';\nexport const COMPONENTS = [AppComponent];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFFBQVEsQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwL2FwcC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2FwcC9hcHAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS9wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtdG9wL3Njcm9sbC10b3AuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4uL3NlcnZpY2VzL21vZGFsL21vZGFsLWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb290ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51JztcblxuZXhwb3J0IGNvbnN0IENPTVBPTkVOVFMgPSBbQXBwQ29tcG9uZW50XTtcbiJdfQ==","import { Directive, HostListener, inject, ElementRef } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Directive that adds a \"hover\" CSS class to the host element on mouse enter\n * and removes it on mouse leave.\n *\n * @example\n * ```html\n * <div smartHover>Hover me</div>\n * ```\n */\nexport class HoverDirective {\n constructor() {\n this.el = inject(ElementRef);\n }\n /**\n * Adds the \"hover\" class when the mouse enters the element\n */\n onMouseEnter() {\n this.el.nativeElement.classList.add('hover');\n }\n /**\n * Removes the \"hover\" class when the mouse leaves the element\n */\n onMouseLeave() {\n this.el.nativeElement.classList.remove('hover');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: HoverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.0\", type: HoverDirective, isStandalone: true, selector: \"[smartHover]\", host: { listeners: { \"mouseenter\": \"onMouseEnter()\", \"mouseleave\": \"onMouseLeave()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: HoverDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[smartHover]',\n standalone: true,\n }]\n }], propDecorators: { onMouseEnter: [{\n type: HostListener,\n args: ['mouseenter']\n }], onMouseLeave: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2hvdmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU1RTs7Ozs7Ozs7R0FRRztBQUtILE1BQU0sT0FBTyxjQUFjO0lBSjNCO1FBS21CLE9BQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FpQjFDO0lBZkM7O09BRUc7SUFFSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFFSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDOzhHQWpCVSxjQUFjO2tHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBSjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFRQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFTMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgYWRkcyBhIFwiaG92ZXJcIiBDU1MgY2xhc3MgdG8gdGhlIGhvc3QgZWxlbWVudCBvbiBtb3VzZSBlbnRlclxuICogYW5kIHJlbW92ZXMgaXQgb24gbW91c2UgbGVhdmUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxkaXYgc21hcnRIb3Zlcj5Ib3ZlciBtZTwvZGl2PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzbWFydEhvdmVyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEhvdmVyRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbCA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAvKipcbiAgICogQWRkcyB0aGUgXCJob3ZlclwiIGNsYXNzIHdoZW4gdGhlIG1vdXNlIGVudGVycyB0aGUgZWxlbWVudFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBcImhvdmVyXCIgY2xhc3Mgd2hlbiB0aGUgbW91c2UgbGVhdmVzIHRoZSBlbGVtZW50XG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdob3ZlcicpO1xuICB9XG59XG4iXX0=","import { Directive, input, inject, ElementRef, signal, effect, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Directive that provides programmatic scrolling and overflow detection\n * for horizontally or vertically scrollable containers.\n *\n * @example\n * ```html\n * <div smartScrollable [scrollUnit]=\"200\" #scroll=\"smartScrollable\">\n * <!-- scrollable content -->\n * </div>\n * <button (click)=\"scroll.scrollHorizontal(1)\" [disabled]=\"!scroll.canScrollEndHorizontal\">\n * Next →\n * </button>\n * ```\n */\nexport class ScrollableDirective {\n constructor() {\n this.el = inject(ElementRef);\n /**\n * The number of pixels to scroll per unit when using scroll methods.\n * Can be updated dynamically to change scroll behavior.\n */\n this.scrollUnit = input.required(...(ngDevMode ? [{ debugName: \"scrollUnit\" }] : []));\n /** Indicates if the container can scroll further to the right */\n this.canScrollEndHorizontal = signal(false, ...(ngDevMode ? [{ debugName: \"canScrollEndHorizontal\" }] : []));\n /** Indicates if the container can scroll further to the left */\n this.canScrollStartHorizontal = signal(false, ...(ngDevMode ? [{ debugName: \"canScrollStartHorizontal\" }] : []));\n /** Indicates if the container can scroll further down */\n this.canScrollEndVertical = signal(false, ...(ngDevMode ? [{ debugName: \"canScrollEndVertical\" }] : []));\n /** Indicates if the container can scroll further up */\n this.canScrollStartVertical = signal(false, ...(ngDevMode ? [{ debugName: \"canScrollStartVertical\" }] : []));\n /** Current horizontal scroll position */\n this.scrollLeftPosition = signal(0, ...(ngDevMode ? [{ debugName: \"scrollLeftPosition\" }] : []));\n /** Current vertical scroll position */\n this.scrollTopPosition = signal(0, ...(ngDevMode ? [{ debugName: \"scrollTopPosition\" }] : []));\n // Update overflow detection when scrollUnit changes\n effect(() => {\n this.scrollUnit();\n this.updateOverflow();\n });\n }\n ngOnInit() {\n this.updateOverflow();\n this.addScrollListener();\n this.addResizeListener();\n }\n /**\n * Scrolls the container horizontally by the specified number of units.\n * @param units Number of scroll units (can be negative for backward scroll)\n */\n scrollHorizontal(units) {\n const element = this.el.nativeElement;\n const scrollAmount = units * this.scrollUnit();\n element.scrollLeft += scrollAmount;\n this.updateOverflow();\n }\n /**\n * Scrolls the container vertically by the specified number of units.\n * @param units Number of scroll units (can be negative for upward scroll)\n */\n scrollVertical(units) {\n const element = this.el.nativeElement;\n const scrollAmount = units * this.scrollUnit();\n element.scrollTop += scrollAmount;\n this.updateOverflow();\n }\n /**\n * Updates all overflow detection signals based on current scroll position\n */\n updateOverflow() {\n const element = this.el.nativeElement;\n // Horizontal overflow detection\n const scrollLeft = element.scrollLeft;\n const scrollWidth = element.scrollWidth;\n const clientWidth = element.clientWidth;\n this.scrollLeftPosition.set(scrollLeft);\n this.canScrollStartHorizontal.set(scrollLeft > 0);\n this.canScrollEndHorizontal.set(scrollLeft + clientWidth < scrollWidth);\n // Vertical overflow detection\n const scrollTop = element.scrollTop;\n const scrollHeight = element.scrollHeight;\n const clientHeight = element.clientHeight;\n this.scrollTopPosition.set(scrollTop);\n this.canScrollStartVertical.set(scrollTop > 0);\n this.canScrollEndVertical.set(scrollTop + clientHeight < scrollHeight);\n }\n /**\n * Adds scroll event listener to track scroll position changes\n */\n addScrollListener() {\n this.el.nativeElement.addEventListener('scroll', () => {\n this.updateOverflow();\n });\n }\n /**\n * Adds window resize listener to recalculate overflow on resize\n */\n addResizeListener() {\n window.addEventListener('resize', () => {\n this.updateOverflow();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ScrollableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.0\", type: ScrollableDirective, isStandalone: true, selector: \"[smartScrollable]\", inputs: { scrollUnit: { classPropertyName: \"scrollUnit\", publicName: \"scrollUnit\", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: [\"smartScrollable\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ScrollableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[smartScrollable]',\n standalone: true,\n exportAs: 'smartScrollable',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvc2Nyb2xsYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFFVixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBTUgsTUFBTSxPQUFPLG1CQUFtQjtJQTJCOUI7UUExQmlCLE9BQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekM7OztXQUdHO1FBQ00sZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLHFEQUFVLENBQUM7UUFFL0MsaUVBQWlFO1FBQ2pFLDJCQUFzQixHQUFHLE1BQU0sQ0FBVSxLQUFLLGtFQUFDLENBQUM7UUFFaEQsZ0VBQWdFO1FBQ2hFLDZCQUF3QixHQUFHLE1BQU0sQ0FBVSxLQUFLLG9FQUFDLENBQUM7UUFFbEQseURBQXlEO1FBQ3pELHlCQUFvQixHQUFHLE1BQU0sQ0FBVSxLQUFLLGdFQUFDLENBQUM7UUFFOUMsdURBQXVEO1FBQ3ZELDJCQUFzQixHQUFHLE1BQU0sQ0FBVSxLQUFLLGtFQUFDLENBQUM7UUFFaEQseUNBQXlDO1FBQ3pDLHVCQUFrQixHQUFHLE1BQU0sQ0FBUyxDQUFDLDhEQUFDLENBQUM7UUFFdkMsdUNBQXVDO1FBQ3ZDLHNCQUFpQixHQUFHLE1BQU0sQ0FBUyxDQUFDLDZEQUFDLENBQUM7UUFHcEMsb0RBQW9EO1FBQ3BELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxPQUFPLENBQUMsVUFBVSxJQUFJLFlBQVksQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxLQUFhO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFFdEMsZ0NBQWdDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDdEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN4QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBRXhDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBRXhFLDhCQUE4QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3BDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDMUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUUxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F4R1UsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBpbnB1dCxcbiAgaW5qZWN0LFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbiAgZWZmZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCBwcm92aWRlcyBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nIGFuZCBvdmVyZmxvdyBkZXRlY3Rpb25cbiAqIGZvciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzY3JvbGxhYmxlIGNvbnRhaW5lcnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxkaXYgc21hcnRTY3JvbGxhYmxlIFtzY3JvbGxVbml0XT1cIjIwMFwiICNzY3JvbGw9XCJzbWFydFNjcm9sbGFibGVcIj5cbiAqICAgPCEtLSBzY3JvbGxhYmxlIGNvbnRlbnQgLS0+XG4gKiA8L2Rpdj5cbiAqIDxidXR0b24gKGNsaWNrKT1cInNjcm9sbC5zY3JvbGxIb3Jpem9udGFsKDEpXCIgW2Rpc2FibGVkXT1cIiFzY3JvbGwuY2FuU2Nyb2xsRW5kSG9yaXpvbnRhbFwiPlxuICogICBOZXh0IOKGklxuICogPC9idXR0b24+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NtYXJ0U2Nyb2xsYWJsZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ3NtYXJ0U2Nyb2xsYWJsZScsXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbGFibGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHBpeGVscyB0byBzY3JvbGwgcGVyIHVuaXQgd2hlbiB1c2luZyBzY3JvbGwgbWV0aG9kcy5cbiAgICogQ2FuIGJlIHVwZGF0ZWQgZHluYW1pY2FsbHkgdG8gY2hhbmdlIHNjcm9sbCBiZWhhdmlvci5cbiAgICovXG4gIHJlYWRvbmx5IHNjcm9sbFVuaXQgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG5cbiAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29udGFpbmVyIGNhbiBzY3JvbGwgZnVydGhlciB0byB0aGUgcmlnaHQgKi9cbiAgY2FuU2Nyb2xsRW5kSG9yaXpvbnRhbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29udGFpbmVyIGNhbiBzY3JvbGwgZnVydGhlciB0byB0aGUgbGVmdCAqL1xuICBjYW5TY3JvbGxTdGFydEhvcml6b250YWwgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRhaW5lciBjYW4gc2Nyb2xsIGZ1cnRoZXIgZG93biAqL1xuICBjYW5TY3JvbGxFbmRWZXJ0aWNhbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29udGFpbmVyIGNhbiBzY3JvbGwgZnVydGhlciB1cCAqL1xuICBjYW5TY3JvbGxTdGFydFZlcnRpY2FsID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiogQ3VycmVudCBob3Jpem9udGFsIHNjcm9sbCBwb3NpdGlvbiAqL1xuICBzY3JvbGxMZWZ0UG9zaXRpb24gPSBzaWduYWw8bnVtYmVyPigwKTtcblxuICAvKiogQ3VycmVudCB2ZXJ0aWNhbCBzY3JvbGwgcG9zaXRpb24gKi9cbiAgc2Nyb2xsVG9wUG9zaXRpb24gPSBzaWduYWw8bnVtYmVyPigwKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBVcGRhdGUgb3ZlcmZsb3cgZGV0ZWN0aW9uIHdoZW4gc2Nyb2xsVW5pdCBjaGFuZ2VzXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuc2Nyb2xsVW5pdCgpO1xuICAgICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICAgIHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICB0aGlzLmFkZFJlc2l6ZUxpc3RlbmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0aGUgY29udGFpbmVyIGhvcml6b250YWxseSBieSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB1bml0cy5cbiAgICogQHBhcmFtIHVuaXRzIE51bWJlciBvZiBzY3JvbGwgdW5pdHMgKGNhbiBiZSBuZWdhdGl2ZSBmb3IgYmFja3dhcmQgc2Nyb2xsKVxuICAgKi9cbiAgc2Nyb2xsSG9yaXpvbnRhbCh1bml0czogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBzY3JvbGxBbW91bnQgPSB1bml0cyAqIHRoaXMuc2Nyb2xsVW5pdCgpO1xuICAgIGVsZW1lbnQuc2Nyb2xsTGVmdCArPSBzY3JvbGxBbW91bnQ7XG4gICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdGhlIGNvbnRhaW5lciB2ZXJ0aWNhbGx5IGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHVuaXRzLlxuICAgKiBAcGFyYW0gdW5pdHMgTnVtYmVyIG9mIHNjcm9sbCB1bml0cyAoY2FuIGJlIG5lZ2F0aXZlIGZvciB1cHdhcmQgc2Nyb2xsKVxuICAgKi9cbiAgc2Nyb2xsVmVydGljYWwodW5pdHM6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsQW1vdW50ID0gdW5pdHMgKiB0aGlzLnNjcm9sbFVuaXQoKTtcbiAgICBlbGVtZW50LnNjcm9sbFRvcCArPSBzY3JvbGxBbW91bnQ7XG4gICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYWxsIG92ZXJmbG93IGRldGVjdGlvbiBzaWduYWxzIGJhc2VkIG9uIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZU92ZXJmbG93KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyBIb3Jpem9udGFsIG92ZXJmbG93IGRldGVjdGlvblxuICAgIGNvbnN0IHNjcm9sbExlZnQgPSBlbGVtZW50LnNjcm9sbExlZnQ7XG4gICAgY29uc3Qgc2Nyb2xsV2lkdGggPSBlbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgIGNvbnN0IGNsaWVudFdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgIHRoaXMuc2Nyb2xsTGVmdFBvc2l0aW9uLnNldChzY3JvbGxMZWZ0KTtcbiAgICB0aGlzLmNhblNjcm9sbFN0YXJ0SG9yaXpvbnRhbC5zZXQoc2Nyb2xsTGVmdCA+IDApO1xuICAgIHRoaXMuY2FuU2Nyb2xsRW5kSG9yaXpvbnRhbC5zZXQoc2Nyb2xsTGVmdCArIGNsaWVudFdpZHRoIDwgc2Nyb2xsV2lkdGgpO1xuXG4gICAgLy8gVmVydGljYWwgb3ZlcmZsb3cgZGV0ZWN0aW9uXG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gZWxlbWVudC5zY3JvbGxUb3A7XG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gZWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3QgY2xpZW50SGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQ7XG5cbiAgICB0aGlzLnNjcm9sbFRvcFBvc2l0aW9uLnNldChzY3JvbGxUb3ApO1xuICAgIHRoaXMuY2FuU2Nyb2xsU3RhcnRWZXJ0aWNhbC5zZXQoc2Nyb2xsVG9wID4gMCk7XG4gICAgdGhpcy5jYW5TY3JvbGxFbmRWZXJ0aWNhbC5zZXQoc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0IDwgc2Nyb2xsSGVpZ2h0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHNjcm9sbCBldmVudCBsaXN0ZW5lciB0byB0cmFjayBzY3JvbGwgcG9zaXRpb24gY2hhbmdlc1xuICAgKi9cbiAgcHJpdmF0ZSBhZGRTY3JvbGxMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgd2luZG93IHJlc2l6ZSBsaXN0ZW5lciB0byByZWNhbGN1bGF0ZSBvdmVyZmxvdyBvbiByZXNpemVcbiAgICovXG4gIHByaXZhdGUgYWRkUmVzaXplTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlT3ZlcmZsb3coKTtcbiAgICB9KTtcbiAgfVxufVxuIl19","export * from './hover.directive';\nexport * from './scrollable.directive';\nexport const DIRECTIVES = [];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hvdmVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbGFibGUuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IERJUkVDVElWRVMgPSBbXTtcbiJdfQ==","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ConfigsFacade } from './+state/configs.facade';\nimport { COMPONENTS } from './components';\nimport { DIRECTIVES } from './directives';\nimport { SharedConfig } from './shared.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./components/app/app.component\";\nfunction initializeApp(configsFacade) {\n return () => {\n setTimeout(() => {\n configsFacade.init().then();\n });\n };\n}\nexport class SharedModule {\n static forFeature(config) {\n return {\n ngModule: SharedModule,\n providers: [\n {\n provide: SharedConfig,\n useValue: config,\n },\n ],\n };\n }\n static forRoot(config) {\n return {\n ngModule: SharedModule,\n providers: [\n {\n provide: SharedConfig,\n useValue: config,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n multi: true,\n deps: [ConfigsFacade],\n },\n ],\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedModule, imports: [RouterModule, i1.AppComponent], exports: [i1.AppComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedModule, imports: [RouterModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [...DIRECTIVES],\n imports: [RouterModule, COMPONENTS],\n exports: [...DIRECTIVES, ...COMPONENTS], // Export our own components instead of SmartSharedModule\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2hhcmVkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFL0MsU0FBUyxhQUFhLENBQUMsYUFBNEI7SUFDakQsT0FBTyxHQUFHLEVBQUU7UUFDVixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQU9ELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBb0I7UUFDcEMsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBb0I7UUFDakMsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixVQUFVLEVBQUUsYUFBYTtvQkFDekIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN0QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OEdBN0JVLFlBQVk7K0dBQVosWUFBWSxZQUhiLFlBQVk7K0dBR1gsWUFBWSxZQUhiLFlBQVk7OzJGQUdYLFlBQVk7a0JBTHhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsVUFBVSxDQUFDLEVBQUUseURBQXlEO2lCQUNuRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IENvbmZpZ3NGYWNhZGUgfSBmcm9tICcuLytzdGF0ZS9jb25maWdzLmZhY2FkZSc7XG5pbXBvcnQgeyBDT01QT05FTlRTIH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IERJUkVDVElWRVMgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU2hhcmVkQ29uZmlnIH0gZnJvbSAnLi9zaGFyZWQuY29uZmlnJztcblxuZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcChjb25maWdzRmFjYWRlOiBDb25maWdzRmFjYWRlKTogKCkgPT4gdm9pZCB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25maWdzRmFjYWRlLmluaXQoKS50aGVuKCk7XG4gICAgfSk7XG4gIH07XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkRJUkVDVElWRVNdLFxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLCBDT01QT05FTlRTXSxcbiAgZXhwb3J0czogWy4uLkRJUkVDVElWRVMsIC4uLkNPTVBPTkVOVFNdLCAvLyBFeHBvcnQgb3VyIG93biBjb21wb25lbnRzIGluc3RlYWQgb2YgU21hcnRTaGFyZWRNb2R1bGVcbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkTW9kdWxlIHtcbiAgc3RhdGljIGZvckZlYXR1cmUoY29uZmlnOiBTaGFyZWRDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNoYXJlZE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogU2hhcmVkTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTaGFyZWRDb25maWcsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogU2hhcmVkQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTaGFyZWRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFNoYXJlZE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU2hhcmVkQ29uZmlnLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgdXNlRmFjdG9yeTogaW5pdGlhbGl6ZUFwcCxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICBkZXBzOiBbQ29uZmlnc0ZhY2FkZV0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","export var ListMode;\n(function (ListMode) {\n ListMode[\"mobile\"] = \"mobile\";\n ListMode[\"desktop\"] = \"desktop\";\n ListMode[\"masonryGrid\"] = \"masonryGrid\";\n ListMode[\"timeline\"] = \"timeline\";\n ListMode[\"map\"] = \"map\";\n})(ListMode || (ListMode = {}));\nexport var GameType;\n(function (GameType) {\n GameType[GameType[\"puzzle\"] = 1] = \"puzzle\";\n GameType[GameType[\"memo\"] = 2] = \"memo\";\n GameType[GameType[\"quiz\"] = 3] = \"quiz\";\n})(GameType || (GameType = {}));\nexport class ImageBox {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLDZCQUFpQixDQUFBO0lBQ2pCLCtCQUFtQixDQUFBO0lBQ25CLHVDQUEyQixDQUFBO0lBQzNCLGlDQUFxQixDQUFBO0lBQ3JCLHVCQUFXLENBQUE7QUFDYixDQUFDLEVBTlcsUUFBUSxLQUFSLFFBQVEsUUFNbkI7QUF3Q0QsTUFBTSxDQUFOLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQiwyQ0FBVSxDQUFBO0lBQ1YsdUNBQVEsQ0FBQTtJQUNSLHVDQUFRLENBQUE7QUFDVixDQUFDLEVBSlcsUUFBUSxLQUFSLFFBQVEsUUFJbkI7QUF1RUQsTUFBTSxPQUFPLFFBQVE7Q0FJcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNc0ZpbGUgfSBmcm9tICdAc21hcnRzb2Z0MDAxLW1vYmlsZW1zL21vZGVscyc7XG5cbmV4cG9ydCBlbnVtIExpc3RNb2RlIHtcbiAgbW9iaWxlID0gJ21vYmlsZScsXG4gIGRlc2t0b3AgPSAnZGVza3RvcCcsXG4gIG1hc29ucnlHcmlkID0gJ21hc29ucnlHcmlkJyxcbiAgdGltZWxpbmUgPSAndGltZWxpbmUnLFxuICBtYXAgPSAnbWFwJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUXVpY2tNZW51IHtcbiAgZWxlbWVudElkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2FtZSB7XG4gIHNjb3JlczogYW55O1xuICBnYW1lVHlwZTogR2FtZVR5cGU7XG4gIGRpZmZpY3VsdHk6IG51bWJlcjtcbiAgcHV6emxlSW1hZ2U6IE1zRmlsZTtcbiAgaW1hZ2U6IE1zRmlsZTtcbiAgaW1hZ2VzOiBJSW1hZ2VzW107XG4gIGNvdmVySW1hZ2U6IE1zRmlsZTtcbiAgcXVlc3Rpb25zPzogSUdhbWVRdWVzdGlvbltdO1xuICBvYmplY3RzOiBhbnlbXTtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBpZDogbnVtYmVyO1xuICBwdWJsaXNoZWQ6IGJvb2xlYW47XG4gIHVzZXJJZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHYW1lUXVlc3Rpb24ge1xuICBxdWVzdGlvbjogc3RyaW5nO1xuICBhbnN3ZXJzOiBJR2FtZUFuc3dlcltdO1xuICBmaWxlPzogTXNGaWxlO1xuICBoaW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdhbWVBbnN3ZXIge1xuICB1c2VyQ2hvaWNlPzogYm9vbGVhbjtcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIGFuc3dlcjogc3RyaW5nO1xuICBjb3JyZWN0OiBib29sZWFuO1xuICBpZD86IG51bWJlcjtcbiAgcG9zaXRpb24/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIEdhbWVUeXBlIHtcbiAgcHV6emxlID0gMSxcbiAgbWVtbyA9IDIsXG4gIHF1aXogPSAzLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYmplY3RHYWxsZXJ5IHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBpdGVtczogSU9iamVjdEdhbGxlcnlJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9iamVjdEdhbGxlcnlJdGVtIHtcbiAgaWQ6IG51bWJlcjtcbiAgcG9zaXRpb246IG51bWJlcjtcbiAgb2JqZWN0OiBJT2JqZWN0R2FsbGVyeVNpbmdsZU9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2JqZWN0R2FsbGVyeVNpbmdsZU9iamVjdCB7XG4gIGlkOiBudW1iZXI7XG4gIGludmVudG9yeU51bWJlcjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG11bHRpbWVkaXVtOiBJU2luZ2xlT2JqZWN0TXVsdGltZWRpYTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2luZ2xlT2JqZWN0TXVsdGltZWRpYSB7XG4gIGFsdFRleHRFbjogc3RyaW5nO1xuICBleHRlbnNpb246IHN0cmluZztcbiAgYWx0VGV4dDogc3RyaW5nO1xuICBmaWxlUGF0aDogc3RyaW5nO1xuICBpZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHYW1lTWVtb0NvbmZpZyB7XG4gIGhlYWRlclN0eWxlOiBzdHJpbmc7XG4gIGJveFN0eWxlOiBzdHJpbmc7XG4gIGhpZGRlbkxhYmVsPzogYm9vbGVhbjtcbiAgYnV0dG9uU3R5bGU/OiBzdHJpbmc7XG4gIGdhbWVOYW1lU3R5bGU/OiBzdHJpbmc7XG4gIHRleHRTdHlsZTogc3RyaW5nO1xuICBtZWRpYUJhc2VVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdhbWVQdXp6bGVDb25maWcge1xuICBoZWFkZXJTdHlsZTogc3RyaW5nO1xuICBib3hTdHlsZTogc3RyaW5nO1xuICBoaWRkZW5MYWJlbDogYm9vbGVhbjtcbiAgc3RhcnRCdXR0b25TdHlsZTogc3RyaW5nO1xuICBnYW1lTmFtZVN0eWxlOiBzdHJpbmc7XG4gIGltYWdlU3R5bGU6IHN0cmluZztcbiAgbm9JbWFnZVBsYWNlaG9sZGVyU3JjOiBzdHJpbmc7XG4gIG1lZGlhQmFzZVVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2FtZVF1aXpDb25maWcge1xuICBoZWFkZXJTdHlsZTogc3RyaW5nO1xuICBib3hTdHlsZTogc3RyaW5nO1xuICBoaWRkZW5MYWJlbDogYm9vbGVhbjtcbiAgYnV0dG9uU3R5bGU6IHN0cmluZztcbiAgZ2FtZU5hbWVTdHlsZTogc3RyaW5nO1xuICBhbnN3ZXJTdHlsZTogc3RyaW5nO1xuICBxdWVzdGlvblN0eWxlOiBzdHJpbmc7XG4gIHRleHRTdHlsZTogc3RyaW5nO1xuICBwcm9ncmVzc1N0eWxlOiBzdHJpbmc7XG4gIGhpbnRTdHlsZTogc3RyaW5nO1xuICBub0ltYWdlUGxhY2Vob2xkZXJTcmM6IHN0cmluZztcbiAgbWVkaWFCYXNlVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUltYWdlcyB7XG4gIGZpbGU6IE1zRmlsZTtcbiAgaWQ6IG51bWJlcjtcbiAgcG9zaXRpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEltYWdlQm94IHtcbiAgeFBvcyE6IHN0cmluZztcbiAgeVBvcyE6IHN0cmluZztcbiAgaW5kZXghOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF1ZGlvIHtcbiAgaW1hZ2U/OiBNc0ZpbGU7XG4gIGF1ZGlvPzogTXNGaWxlO1xuICB0aXRsZTogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZpZGVvIHtcbiAgaW1hZ2U/OiBNc0ZpbGU7XG4gIHZpZGVvPzogTXNGaWxlO1xuICB0aXRsZTogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVycm9yTWVzc2FnZXMge1xuICBsb2dpbkVycm9yTWVzc2FnZT86IHN0cmluZyB8IG51bGw7XG4gIGZvcmdvdFBhc3N3b3JkRXJyb3JNZXNzYWdlPzogRm9yZ290UGFzc3dvcmRFcnJvck1lc3NhZ2UgfCBudWxsO1xuICByZWdpc3RlckVycm9yTWVzc2FnZT86IFJlZ2lzdGVyRXJyb3JNZXNzYWdlIHwgbnVsbDtcbiAgY2hhbmdlUGFzc3dvcmRFcnJvck1lc3NhZ2U/OiBDaGFuZ2VQYXNzd29yZEVycm9yTWVzc2FnZSB8IG51bGw7XG4gIG1vZGlmeVVzZXJFcnJvck1lc3NhZ2U/OiBNb2RpZnlVc2VyRXJyb3JNZXNzYWdlIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VQYXNzd29yZEVycm9yTWVzc2FnZSB7XG4gIGZpcnN0OiBzdHJpbmc7XG4gIHNlY29uZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcmdvdFBhc3N3b3JkRXJyb3JNZXNzYWdlIHtcbiAgdXNlck5vdEZvdW5kOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGlmeVVzZXJFcnJvck1lc3NhZ2Uge1xuICBhdXRoZW50aWNhdGlvbkVycm9yOiB7XG4gICAgZW1haWw/OiBzdHJpbmc7XG4gICAgbG9naW4/OiBzdHJpbmc7XG4gICAgYXZhdGFyPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyRXJyb3JNZXNzYWdlIHtcbiAgZW1haWw6IHN0cmluZ1tdIHwgbnVsbDtcbiAgbG9naW46IHN0cmluZ1tdIHwgbnVsbDtcbiAgcGFzc3dvcmQ6IHtcbiAgICBmaXJzdDogc3RyaW5nW10gfCBudWxsO1xuICAgIHNlY29uZDogc3RyaW5nW10gfCBudWxsO1xuICB9O1xuICBzdGF0dXM6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUmVnaXN0ZXIge1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZD86IHN0cmluZztcbiAgcGFzc3dvcmQyPzogc3RyaW5nO1xuICB0ZXJtc0FjY2VwdGFuY2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXIge1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZD86IHN0cmluZztcbiAgdXNlcklEOiBzdHJpbmc7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGF2YXRhcj86IHN0cmluZztcbiAgbmV3c2xldHRlckFjY2VwdGFuY2U/OiBib29sZWFuO1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJJbmZvIHtcbiAgZW1haWw6IHN0cmluZztcbiAgdXNlcklEOiBzdHJpbmc7XG4gIGF2YXRhcj86IHN0cmluZztcbiAgbmV3c2xldHRlckFjY2VwdGFuY2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ2luUmVzcG9uc2Uge1xuICAvKipcbiAgICogSldUVG9rZW5cbiAgICovXG4gIHRva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTG9naW5SZXNwb25zZSB7XG4gIC8qKlxuICAgKiBKV1RUb2tlblxuICAgKi9cbiAgdG9rZW46IHN0cmluZztcbiAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyTW9kaWZ5IHtcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXJPbmUge1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzYzogYW55O1xuICB2YWx1ZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXJJdGVtIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2VhcmNoVGV4dD86IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZmlsdGVyOiBJRmlsdGVyT25lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUXVlcnkge1xuICBpZD86IG51bWJlcjtcbiAgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICBzb3J0Qnk/OiBzdHJpbmc7XG4gIGZpbHRlckxpc3Q/OiB7XG4gICAgcXVlcnk/OiBJRmlsdGVySXRlbVtdO1xuICAgIHNlYXJjaFRleHQ/OiBzdHJpbmc7XG4gICAgc29ydEJ5Pzogc3RyaW5nO1xuICB9O1xuICBqb2JzPzogYW55W107XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBxdWVyeTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUXVlcnlMaXN0IHtcbiAgaXRlbXM6IElVc2VyUXVlcnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hRdWVyeSB7XG4gIGRlbGV0ZUluUHJvZ3Jlc3M6IGJvb2xlYW47XG4gIC8vIGZpbHRlcnNMaXN0OiBGaWx0ZXJJdGVtW107XG4gIC8vIHByb2ZpbGVRdWVyeTogUHJvZmlsZVF1ZXJ5O1xuICBzZWFyY2hEYXRlOiBzdHJpbmc7XG4gIHNlYXJjaFRpdGxlOiBzdHJpbmc7XG59XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthStorageService } from '../services/auth-storage/auth-storage.service';\nexport const authenticationGuard = () => {\n const router = inject(Router);\n const authStorageService = inject(AuthStorageService);\n if (authStorageService.hasUser()) {\n return true;\n }\n router.navigate(['/logowanie']);\n return false;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2d1YXJkcy9hdXRoZW50aWNhdGlvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBaUIsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFbkYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWtCLEdBQUcsRUFBRTtJQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUV0RCxJQUFJLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDaEMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEF1dGhTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGgtc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBhdXRoZW50aWNhdGlvbkd1YXJkOiBDYW5BY3RpdmF0ZUZuID0gKCkgPT4ge1xuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgY29uc3QgYXV0aFN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KEF1dGhTdG9yYWdlU2VydmljZSk7XG5cbiAgaWYgKGF1dGhTdG9yYWdlU2VydmljZS5oYXNVc2VyKCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJvdXRlci5uYXZpZ2F0ZShbJy9sb2dvd2FuaWUnXSk7XG4gIHJldHVybiBmYWxzZTtcbn07XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthStorageService } from '../services/auth-storage/auth-storage.service';\nexport const unauthorizedGuard = () => {\n const router = inject(Router);\n const authStorageService = inject(AuthStorageService);\n if (!authStorageService.hasUser()) {\n return true;\n }\n router.navigate(['/strona-glowna']);\n return false;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRob3JpemVkLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9ndWFyZHMvdW5hdXRob3JpemVkLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBa0IsR0FBRyxFQUFFO0lBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXRELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDcEMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEF1dGhTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGgtc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCB1bmF1dGhvcml6ZWRHdWFyZDogQ2FuQWN0aXZhdGVGbiA9ICgpID0+IHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvbnN0IGF1dGhTdG9yYWdlU2VydmljZSA9IGluamVjdChBdXRoU3RvcmFnZVNlcnZpY2UpO1xuXG4gIGlmICghYXV0aFN0b3JhZ2VTZXJ2aWNlLmhhc1VzZXIoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcm91dGVyLm5hdmlnYXRlKFsnL3N0cm9uYS1nbG93bmEnXSk7XG4gIHJldHVybiBmYWxzZTtcbn07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2Z0MDAxLW1vYmlsZW1zLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvc21hcnRzb2Z0MDAxLW1vYmlsZW1zLWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["NgxTranslateService","SmartStyleService","i1.AppComponent"],"mappings":"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"}
1
+ {"version":3,"file":"smartsoft001-mobilems-angular.mjs","sources":["../tmp-esm2022/lib/translations.js","../tmp-esm2022/lib/environments/environment.js","../tmp-esm2022/lib/services/auth-storage/auth-storage.service.js","../tmp-esm2022/lib/shared.config.js","../tmp-esm2022/lib/services/configs/configs.service.js","../tmp-esm2022/lib/services/contrast/contrast.service.js","../tmp-esm2022/lib/services/dictionary/dictionary.service.js","../tmp-esm2022/lib/services/file-url/file-url.service.js","../tmp-esm2022/lib/services/global/global.service.js","../tmp-esm2022/lib/services/translation/translation.service.js","../tmp-esm2022/lib/services/meta/meta.service.js","../tmp-esm2022/lib/services/modal/modal-container.component.js","../tmp-esm2022/lib/services/modal/modal-ref.js","../tmp-esm2022/lib/services/modal/modal.service.js","../tmp-esm2022/lib/services/search/search.service.js","../tmp-esm2022/lib/services/seo/seo.service.js","../tmp-esm2022/lib/services/settings/settings.service.js","../tmp-esm2022/lib/services/style/style.service.js","../tmp-esm2022/lib/services/wcag/wcag.service.js","../tmp-esm2022/lib/services/crud/crud-base.service.js","../tmp-esm2022/lib/services/query-filter/query-filter.service.js","../tmp-esm2022/lib/services/index.js","../tmp-esm2022/lib/+state/configs.facade.js","../tmp-esm2022/lib/components/app/app.component.js","../tmp-esm2022/lib/components/page/page.component.js","../tmp-esm2022/lib/components/filters/filters.component.js","../tmp-esm2022/lib/components/scroll-top/scroll-top.component.js","../tmp-esm2022/lib/components/footer/footer.component.js","../tmp-esm2022/lib/components/header/header.component.js","../tmp-esm2022/lib/components/menu/menu.component.js","../tmp-esm2022/lib/components/index.js","../tmp-esm2022/lib/directives/hover.directive.js","../tmp-esm2022/lib/directives/scrollable.directive.js","../tmp-esm2022/lib/directives/index.js","../tmp-esm2022/lib/shared.module.js","../tmp-esm2022/lib/interfaces.js","../tmp-esm2022/lib/guards/authentication.guard.js","../tmp-esm2022/lib/guards/unauthorized.guard.js","../tmp-esm2022/smartsoft001-mobilems-angular.js"],"sourcesContent":["export function setTranslationsAndLang(service) {\n const map = {\n pl: TRANSLATE_DATA_PL,\n };\n Object.keys(map).forEach((key) => {\n service.setTranslation(key, map[key], true);\n });\n if (!service.currentLang) {\n const lang = service.getBrowserLang();\n service.use(lang ?? 'en');\n }\n}\nexport const TRANSLATE_DATA_PL = {\n MODEL: {\n //..\n },\n //..\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi90cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE9BQXlCO0lBQzlELE1BQU0sR0FBRyxHQUFHO1FBQ1YsRUFBRSxFQUFFLGlCQUFpQjtLQUN0QixDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUMvQixPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRyxHQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0FBQ0gsQ0FBQztBQU9ELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFtQjtJQUMvQyxLQUFLLEVBQUU7SUFDTCxJQUFJO0tBQ0w7SUFDRCxJQUFJO0NBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFRyYW5zbGF0aW9uc0FuZExhbmcoc2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xuICBjb25zdCBtYXAgPSB7XG4gICAgcGw6IFRSQU5TTEFURV9EQVRBX1BMLFxuICB9O1xuXG4gIE9iamVjdC5rZXlzKG1hcCkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgc2VydmljZS5zZXRUcmFuc2xhdGlvbihrZXksIChtYXAgYXMgYW55KVtrZXldLCB0cnVlKTtcbiAgfSk7XG5cbiAgaWYgKCFzZXJ2aWNlLmN1cnJlbnRMYW5nKSB7XG4gICAgY29uc3QgbGFuZyA9IHNlcnZpY2UuZ2V0QnJvd3NlckxhbmcoKTtcbiAgICBzZXJ2aWNlLnVzZShsYW5nID8/ICdlbicpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbGF0ZURhdGEge1xuICBNT0RFTDogb2JqZWN0O1xuICAvLy4uXG59XG5cbmV4cG9ydCBjb25zdCBUUkFOU0xBVEVfREFUQV9QTDogSVRyYW5zbGF0ZURhdGEgPSB7XG4gIE1PREVMOiB7XG4gICAgLy8uLlxuICB9LFxuICAvLy4uXG59O1xuIl19","export const environment = {\n production: false,\n apiUrl: '',\n multimediaUrl: '',\n mainLogoPath: '/assets/gfx/logo/main-logo.png',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsVUFBVSxFQUFFLEtBQUs7SUFDakIsTUFBTSxFQUFFLEVBQUU7SUFDVixhQUFhLEVBQUUsRUFBRTtJQUNqQixZQUFZLEVBQUUsZ0NBQWdDO0NBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XG4gIHByb2R1Y3Rpb246IGZhbHNlLFxuICBhcGlVcmw6ICcnLFxuICBtdWx0aW1lZGlhVXJsOiAnJyxcbiAgbWFpbkxvZ29QYXRoOiAnL2Fzc2V0cy9nZngvbG9nby9tYWluLWxvZ28ucG5nJyxcbn07XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AuthStorageService {\n constructor() {\n this.STORAGE_KEY = 'user';\n }\n setUser(user) {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(this.STORAGE_KEY, JSON.stringify(user));\n }\n }\n getUser() {\n if (typeof localStorage !== 'undefined') {\n const item = localStorage.getItem(this.STORAGE_KEY);\n if (item) {\n try {\n return JSON.parse(item);\n }\n catch (error) {\n console.error('Failed to parse user from localStorage', error);\n return null;\n }\n }\n }\n return null;\n }\n removeUser() {\n if (typeof localStorage !== 'undefined') {\n localStorage.removeItem(this.STORAGE_KEY);\n }\n }\n hasUser() {\n return this.getUser() !== null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AuthStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AuthStorageService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AuthStorageService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2F1dGgtc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8sa0JBQWtCO0lBSC9CO1FBSW1CLGdCQUFXLEdBQUcsTUFBTSxDQUFDO0tBZ0N2QztJQTlCQyxPQUFPLENBQUMsSUFBVztRQUNqQixJQUFJLE9BQU8sWUFBWSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwRCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQztvQkFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFVLENBQUM7Z0JBQ25DLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUMvRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLENBQUM7SUFDakMsQ0FBQzs4R0FoQ1Usa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSVVzZXIgfSBmcm9tICdAc21hcnRzb2Z0MDAxLW1vYmlsZW1zL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IFNUT1JBR0VfS0VZID0gJ3VzZXInO1xuXG4gIHNldFVzZXIodXNlcjogSVVzZXIpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcbiAgICB9XG4gIH1cblxuICBnZXRVc2VyKCk6IElVc2VyIHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBsb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBpdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5TVE9SQUdFX0tFWSk7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGl0ZW0pIGFzIElVc2VyO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSB1c2VyIGZyb20gbG9jYWxTdG9yYWdlJywgZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmVtb3ZlVXNlcigpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuU1RPUkFHRV9LRVkpO1xuICAgIH1cbiAgfVxuXG4gIGhhc1VzZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VXNlcigpICE9PSBudWxsO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SharedConfig {\n constructor() {\n this.apiUrl = '';\n this.multimediaUrl = '';\n this.mainLogoPath = '/assets/gfx/logo/main-logo.png';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedConfig }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedConfig, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2hhcmVkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sWUFBWTtJQUR6QjtRQUVFLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFDWixrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixpQkFBWSxHQUFHLGdDQUFnQyxDQUFDO0tBRWpEOzhHQUxZLFlBQVk7a0hBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNoYXJlZENvbmZpZyB7XG4gIGFwaVVybCA9ICcnO1xuICBtdWx0aW1lZGlhVXJsID0gJyc7XG4gIG1haW5Mb2dvUGF0aCA9ICcvYXNzZXRzL2dmeC9sb2dvL21haW4tbG9nby5wbmcnO1xuICBzdHlsZVZhcmlhYmxlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport moment from 'moment';\nimport { combineLatest, firstValueFrom, lastValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { SharedConfig } from '../../shared.config';\nimport * as i0 from \"@angular/core\";\nexport class ConfigsService {\n constructor() {\n this.httpClient = inject(HttpClient);\n this.config = inject(SharedConfig);\n }\n get() {\n const date = moment().format('YYYY-MM-DD');\n return lastValueFrom(combineLatest([\n this.httpClient.post(this.config.apiUrl + 'object/object-of-the-week', {\n dateStart: date,\n dateEnd: date,\n }),\n this.httpClient.get(this.config.apiUrl + 'setting/theme'),\n ]).pipe(map(([r1, r2]) => {\n return {\n id: '',\n objectOfTheDay: {\n id: Number(r1?.data?.current?.objectId),\n title: r1?.data?.current?.title,\n },\n theme: r2.data,\n };\n })));\n }\n getPage(id) {\n return firstValueFrom(this.httpClient\n .get(this.config.apiUrl + 'page/' + id)\n .pipe(map((r) => r.data)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jb25maWdzL2NvbmZpZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sY0FBYztJQUgzQjtRQUltQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFdBQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FzQ2hEO0lBcENDLEdBQUc7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFM0MsT0FBTyxhQUFhLENBQ2xCLGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUVqQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRywyQkFBMkIsRUFBRTtnQkFDbkQsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FDckM7U0FDRixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDZixPQUFPO2dCQUNMLEVBQUUsRUFBRSxFQUFFO2dCQUNOLGNBQWMsRUFBRTtvQkFDZCxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQztvQkFDdkMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUs7aUJBQ2hDO2dCQUNELEtBQUssRUFBRSxFQUFFLENBQUMsSUFBYzthQUN6QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sQ0FBQyxFQUFtQjtRQUN6QixPQUFPLGNBQWMsQ0FDbkIsSUFBSSxDQUFDLFVBQVU7YUFDWixHQUFHLENBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUM7YUFDckQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzVCLENBQUM7SUFDSixDQUFDOzhHQXZDVSxjQUFjO2tIQUFkLGNBQWMsY0FGYixNQUFNOzsyRkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tLCBsYXN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvbmZpZywgSVRoZW1lLCBQYWdlIH0gZnJvbSAnQHNtYXJ0c29mdDAwMS1tb2JpbGVtcy9tb2RlbHMnO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ3NTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChTaGFyZWRDb25maWcpO1xuXG4gIGdldCgpOiBQcm9taXNlPENvbmZpZz4ge1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcblxuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKFxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5wb3N0PHtcbiAgICAgICAgICBkYXRhOiB1bmtub3duICYgeyBjdXJyZW50OiB7IG9iamVjdElkOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfSB9O1xuICAgICAgICB9Pih0aGlzLmNvbmZpZy5hcGlVcmwgKyAnb2JqZWN0L29iamVjdC1vZi10aGUtd2VlaycsIHtcbiAgICAgICAgICBkYXRlU3RhcnQ6IGRhdGUsXG4gICAgICAgICAgZGF0ZUVuZDogZGF0ZSxcbiAgICAgICAgfSksXG4gICAgICAgIHRoaXMuaHR0cENsaWVudC5nZXQ8eyBkYXRhOiB1bmtub3duIH0+KFxuICAgICAgICAgIHRoaXMuY29uZmlnLmFwaVVybCArICdzZXR0aW5nL3RoZW1lJyxcbiAgICAgICAgKSxcbiAgICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW3IxLCByMl0pID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgb2JqZWN0T2ZUaGVEYXk6IHtcbiAgICAgICAgICAgICAgaWQ6IE51bWJlcihyMT8uZGF0YT8uY3VycmVudD8ub2JqZWN0SWQpLFxuICAgICAgICAgICAgICB0aXRsZTogcjE/LmRhdGE/LmN1cnJlbnQ/LnRpdGxlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoZW1lOiByMi5kYXRhIGFzIElUaGVtZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGdldFBhZ2UoaWQ6IG51bWJlciB8ICdob21lJyk6IFByb21pc2U8UGFnZT4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cENsaWVudFxuICAgICAgICAuZ2V0PHsgZGF0YTogYW55IH0+KHRoaXMuY29uZmlnLmFwaVVybCArICdwYWdlLycgKyBpZClcbiAgICAgICAgLnBpcGUobWFwKChyKSA9PiByLmRhdGEpKSxcbiAgICApO1xuICB9XG59XG4iXX0=","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, signal, effect, PLATFORM_ID, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nconst DEFAULT_COLORS = {\n black: 'black',\n yellow: 'yellow',\n white: 'white',\n transparentBlack: 'rgba(0, 0, 0, 0.9)',\n wcagColor1: '#F4B735',\n wcagColor2: '#1B1B1B',\n};\nexport class ContrastService {\n constructor() {\n this.platformId = inject(PLATFORM_ID);\n this.isBrowser = isPlatformBrowser(this.platformId);\n this.isActive = signal(false, ...(ngDevMode ? [{ debugName: \"isActive\" }] : []));\n // Apply contrast changes to DOM\n effect(() => {\n if (this.isBrowser) {\n this.applyContrast(this.isActive());\n }\n });\n }\n changeTheme(active) {\n this.isActive.set(active);\n }\n toggle() {\n this.isActive.update((value) => !value);\n }\n applyContrast(active) {\n if (!this.isBrowser)\n return;\n const docElement = document.documentElement;\n if (active) {\n this.setProperties(docElement);\n docElement.classList.add('cv');\n }\n else {\n this.removeProperties(docElement);\n docElement.classList.remove('cv');\n }\n }\n setProperties(element) {\n element.style.setProperty('--cv-black', DEFAULT_COLORS.black);\n element.style.setProperty('--cv-yellow', DEFAULT_COLORS.yellow);\n element.style.setProperty('--cv-white', DEFAULT_COLORS.white);\n element.style.setProperty('--cv-black-transparent', DEFAULT_COLORS.transparentBlack);\n element.style.setProperty('--cv-wcag-color-1', DEFAULT_COLORS.wcagColor1);\n element.style.setProperty('--cv-wcag-color-2', DEFAULT_COLORS.wcagColor2);\n }\n removeProperties(element) {\n element.style.removeProperty('--cv-black');\n element.style.removeProperty('--cv-yellow');\n element.style.removeProperty('--cv-white');\n element.style.removeProperty('--cv-black-transparent');\n element.style.removeProperty('--cv-wcag-color-1');\n element.style.removeProperty('--cv-wcag-color-2');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContrastService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContrastService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContrastService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvY29udHJhc3QvY29udHJhc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXaEYsTUFBTSxjQUFjLEdBQW1CO0lBQ3JDLEtBQUssRUFBRSxPQUFPO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLE9BQU87SUFDZCxnQkFBZ0IsRUFBRSxvQkFBb0I7SUFDdEMsVUFBVSxFQUFFLFNBQVM7SUFDckIsVUFBVSxFQUFFLFNBQVM7Q0FDdEIsQ0FBQztBQUtGLE1BQU0sT0FBTyxlQUFlO0lBTTFCO1FBTGlCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RCxhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssb0RBQUMsQ0FBQztRQUdoQyxnQ0FBZ0M7UUFDaEMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBZTtRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBZTtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBRTVCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7UUFFNUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0IsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsT0FBb0I7UUFDeEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3ZCLHdCQUF3QixFQUN4QixjQUFjLENBQUMsZ0JBQWdCLENBQ2hDLENBQUM7UUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFvQjtRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNwRCxDQUFDOzhHQXhEVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCwgZWZmZWN0LCBQTEFURk9STV9JRCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmludGVyZmFjZSBDb250cmFzdENvbG9ycyB7XG4gIGJsYWNrOiBzdHJpbmc7XG4gIHllbGxvdzogc3RyaW5nO1xuICB3aGl0ZTogc3RyaW5nO1xuICB0cmFuc3BhcmVudEJsYWNrOiBzdHJpbmc7XG4gIHdjYWdDb2xvcjE6IHN0cmluZztcbiAgd2NhZ0NvbG9yMjogc3RyaW5nO1xufVxuXG5jb25zdCBERUZBVUxUX0NPTE9SUzogQ29udHJhc3RDb2xvcnMgPSB7XG4gIGJsYWNrOiAnYmxhY2snLFxuICB5ZWxsb3c6ICd5ZWxsb3cnLFxuICB3aGl0ZTogJ3doaXRlJyxcbiAgdHJhbnNwYXJlbnRCbGFjazogJ3JnYmEoMCwgMCwgMCwgMC45KScsXG4gIHdjYWdDb2xvcjE6ICcjRjRCNzM1JyxcbiAgd2NhZ0NvbG9yMjogJyMxQjFCMUInLFxufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRyYXN0U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcblxuICByZWFkb25seSBpc0FjdGl2ZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gQXBwbHkgY29udHJhc3QgY2hhbmdlcyB0byBET01cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICAgIHRoaXMuYXBwbHlDb250cmFzdCh0aGlzLmlzQWN0aXZlKCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2hhbmdlVGhlbWUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoYWN0aXZlKTtcbiAgfVxuXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzQWN0aXZlLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29udHJhc3QoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuXG4gICAgY29uc3QgZG9jRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblxuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuc2V0UHJvcGVydGllcyhkb2NFbGVtZW50KTtcbiAgICAgIGRvY0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY3YnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVQcm9wZXJ0aWVzKGRvY0VsZW1lbnQpO1xuICAgICAgZG9jRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdjdicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJvcGVydGllcyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3YtYmxhY2snLCBERUZBVUxUX0NPTE9SUy5ibGFjayk7XG4gICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1jdi15ZWxsb3cnLCBERUZBVUxUX0NPTE9SUy55ZWxsb3cpO1xuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3Ytd2hpdGUnLCBERUZBVUxUX0NPTE9SUy53aGl0ZSk7XG4gICAgZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcbiAgICAgICctLWN2LWJsYWNrLXRyYW5zcGFyZW50JyxcbiAgICAgIERFRkFVTFRfQ09MT1JTLnRyYW5zcGFyZW50QmxhY2ssXG4gICAgKTtcbiAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWN2LXdjYWctY29sb3ItMScsIERFRkFVTFRfQ09MT1JTLndjYWdDb2xvcjEpO1xuICAgIGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0tY3Ytd2NhZy1jb2xvci0yJywgREVGQVVMVF9DT0xPUlMud2NhZ0NvbG9yMik7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVByb3BlcnRpZXMoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLWN2LWJsYWNrJyk7XG4gICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1jdi15ZWxsb3cnKTtcbiAgICBlbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCctLWN2LXdoaXRlJyk7XG4gICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1jdi1ibGFjay10cmFuc3BhcmVudCcpO1xuICAgIGVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoJy0tY3Ytd2NhZy1jb2xvci0xJyk7XG4gICAgZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnLS1jdi13Y2FnLWNvbG9yLTInKTtcbiAgfVxufVxuIl19","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { SharedConfig } from '../../shared.config';\nimport * as i0 from \"@angular/core\";\nexport class DictionaryService {\n constructor() {\n this.httpClient = inject(HttpClient);\n this.config = inject(SharedConfig);\n }\n get(type, query = { page: 1 }) {\n let url = this.config.apiUrl +\n `${query.context ? query.context : 'dictionary'}/${type}/search/page/${query.page}?sort=random`;\n if (query.pageSize) {\n url += `&maxPerPage=${query.pageSize}`;\n }\n if (query.searchText) {\n url += `&q=${query.searchText}`;\n }\n return this.httpClient\n .get(url)\n .pipe(map((r) => r.data.items));\n }\n getNode(type, query = {}) {\n let url = this.config.apiUrl +\n `${query.context ? query.context : 'dictionary'}/${type}/tree`;\n if (query.nodeId !== null && query.nodeId !== undefined) {\n //In case the nodeId is 0 or is cast to false\n url += `?id=${query.nodeId}`;\n }\n return this.httpClient\n .get(url)\n .pipe(map((r) => r.data));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: DictionaryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: DictionaryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: DictionaryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9kaWN0aW9uYXJ5L2RpY3Rpb25hcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFXbkQsTUFBTSxPQUFPLGlCQUFpQjtJQUg5QjtRQUltQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLFdBQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FnRGhEO0lBOUNDLEdBQUcsQ0FDRCxJQUFPLEVBQ1AsUUFLSSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7UUFFZixJQUFJLEdBQUcsR0FDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDbEIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxnQkFBZ0IsS0FBSyxDQUFDLElBQUksY0FBYyxDQUFDO1FBRWxHLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLEdBQUcsSUFBSSxlQUFlLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsR0FBRyxJQUFJLE1BQU0sS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ25CLEdBQUcsQ0FBeUMsR0FBRyxDQUFDO2FBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsT0FBTyxDQUNMLElBQU8sRUFDUCxRQUdJLEVBQUU7UUFFTixJQUFJLEdBQUcsR0FDTCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDbEIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxPQUFPLENBQUM7UUFFakUsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hELDZDQUE2QztZQUM3QyxHQUFHLElBQUksT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDbkIsR0FBRyxDQUE4QixHQUFHLENBQUM7YUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs4R0FqRFUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2hhcmVkQ29uZmlnIH0gZnJvbSAnLi4vLi4vc2hhcmVkLmNvbmZpZyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURpY3Rpb25hcnlJdGVtIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBoYXNDaGlsZHJlbj86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEaWN0aW9uYXJ5U2VydmljZTxUPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoU2hhcmVkQ29uZmlnKTtcblxuICBnZXQoXG4gICAgdHlwZTogVCxcbiAgICBxdWVyeToge1xuICAgICAgc2VhcmNoVGV4dD86IHN0cmluZztcbiAgICAgIHBhZ2U6IG51bWJlcjtcbiAgICAgIHBhZ2VTaXplPzogbnVtYmVyO1xuICAgICAgY29udGV4dD86IHN0cmluZztcbiAgICB9ID0geyBwYWdlOiAxIH0sXG4gICk6IE9ic2VydmFibGU8SURpY3Rpb25hcnlJdGVtW10+IHtcbiAgICBsZXQgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnLmFwaVVybCArXG4gICAgICBgJHtxdWVyeS5jb250ZXh0ID8gcXVlcnkuY29udGV4dCA6ICdkaWN0aW9uYXJ5J30vJHt0eXBlfS9zZWFyY2gvcGFnZS8ke3F1ZXJ5LnBhZ2V9P3NvcnQ9cmFuZG9tYDtcblxuICAgIGlmIChxdWVyeS5wYWdlU2l6ZSkge1xuICAgICAgdXJsICs9IGAmbWF4UGVyUGFnZT0ke3F1ZXJ5LnBhZ2VTaXplfWA7XG4gICAgfVxuXG4gICAgaWYgKHF1ZXJ5LnNlYXJjaFRleHQpIHtcbiAgICAgIHVybCArPSBgJnE9JHtxdWVyeS5zZWFyY2hUZXh0fWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudFxuICAgICAgLmdldDx7IGRhdGE6IHsgaXRlbXM6IElEaWN0aW9uYXJ5SXRlbVtdIH0gfT4odXJsKVxuICAgICAgLnBpcGUobWFwKChyKSA9PiByLmRhdGEuaXRlbXMpKTtcbiAgfVxuXG4gIGdldE5vZGUoXG4gICAgdHlwZTogVCxcbiAgICBxdWVyeToge1xuICAgICAgbm9kZUlkPzogbnVtYmVyO1xuICAgICAgY29udGV4dD86IHN0cmluZztcbiAgICB9ID0ge30sXG4gICk6IE9ic2VydmFibGU8SURpY3Rpb25hcnlJdGVtW10+IHtcbiAgICBsZXQgdXJsID1cbiAgICAgIHRoaXMuY29uZmlnLmFwaVVybCArXG4gICAgICBgJHtxdWVyeS5jb250ZXh0ID8gcXVlcnkuY29udGV4dCA6ICdkaWN0aW9uYXJ5J30vJHt0eXBlfS90cmVlYDtcblxuICAgIGlmIChxdWVyeS5ub2RlSWQgIT09IG51bGwgJiYgcXVlcnkubm9kZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vSW4gY2FzZSB0aGUgbm9kZUlkIGlzIDAgb3IgaXMgY2FzdCB0byBmYWxzZVxuICAgICAgdXJsICs9IGA/aWQ9JHtxdWVyeS5ub2RlSWR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50XG4gICAgICAuZ2V0PHsgZGF0YTogSURpY3Rpb25hcnlJdGVtW10gfT4odXJsKVxuICAgICAgLnBpcGUobWFwKChyKSA9PiByLmRhdGEpKTtcbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { SharedConfig } from '../../shared.config';\nimport * as i0 from \"@angular/core\";\nexport class FileUrlService {\n constructor() {\n this.config = inject(SharedConfig);\n }\n get(fileOrPath, mode = 'cache', noImagePlaceholder = 'assets/no-image.svg') {\n const multimediaUrl = this.config.multimediaUrl;\n if (!multimediaUrl) {\n return noImagePlaceholder;\n }\n let path;\n if (typeof fileOrPath === 'string') {\n path = fileOrPath;\n }\n else {\n if (!fileOrPath || !fileOrPath.filePath) {\n return noImagePlaceholder;\n }\n // Check if it's an upload path (direct URL)\n if (fileOrPath.filePath.indexOf('upload') === -1) {\n return (multimediaUrl + this.getPath(mode) + this.getFileName(fileOrPath));\n }\n path = fileOrPath.filePath;\n }\n // Remove leading slash if present\n if (path[0] === '/') {\n path = path.substring(1);\n }\n return multimediaUrl + path;\n }\n getFileName(file) {\n if (file.filePath &&\n file.extension &&\n file.filePath.indexOf(file.extension) > -1) {\n return file.filePath;\n }\n return file.filePath + '.' + file.extension;\n }\n getPath(mode) {\n switch (mode) {\n case 'big':\n return 'upload/cache/multimedia_big/';\n case 'cache':\n return 'upload/cache/multimedia_detail/';\n case 'noCache':\n return 'upload/multimedia/';\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FileUrlService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FileUrlService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FileUrlService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cmwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvZmlsZS11cmwvZmlsZS11cmwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBT25ELE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBSW1CLFdBQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0E4RGhEO0lBNURDLEdBQUcsQ0FDRCxVQUE0QixFQUM1QixPQUFvQixPQUFPLEVBQzNCLGtCQUFrQixHQUFHLHFCQUFxQjtRQUUxQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUVoRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxJQUFZLENBQUM7UUFFakIsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxrQkFBa0IsQ0FBQztZQUM1QixDQUFDO1lBRUQsNENBQTRDO1lBQzVDLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDakQsT0FBTyxDQUNMLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQ2xFLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDN0IsQ0FBQztRQUVELGtDQUFrQztRQUNsQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBRUQsT0FBTyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBWTtRQUM5QixJQUNFLElBQUksQ0FBQyxRQUFRO1lBQ2IsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQzFDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM5QyxDQUFDO0lBRU8sT0FBTyxDQUFDLElBQWlCO1FBQy9CLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyw4QkFBOEIsQ0FBQztZQUN4QyxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxpQ0FBaUMsQ0FBQztZQUMzQyxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxvQkFBb0IsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQzs4R0E5RFUsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTXNGaWxlIH0gZnJvbSAnQHNtYXJ0c29mdDAwMS1tb2JpbGVtcy9tb2RlbHMnO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcblxuZXhwb3J0IHR5cGUgRmlsZVVybE1vZGUgPSAnY2FjaGUnIHwgJ2JpZycgfCAnbm9DYWNoZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXJsU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KFNoYXJlZENvbmZpZyk7XG5cbiAgZ2V0KFxuICAgIGZpbGVPclBhdGg/OiBNc0ZpbGUgfCBzdHJpbmcsXG4gICAgbW9kZTogRmlsZVVybE1vZGUgPSAnY2FjaGUnLFxuICAgIG5vSW1hZ2VQbGFjZWhvbGRlciA9ICdhc3NldHMvbm8taW1hZ2Uuc3ZnJyxcbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBtdWx0aW1lZGlhVXJsID0gdGhpcy5jb25maWcubXVsdGltZWRpYVVybDtcblxuICAgIGlmICghbXVsdGltZWRpYVVybCkge1xuICAgICAgcmV0dXJuIG5vSW1hZ2VQbGFjZWhvbGRlcjtcbiAgICB9XG5cbiAgICBsZXQgcGF0aDogc3RyaW5nO1xuXG4gICAgaWYgKHR5cGVvZiBmaWxlT3JQYXRoID09PSAnc3RyaW5nJykge1xuICAgICAgcGF0aCA9IGZpbGVPclBhdGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZmlsZU9yUGF0aCB8fCAhZmlsZU9yUGF0aC5maWxlUGF0aCkge1xuICAgICAgICByZXR1cm4gbm9JbWFnZVBsYWNlaG9sZGVyO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBpdCdzIGFuIHVwbG9hZCBwYXRoIChkaXJlY3QgVVJMKVxuICAgICAgaWYgKGZpbGVPclBhdGguZmlsZVBhdGguaW5kZXhPZigndXBsb2FkJykgPT09IC0xKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgbXVsdGltZWRpYVVybCArIHRoaXMuZ2V0UGF0aChtb2RlKSArIHRoaXMuZ2V0RmlsZU5hbWUoZmlsZU9yUGF0aClcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcGF0aCA9IGZpbGVPclBhdGguZmlsZVBhdGg7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGxlYWRpbmcgc2xhc2ggaWYgcHJlc2VudFxuICAgIGlmIChwYXRoWzBdID09PSAnLycpIHtcbiAgICAgIHBhdGggPSBwYXRoLnN1YnN0cmluZygxKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbXVsdGltZWRpYVVybCArIHBhdGg7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGVOYW1lKGZpbGU6IE1zRmlsZSk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgZmlsZS5maWxlUGF0aCAmJlxuICAgICAgZmlsZS5leHRlbnNpb24gJiZcbiAgICAgIGZpbGUuZmlsZVBhdGguaW5kZXhPZihmaWxlLmV4dGVuc2lvbikgPiAtMVxuICAgICkge1xuICAgICAgcmV0dXJuIGZpbGUuZmlsZVBhdGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbGUuZmlsZVBhdGggKyAnLicgKyBmaWxlLmV4dGVuc2lvbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGF0aChtb2RlOiBGaWxlVXJsTW9kZSk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICdiaWcnOlxuICAgICAgICByZXR1cm4gJ3VwbG9hZC9jYWNoZS9tdWx0aW1lZGlhX2JpZy8nO1xuICAgICAgY2FzZSAnY2FjaGUnOlxuICAgICAgICByZXR1cm4gJ3VwbG9hZC9jYWNoZS9tdWx0aW1lZGlhX2RldGFpbC8nO1xuICAgICAgY2FzZSAnbm9DYWNoZSc6XG4gICAgICAgIHJldHVybiAndXBsb2FkL211bHRpbWVkaWEvJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Injectable, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class GlobalService {\n constructor() {\n this.showHeader = signal(true, ...(ngDevMode ? [{ debugName: \"showHeader\" }] : []));\n this.showFooter = signal(true, ...(ngDevMode ? [{ debugName: \"showFooter\" }] : []));\n }\n setHeaderVisibility(visible) {\n this.showHeader.set(visible);\n }\n setFooterVisibility(visible) {\n this.showFooter.set(visible);\n }\n hexToRgb(hex) {\n if (!hex)\n return null;\n // Remove # if present\n let cleanHex = hex.replace(/^#/, '');\n // Expand 3-character hex to 6-character (#abc -> #aabbcc)\n if (cleanHex.length === 3) {\n cleanHex = cleanHex\n .split('')\n .map((char) => char + char)\n .join('');\n }\n // Parse 6-character hex\n const result = cleanHex.match(/.{2}/g);\n if (!result || result.length !== 3)\n return null;\n return result.map((x) => parseInt(x, 16));\n }\n rgbToHex(r, g, b) {\n return ('#' +\n [r, g, b]\n .map((x) => {\n const hex = x.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n })\n .join(''));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: GlobalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: GlobalService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: GlobalService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2dsb2JhbC9nbG9iYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLGFBQWE7SUFIMUI7UUFJVyxlQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksc0RBQUMsQ0FBQztRQUMxQixlQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksc0RBQUMsQ0FBQztLQTJDcEM7SUF6Q0MsbUJBQW1CLENBQUMsT0FBZ0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELG1CQUFtQixDQUFDLE9BQWdCO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUNsQixJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXRCLHNCQUFzQjtRQUN0QixJQUFJLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQywwREFBMEQ7UUFDMUQsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLFFBQVEsR0FBRyxRQUFRO2lCQUNoQixLQUFLLENBQUMsRUFBRSxDQUFDO2lCQUNULEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztpQkFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztRQUVELHdCQUF3QjtRQUN4QixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFaEQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7UUFDdEMsT0FBTyxDQUNMLEdBQUc7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNULE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUM1QyxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUNaLENBQUM7SUFDSixDQUFDOzhHQTVDVSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsU2VydmljZSB7XG4gIHJlYWRvbmx5IHNob3dIZWFkZXIgPSBzaWduYWwodHJ1ZSk7XG4gIHJlYWRvbmx5IHNob3dGb290ZXIgPSBzaWduYWwodHJ1ZSk7XG5cbiAgc2V0SGVhZGVyVmlzaWJpbGl0eSh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zaG93SGVhZGVyLnNldCh2aXNpYmxlKTtcbiAgfVxuXG4gIHNldEZvb3RlclZpc2liaWxpdHkodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd0Zvb3Rlci5zZXQodmlzaWJsZSk7XG4gIH1cblxuICBoZXhUb1JnYihoZXg6IHN0cmluZyk6IG51bWJlcltdIHwgbnVsbCB7XG4gICAgaWYgKCFoZXgpIHJldHVybiBudWxsO1xuXG4gICAgLy8gUmVtb3ZlICMgaWYgcHJlc2VudFxuICAgIGxldCBjbGVhbkhleCA9IGhleC5yZXBsYWNlKC9eIy8sICcnKTtcblxuICAgIC8vIEV4cGFuZCAzLWNoYXJhY3RlciBoZXggdG8gNi1jaGFyYWN0ZXIgKCNhYmMgLT4gI2FhYmJjYylcbiAgICBpZiAoY2xlYW5IZXgubGVuZ3RoID09PSAzKSB7XG4gICAgICBjbGVhbkhleCA9IGNsZWFuSGV4XG4gICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgLm1hcCgoY2hhcikgPT4gY2hhciArIGNoYXIpXG4gICAgICAgIC5qb2luKCcnKTtcbiAgICB9XG5cbiAgICAvLyBQYXJzZSA2LWNoYXJhY3RlciBoZXhcbiAgICBjb25zdCByZXN1bHQgPSBjbGVhbkhleC5tYXRjaCgvLnsyfS9nKTtcblxuICAgIGlmICghcmVzdWx0IHx8IHJlc3VsdC5sZW5ndGggIT09IDMpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5tYXAoKHgpID0+IHBhcnNlSW50KHgsIDE2KSk7XG4gIH1cblxuICByZ2JUb0hleChyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKFxuICAgICAgJyMnICtcbiAgICAgIFtyLCBnLCBiXVxuICAgICAgICAubWFwKCh4KSA9PiB7XG4gICAgICAgICAgY29uc3QgaGV4ID0geC50b1N0cmluZygxNik7XG4gICAgICAgICAgcmV0dXJuIGhleC5sZW5ndGggPT09IDEgPyAnMCcgKyBoZXggOiBoZXg7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcnKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Injectable, inject, signal, computed } from '@angular/core';\nimport { TranslateService as NgxTranslateService } from '@ngx-translate/core';\nimport * as i0 from \"@angular/core\";\nconst TRANSLATION_CONFIG_KEY = 'TRANSLATION_CONFIG';\nexport class TranslationService {\n constructor() {\n this.translateService = inject(NgxTranslateService);\n this._config = signal({\n language: this.getInitialLanguage(),\n }, ...(ngDevMode ? [{ debugName: \"_config\" }] : []));\n this.config = this._config.asReadonly();\n this.config$ = this.translateService.onLangChange.pipe();\n this.currentLanguage = computed(() => this._config().language, ...(ngDevMode ? [{ debugName: \"currentLanguage\" }] : []));\n }\n getInitialLanguage() {\n if (typeof localStorage !== 'undefined') {\n const stored = localStorage.getItem(TRANSLATION_CONFIG_KEY);\n if (stored) {\n try {\n const parsed = JSON.parse(stored);\n return parsed.language;\n }\n catch (error) {\n console.warn('Failed to parse translation config', error);\n }\n }\n }\n return this.translateService.getBrowserLang() || 'en';\n }\n get(key, params) {\n return this.translateService.instant(key, params);\n }\n async init(defaultLang = 'en', availableLangs = ['en', 'pl']) {\n this.translateService.setDefaultLang(defaultLang);\n this.translateService.addLangs(availableLangs);\n let lang = this._config().language;\n if (!availableLangs.includes(lang)) {\n lang = defaultLang;\n this._config.set({ language: lang });\n }\n await this.translateService.use(lang).toPromise();\n }\n setLanguage(language) {\n this._config.set({ language });\n this.save();\n this.translateService.use(language);\n }\n save() {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(TRANSLATION_CONFIG_KEY, JSON.stringify(this._config()));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: TranslationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: TranslationService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: TranslationService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUc5RSxNQUFNLHNCQUFzQixHQUFHLG9CQUFvQixDQUFDO0FBU3BELE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFJbUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFL0MsWUFBTyxHQUFHLE1BQU0sQ0FBcUI7WUFDcEQsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtTQUNwQyxtREFBQyxDQUFDO1FBRU0sV0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkMsWUFBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUV4RCxDQUFDO1FBRU0sb0JBQWUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsMkRBQUMsQ0FBQztLQW9EcEU7SUFsRFMsa0JBQWtCO1FBQ3hCLElBQUksT0FBTyxZQUFZLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzVELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDO29CQUNILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUF1QixDQUFDO29CQUN4RCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztvQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDeEQsQ0FBQztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsTUFBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUNSLFdBQVcsR0FBRyxJQUFJLEVBQ2xCLGlCQUEyQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7UUFFdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRS9DLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFFbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLEdBQUcsV0FBVyxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxJQUFJO1FBQ1YsSUFBSSxPQUFPLFlBQVksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUN4QyxZQUFZLENBQUMsT0FBTyxDQUNsQixzQkFBc0IsRUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDL0IsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOzhHQS9EVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBzaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIGFzIE5neFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuY29uc3QgVFJBTlNMQVRJT05fQ09ORklHX0tFWSA9ICdUUkFOU0xBVElPTl9DT05GSUcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2xhdGlvbkNvbmZpZyB7XG4gIGxhbmd1YWdlOiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoTmd4VHJhbnNsYXRlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29uZmlnID0gc2lnbmFsPElUcmFuc2xhdGlvbkNvbmZpZz4oe1xuICAgIGxhbmd1YWdlOiB0aGlzLmdldEluaXRpYWxMYW5ndWFnZSgpLFxuICB9KTtcblxuICByZWFkb25seSBjb25maWcgPSB0aGlzLl9jb25maWcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBjb25maWckID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5waXBlKCkgYXMgT2JzZXJ2YWJsZTx7XG4gICAgbGFuZzogc3RyaW5nO1xuICB9PjtcblxuICByZWFkb25seSBjdXJyZW50TGFuZ3VhZ2UgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9jb25maWcoKS5sYW5ndWFnZSk7XG5cbiAgcHJpdmF0ZSBnZXRJbml0aWFsTGFuZ3VhZ2UoKTogc3RyaW5nIHtcbiAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFRSQU5TTEFUSU9OX0NPTkZJR19LRVkpO1xuICAgICAgaWYgKHN0b3JlZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2Uoc3RvcmVkKSBhcyBJVHJhbnNsYXRpb25Db25maWc7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlZC5sYW5ndWFnZTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBwYXJzZSB0cmFuc2xhdGlvbiBjb25maWcnLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXRCcm93c2VyTGFuZygpIHx8ICdlbic7XG4gIH1cblxuICBnZXQoa2V5OiBzdHJpbmcsIHBhcmFtcz86IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGtleSwgcGFyYW1zKTtcbiAgfVxuXG4gIGFzeW5jIGluaXQoXG4gICAgZGVmYXVsdExhbmcgPSAnZW4nLFxuICAgIGF2YWlsYWJsZUxhbmdzOiBzdHJpbmdbXSA9IFsnZW4nLCAncGwnXSxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRMYW5nKGRlZmF1bHRMYW5nKTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ3MoYXZhaWxhYmxlTGFuZ3MpO1xuXG4gICAgbGV0IGxhbmcgPSB0aGlzLl9jb25maWcoKS5sYW5ndWFnZTtcblxuICAgIGlmICghYXZhaWxhYmxlTGFuZ3MuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIGxhbmcgPSBkZWZhdWx0TGFuZztcbiAgICAgIHRoaXMuX2NvbmZpZy5zZXQoeyBsYW5ndWFnZTogbGFuZyB9KTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmcpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZy5zZXQoeyBsYW5ndWFnZSB9KTtcbiAgICB0aGlzLnNhdmUoKTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmd1YWdlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZSgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICBUUkFOU0xBVElPTl9DT05GSUdfS0VZLFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLl9jb25maWcoKSksXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, map } from 'rxjs/operators';\nimport { SharedConfig } from '../../shared.config';\nimport { TranslationService } from '../translation/translation.service';\nimport * as i0 from \"@angular/core\";\nexport class MetaService {\n constructor() {\n this.meta = inject(Meta);\n this.title = inject(Title);\n this.translationService = inject(TranslationService);\n this.router = inject(Router);\n this.activatedRoute = inject(ActivatedRoute);\n this.config = inject(SharedConfig);\n this.resetMetadata();\n }\n keepUpdatingPageTitle(onRouteChange) {\n if (onRouteChange) {\n this.routerSubscription = this.router.events\n .pipe(filter((event) => event instanceof NavigationEnd), map(() => this.getRouteTitle()))\n .subscribe((dynamicTitle) => {\n if (dynamicTitle) {\n this.setTitle(dynamicTitle);\n }\n });\n return this.routerSubscription;\n }\n else {\n const dynamicTitle = this.getRouteTitle();\n if (dynamicTitle) {\n this.setTitle(dynamicTitle);\n }\n }\n }\n setPageMetadata(title = '', description = '') {\n if (title) {\n this.setTitle(title);\n }\n if (description) {\n this.setDescription(description);\n }\n }\n setObjectMetadata(objectData) {\n if (objectData.image) {\n this.setImageMetadata(objectData.image, objectData.title, objectData.type);\n }\n if (objectData.title) {\n this.setTitle(objectData.title);\n }\n if (objectData.description) {\n this.setDescription(objectData.description);\n }\n }\n setImageMetadata(image, imageAlt, type) {\n const multimediaUrl = this.config.multimediaUrl;\n if (!multimediaUrl || !image?.filePath) {\n return;\n }\n try {\n const imageUrl = this.buildImageUrl(multimediaUrl, image, type);\n this.meta.updateTag({ property: 'og:image', content: imageUrl });\n this.meta.updateTag({ property: 'og:image:type', content: 'image/jpeg' });\n this.meta.updateTag({ property: 'og:image:width', content: '600' });\n this.meta.updateTag({ property: 'og:image:height', content: '600' });\n if (imageAlt) {\n this.meta.updateTag({\n property: 'og:image:alt',\n content: this.removeHtmlTags(imageAlt),\n });\n }\n else {\n this.meta.removeTag(\"property='og:image:alt'\");\n }\n }\n catch (error) {\n console.warn('Failed to set image metadata', error);\n }\n }\n resetMetadata() {\n const baseTitle = this.translationService.get('base-portal-title') || 'Portal';\n this.meta.updateTag({ property: 'og:type', content: 'website' });\n this.meta.updateTag({ property: 'og:title', content: baseTitle });\n this.meta.updateTag({ property: 'og:description', content: '' });\n this.meta.updateTag({ name: 'description', content: '' });\n this.meta.updateTag({\n property: 'og:image',\n content: 'assets/gfx/no-img/no-img-header.jpg',\n });\n this.meta.updateTag({ property: 'og:image:alt', content: baseTitle });\n this.meta.updateTag({ property: 'og:image:type', content: 'image/jpeg' });\n this.meta.updateTag({ property: 'og:image:width', content: '250' });\n this.meta.updateTag({ property: 'og:image:height', content: '250' });\n }\n updateTag(tag) {\n this.meta.updateTag(tag);\n }\n setTitle(titleText) {\n const plainTitle = this.removeHtmlTags(titleText);\n this.title.setTitle(plainTitle);\n this.meta.updateTag({ property: 'og:title', content: plainTitle });\n }\n setDescription(description) {\n const plainDesc = this.removeHtmlTags(description);\n this.meta.updateTag({ property: 'og:description', content: plainDesc });\n this.meta.updateTag({ name: 'description', content: plainDesc });\n }\n destroy() {\n this.routerSubscription?.unsubscribe();\n }\n buildImageUrl(baseUrl, image, type) {\n const cleanBaseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;\n if (type === 'object' && image.filePath) {\n return `${cleanBaseUrl}/${image.filePath}.jpg`;\n }\n return `${cleanBaseUrl}/${image.filePath}`;\n }\n removeHtmlTags(value) {\n if (!value)\n return '';\n return value\n .replace(/<.*?>/g, '')\n .replace(/&nbsp;/g, ' ')\n .replace(/&hyphen;/g, '-')\n .replace(/&ndash;/g, '-')\n .replace(/&mdash;/g, '-')\n .replace(/&#8211;/g, '-')\n .replace(/&#8212;/g, '-')\n .replace(/&bdquo;/g, '\"')\n .replace(/&oacute;/g, 'ó')\n .replace(/&rdquo;/g, '\"')\n .replace(/&quot;/g, '\"');\n }\n getRouteTitle() {\n let child = this.activatedRoute.firstChild;\n while (child?.firstChild) {\n child = child.firstChild;\n }\n if (!child)\n return '';\n const snapshot = child.snapshot;\n if (snapshot.data['subtitle']) {\n return snapshot.data['subtitle'];\n }\n if (snapshot.data['title']) {\n return snapshot.data['title'];\n }\n return '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MetaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MetaService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MetaService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9tZXRhL21ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsSUFBSSxFQUFrQixLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLeEUsTUFBTSxPQUFPLFdBQVc7SUFVdEI7UUFUaUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixVQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUs3QyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLGFBQXNCO1FBQzFDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENB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LFVBQVUsQ0FBQztRQUUzQyxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUN6QixLQUFLLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUMzQixDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV0QixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBRWhDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7OEdBbExVLFdBQVc7a0hBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBNZXRhRGVmaW5pdGlvbiwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTXNGaWxlIH0gZnJvbSAnQHNtYXJ0c29mdDAwMS1tb2JpbGVtcy9tb2RlbHMnO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWV0YVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IG1ldGEgPSBpbmplY3QoTWV0YSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoU2hhcmVkQ29uZmlnKTtcblxuICBwcml2YXRlIHJvdXRlclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnJlc2V0TWV0YWRhdGEoKTtcbiAgfVxuXG4gIGtlZXBVcGRhdGluZ1BhZ2VUaXRsZShvblJvdXRlQ2hhbmdlOiBib29sZWFuKTogU3Vic2NyaXB0aW9uIHwgdm9pZCB7XG4gICAgaWYgKG9uUm91dGVDaGFuZ2UpIHtcbiAgICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uID0gdGhpcy5yb3V0ZXIuZXZlbnRzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgbWFwKCgpID0+IHRoaXMuZ2V0Um91dGVUaXRsZSgpKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChkeW5hbWljVGl0bGU6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGlmIChkeW5hbWljVGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VGl0bGUoZHluYW1pY1RpdGxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXJTdWJzY3JpcHRpb247XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGR5bmFtaWNUaXRsZSA9IHRoaXMuZ2V0Um91dGVUaXRsZSgpO1xuICAgICAgaWYgKGR5bmFtaWNUaXRsZSkge1xuICAgICAgICB0aGlzLnNldFRpdGxlKGR5bmFtaWNUaXRsZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0UGFnZU1ldGFkYXRhKHRpdGxlID0gJycsIGRlc2NyaXB0aW9uID0gJycpOiB2b2lkIHtcbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIHRoaXMuc2V0VGl0bGUodGl0bGUpO1xuICAgIH1cbiAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHNldE9iamVjdE1ldGFkYXRhKG9iamVjdERhdGE6IHtcbiAgICBpbWFnZT86IE1zRmlsZTtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICB0eXBlPzogc3RyaW5nO1xuICB9KTogdm9pZCB7XG4gICAgaWYgKG9iamVjdERhdGEuaW1hZ2UpIHtcbiAgICAgIHRoaXMuc2V0SW1hZ2VNZXRhZGF0YShcbiAgICAgICAgb2JqZWN0RGF0YS5pbWFnZSxcbiAgICAgICAgb2JqZWN0RGF0YS50aXRsZSxcbiAgICAgICAgb2JqZWN0RGF0YS50eXBlLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG9iamVjdERhdGEudGl0bGUpIHtcbiAgICAgIHRoaXMuc2V0VGl0bGUob2JqZWN0RGF0YS50aXRsZSk7XG4gICAgfVxuICAgIGlmIChvYmplY3REYXRhLmRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNldERlc2NyaXB0aW9uKG9iamVjdERhdGEuZGVzY3JpcHRpb24pO1xuICAgIH1cbiAgfVxuXG4gIHNldEltYWdlTWV0YWRhdGEoaW1hZ2U6IE1zRmlsZSwgaW1hZ2VBbHQ/OiBzdHJpbmcsIHR5cGU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBtdWx0aW1lZGlhVXJsID0gdGhpcy5jb25maWcubXVsdGltZWRpYVVybDtcblxuICAgIGlmICghbXVsdGltZWRpYVVybCB8fCAhaW1hZ2U/LmZpbGVQYXRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGltYWdlVXJsID0gdGhpcy5idWlsZEltYWdlVXJsKG11bHRpbWVkaWFVcmwsIGltYWdlLCB0eXBlKTtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlJywgY29udGVudDogaW1hZ2VVcmwgfSk7XG4gICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZTp0eXBlJywgY29udGVudDogJ2ltYWdlL2pwZWcnIH0pO1xuICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2U6d2lkdGgnLCBjb250ZW50OiAnNjAwJyB9KTtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlOmhlaWdodCcsIGNvbnRlbnQ6ICc2MDAnIH0pO1xuXG4gICAgICBpZiAoaW1hZ2VBbHQpIHtcbiAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7XG4gICAgICAgICAgcHJvcGVydHk6ICdvZzppbWFnZTphbHQnLFxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMucmVtb3ZlSHRtbFRhZ3MoaW1hZ2VBbHQpLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubWV0YS5yZW1vdmVUYWcoXCJwcm9wZXJ0eT0nb2c6aW1hZ2U6YWx0J1wiKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gc2V0IGltYWdlIG1ldGFkYXRhJywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0TWV0YWRhdGEoKTogdm9pZCB7XG4gICAgY29uc3QgYmFzZVRpdGxlID1cbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmdldCgnYmFzZS1wb3J0YWwtdGl0bGUnKSB8fCAnUG9ydGFsJztcblxuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnR5cGUnLCBjb250ZW50OiAnd2Vic2l0ZScgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBiYXNlVGl0bGUgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiAnJyB9KTtcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudDogJycgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7XG4gICAgICBwcm9wZXJ0eTogJ29nOmltYWdlJyxcbiAgICAgIGNvbnRlbnQ6ICdhc3NldHMvZ2Z4L25vLWltZy9uby1pbWctaGVhZGVyLmpwZycsXG4gICAgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2U6YWx0JywgY29udGVudDogYmFzZVRpdGxlIH0pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmltYWdlOnR5cGUnLCBjb250ZW50OiAnaW1hZ2UvanBlZycgfSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2U6d2lkdGgnLCBjb250ZW50OiAnMjUwJyB9KTtcbiAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZTpoZWlnaHQnLCBjb250ZW50OiAnMjUwJyB9KTtcbiAgfVxuXG4gIHVwZGF0ZVRhZyh0YWc6IE1ldGFEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh0YWcpO1xuICB9XG5cbiAgc2V0VGl0bGUodGl0bGVUZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwbGFpblRpdGxlID0gdGhpcy5yZW1vdmVIdG1sVGFncyh0aXRsZVRleHQpO1xuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUocGxhaW5UaXRsZSk7XG4gICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiBwbGFpblRpdGxlIH0pO1xuICB9XG5cbiAgc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBsYWluRGVzYyA9IHRoaXMucmVtb3ZlSHRtbFRhZ3MoZGVzY3JpcHRpb24pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJywgY29udGVudDogcGxhaW5EZXNjIH0pO1xuICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50OiBwbGFpbkRlc2MgfSk7XG4gIH1cblxuICBkZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEltYWdlVXJsKGJhc2VVcmw6IHN0cmluZywgaW1hZ2U6IE1zRmlsZSwgdHlwZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xlYW5CYXNlVXJsID0gYmFzZVVybC5lbmRzV2l0aCgnLycpID8gYmFzZVVybC5zbGljZSgwLCAtMSkgOiBiYXNlVXJsO1xuXG4gICAgaWYgKHR5cGUgPT09ICdvYmplY3QnICYmIGltYWdlLmZpbGVQYXRoKSB7XG4gICAgICByZXR1cm4gYCR7Y2xlYW5CYXNlVXJsfS8ke2ltYWdlLmZpbGVQYXRofS5qcGdgO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtjbGVhbkJhc2VVcmx9LyR7aW1hZ2UuZmlsZVBhdGh9YDtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSHRtbFRhZ3ModmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuXG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAucmVwbGFjZSgvPC4qPz4vZywgJycpXG4gICAgICAucmVwbGFjZSgvJm5ic3A7L2csICcgJylcbiAgICAgIC5yZXBsYWNlKC8maHlwaGVuOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJm5kYXNoOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJm1kYXNoOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJiM4MjExOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJiM4MjEyOy9nLCAnLScpXG4gICAgICAucmVwbGFjZSgvJmJkcXVvOy9nLCAnXCInKVxuICAgICAgLnJlcGxhY2UoLyZvYWN1dGU7L2csICfDsycpXG4gICAgICAucmVwbGFjZSgvJnJkcXVvOy9nLCAnXCInKVxuICAgICAgLnJlcGxhY2UoLyZxdW90Oy9nLCAnXCInKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um91dGVUaXRsZSgpOiBzdHJpbmcge1xuICAgIGxldCBjaGlsZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuZmlyc3RDaGlsZDtcblxuICAgIHdoaWxlIChjaGlsZD8uZmlyc3RDaGlsZCkge1xuICAgICAgY2hpbGQgPSBjaGlsZC5maXJzdENoaWxkO1xuICAgIH1cblxuICAgIGlmICghY2hpbGQpIHJldHVybiAnJztcblxuICAgIGNvbnN0IHNuYXBzaG90ID0gY2hpbGQuc25hcHNob3Q7XG5cbiAgICBpZiAoc25hcHNob3QuZGF0YVsnc3VidGl0bGUnXSkge1xuICAgICAgcmV0dXJuIHNuYXBzaG90LmRhdGFbJ3N1YnRpdGxlJ107XG4gICAgfVxuXG4gICAgaWYgKHNuYXBzaG90LmRhdGFbJ3RpdGxlJ10pIHtcbiAgICAgIHJldHVybiBzbmFwc2hvdC5kYXRhWyd0aXRsZSddO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component, input, output, HostListener, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\n/**\n * Container component for modal overlay and content.\n * Handles backdrop clicks and ESC key press.\n */\nexport class ModalContainerComponent {\n constructor() {\n /**\n * Template to render inside the modal content area.\n */\n this.contentTemplate = input.required(...(ngDevMode ? [{ debugName: \"contentTemplate\" }] : []));\n /**\n * Emits when backdrop is clicked or ESC key is pressed.\n */\n this.backdropClick = output();\n }\n /**\n * Listens for ESC key press on document level.\n */\n onEscapeKey() {\n this.backdropClick.emit();\n }\n /**\n * Handles backdrop click event.\n * @param _event Mouse click event\n */\n onBackdropClick(_event) {\n this.backdropClick.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.0\", type: ModalContainerComponent, isStandalone: true, selector: \"smart-mobilems-modal-container\", inputs: { contentTemplate: { classPropertyName: \"contentTemplate\", publicName: \"contentTemplate\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { backdropClick: \"backdropClick\" }, host: { listeners: { \"document:keydown.escape\": \"onEscapeKey()\" } }, ngImport: i0, template: `\n <div\n class=\"smart-fixed smart-inset-0 smart-bg-black smart-bg-opacity-50 smart-flex smart-items-center smart-justify-center smart-z-50\"\n (click)=\"onBackdropClick($event)\"\n >\n <div\n class=\"smart-bg-white smart-rounded-lg smart-shadow-xl smart-max-w-2xl smart-w-full smart-m-4 smart-max-h-[90vh] smart-overflow-auto\"\n (click)=\"$event.stopPropagation()\"\n >\n <div class=\"smart-p-6\">\n <ng-container *ngTemplateOutlet=\"contentTemplate()\"></ng-container>\n </div>\n </div>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalContainerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'smart-mobilems-modal-container',\n standalone: true,\n imports: [CommonModule],\n template: `\n <div\n class=\"smart-fixed smart-inset-0 smart-bg-black smart-bg-opacity-50 smart-flex smart-items-center smart-justify-center smart-z-50\"\n (click)=\"onBackdropClick($event)\"\n >\n <div\n class=\"smart-bg-white smart-rounded-lg smart-shadow-xl smart-max-w-2xl smart-w-full smart-m-4 smart-max-h-[90vh] smart-overflow-auto\"\n (click)=\"$event.stopPropagation()\"\n >\n <div class=\"smart-p-6\">\n <ng-container *ngTemplateOutlet=\"contentTemplate()\"></ng-container>\n </div>\n </div>\n </div>\n `,\n }]\n }], propDecorators: { onEscapeKey: [{\n type: HostListener,\n args: ['document:keydown.escape']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvbW9kYWwvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUVOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQzs7O0FBRXZCOzs7R0FHRztBQXFCSCxNQUFNLE9BQU8sdUJBQXVCO0lBcEJwQztRQXFCRTs7V0FFRztRQUNILG9CQUFlLEdBQUcsS0FBSyxDQUFDLFFBQVEsMERBQW9CLENBQUM7UUFFckQ7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLE1BQU0sRUFBUSxDQUFDO0tBaUJoQztJQWZDOztPQUVHO0lBRUgsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxNQUFrQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBekJVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDZXQWhCeEI7Ozs7Ozs7Ozs7Ozs7O0dBY1QsMkRBZlMsWUFBWTs7MkZBaUJYLHVCQUF1QjtrQkFwQm5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztHQWNUO2lCQUNGOzhCQWdCQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ29udGFpbmVyIGNvbXBvbmVudCBmb3IgbW9kYWwgb3ZlcmxheSBhbmQgY29udGVudC5cbiAqIEhhbmRsZXMgYmFja2Ryb3AgY2xpY2tzIGFuZCBFU0Mga2V5IHByZXNzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1tb2JpbGVtcy1tb2RhbC1jb250YWluZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNtYXJ0LWZpeGVkIHNtYXJ0LWluc2V0LTAgc21hcnQtYmctYmxhY2sgc21hcnQtYmctb3BhY2l0eS01MCBzbWFydC1mbGV4IHNtYXJ0LWl0ZW1zLWNlbnRlciBzbWFydC1qdXN0aWZ5LWNlbnRlciBzbWFydC16LTUwXCJcbiAgICAgIChjbGljayk9XCJvbkJhY2tkcm9wQ2xpY2soJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNtYXJ0LWJnLXdoaXRlIHNtYXJ0LXJvdW5kZWQtbGcgc21hcnQtc2hhZG93LXhsIHNtYXJ0LW1heC13LTJ4bCBzbWFydC13LWZ1bGwgc21hcnQtbS00IHNtYXJ0LW1heC1oLVs5MHZoXSBzbWFydC1vdmVyZmxvdy1hdXRvXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFydC1wLTZcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlKClcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb250YWluZXJDb21wb25lbnQge1xuICAvKipcbiAgICogVGVtcGxhdGUgdG8gcmVuZGVyIGluc2lkZSB0aGUgbW9kYWwgY29udGVudCBhcmVhLlxuICAgKi9cbiAgY29udGVudFRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbiBiYWNrZHJvcCBpcyBjbGlja2VkIG9yIEVTQyBrZXkgaXMgcHJlc3NlZC5cbiAgICovXG4gIGJhY2tkcm9wQ2xpY2sgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAvKipcbiAgICogTGlzdGVucyBmb3IgRVNDIGtleSBwcmVzcyBvbiBkb2N1bWVudCBsZXZlbC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJylcbiAgb25Fc2NhcGVLZXkoKTogdm9pZCB7XG4gICAgdGhpcy5iYWNrZHJvcENsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIGJhY2tkcm9wIGNsaWNrIGV2ZW50LlxuICAgKiBAcGFyYW0gX2V2ZW50IE1vdXNlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBvbkJhY2tkcm9wQ2xpY2soX2V2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5iYWNrZHJvcENsaWNrLmVtaXQoKTtcbiAgfVxufVxuIl19","import { Subject } from 'rxjs';\n/**\n * Reference to an opened modal.\n * Provides methods to close the modal and observe its lifecycle.\n */\nexport class ModalRef {\n constructor(closeCallback) {\n this.closeCallback = closeCallback;\n this._afterClosed = new Subject();\n /**\n * Observable that emits when the modal has been closed.\n * Completes after emission.\n */\n this.afterClosed$ = this._afterClosed.asObservable();\n }\n /**\n * Closes the modal and triggers cleanup.\n * Safe to call multiple times.\n */\n close() {\n this.closeCallback();\n this._afterClosed.next();\n this._afterClosed.complete();\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQjs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQVNuQixZQUE2QixhQUF5QjtRQUF6QixrQkFBYSxHQUFiLGFBQWEsQ0FBWTtRQVJyQyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEQ7OztXQUdHO1FBQ00saUJBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRUEsQ0FBQztJQUUxRDs7O09BR0c7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogUmVmZXJlbmNlIHRvIGFuIG9wZW5lZCBtb2RhbC5cbiAqIFByb3ZpZGVzIG1ldGhvZHMgdG8gY2xvc2UgdGhlIG1vZGFsIGFuZCBvYnNlcnZlIGl0cyBsaWZlY3ljbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2RhbFJlZiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyQ2xvc2VkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gdGhlIG1vZGFsIGhhcyBiZWVuIGNsb3NlZC5cbiAgICogQ29tcGxldGVzIGFmdGVyIGVtaXNzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWZ0ZXJDbG9zZWQkID0gdGhpcy5fYWZ0ZXJDbG9zZWQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjbG9zZUNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7fVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIGFuZCB0cmlnZ2VycyBjbGVhbnVwLlxuICAgKiBTYWZlIHRvIGNhbGwgbXVsdGlwbGUgdGltZXMuXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9hZnRlckNsb3NlZC5uZXh0KCk7XG4gICAgdGhpcy5fYWZ0ZXJDbG9zZWQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19","import { DOCUMENT } from '@angular/common';\nimport { Injectable, ApplicationRef, createComponent, EnvironmentInjector, inject, } from '@angular/core';\nimport { ModalContainerComponent } from './modal-container.component';\nimport { ModalRef } from './modal-ref';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for managing modal dialogs.\n * Provides methods to open, close, and manage modal instances.\n */\nexport class ModalService {\n constructor() {\n this.appRef = inject(ApplicationRef);\n this.injector = inject(EnvironmentInjector);\n this.document = inject(DOCUMENT);\n this.activeModals = [];\n }\n /**\n * Opens a modal with the provided template.\n * @param template TemplateRef to render inside the modal\n * @returns ModalRef instance for controlling the modal\n */\n open(template) {\n const componentRef = createComponent(ModalContainerComponent, {\n environmentInjector: this.injector,\n });\n componentRef.setInput('contentTemplate', template);\n const modalRef = new ModalRef(() => this.closeModal(componentRef));\n componentRef.instance.backdropClick.subscribe(() => {\n modalRef.close();\n });\n this.appRef.attachView(componentRef.hostView);\n const domElem = componentRef.hostView.rootNodes[0];\n this.document.body.appendChild(domElem);\n componentRef.changeDetectorRef.detectChanges();\n this.activeModals.push(componentRef);\n return modalRef;\n }\n /**\n * Closes a specific modal instance.\n * @param componentRef Component reference to close\n */\n closeModal(componentRef) {\n const index = this.activeModals.indexOf(componentRef);\n if (index > -1) {\n this.activeModals.splice(index, 1);\n }\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n }\n /**\n * Closes all currently open modals.\n */\n closeAll() {\n const modals = [...this.activeModals];\n modals.forEach((componentRef) => this.closeModal(componentRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ModalService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvbW9kYWwvbW9kYWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNMLFVBQVUsRUFDVixjQUFjLEVBQ2QsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFdkM7OztHQUdHO0FBSUgsTUFBTSxPQUFPLFlBQVk7SUFIekI7UUFJbUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyQyxpQkFBWSxHQUE0QyxFQUFFLENBQUM7S0F1RHBFO0lBckRDOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsUUFBMEI7UUFDN0IsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLHVCQUF1QixFQUFFO1lBQzVELG1CQUFtQixFQUFFLElBQUksQ0FBQyxRQUFRO1NBQ25DLENBQUMsQ0FBQztRQUVILFlBQVksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRW5FLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakQsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sT0FBTyxHQUFJLFlBQVksQ0FBQyxRQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFDM0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyQyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUNoQixZQUFtRDtRQUVuRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDOzhHQTNEVSxZQUFZO2tIQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIEFwcGxpY2F0aW9uUmVmLFxuICBjcmVhdGVDb21wb25lbnQsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIGluamVjdCxcbiAgVGVtcGxhdGVSZWYsXG4gIENvbXBvbmVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsUmVmIH0gZnJvbSAnLi9tb2RhbC1yZWYnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIG1hbmFnaW5nIG1vZGFsIGRpYWxvZ3MuXG4gKiBQcm92aWRlcyBtZXRob2RzIHRvIG9wZW4sIGNsb3NlLCBhbmQgbWFuYWdlIG1vZGFsIGluc3RhbmNlcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgcHJpdmF0ZSBhY3RpdmVNb2RhbHM6IENvbXBvbmVudFJlZjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD5bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBPcGVucyBhIG1vZGFsIHdpdGggdGhlIHByb3ZpZGVkIHRlbXBsYXRlLlxuICAgKiBAcGFyYW0gdGVtcGxhdGUgVGVtcGxhdGVSZWYgdG8gcmVuZGVyIGluc2lkZSB0aGUgbW9kYWxcbiAgICogQHJldHVybnMgTW9kYWxSZWYgaW5zdGFuY2UgZm9yIGNvbnRyb2xsaW5nIHRoZSBtb2RhbFxuICAgKi9cbiAgb3Blbih0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pik6IE1vZGFsUmVmIHtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQoTW9kYWxDb250YWluZXJDb21wb25lbnQsIHtcbiAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgfSk7XG5cbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoJ2NvbnRlbnRUZW1wbGF0ZScsIHRlbXBsYXRlKTtcblxuICAgIGNvbnN0IG1vZGFsUmVmID0gbmV3IE1vZGFsUmVmKCgpID0+IHRoaXMuY2xvc2VNb2RhbChjb21wb25lbnRSZWYpKTtcblxuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5iYWNrZHJvcENsaWNrLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBtb2RhbFJlZi5jbG9zZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuXG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgYW55KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMuYWN0aXZlTW9kYWxzLnB1c2goY29tcG9uZW50UmVmKTtcblxuICAgIHJldHVybiBtb2RhbFJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYSBzcGVjaWZpYyBtb2RhbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIGNvbXBvbmVudFJlZiBDb21wb25lbnQgcmVmZXJlbmNlIHRvIGNsb3NlXG4gICAqL1xuICBwcml2YXRlIGNsb3NlTW9kYWwoXG4gICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8TW9kYWxDb250YWluZXJDb21wb25lbnQ+LFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuYWN0aXZlTW9kYWxzLmluZGV4T2YoY29tcG9uZW50UmVmKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgdGhpcy5hY3RpdmVNb2RhbHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG5cbiAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgYWxsIGN1cnJlbnRseSBvcGVuIG1vZGFscy5cbiAgICovXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IG1vZGFscyA9IFsuLi50aGlzLmFjdGl2ZU1vZGFsc107XG4gICAgbW9kYWxzLmZvckVhY2goKGNvbXBvbmVudFJlZikgPT4gdGhpcy5jbG9zZU1vZGFsKGNvbXBvbmVudFJlZikpO1xuICB9XG59XG4iXX0=","import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { CrudSearchService, } from '@smartsoft001/crud-shell-angular';\nimport { combineLatest, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { environment } from '../../environments/environment';\nimport * as i0 from \"@angular/core\";\nexport class SearchService extends CrudSearchService {\n constructor() {\n super(...arguments);\n this.http = inject(HttpClient);\n this._currentSearchText = '';\n }\n get currentSearchText() {\n return this._currentSearchText;\n }\n setFilter(val) {\n super.setFilter(val);\n }\n setEnabled(val) {\n super.setEnabled(val);\n }\n setCurrentSearchText(txt) {\n this._currentSearchText = txt;\n }\n search(txt, data = {}) {\n this.setFilter({\n searchText: txt,\n });\n this._currentSearchText = txt;\n return combineLatest([\n this.http\n .get(`${environment.apiUrl}search/Object/page/1?maxPerPage=1&${this.getFilterQuery('objects', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n this.http\n .get(`${environment.apiUrl}public-collections/page/1?maxPerPage=1&${this.getFilterQuery('publicCollections', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n this.http\n .get(`${environment.apiUrl}search/Article/page/1?maxPerPage=1&${this.getFilterQuery('articles', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n this.http\n .get(`${environment.apiUrl}dictionary/Creator/search/page/1?maxPerPage=1&${this.getFilterQuery('creators', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n this.http\n .get(`${environment.apiUrl}dictionary/Imprint/search/page/1?maxPerPage=1&${this.getFilterQuery('imprints', txt, data)}`)\n .pipe(catchError(() => {\n return of(null);\n })),\n ]).pipe(map(([objectsResult, publicCollectionsResult, articlesResult, creatorsResult, imprintsResult,]) => {\n return {\n objects: objectsResult?.data?.paginatorDetails?.totalItemsCount ?? 0,\n publicCollections: publicCollectionsResult?.data?.paginatorDetails\n ?.totalItemsCount ?? 0,\n articles: articlesResult?.data?.paginatorDetails?.totalItemsCount ?? 0,\n creators: creatorsResult?.data?.paginatorDetails?.totalItemsCount ?? 0,\n imprints: imprintsResult?.data?.paginatorDetails?.totalItemsCount ?? 0,\n };\n }));\n }\n getFilterQuery(type, txt, data = {}) {\n const result = [];\n if (txt && type !== 'creators' && type !== 'imprints') {\n result.push(`filter[phrase]=${encodeURIComponent(txt)}`);\n }\n else if (txt) {\n result.push(`q=${encodeURIComponent(txt)}`);\n }\n if (data.keywordId) {\n result.push(`filter[keywords][]=${data.keywordId}`);\n }\n if (data.cycleId) {\n result.push(`filter[cycles][]=${data.cycleId}`);\n }\n if (data.seriesTitleId) {\n result.push(`filter[cycles][]=${data.seriesTitleId}`);\n }\n return result.join('&');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SearchService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SearchService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SearchService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3NlYXJjaC9zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQWtDN0QsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFIcEQ7O1FBSW1CLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO0tBNkhqQztJQTNIQyxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRVEsU0FBUyxDQUFDLEdBQXlCO1FBQzFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVRLFVBQVUsQ0FBQyxHQUFZO1FBQzlCLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELG9CQUFvQixDQUFDLEdBQVc7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVcsRUFBRSxPQUFvQixFQUFF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QUFHLElBQUksSUFBSSxLQUFLLFVBQVUsSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0Isa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7YUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7OEdBOUhVLGFBQWE7a0hBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ3J1ZFNlYXJjaFNlcnZpY2UsXG4gIElDcnVkRmlsdGVyLFxufSBmcm9tICdAc21hcnRzb2Z0MDAxL2NydWQtc2hlbGwtYW5ndWxhcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5cbmV4cG9ydCB0eXBlIFNlYXJjaFNvdXJjZSA9XG4gIHwgJ29iamVjdHMnXG4gIHwgJ3B1YmxpY0NvbGxlY3Rpb25zJ1xuICB8ICdhcnRpY2xlcydcbiAgfCAnY3JlYXRvcnMnXG4gIHwgJ2ltcHJpbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoRGF0YSB7XG4gIGN5Y2xlSWQ/OiBudW1iZXI7XG4gIGtleXdvcmRJZD86IG51bWJlcjtcbiAgc2VyaWVzVGl0bGVJZD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2VhcmNoUmVzdWx0cyB7XG4gIG9iamVjdHM6IG51bWJlcjtcbiAgcHVibGljQ29sbGVjdGlvbnM6IG51bWJlcjtcbiAgYXJ0aWNsZXM6IG51bWJlcjtcbiAgY3JlYXRvcnM6IG51bWJlcjtcbiAgaW1wcmludHM6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIEFwaVJlc3BvbnNlIHtcbiAgZGF0YT86IHtcbiAgICBwYWdpbmF0b3JEZXRhaWxzPzoge1xuICAgICAgdG90YWxJdGVtc0NvdW50OiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2UgZXh0ZW5kcyBDcnVkU2VhcmNoU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSBfY3VycmVudFNlYXJjaFRleHQgPSAnJztcblxuICBnZXQgY3VycmVudFNlYXJjaFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFNlYXJjaFRleHQ7XG4gIH1cblxuICBvdmVycmlkZSBzZXRGaWx0ZXIodmFsOiBQYXJ0aWFsPElDcnVkRmlsdGVyPik6IHZvaWQge1xuICAgIHN1cGVyLnNldEZpbHRlcih2YWwpO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0RW5hYmxlZCh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBzdXBlci5zZXRFbmFibGVkKHZhbCk7XG4gIH1cblxuICBzZXRDdXJyZW50U2VhcmNoVGV4dCh0eHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hUZXh0ID0gdHh0O1xuICB9XG5cbiAgc2VhcmNoKHR4dDogc3RyaW5nLCBkYXRhOiBJU2VhcmNoRGF0YSA9IHt9KTogT2JzZXJ2YWJsZTxJU2VhcmNoUmVzdWx0cz4ge1xuICAgIHRoaXMuc2V0RmlsdGVyKHtcbiAgICAgIHNlYXJjaFRleHQ6IHR4dCxcbiAgICB9KTtcblxuICAgIHRoaXMuX2N1cnJlbnRTZWFyY2hUZXh0ID0gdHh0O1xuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8QXBpUmVzcG9uc2U+KFxuICAgICAgICAgIGAke2Vudmlyb25tZW50LmFwaVVybH1zZWFyY2gvT2JqZWN0L3BhZ2UvMT9tYXhQZXJQYWdlPTEmJHt0aGlzLmdldEZpbHRlclF1ZXJ5KCdvYmplY3RzJywgdHh0LCBkYXRhKX1gLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwgYXMgQXBpUmVzcG9uc2UgfCBudWxsKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PEFwaVJlc3BvbnNlPihcbiAgICAgICAgICBgJHtlbnZpcm9ubWVudC5hcGlVcmx9cHVibGljLWNvbGxlY3Rpb25zL3BhZ2UvMT9tYXhQZXJQYWdlPTEmJHt0aGlzLmdldEZpbHRlclF1ZXJ5KCdwdWJsaWNDb2xsZWN0aW9ucycsIHR4dCwgZGF0YSl9YCxcbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsIGFzIEFwaVJlc3BvbnNlIHwgbnVsbCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxBcGlSZXNwb25zZT4oXG4gICAgICAgICAgYCR7ZW52aXJvbm1lbnQuYXBpVXJsfXNlYXJjaC9BcnRpY2xlL3BhZ2UvMT9tYXhQZXJQYWdlPTEmJHt0aGlzLmdldEZpbHRlclF1ZXJ5KCdhcnRpY2xlcycsIHR4dCwgZGF0YSl9YCxcbiAgICAgICAgKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsIGFzIEFwaVJlc3BvbnNlIHwgbnVsbCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDxBcGlSZXNwb25zZT4oXG4gICAgICAgICAgYCR7ZW52aXJvbm1lbnQuYXBpVXJsfWRpY3Rpb25hcnkvQ3JlYXRvci9zZWFyY2gvcGFnZS8xP21heFBlclBhZ2U9MSYke3RoaXMuZ2V0RmlsdGVyUXVlcnkoJ2NyZWF0b3JzJywgdHh0LCBkYXRhKX1gLFxuICAgICAgICApXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwgYXMgQXBpUmVzcG9uc2UgfCBudWxsKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgIHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PEFwaVJlc3BvbnNlPihcbiAgICAgICAgICBgJHtlbnZpcm9ubWVudC5hcGlVcmx9ZGljdGlvbmFyeS9JbXByaW50L3NlYXJjaC9wYWdlLzE/bWF4UGVyUGFnZT0xJiR7dGhpcy5nZXRGaWx0ZXJRdWVyeSgnaW1wcmludHMnLCB0eHQsIGRhdGEpfWAsXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCBhcyBBcGlSZXNwb25zZSB8IG51bGwpO1xuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChbXG4gICAgICAgICAgb2JqZWN0c1Jlc3VsdCxcbiAgICAgICAgICBwdWJsaWNDb2xsZWN0aW9uc1Jlc3VsdCxcbiAgICAgICAgICBhcnRpY2xlc1Jlc3VsdCxcbiAgICAgICAgICBjcmVhdG9yc1Jlc3VsdCxcbiAgICAgICAgICBpbXByaW50c1Jlc3VsdCxcbiAgICAgICAgXSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvYmplY3RzOlxuICAgICAgICAgICAgICBvYmplY3RzUmVzdWx0Py5kYXRhPy5wYWdpbmF0b3JEZXRhaWxzPy50b3RhbEl0ZW1zQ291bnQgPz8gMCxcbiAgICAgICAgICAgIHB1YmxpY0NvbGxlY3Rpb25zOlxuICAgICAgICAgICAgICBwdWJsaWNDb2xsZWN0aW9uc1Jlc3VsdD8uZGF0YT8ucGFnaW5hdG9yRGV0YWlsc1xuICAgICAgICAgICAgICAgID8udG90YWxJdGVtc0NvdW50ID8/IDAsXG4gICAgICAgICAgICBhcnRpY2xlczpcbiAgICAgICAgICAgICAgYXJ0aWNsZXNSZXN1bHQ/LmRhdGE/LnBhZ2luYXRvckRldGFpbHM/LnRvdGFsSXRlbXNDb3VudCA/PyAwLFxuICAgICAgICAgICAgY3JlYXRvcnM6XG4gICAgICAgICAgICAgIGNyZWF0b3JzUmVzdWx0Py5kYXRhPy5wYWdpbmF0b3JEZXRhaWxzPy50b3RhbEl0ZW1zQ291bnQgPz8gMCxcbiAgICAgICAgICAgIGltcHJpbnRzOlxuICAgICAgICAgICAgICBpbXByaW50c1Jlc3VsdD8uZGF0YT8ucGFnaW5hdG9yRGV0YWlscz8udG90YWxJdGVtc0NvdW50ID8/IDAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGdldEZpbHRlclF1ZXJ5KFxuICAgIHR5cGU6IFNlYXJjaFNvdXJjZSxcbiAgICB0eHQ6IHN0cmluZyxcbiAgICBkYXRhOiBJU2VhcmNoRGF0YSA9IHt9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlc3VsdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG4gICAgaWYgKHR4dCAmJiB0eXBlICE9PSAnY3JlYXRvcnMnICYmIHR5cGUgIT09ICdpbXByaW50cycpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGBmaWx0ZXJbcGhyYXNlXT0ke2VuY29kZVVSSUNvbXBvbmVudCh0eHQpfWApO1xuICAgIH0gZWxzZSBpZiAodHh0KSB7XG4gICAgICByZXN1bHQucHVzaChgcT0ke2VuY29kZVVSSUNvbXBvbmVudCh0eHQpfWApO1xuICAgIH1cblxuICAgIGlmIChkYXRhLmtleXdvcmRJZCkge1xuICAgICAgcmVzdWx0LnB1c2goYGZpbHRlcltrZXl3b3Jkc11bXT0ke2RhdGEua2V5d29yZElkfWApO1xuICAgIH1cblxuICAgIGlmIChkYXRhLmN5Y2xlSWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGBmaWx0ZXJbY3ljbGVzXVtdPSR7ZGF0YS5jeWNsZUlkfWApO1xuICAgIH1cblxuICAgIGlmIChkYXRhLnNlcmllc1RpdGxlSWQpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGBmaWx0ZXJbY3ljbGVzXVtdPSR7ZGF0YS5zZXJpZXNUaXRsZUlkfWApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQuam9pbignJicpO1xuICB9XG59XG4iXX0=","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, inject, PLATFORM_ID } from '@angular/core';\nimport { Title, Meta } from '@angular/platform-browser';\nimport * as i0 from \"@angular/core\";\nexport class SeoService {\n constructor() {\n this.title = inject(Title);\n this.meta = inject(Meta);\n this.platformId = inject(PLATFORM_ID);\n this.isBrowser = isPlatformBrowser(this.platformId);\n }\n updateTitle(titleText) {\n if (!titleText) {\n console.warn('Title text is empty or undefined.');\n return;\n }\n const decodedTitle = this.decodeHtml(titleText);\n if (decodedTitle) {\n this.title.setTitle(decodedTitle);\n }\n }\n updateMetaTags(metaTags) {\n metaTags.forEach((tag) => this.meta.updateTag(tag));\n }\n updateDescription(description) {\n if (!description) {\n console.warn('Description text is empty or undefined.');\n return;\n }\n const decodedDesc = this.decodeHtml(description);\n if (decodedDesc) {\n this.meta.updateTag({ name: 'description', content: decodedDesc });\n }\n }\n updateOgTags(title, description, image, url) {\n const tags = [];\n if (title) {\n tags.push({\n property: 'og:title',\n content: this.decodeHtml(title) || title,\n });\n }\n if (description) {\n tags.push({\n property: 'og:description',\n content: this.decodeHtml(description) || description,\n });\n }\n if (image) {\n tags.push({ property: 'og:image', content: image });\n }\n if (url) {\n tags.push({ property: 'og:url', content: url });\n }\n this.updateMetaTags(tags);\n }\n decodeHtml(encodedStr) {\n if (!encodedStr)\n return encodedStr;\n // Use DOMParser only in browser environments\n if (this.isBrowser) {\n try {\n const parser = new DOMParser();\n const doc = parser.parseFromString(encodedStr, 'text/html');\n return doc.documentElement.textContent;\n }\n catch (error) {\n console.warn('DOMParser decode failed, falling back to server-safe decoder', error);\n }\n }\n // Server / SSR fallback: decode numeric entities and common named entities\n try {\n let decoded = encodedStr\n .replace(/&#x([0-9A-Fa-f]+);?/g, (_m, hex) => String.fromCharCode(parseInt(hex, 16)))\n .replace(/&#([0-9]+);?/g, (_m, num) => String.fromCharCode(parseInt(num, 10)));\n const entities = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"',\n apos: \"'\",\n nbsp: '\\u00A0',\n };\n decoded = decoded.replace(/&([a-zA-Z]+);?/g, (_m, name) => Object.prototype.hasOwnProperty.call(entities, name)\n ? entities[name]\n : `&${name};`);\n return decoded;\n }\n catch (error) {\n console.warn('Failed to decode HTML with fallback', error);\n return encodedStr;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SeoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SeoService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SeoService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3Nlby9zZW8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQWtCLE1BQU0sMkJBQTJCLENBQUM7O0FBS3hFLE1BQU0sT0FBTyxVQUFVO0lBSHZCO1FBSW1CLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2pDLGNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7S0ErR2pFO0lBN0dDLFdBQVcsQ0FBQyxTQUFpQjtRQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7WUFDbEQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsUUFBMEI7UUFDdkMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUks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QUFFLEVBQUUsR0FBRztnQkFDUCxJQUFJLEVBQUUsR0FBRztnQkFDVCxJQUFJLEVBQUUsR0FBRztnQkFDVCxJQUFJLEVBQUUsUUFBUTthQUNmLENBQUM7WUFFRixPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUN4RCxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztnQkFDbEQsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUNoQixDQUFDO1lBRUYsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNELE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDOzhHQWxIVSxVQUFVO2tIQUFWLFVBQVUsY0FGVCxNQUFNOzsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRpdGxlLCBNZXRhLCBNZXRhRGVmaW5pdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2VvU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1ldGEgPSBpbmplY3QoTWV0YSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcblxuICB1cGRhdGVUaXRsZSh0aXRsZVRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGl0bGVUZXh0KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RpdGxlIHRleHQgaXMgZW1wdHkgb3IgdW5kZWZpbmVkLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZWRUaXRsZSA9IHRoaXMuZGVjb2RlSHRtbCh0aXRsZVRleHQpO1xuICAgIGlmIChkZWNvZGVkVGl0bGUpIHtcbiAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUoZGVjb2RlZFRpdGxlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVNZXRhVGFncyhtZXRhVGFnczogTWV0YURlZmluaXRpb25bXSk6IHZvaWQge1xuICAgIG1ldGFUYWdzLmZvckVhY2goKHRhZykgPT4gdGhpcy5tZXRhLnVwZGF0ZVRhZyh0YWcpKTtcbiAgfVxuXG4gIHVwZGF0ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIWRlc2NyaXB0aW9uKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0Rlc2NyaXB0aW9uIHRleHQgaXMgZW1wdHkgb3IgdW5kZWZpbmVkLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRlY29kZWREZXNjID0gdGhpcy5kZWNvZGVIdG1sKGRlc2NyaXB0aW9uKTtcbiAgICBpZiAoZGVjb2RlZERlc2MpIHtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50OiBkZWNvZGVkRGVzYyB9KTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVPZ1RhZ3MoXG4gICAgdGl0bGU/OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgaW1hZ2U/OiBzdHJpbmcsXG4gICAgdXJsPzogc3RyaW5nLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB0YWdzOiBNZXRhRGVmaW5pdGlvbltdID0gW107XG5cbiAgICBpZiAodGl0bGUpIHtcbiAgICAgIHRhZ3MucHVzaCh7XG4gICAgICAgIHByb3BlcnR5OiAnb2c6dGl0bGUnLFxuICAgICAgICBjb250ZW50OiB0aGlzLmRlY29kZUh0bWwodGl0bGUpIHx8IHRpdGxlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGRlc2NyaXB0aW9uKSB7XG4gICAgICB0YWdzLnB1c2goe1xuICAgICAgICBwcm9wZXJ0eTogJ29nOmRlc2NyaXB0aW9uJyxcbiAgICAgICAgY29udGVudDogdGhpcy5kZWNvZGVIdG1sKGRlc2NyaXB0aW9uKSB8fCBkZXNjcmlwdGlvbixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChpbWFnZSkge1xuICAgICAgdGFncy5wdXNoKHsgcHJvcGVydHk6ICdvZzppbWFnZScsIGNvbnRlbnQ6IGltYWdlIH0pO1xuICAgIH1cblxuICAgIGlmICh1cmwpIHtcbiAgICAgIHRhZ3MucHVzaCh7IHByb3BlcnR5OiAnb2c6dXJsJywgY29udGVudDogdXJsIH0pO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlTWV0YVRhZ3ModGFncyk7XG4gIH1cblxuICBwcml2YXRlIGRlY29kZUh0bWwoZW5jb2RlZFN0cjogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFlbmNvZGVkU3RyKSByZXR1cm4gZW5jb2RlZFN0cjtcblxuICAgIC8vIFVzZSBET01QYXJzZXIgb25seSBpbiBicm93c2VyIGVudmlyb25tZW50c1xuICAgIGlmICh0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAgICAgICBjb25zdCBkb2MgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKGVuY29kZWRTdHIsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgcmV0dXJuIGRvYy5kb2N1bWVudEVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ0RPTVBhcnNlciBkZWNvZGUgZmFpbGVkLCBmYWxsaW5nIGJhY2sgdG8gc2VydmVyLXNhZmUgZGVjb2RlcicsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2VydmVyIC8gU1NSIGZhbGxiYWNrOiBkZWNvZGUgbnVtZXJpYyBlbnRpdGllcyBhbmQgY29tbW9uIG5hbWVkIGVudGl0aWVzXG4gICAgdHJ5IHtcbiAgICAgIGxldCBkZWNvZGVkID0gZW5jb2RlZFN0clxuICAgICAgICAucmVwbGFjZSgvJiN4KFswLTlBLUZhLWZdKyk7Py9nLCAoX20sIGhleCkgPT5cbiAgICAgICAgICBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGhleCwgMTYpKSxcbiAgICAgICAgKVxuICAgICAgICAucmVwbGFjZSgvJiMoWzAtOV0rKTs/L2csIChfbSwgbnVtKSA9PlxuICAgICAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQobnVtLCAxMCkpLFxuICAgICAgICApO1xuXG4gICAgICBjb25zdCBlbnRpdGllczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICAgYW1wOiAnJicsXG4gICAgICAgIGx0OiAnPCcsXG4gICAgICAgIGd0OiAnPicsXG4gICAgICAgIHF1b3Q6ICdcIicsXG4gICAgICAgIGFwb3M6IFwiJ1wiLFxuICAgICAgICBuYnNwOiAnXFx1MDBBMCcsXG4gICAgICB9O1xuXG4gICAgICBkZWNvZGVkID0gZGVjb2RlZC5yZXBsYWNlKC8mKFthLXpBLVpdKyk7Py9nLCAoX20sIG5hbWUpID0+XG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlbnRpdGllcywgbmFtZSlcbiAgICAgICAgICA/IGVudGl0aWVzW25hbWVdXG4gICAgICAgICAgOiBgJiR7bmFtZX07YCxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBkZWNvZGVkO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byBkZWNvZGUgSFRNTCB3aXRoIGZhbGxiYWNrJywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGVuY29kZWRTdHI7XG4gICAgfVxuICB9XG59XG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { SharedConfig } from '../../shared.config';\nimport { TranslationService } from '../translation/translation.service';\nimport * as i0 from \"@angular/core\";\nexport class SettingsService {\n constructor() {\n this.translationService = inject(TranslationService);\n this.config = inject(SharedConfig);\n }\n getMediaUrl() {\n const multimediaUrl = this.config.multimediaUrl;\n if (!multimediaUrl) {\n return '';\n }\n // Remove trailing slash if present\n return multimediaUrl.endsWith('/')\n ? multimediaUrl.substring(0, multimediaUrl.length - 1)\n : multimediaUrl;\n }\n getBaseTitle() {\n return this.translationService.get('base-portal-title');\n }\n getCanLink() {\n // Could be extended with preview mode config in the future\n return true;\n }\n getMainLogo() {\n return this.config.mainLogoPath;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SettingsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SettingsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SettingsService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBS3hFLE1BQU0sT0FBTyxlQUFlO0lBSDVCO1FBSW1CLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELFdBQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0EyQmhEO0lBekJDLFdBQVc7UUFDVCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUVoRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsbUNBQW1DO1FBQ25DLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDaEMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3RELENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVTtRQUNSLDJEQUEyRDtRQUMzRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUNsQyxDQUFDOzhHQTVCVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoU2hhcmVkQ29uZmlnKTtcblxuICBnZXRNZWRpYVVybCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG11bHRpbWVkaWFVcmwgPSB0aGlzLmNvbmZpZy5tdWx0aW1lZGlhVXJsO1xuXG4gICAgaWYgKCFtdWx0aW1lZGlhVXJsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoIGlmIHByZXNlbnRcbiAgICByZXR1cm4gbXVsdGltZWRpYVVybC5lbmRzV2l0aCgnLycpXG4gICAgICA/IG11bHRpbWVkaWFVcmwuc3Vic3RyaW5nKDAsIG11bHRpbWVkaWFVcmwubGVuZ3RoIC0gMSlcbiAgICAgIDogbXVsdGltZWRpYVVybDtcbiAgfVxuXG4gIGdldEJhc2VUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5nZXQoJ2Jhc2UtcG9ydGFsLXRpdGxlJyk7XG4gIH1cblxuICBnZXRDYW5MaW5rKCk6IGJvb2xlYW4ge1xuICAgIC8vIENvdWxkIGJlIGV4dGVuZGVkIHdpdGggcHJldmlldyBtb2RlIGNvbmZpZyBpbiB0aGUgZnV0dXJlXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRNYWluTG9nbygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5tYWluTG9nb1BhdGg7XG4gIH1cbn1cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { StyleService as SmartStyleService } from '@smartsoft001/angular';\nimport { SharedConfig } from '../../shared.config';\nimport * as i0 from \"@angular/core\";\nexport class StyleService {\n constructor() {\n this.smartStyleService = inject(SmartStyleService);\n this.config = inject(SharedConfig);\n }\n init(elementRef, customVariables) {\n const variables = {\n ...this.config.styleVariables,\n ...customVariables,\n };\n this.smartStyleService.init(elementRef, variables);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: StyleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: StyleService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: StyleService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvc3R5bGUvc3R5bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sWUFBWTtJQUh6QjtRQUltQixzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBVWhEO0lBUkMsSUFBSSxDQUFDLFVBQXNCLEVBQUUsZUFBcUM7UUFDaEUsTUFBTSxTQUFTLEdBQUc7WUFDaEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWM7WUFDN0IsR0FBRyxlQUFlO1NBQ25CLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNyRCxDQUFDOzhHQVhVLFlBQVk7a0hBQVosWUFBWSxjQUZYLE1BQU07OzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdHlsZVNlcnZpY2UgYXMgU21hcnRTdHlsZVNlcnZpY2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBTaGFyZWRDb25maWcgfSBmcm9tICcuLi8uLi9zaGFyZWQuY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFN0eWxlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc21hcnRTdHlsZVNlcnZpY2UgPSBpbmplY3QoU21hcnRTdHlsZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChTaGFyZWRDb25maWcpO1xuXG4gIGluaXQoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgY3VzdG9tVmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHtcbiAgICAgIC4uLnRoaXMuY29uZmlnLnN0eWxlVmFyaWFibGVzLFxuICAgICAgLi4uY3VzdG9tVmFyaWFibGVzLFxuICAgIH07XG5cbiAgICB0aGlzLnNtYXJ0U3R5bGVTZXJ2aWNlLmluaXQoZWxlbWVudFJlZiwgdmFyaWFibGVzKTtcbiAgfVxufVxuIl19","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject, signal, computed, effect, } from '@angular/core';\nimport { TranslationService } from '../translation/translation.service';\nimport * as i0 from \"@angular/core\";\nconst WCAG_CONFIG_KEY = 'WCAG_CONFIG';\nconst DEFAULT_CONFIG = {\n contrast: 'normal',\n text: 'normal',\n letterSpacing: 'small',\n wordSpacing: 'small',\n};\nexport class WcagService {\n constructor() {\n this.translationService = inject(TranslationService);\n this.platformId = inject(PLATFORM_ID);\n this.isBrowser = isPlatformBrowser(this.platformId);\n this._config = signal(this.loadConfig(), ...(ngDevMode ? [{ debugName: \"_config\" }] : []));\n this.config = this._config.asReadonly();\n this.wordSpacingValue = computed(() => this.getSpacingValue(this._config().wordSpacing), ...(ngDevMode ? [{ debugName: \"wordSpacingValue\" }] : []));\n this.letterSpacingValue = computed(() => this.getSpacingValue(this._config().letterSpacing), ...(ngDevMode ? [{ debugName: \"letterSpacingValue\" }] : []));\n // Apply config changes to DOM\n effect(() => {\n const config = this._config();\n this.applyConfigToDOM(config);\n });\n }\n async init() {\n // Config is already loaded in constructor\n // This method kept for backward compatibility\n }\n setContrast(value) {\n this._config.update((config) => ({ ...config, contrast: value }));\n this.announceChange('setContrast', value);\n this.save();\n }\n setText(value) {\n this._config.update((config) => ({ ...config, text: value }));\n this.announceChange('setText', value);\n this.save();\n }\n setLetterSpacing(value) {\n this._config.update((config) => ({ ...config, letterSpacing: value }));\n this.announceChange('setLetterSpacing', value);\n this.save();\n }\n setWordSpacing(value) {\n this._config.update((config) => ({ ...config, wordSpacing: value }));\n this.announceChange('setWordSpacing', value);\n this.save();\n }\n reset() {\n this._config.set(DEFAULT_CONFIG);\n this.save();\n }\n getSpacingValue(spacing) {\n switch (spacing) {\n case 'normal':\n return 1;\n case 'large':\n return 2;\n default:\n return 0;\n }\n }\n loadConfig() {\n if (this.isBrowser && typeof localStorage !== 'undefined') {\n const stored = localStorage.getItem(WCAG_CONFIG_KEY);\n if (stored) {\n try {\n const parsed = JSON.parse(stored);\n return { ...DEFAULT_CONFIG, ...parsed };\n }\n catch (error) {\n console.warn('Failed to parse WCAG config', error);\n }\n }\n }\n return DEFAULT_CONFIG;\n }\n save() {\n if (this.isBrowser && typeof localStorage !== 'undefined') {\n localStorage.setItem(WCAG_CONFIG_KEY, JSON.stringify(this._config()));\n }\n }\n applyConfigToDOM(config) {\n if (!this.isBrowser)\n return;\n const body = document.getElementsByTagName('body')[0];\n if (!body)\n return;\n body.className = '';\n body.className += ` contrast-${config.contrast}`;\n body.className += ` text-${config.text}`;\n body.className += ` letter-spacing-${config.letterSpacing}`;\n body.className += ` word-spacing-${config.wordSpacing}`;\n }\n announceChange(type, value) {\n if (!this.isBrowser)\n return;\n let announceElement = document.getElementById('wcag-change');\n if (!announceElement) {\n announceElement = document.createElement('span');\n announceElement.id = 'wcag-change';\n announceElement.className = 'sr-only';\n announceElement.setAttribute('aria-atomic', 'true');\n announceElement.setAttribute('aria-live', 'polite');\n document.body.appendChild(announceElement);\n }\n const translationKey = `WCAG.${type}.${value}`;\n announceElement.innerHTML = this.translationService.get(translationKey);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: WcagService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: WcagService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: WcagService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NhZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy93Y2FnL3djYWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBRUwsVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRXhFLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQztBQW9CdEMsTUFBTSxjQUFjLEdBQWdCO0lBQ2xDLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLElBQUksRUFBRSxRQUFRO0lBQ2QsYUFBYSxFQUFFLE9BQU87SUFDdEIsV0FBVyxFQUFFLE9BQU87Q0FDckIsQ0FBQztBQUtGLE1BQU0sT0FBTyxXQUFXO0lBZXRCO1FBZGlCLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsY0FBUyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQyxZQUFPLEdBQUcsTUFBTSxDQUFjLElBQUksQ0FBQyxVQUFVLEVBQUUsbURBQUMsQ0FBQztRQUV6RCxXQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQyxxQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3hDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyw0REFDakQsQ0FBQztRQUNPLHVCQUFr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LENBQUM7UUFFN0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLGVBQWUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pELGVBQWUsQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDO1lBQ25DLGVBQWUsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLGVBQWUsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELGVBQWUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3BELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBRyxRQUFRLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUMvQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUUsQ0FBQzs4R0F4SFUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIFBMQVRGT1JNX0lELFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuXG5jb25zdCBXQ0FHX0NPTkZJR19LRVkgPSAnV0NBR19DT05GSUcnO1xuXG5leHBvcnQgdHlwZSBXY2FnQ29udHJhc3QgPSAnaGlnaCcgfCAnbm9ybWFsJyB8ICdncmF5c2NhbGUnO1xuZXhwb3J0IHR5cGUgV2NhZ1RleHQgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuZXhwb3J0IHR5cGUgV2NhZ0xldHRlclNwYWNpbmcgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuZXhwb3J0IHR5cGUgV2NhZ1dvcmRTcGFjaW5nID0gJ3NtYWxsJyB8ICdub3JtYWwnIHwgJ2xhcmdlJztcblxuZXhwb3J0IGludGVyZmFjZSBJV2NhZ0NvbmZpZyB7XG4gIGNvbnRyYXN0OiBXY2FnQ29udHJhc3Q7XG4gIHRleHQ6IFdjYWdUZXh0O1xuICBsZXR0ZXJTcGFjaW5nOiBXY2FnTGV0dGVyU3BhY2luZztcbiAgd29yZFNwYWNpbmc6IFdjYWdXb3JkU3BhY2luZztcbn1cblxuZXhwb3J0IHR5cGUgV2NhZ0NoYW5nZVR5cGUgPVxuICB8ICdzZXRDb250cmFzdCdcbiAgfCAnc2V0VGV4dCdcbiAgfCAnc2V0TGV0dGVyU3BhY2luZydcbiAgfCAnc2V0V29yZFNwYWNpbmcnO1xuXG5jb25zdCBERUZBVUxUX0NPTkZJRzogSVdjYWdDb25maWcgPSB7XG4gIGNvbnRyYXN0OiAnbm9ybWFsJyxcbiAgdGV4dDogJ25vcm1hbCcsXG4gIGxldHRlclNwYWNpbmc6ICdzbWFsbCcsXG4gIHdvcmRTcGFjaW5nOiAnc21hbGwnLFxufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdjYWdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NvbmZpZyA9IHNpZ25hbDxJV2NhZ0NvbmZpZz4odGhpcy5sb2FkQ29uZmlnKCkpO1xuXG4gIHJlYWRvbmx5IGNvbmZpZyA9IHRoaXMuX2NvbmZpZy5hc1JlYWRvbmx5KCk7XG4gIHJlYWRvbmx5IHdvcmRTcGFjaW5nVmFsdWUgPSBjb21wdXRlZCgoKSA9PlxuICAgIHRoaXMuZ2V0U3BhY2luZ1ZhbHVlKHRoaXMuX2NvbmZpZygpLndvcmRTcGFjaW5nKSxcbiAgKTtcbiAgcmVhZG9ubHkgbGV0dGVyU3BhY2luZ1ZhbHVlID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmdldFNwYWNpbmdWYWx1ZSh0aGlzLl9jb25maWcoKS5sZXR0ZXJTcGFjaW5nKSxcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBBcHBseSBjb25maWcgY2hhbmdlcyB0byBET01cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5fY29uZmlnKCk7XG4gICAgICB0aGlzLmFwcGx5Q29uZmlnVG9ET00oY29uZmlnKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gQ29uZmlnIGlzIGFscmVhZHkgbG9hZGVkIGluIGNvbnN0cnVjdG9yXG4gICAgLy8gVGhpcyBtZXRob2Qga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICB9XG5cbiAgc2V0Q29udHJhc3QodmFsdWU6IFdjYWdDb250cmFzdCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHsgLi4uY29uZmlnLCBjb250cmFzdDogdmFsdWUgfSkpO1xuICAgIHRoaXMuYW5ub3VuY2VDaGFuZ2UoJ3NldENvbnRyYXN0JywgdmFsdWUpO1xuICAgIHRoaXMuc2F2ZSgpO1xuICB9XG5cbiAgc2V0VGV4dCh2YWx1ZTogV2NhZ1RleHQpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25maWcudXBkYXRlKChjb25maWcpID0+ICh7IC4uLmNvbmZpZywgdGV4dDogdmFsdWUgfSkpO1xuICAgIHRoaXMuYW5ub3VuY2VDaGFuZ2UoJ3NldFRleHQnLCB2YWx1ZSk7XG4gICAgdGhpcy5zYXZlKCk7XG4gIH1cblxuICBzZXRMZXR0ZXJTcGFjaW5nKHZhbHVlOiBXY2FnTGV0dGVyU3BhY2luZyk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHsgLi4uY29uZmlnLCBsZXR0ZXJTcGFjaW5nOiB2YWx1ZSB9KSk7XG4gICAgdGhpcy5hbm5vdW5jZUNoYW5nZSgnc2V0TGV0dGVyU3BhY2luZycsIHZhbHVlKTtcbiAgICB0aGlzLnNhdmUoKTtcbiAgfVxuXG4gIHNldFdvcmRTcGFjaW5nKHZhbHVlOiBXY2FnV29yZFNwYWNpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9jb25maWcudXBkYXRlKChjb25maWcpID0+ICh7IC4uLmNvbmZpZywgd29yZFNwYWNpbmc6IHZhbHVlIH0pKTtcbiAgICB0aGlzLmFubm91bmNlQ2hhbmdlKCdzZXRXb3JkU3BhY2luZycsIHZhbHVlKTtcbiAgICB0aGlzLnNhdmUoKTtcbiAgfVxuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NvbmZpZy5zZXQoREVGQVVMVF9DT05GSUcpO1xuICAgIHRoaXMuc2F2ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTcGFjaW5nVmFsdWUoXG4gICAgc3BhY2luZzogV2NhZ0xldHRlclNwYWNpbmcgfCBXY2FnV29yZFNwYWNpbmcsXG4gICk6IG51bWJlciB7XG4gICAgc3dpdGNoIChzcGFjaW5nKSB7XG4gICAgICBjYXNlICdub3JtYWwnOlxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgICAgcmV0dXJuIDI7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRDb25maWcoKTogSVdjYWdDb25maWcge1xuICAgIGlmICh0aGlzLmlzQnJvd3NlciAmJiB0eXBlb2YgbG9jYWxTdG9yYWdlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oV0NBR19DT05GSUdfS0VZKTtcbiAgICAgIGlmIChzdG9yZWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKHN0b3JlZCk7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLnBhcnNlZCB9O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUud2FybignRmFpbGVkIHRvIHBhcnNlIFdDQUcgY29uZmlnJywgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBERUZBVUxUX0NPTkZJRztcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIgJiYgdHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFdDQUdfQ09ORklHX0tFWSwgSlNPTi5zdHJpbmdpZnkodGhpcy5fY29uZmlnKCkpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29uZmlnVG9ET00oY29uZmlnOiBJV2NhZ0NvbmZpZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcblxuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdO1xuICAgIGlmICghYm9keSkgcmV0dXJuO1xuXG4gICAgYm9keS5jbGFzc05hbWUgPSAnJztcbiAgICBib2R5LmNsYXNzTmFtZSArPSBgIGNvbnRyYXN0LSR7Y29uZmlnLmNvbnRyYXN0fWA7XG4gICAgYm9keS5jbGFzc05hbWUgKz0gYCB0ZXh0LSR7Y29uZmlnLnRleHR9YDtcbiAgICBib2R5LmNsYXNzTmFtZSArPSBgIGxldHRlci1zcGFjaW5nLSR7Y29uZmlnLmxldHRlclNwYWNpbmd9YDtcbiAgICBib2R5LmNsYXNzTmFtZSArPSBgIHdvcmQtc3BhY2luZy0ke2NvbmZpZy53b3JkU3BhY2luZ31gO1xuICB9XG5cbiAgcHJpdmF0ZSBhbm5vdW5jZUNoYW5nZSh0eXBlOiBXY2FnQ2hhbmdlVHlwZSwgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcblxuICAgIGxldCBhbm5vdW5jZUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2NhZy1jaGFuZ2UnKTtcblxuICAgIGlmICghYW5ub3VuY2VFbGVtZW50KSB7XG4gICAgICBhbm5vdW5jZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBhbm5vdW5jZUVsZW1lbnQuaWQgPSAnd2NhZy1jaGFuZ2UnO1xuICAgICAgYW5ub3VuY2VFbGVtZW50LmNsYXNzTmFtZSA9ICdzci1vbmx5JztcbiAgICAgIGFubm91bmNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtYXRvbWljJywgJ3RydWUnKTtcbiAgICAgIGFubm91bmNlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2FyaWEtbGl2ZScsICdwb2xpdGUnKTtcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYW5ub3VuY2VFbGVtZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGBXQ0FHLiR7dHlwZX0uJHt2YWx1ZX1gO1xuICAgIGFubm91bmNlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5nZXQodHJhbnNsYXRpb25LZXkpO1xuICB9XG59XG4iXX0=","import { CrudService, } from '@smartsoft001/crud-shell-angular';\nimport { firstValueFrom, of, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nexport class CrudBaseService extends CrudService {\n downloadPdf(name, id) {\n return fetch(this.config.apiUrl + this.getUrlNameForDetails() + '/' + id + '/pdf')\n .then((resp) => resp.arrayBuffer())\n .then((resp) => {\n const file = new Blob([resp], { type: 'application/pdf' });\n const fileURL = URL.createObjectURL(file);\n const link = document.createElement('a');\n link.href = fileURL;\n link.download = name + '.pdf';\n link.click();\n });\n }\n getById(id) {\n return firstValueFrom(this.http\n .get(this.config.apiUrl + this.getUrlNameForDetails() + '/' + id)\n .pipe(map((r) => r?.data)));\n }\n getList(filter) {\n let page = 1;\n if (filter?.offset && filter?.limit) {\n page = filter.offset / filter.limit;\n }\n let url = this.getBaseListUrl(page, filter);\n if (filter?.searchText) {\n url += `&filter[phrase]=${filter.searchText}`;\n }\n if (filter?.sortBy) {\n url += `&sort=${filter.sortBy}-${filter.sortDesc ? 'desc' : 'asc'}`;\n }\n else {\n url += `&sort=random`;\n }\n filter?.query?.forEach((q) => {\n const isArray = Array.isArray(q.value);\n if (isArray) {\n q.value.forEach((value) => {\n url += `&filter[${q.key}]${this.getQueryType(q.type, true)}=${value.id}`;\n });\n }\n else {\n url += `&filter[${q.key}]${this.getQueryType(q.type, false)}=${q.value}`;\n }\n });\n return firstValueFrom(this.http\n .get(url)\n .pipe(map((r) => {\n const response = r;\n return {\n data: response.data?.items ?? [],\n totalCount: response.data?.paginatorDetails?.totalItemsCount ?? 0,\n links: {},\n };\n }), catchError(this.handleError)));\n }\n getBaseListUrl(page, filter) {\n return `${this.config.apiUrl}${this.getUrlNameForList() !== 'public-collections'\n ? 'search/' + this.getUrlNameForList()\n : 'public-collections'}/page/${page}?maxPerPage=${filter?.limit}`;\n }\n handleError(err) {\n if (err.status === 404 || err.status === 406) {\n return of({\n data: [],\n totalCount: 0,\n links: {},\n });\n }\n return throwError(() => new Error(`There was an error: ${err.status}`));\n }\n getQueryType(type, isArray) {\n switch (type) {\n case '>=':\n return '[from]';\n case '<=':\n return '[to]';\n case '=':\n return isArray ? '[]' : '';\n default:\n throw 'Type not supported!';\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1iYXNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2NydWQvY3J1ZC1iYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsR0FHWixNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxjQUFjLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE1BQU0sT0FBZ0IsZUFFcEIsU0FBUSxXQUFjO0lBSXRCLFdBQVcsQ0FBQyxJQUFZLEVBQUUsRUFBVTtRQUNsQyxPQUFPLEtBQUssQ0FDVixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FDckU7YUFDRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNsQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBRTNELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksR0FBRyxNQUFNLENB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QyxNQUFNLEdBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLG9CQUFvQjtZQUMvQyxDQUFDLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN0QyxDQUFDLENBQUMsb0JBQ04sU0FBUyxJQUFJLGVBQWUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFUyxXQUFXLENBQUMsR0FBaUM7UUFDckQsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzdDLE9BQU8sRUFBRSxDQUFDO2dCQUNSLElBQUksRUFBRSxFQUFFO2dCQUNSLFVBQVUsRUFBRSxDQUFDO2dCQUNiLEtBQUssRUFBRSxFQUFFO2FBQ1YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLHVCQUF1QixHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFUyxZQUFZLENBQ3BCLElBQTBDLEVBQzFDLE9BQWdCO1FBRWhCLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLElBQUk7Z0JBQ1AsT0FBTyxRQUFRLENBQUM7WUFDbEIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssR0FBRztnQkFDTixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0I7Z0JBQ0UsTUFBTSxxQkFBcUIsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ3J1ZFNlcnZpY2UsXG4gIElDcnVkRmlsdGVyLFxuICBJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSxcbn0gZnJvbSAnQHNtYXJ0c29mdDAwMS9jcnVkLXNoZWxsLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDcnVkQmFzZVNlcnZpY2U8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4sXG4+IGV4dGVuZHMgQ3J1ZFNlcnZpY2U8VD4ge1xuICBhYnN0cmFjdCBnZXRVcmxOYW1lRm9yRGV0YWlscygpOiBzdHJpbmc7XG4gIGFic3RyYWN0IGdldFVybE5hbWVGb3JMaXN0KCk6IHN0cmluZztcblxuICBkb3dubG9hZFBkZihuYW1lOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gZmV0Y2goXG4gICAgICB0aGlzLmNvbmZpZy5hcGlVcmwgKyB0aGlzLmdldFVybE5hbWVGb3JEZXRhaWxzKCkgKyAnLycgKyBpZCArICcvcGRmJyxcbiAgICApXG4gICAgICAudGhlbigocmVzcCkgPT4gcmVzcC5hcnJheUJ1ZmZlcigpKVxuICAgICAgLnRoZW4oKHJlc3ApID0+IHtcbiAgICAgICAgY29uc3QgZmlsZSA9IG5ldyBCbG9iKFtyZXNwXSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KTtcblxuICAgICAgICBjb25zdCBmaWxlVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgbGluay5ocmVmID0gZmlsZVVSTDtcbiAgICAgICAgbGluay5kb3dubG9hZCA9IG5hbWUgKyAnLnBkZic7XG4gICAgICAgIGxpbmsuY2xpY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0QnlJZChpZDogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8e1xuICAgICAgICAgIGRhdGE6IFQ7XG4gICAgICAgIH0+KHRoaXMuY29uZmlnLmFwaVVybCArIHRoaXMuZ2V0VXJsTmFtZUZvckRldGFpbHMoKSArICcvJyArIGlkKVxuICAgICAgICAucGlwZShtYXAoKHIpID0+IChyIGFzIHsgZGF0YTogVCB9KT8uZGF0YSkpLFxuICAgICk7XG4gIH1cblxuICBnZXRMaXN0PFQ+KFxuICAgIGZpbHRlcj86IElDcnVkRmlsdGVyLFxuICApOiBQcm9taXNlPHsgZGF0YTogVFtdOyB0b3RhbENvdW50OiBudW1iZXI7IGxpbmtzOiB1bmtub3duIH0+IHtcbiAgICBsZXQgcGFnZSA9IDE7XG5cbiAgICBpZiAoZmlsdGVyPy5vZmZzZXQgJiYgZmlsdGVyPy5saW1pdCkge1xuICAgICAgcGFnZSA9IGZpbHRlci5vZmZzZXQgLyBmaWx0ZXIubGltaXQ7XG4gICAgfVxuXG4gICAgbGV0IHVybCA9IHRoaXMuZ2V0QmFzZUxpc3RVcmwocGFnZSwgZmlsdGVyIGFzIHsgbGltaXQ6IG51bWJlciB9KTtcblxuICAgIGlmIChmaWx0ZXI/LnNlYXJjaFRleHQpIHtcbiAgICAgIHVybCArPSBgJmZpbHRlcltwaHJhc2VdPSR7ZmlsdGVyLnNlYXJjaFRleHR9YDtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyPy5zb3J0QnkpIHtcbiAgICAgIHVybCArPSBgJnNvcnQ9JHtmaWx0ZXIuc29ydEJ5fS0ke2ZpbHRlci5zb3J0RGVzYyA/ICdkZXNjJyA6ICdhc2MnfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHVybCArPSBgJnNvcnQ9cmFuZG9tYDtcbiAgICB9XG5cbiAgICBmaWx0ZXI/LnF1ZXJ5Py5mb3JFYWNoKChxOiBJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSkgPT4ge1xuICAgICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkocS52YWx1ZSk7XG5cbiAgICAgIGlmIChpc0FycmF5KSB7XG4gICAgICAgIHEudmFsdWUuZm9yRWFjaCgodmFsdWU6IHVua25vd24gJiB7IGlkOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAgIHVybCArPSBgJmZpbHRlclske3Eua2V5fV0ke3RoaXMuZ2V0UXVlcnlUeXBlKHEudHlwZSwgdHJ1ZSl9PSR7XG4gICAgICAgICAgICB2YWx1ZS5pZFxuICAgICAgICAgIH1gO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHVybCArPSBgJmZpbHRlclske3Eua2V5fV0ke3RoaXMuZ2V0UXVlcnlUeXBlKHEudHlwZSwgZmFsc2UpfT0ke1xuICAgICAgICAgIHEudmFsdWVcbiAgICAgICAgfWA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHBcbiAgICAgICAgLmdldDx7XG4gICAgICAgICAgZGF0YTogdW5rbm93biAmIHtcbiAgICAgICAgICAgIGl0ZW1zOiB1bmtub3duO1xuICAgICAgICAgICAgcGFnaW5hdG9yRGV0YWlsczoge1xuICAgICAgICAgICAgICB0b3RhbEl0ZW1zQ291bnQ6IG51bWJlcjtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcbiAgICAgICAgfT4odXJsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gciBhcyB7XG4gICAgICAgICAgICAgIGRhdGE/OiB7XG4gICAgICAgICAgICAgICAgaXRlbXM/OiBUW107XG4gICAgICAgICAgICAgICAgcGFnaW5hdG9yRGV0YWlscz86IHtcbiAgICAgICAgICAgICAgICAgIHRvdGFsSXRlbXNDb3VudD86IG51bWJlcjtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGRhdGE6IHJlc3BvbnNlLmRhdGE/Lml0ZW1zID8/IFtdLFxuICAgICAgICAgICAgICB0b3RhbENvdW50OiByZXNwb25zZS5kYXRhPy5wYWdpbmF0b3JEZXRhaWxzPy50b3RhbEl0ZW1zQ291bnQgPz8gMCxcbiAgICAgICAgICAgICAgbGlua3M6IHt9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IpLFxuICAgICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0QmFzZUxpc3RVcmwoXG4gICAgcGFnZTogbnVtYmVyLFxuICAgIGZpbHRlcjoge1xuICAgICAgbGltaXQ6IG51bWJlcjtcbiAgICB9LFxuICApIHtcbiAgICByZXR1cm4gYCR7dGhpcy5jb25maWcuYXBpVXJsfSR7XG4gICAgICB0aGlzLmdldFVybE5hbWVGb3JMaXN0KCkgIT09ICdwdWJsaWMtY29sbGVjdGlvbnMnXG4gICAgICAgID8gJ3NlYXJjaC8nICsgdGhpcy5nZXRVcmxOYW1lRm9yTGlzdCgpXG4gICAgICAgIDogJ3B1YmxpYy1jb2xsZWN0aW9ucydcbiAgICB9L3BhZ2UvJHtwYWdlfT9tYXhQZXJQYWdlPSR7ZmlsdGVyPy5saW1pdH1gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUVycm9yKGVycjogdW5rbm93biAmIHsgc3RhdHVzOiBudW1iZXIgfSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKGVyci5zdGF0dXMgPT09IDQwNCB8fCBlcnIuc3RhdHVzID09PSA0MDYpIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIGRhdGE6IFtdLFxuICAgICAgICB0b3RhbENvdW50OiAwLFxuICAgICAgICBsaW5rczoge30sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoYFRoZXJlIHdhcyBhbiBlcnJvcjogJHtlcnIuc3RhdHVzfWApKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRRdWVyeVR5cGUoXG4gICAgdHlwZTogJz0nIHwgJyE9JyB8ICc+PScgfCAnPD0nIHwgJzwnIHwgJz4nLFxuICAgIGlzQXJyYXk6IGJvb2xlYW4sXG4gICkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnPj0nOlxuICAgICAgICByZXR1cm4gJ1tmcm9tXSc7XG4gICAgICBjYXNlICc8PSc6XG4gICAgICAgIHJldHVybiAnW3RvXSc7XG4gICAgICBjYXNlICc9JzpcbiAgICAgICAgcmV0dXJuIGlzQXJyYXkgPyAnW10nIDogJyc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyAnVHlwZSBub3Qgc3VwcG9ydGVkISc7XG4gICAgfVxuICB9XG59XG4iXX0=","export class QueryFilterService {\n static map(filter, queryParams, data) {\n if (!queryParams[data.id])\n return filter;\n const ids = queryParams[data.id].split(',');\n const texts = queryParams[data.text].split(',');\n filter.offset = 0;\n filter.query = [\n ...(filter?.query ? filter.query : []).filter((q) => q.key !== data.key),\n {\n key: data.key,\n type: '=',\n value: ids.map((id, i) => {\n return {\n id: id,\n text: texts[i],\n selected: true,\n };\n }),\n hidden: true,\n },\n ];\n return filter;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3F1ZXJ5LWZpbHRlci9xdWVyeS1maWx0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBQyxHQUFHLENBQ1IsTUFBbUIsRUFDbkIsV0FBZ0IsRUFDaEIsSUFJQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBRXpDLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWhELE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxLQUFLLEdBQUc7WUFDYixHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDeEU7Z0JBQ0UsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dCQUNiLElBQUksRUFBRSxHQUFHO2dCQUNULEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBVSxFQUFFLENBQVMsRUFBRSxFQUFFO29CQUN2QyxPQUFPO3dCQUNMLEVBQUUsRUFBRSxFQUFFO3dCQUNOLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO3dCQUNkLFFBQVEsRUFBRSxJQUFJO3FCQUNmLENBQUM7Z0JBQ0osQ0FBQyxDQUFDO2dCQUNGLE1BQU0sRUFBRSxJQUFJO2FBQ2I7U0FDRixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNydWRGaWx0ZXIgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2NydWQtc2hlbGwtYW5ndWxhcic7XG5cbmV4cG9ydCBjbGFzcyBRdWVyeUZpbHRlclNlcnZpY2Uge1xuICBzdGF0aWMgbWFwKFxuICAgIGZpbHRlcjogSUNydWRGaWx0ZXIsXG4gICAgcXVlcnlQYXJhbXM6IGFueSxcbiAgICBkYXRhOiB7XG4gICAgICBpZDogc3RyaW5nO1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB0ZXh0OiBzdHJpbmc7XG4gICAgfSxcbiAgKTogSUNydWRGaWx0ZXIge1xuICAgIGlmICghcXVlcnlQYXJhbXNbZGF0YS5pZF0pIHJldHVybiBmaWx0ZXI7XG5cbiAgICBjb25zdCBpZHMgPSBxdWVyeVBhcmFtc1tkYXRhLmlkXS5zcGxpdCgnLCcpO1xuICAgIGNvbnN0IHRleHRzID0gcXVlcnlQYXJhbXNbZGF0YS50ZXh0XS5zcGxpdCgnLCcpO1xuXG4gICAgZmlsdGVyLm9mZnNldCA9IDA7XG4gICAgZmlsdGVyLnF1ZXJ5ID0gW1xuICAgICAgLi4uKGZpbHRlcj8ucXVlcnkgPyBmaWx0ZXIucXVlcnkgOiBbXSkuZmlsdGVyKChxKSA9PiBxLmtleSAhPT0gZGF0YS5rZXkpLFxuICAgICAge1xuICAgICAgICBrZXk6IGRhdGEua2V5LFxuICAgICAgICB0eXBlOiAnPScsXG4gICAgICAgIHZhbHVlOiBpZHMubWFwKChpZDogc3RyaW5nLCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGlkLFxuICAgICAgICAgICAgdGV4dDogdGV4dHNbaV0sXG4gICAgICAgICAgICBzZWxlY3RlZDogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGZpbHRlcjtcbiAgfVxufVxuIl19","import { ConfigsFacade } from '../+state/configs.facade';\nimport { AuthStorageService } from './auth-storage/auth-storage.service';\nimport { ConfigsService } from './configs/configs.service';\nimport { ContrastService } from './contrast/contrast.service';\nimport { DictionaryService } from './dictionary/dictionary.service';\nimport { FileUrlService } from './file-url/file-url.service';\nimport { GlobalService } from './global/global.service';\nimport { MetaService } from './meta/meta.service';\nimport { ModalService } from './modal/modal.service';\nimport { SearchService } from './search/search.service';\nimport { SeoService } from './seo/seo.service';\nimport { SettingsService } from './settings/settings.service';\nimport { StyleService } from './style/style.service';\nimport { TranslationService } from './translation/translation.service';\nimport { WcagService } from './wcag/wcag.service';\nexport * from './dictionary/dictionary.service';\nexport * from './configs/configs.service';\nexport * from './crud/crud-base.service';\nexport * from './auth-storage/auth-storage.service';\nexport * from './translation/translation.service';\nexport * from './global/global.service';\nexport * from './file-url/file-url.service';\nexport * from './settings/settings.service';\nexport * from './wcag/wcag.service';\nexport * from './contrast/contrast.service';\nexport * from './meta/meta.service';\nexport * from './seo/seo.service';\nexport * from './style/style.service';\nexport * from './modal/modal.service';\nexport * from './modal/modal-ref';\nexport * from './search/search.service';\nexport * from './query-filter/query-filter.service';\nexport const SERVICES = [\n DictionaryService,\n ConfigsService,\n ConfigsFacade,\n AuthStorageService,\n TranslationService,\n GlobalService,\n FileUrlService,\n SettingsService,\n WcagService,\n ContrastService,\n MetaService,\n SeoService,\n StyleService,\n ModalService,\n SearchService,\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7SUFDdEIsaUJBQWlCO0lBQ2pCLGNBQWM7SUFDZCxhQUFhO0lBQ2Isa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsY0FBYztJQUNkLGVBQWU7SUFDZixXQUFXO0lBQ1gsZUFBZTtJQUNmLFdBQVc7SUFDWCxVQUFVO0lBQ1YsWUFBWTtJQUNaLFlBQVk7SUFDWixhQUFhO0NBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ3NGYWNhZGUgfSBmcm9tICcuLi8rc3RhdGUvY29uZmlncy5mYWNhZGUnO1xuaW1wb3J0IHsgQXV0aFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLXN0b3JhZ2UvYXV0aC1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlnc1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3MvY29uZmlncy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRyYXN0U2VydmljZSB9IGZyb20gJy4vY29udHJhc3QvY29udHJhc3Quc2VydmljZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4vZGljdGlvbmFyeS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsZVVybFNlcnZpY2UgfSBmcm9tICcuL2ZpbGUtdXJsL2ZpbGUtdXJsLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2xvYmFsU2VydmljZSB9IGZyb20gJy4vZ2xvYmFsL2dsb2JhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE1ldGFTZXJ2aWNlIH0gZnJvbSAnLi9tZXRhL21ldGEuc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7IFNlb1NlcnZpY2UgfSBmcm9tICcuL3Nlby9zZW8uc2VydmljZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL3NldHRpbmdzL3NldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi9zdHlsZS9zdHlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBXY2FnU2VydmljZSB9IGZyb20gJy4vd2NhZy93Y2FnLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RpY3Rpb25hcnkvZGljdGlvbmFyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlncy9jb25maWdzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jcnVkL2NydWQtYmFzZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC1zdG9yYWdlL2F1dGgtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2dsb2JhbC9nbG9iYWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtdXJsL2ZpbGUtdXJsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vd2NhZy93Y2FnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250cmFzdC9jb250cmFzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbWV0YS9tZXRhLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZW8vc2VvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdHlsZS9zdHlsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwvbW9kYWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGFsL21vZGFsLXJlZic7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3F1ZXJ5LWZpbHRlci9xdWVyeS1maWx0ZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBTRVJWSUNFUyA9IFtcbiAgRGljdGlvbmFyeVNlcnZpY2UsXG4gIENvbmZpZ3NTZXJ2aWNlLFxuICBDb25maWdzRmFjYWRlLFxuICBBdXRoU3RvcmFnZVNlcnZpY2UsXG4gIFRyYW5zbGF0aW9uU2VydmljZSxcbiAgR2xvYmFsU2VydmljZSxcbiAgRmlsZVVybFNlcnZpY2UsXG4gIFNldHRpbmdzU2VydmljZSxcbiAgV2NhZ1NlcnZpY2UsXG4gIENvbnRyYXN0U2VydmljZSxcbiAgTWV0YVNlcnZpY2UsXG4gIFNlb1NlcnZpY2UsXG4gIFN0eWxlU2VydmljZSxcbiAgTW9kYWxTZXJ2aWNlLFxuICBTZWFyY2hTZXJ2aWNlLFxuXTtcbiJdfQ==","import { __decorate, __metadata } from \"tslib\";\nimport { inject, Injectable, signal } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ReduxAction } from '@smartsoft001/angular';\nimport { ConfigsService } from '../services';\nimport * as i0 from \"@angular/core\";\nexport class ConfigsFacade {\n constructor() {\n this.service = inject(ConfigsService);\n this.sanitizer = inject(DomSanitizer);\n }\n static { this._source = signal(null, ...(ngDevMode ? [{ debugName: \"_source\" }] : [])); }\n get data() {\n return ConfigsFacade._source();\n }\n getPage(id) {\n return this.service.getPage(id).then((page) => {\n if (!page)\n return page;\n return {\n ...page,\n content: this.sanitizer.bypassSecurityTrustHtml(page.content),\n };\n });\n }\n init() {\n return this.service.get().then((config) => {\n ConfigsFacade._source.set(config);\n return config;\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsFacade, providedIn: 'root' }); }\n}\n__decorate([\n ReduxAction(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Number]),\n __metadata(\"design:returntype\", Promise)\n], ConfigsFacade.prototype, \"getPage\", null);\n__decorate([\n ReduxAction(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Promise)\n], ConfigsFacade.prototype, \"init\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ConfigsFacade, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], propDecorators: { getPage: [], init: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliLytzdGF0ZS9jb25maWdzLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSXBELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBSzdDLE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBSVUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBNkIxQzthQTNCZ0IsWUFBTyxHQUFrQyxNQUFNLENBQzVELElBQUksbURBQ0wsQUFGcUIsQ0FFcEI7SUFFRixJQUFJLElBQUk7UUFDTixPQUFPLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBR0QsT0FBTyxDQUFDLEVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV2QixPQUFPO2dCQUNMLEdBQUcsSUFBSTtnQkFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQzlELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQ2hELGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E5QlUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7QUFlbEI7SUFEQyxXQUFXLEVBQUU7Ozs7NENBVWI7QUFHRDtJQURDLFdBQVcsRUFBRTs7Ozt5Q0FNYjsyRkE5QlUsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OEJBY0MsT0FBTyxNQVlQLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgUmVkdXhBY3Rpb24gfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBDb25maWcsIFBhZ2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxLW1vYmlsZW1zL21vZGVscyc7XG5cbmltcG9ydCB7IENvbmZpZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlnc0ZhY2FkZSB7XG4gIHByaXZhdGUgc2VydmljZSA9IGluamVjdChDb25maWdzU2VydmljZSk7XG4gIHByaXZhdGUgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX3NvdXJjZTogV3JpdGFibGVTaWduYWw8Q29uZmlnIHwgbnVsbD4gPSBzaWduYWw8Q29uZmlnIHwgbnVsbD4oXG4gICAgbnVsbCxcbiAgKTtcblxuICBnZXQgZGF0YSgpOiBDb25maWcgfCBudWxsIHtcbiAgICByZXR1cm4gQ29uZmlnc0ZhY2FkZS5fc291cmNlKCk7XG4gIH1cblxuICBAUmVkdXhBY3Rpb24oKVxuICBnZXRQYWdlKGlkOiBudW1iZXIpOiBQcm9taXNlPFBhZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldFBhZ2UoaWQpLnRoZW4oKHBhZ2U6IFBhZ2UpID0+IHtcbiAgICAgIGlmICghcGFnZSkgcmV0dXJuIHBhZ2U7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnBhZ2UsXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhZ2UuY29udGVudCksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgQFJlZHV4QWN0aW9uKClcbiAgaW5pdCgpOiBQcm9taXNlPENvbmZpZz4ge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0KCkudGhlbigoY29uZmlnOiBDb25maWcpID0+IHtcbiAgICAgIENvbmZpZ3NGYWNhZGUuX3NvdXJjZS5zZXQoY29uZmlnKTtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\nimport { AppBaseComponent } from '@smartsoft001/angular';\nimport * as i0 from \"@angular/core\";\nexport class AppComponent extends AppBaseComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AppComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: AppComponent, isStandalone: true, selector: \"smart-mobilems-app\", usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"header\\\"></ng-content>\\n\\n<main>\\n <router-outlet></router-outlet>\\n</main>\\n\\n<ng-content select=\\\"footer\\\"></ng-content>\\n\", dependencies: [{ kind: \"directive\", type: RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AppComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-mobilems-app', imports: [RouterOutlet], template: \"<ng-content select=\\\"header\\\"></ng-content>\\n\\n<main>\\n <router-outlet></router-outlet>\\n</main>\\n\\n<ng-content select=\\\"footer\\\"></ng-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHAvYXBwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU96RCxNQUFNLE9BQU8sWUFBYSxTQUFRLGdCQUFnQjs4R0FBckMsWUFBWTtrR0FBWixZQUFZLHFHQ1R6QixvSkFPQSw0Q0REWSxZQUFZOzsyRkFHWCxZQUFZO2tCQUx4QixTQUFTOytCQUNFLG9CQUFvQixXQUNyQixDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1tb2JpbGVtcy1hcHAnLFxuICBpbXBvcnRzOiBbUm91dGVyT3V0bGV0XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCBleHRlbmRzIEFwcEJhc2VDb21wb25lbnQge31cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImhlYWRlclwiPjwvbmctY29udGVudD5cblxuPG1haW4+XG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbjwvbWFpbj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuIl19","import { Directive } from '@angular/core';\nimport { PageBaseComponent } from '@smartsoft001/angular';\nimport * as i0 from \"@angular/core\";\nexport class PageComponent extends PageBaseComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: PageComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.0\", type: PageComponent, isStandalone: true, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: PageComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcGFnZS9wYWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUcxRCxNQUFNLE9BQU8sYUFBYyxTQUFRLGlCQUFpQjs4R0FBdkMsYUFBYTtrR0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFBhZ2VDb21wb25lbnQgZXh0ZW5kcyBQYWdlQmFzZUNvbXBvbmVudCB7fVxuIl19","import { __decorate, __metadata } from \"tslib\";\nimport { contentChild, Directive, effect, inject, } from '@angular/core';\nimport { BaseComponent } from '@smartsoft001/angular';\nimport { CrudFacade, } from '@smartsoft001/crud-shell-angular';\nimport * as _ from 'lodash';\nimport { Debounce } from 'lodash-decorators';\nimport * as i0 from \"@angular/core\";\nexport class FiltersContext extends BaseComponent {\n set searchText(val) {\n if (this._filter && this._filter.searchText === val)\n return;\n this.refresh({\n searchText: val,\n offset: 0,\n });\n }\n get searchText() {\n return this._filter?.searchText;\n }\n set page(val) {\n const offset = this._filter?.limit ? this._filter?.limit * val : 0;\n if (this._filter && this._filter.offset === offset)\n return;\n this.refresh({\n offset: offset,\n });\n }\n get page() {\n if (!this._filter)\n return 1;\n if (!this._filter.offset || !this._filter.limit)\n return 1;\n return this._filter.offset / this._filter.limit;\n }\n set limit(val) {\n if (this._filter && this._filter.limit === val)\n return;\n this.refresh({\n limit: val,\n offset: 0,\n });\n }\n get limit() {\n if (!this._filter)\n return 20;\n if (!this._filter.limit)\n return 20;\n return this._filter.limit;\n }\n set sortBy(val) {\n if (this._filter && this._filter.sortBy === val)\n return;\n this.refresh({\n sortBy: val,\n });\n }\n get sortBy() {\n return this._filter?.sortBy;\n }\n set query(val) {\n if (this._filter && this._filter.query === val)\n return;\n this.refresh({\n query: val,\n });\n }\n get query() {\n return this._filter?.query;\n }\n set sortDesc(val) {\n if (this._filter && this._filter.sortDesc === val)\n return;\n this.refresh({\n sortDesc: val,\n });\n }\n get sortDesc() {\n return this._filter?.sortDesc;\n }\n set sort(val) {\n if (this._filter && this._filter.sortBy === val)\n return;\n this.refresh({\n sortBy: val?.by,\n sortDesc: val?.desc,\n });\n }\n get sort() {\n return {\n by: this._filter?.sortBy,\n desc: this._filter?.sortDesc,\n };\n }\n set onlyImage(val) {\n if (!val && this.onlyImage && this._filter) {\n const result = this._filter.query\n ? this._filter.query?.filter((q) => !(q.type === '=' && q.key === 'onlyImage'))\n : [];\n this.refresh({\n query: [...result],\n });\n }\n if (val && !this.onlyImage && this._filter) {\n const result = this._filter.query\n ? this._filter.query.filter((q) => !(q.type === '=' && q.key === 'onlyImage'))\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: '=',\n key: 'onlyImage',\n value: 1,\n hidden: true,\n },\n ],\n });\n }\n }\n get onlyImage() {\n return this._filter?.query?.some((q) => q.type === '=' && q.key === 'onlyImage' && q.value === 1);\n }\n set exposure(val) {\n if (!val && this.exposure && this._filter) {\n const result = this._filter.query\n ? this._filter.query?.filter((q) => !(q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja'))\n : [];\n this.refresh({\n query: [...result],\n });\n }\n if (val && !this.exposure && this._filter) {\n const result = this._filter.query\n ? this._filter.query?.filter((q) => !(q.type === '=' &&\n q.key === 'locationType' &&\n q.value === 'Ekspozycja'))\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: '=',\n key: 'locationType',\n value: 'Ekspozycja',\n hidden: true,\n },\n ],\n });\n }\n }\n get exposure() {\n return this._filter?.query?.some((q) => q.type === '=' && q.key === 'locationType' && q.value === 'Ekspozycja');\n }\n set creators(val) {\n this.filterSet(this.creators, val, 'creators', '=');\n }\n get creators() {\n return this.filterGet('=', 'creators');\n }\n set createDatesFrom(val) {\n this.filterSet(this.createDatesFrom, val, 'createDates', '>=');\n }\n get createDatesFrom() {\n return this.filterGet('>=', 'createDates');\n }\n set createDatesTo(val) {\n this.filterSet(this.createDatesTo, val, 'createDates', '<=');\n }\n get createDatesTo() {\n return this.filterGet('<=', 'createDates');\n }\n set publicationDateFrom(val) {\n this.filterSet(this.publicationDateFrom, val, 'publicationDate', '>=');\n }\n get publicationDateFrom() {\n return this.filterGet('>=', 'publicationDate');\n }\n set publicationDateTo(val) {\n this.filterSet(this.publicationDateTo, val, 'publicationDate', '<=');\n }\n get publicationDateTo() {\n return this.filterGet('<=', 'publicationDate');\n }\n set createPlaces(val) {\n this.filterSet(this.createPlaces, val, 'createPlaces', '=');\n }\n get createPlaces() {\n return this.filterGet('=', 'createPlaces');\n }\n set keywords(val) {\n this.filterSet(this.keywords, val, 'keywords', '=');\n }\n get keywords() {\n return this.filterGet('=', 'keywords');\n }\n set techniques(val) {\n this.filterSet(this.techniques, val, 'techniques', '=');\n }\n get techniques() {\n return this.filterGet('=', 'techniques');\n }\n set materials(val) {\n this.filterSet(this.materials, val, 'materials', '=');\n }\n get materials() {\n return this.filterGet('=', 'materials');\n }\n set category(val) {\n this.filterSet(this.category, val, 'category', '=');\n }\n get category() {\n return this.filterGet('=', 'category');\n }\n set department(val) {\n this.filterSet(this.department, val, 'department', '=');\n }\n get department() {\n return this.filterGet('=', 'department');\n }\n set location(val) {\n this.filterSet(this.category, val, 'location', '=');\n }\n get location() {\n return this.filterGet('=', 'location');\n }\n set locationType(val) {\n this.filterSet(this.category, val, 'locationType', '=');\n }\n get locationType() {\n return this.filterGet('=', 'locationType');\n }\n set cycles(val) {\n this.filterSet(this.cycles, val, 'cycles', '=');\n }\n get cycles() {\n return this.filterGet('=', 'cycles');\n }\n set authors(val) {\n this.filterSet(this.authors, val, 'authors', '=');\n }\n get authors() {\n return this.filterGet('=', 'authors');\n }\n set targetGroups(val) {\n this.filterSet(this.targetGroups, val, 'targetGroups', '=');\n }\n get targetGroups() {\n return this.filterGet('=', 'targetGroups');\n }\n set template(val) {\n this.filterSet(this.template, val, 'template', '=');\n }\n get template() {\n return this.filterGet('=', 'template');\n }\n set types(val) {\n this.filterSet(this.types, val, 'types', '=');\n }\n get types() {\n return this.filterGet('=', 'types');\n }\n set extraNumbersValue(val) {\n this.filterSet(this.creators, val, 'extraNumbersValue', '=');\n }\n get extraNumbersValue() {\n return this.filterGet('=', 'extraNumbersValue');\n }\n constructor() {\n super();\n this.facade = inject((CrudFacade));\n this.totalCount = this.facade.totalCount;\n effect(() => {\n this._filter = this.facade.filter();\n });\n }\n refresh(filter) {\n let change = false;\n Object.keys(filter).forEach((key) => {\n if (!_.isEqual(this._filter[key], filter[key]))\n change = true;\n });\n if (!change)\n return;\n this.facade.read({\n ...this.facade.filter,\n ...filter,\n });\n }\n filterGet(key, type) {\n return this._filter?.query?.find((q) => q.type === key && q.key === type)?.value;\n }\n filterSet(currentValue, val, key, type) {\n if (!val && this._filter) {\n const result = this._filter?.query\n ? this._filter?.query?.filter((q) => !(q.type === type && q.key === key))\n : [];\n this.refresh({\n offset: 0,\n query: [...result],\n });\n }\n if (val && currentValue !== val && this._filter) {\n const result = this._filter?.query\n ? this._filter?.query?.filter((q) => !(q.type === type && q.key === key))\n : [];\n this.refresh({\n offset: 0,\n query: [\n ...result,\n {\n type: type,\n key: key,\n value: val,\n hidden: true,\n },\n ],\n });\n }\n }\n}\n__decorate([\n Debounce(500),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], FiltersContext.prototype, \"refresh\", null);\nexport class FiltersBaseComponent {\n constructor() {\n this.contentTpl = contentChild('contentTpl', ...(ngDevMode ? [{ debugName: \"contentTpl\" }] : []));\n }\n ngAfterContentInit() {\n this.context = new FiltersContext();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FiltersBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.1.0\", type: FiltersBaseComponent, isStandalone: true, selector: \"smart-mobilems-filters\", queries: [{ propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, isSignal: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FiltersBaseComponent, decorators: [{\n type: Directive,\n args: [{\n selector: 'smart-mobilems-filters',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFlBQVksRUFDWixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUNMLFVBQVUsR0FHWCxNQUFNLGtDQUFrQyxDQUFDO0FBRTFDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFJN0MsTUFBTSxPQUFPLGNBQTBDLFNBQVEsYUFBYTtJQUsxRSxJQUFJLFVBQVUsQ0FBQyxHQUF1QjtRQUNwQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUssR0FBRztZQUFFLE9BQU87UUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNYLFVBQVUsRUFBRSxHQUFHO1lBQ2YsTUFBTSxFQUFFLENBQUM7U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsR0FBVztRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElB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QUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQWU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLEdBQWU7UUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEdBQWU7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEdBQWU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEdBQWU7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEdBQWU7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEdBQWU7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEdBQWU7UUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLEdBQWU7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEdBQWU7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEdBQWU7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksaUJBQWlCLENBQUMsR0FBZTtRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUlEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUE1VE8sV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQWEsQ0FBQSxDQUFDLENBQUM7UUF5VGhELGVBQVUsR0FBb0IsSUFBSSxDQUFDLE1BQWMsQ0FBQyxVQUFVLENBQUM7UUFLM0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLEdBQUksSUFBSSxDQUFDLE1BQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHTyxPQUFPLENBQUMsTUFBbUI7UUFDakMsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRW5CLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUUsSUFBSSxDQUFDLE9BQWUsQ0FBQyxHQUFHLENBQUMsRUFBRyxNQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlELE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFFbkIsSUFBSSxDQUFDLE1BQWMsQ0FBQyxJQUFJLENBQUM7WUFDeEIsR0FBSSxJQUFJLENBQUMsTUFBYyxDQUFDLE1BQU07WUFDOUIsR0FBRyxNQUFNO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFXLEVBQUUsSUFBUztRQUN0QyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FDOUIsQ0FBQyxDQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FDOUQsRUFBRSxLQUFLLENBQUM7SUFDWCxDQUFDO0lBRU8sU0FBUyxDQUNmLFlBQXdCLEVBQ3hCLEdBQWUsRUFDZixHQUFXLEVBQ1gsSUFBUztRQUVULElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSztnQkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FDekIsQ0FBQyxDQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FDakU7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUVQLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ1gsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7YUFDbkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksR0FBRyxJQUFJLFlBQVksS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSztnQkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FDekIsQ0FBQyxDQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FDakU7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ1gsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsS0FBSyxFQUFFO29CQUNMLEdBQUcsTUFBTTtvQkFDVDt3QkFDRSxJQUFJLEVBQUUsSUFBSTt3QkFDVixHQUFHLEVBQUUsR0FBRzt3QkFDUixLQUFLLEVBQUUsR0FBRzt3QkFDVixNQUFNLEVBQUUsSUFBSTtxQkFDYjtpQkFDRjthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUE3RFM7SUFEUCxRQUFRLENBQUMsR0FBRyxDQUFDOzs7OzZDQWViO0FBb0RILE1BQU0sT0FBZ0Isb0JBQW9CO0lBSDFDO1FBUUUsZUFBVSxHQUFHLFlBQVksQ0FBK0IsWUFBWSxzREFBQyxDQUFDO0tBS3ZFO0lBSEMsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQUN0QyxDQUFDOzhHQVRtQixvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFIekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgU2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9hbmd1bGFyJztcbmltcG9ydCB7XG4gIENydWRGYWNhZGUsXG4gIElDcnVkRmlsdGVyLFxuICBJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSxcbn0gZnJvbSAnQHNtYXJ0c29mdDAwMS9jcnVkLXNoZWxsLWFuZ3VsYXInO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICdsb2Rhc2gtZGVjb3JhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIEZpbHRlclR5cGUgPSBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IGNsYXNzIEZpbHRlcnNDb250ZXh0PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjYWRlID0gaW5qZWN0KENydWRGYWNhZGU8VD4pO1xuXG4gIHByaXZhdGUgX2ZpbHRlcj86IElDcnVkRmlsdGVyO1xuXG4gIHNldCBzZWFyY2hUZXh0KHZhbDogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIuc2VhcmNoVGV4dCA9PT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5yZWZyZXNoKHtcbiAgICAgIHNlYXJjaFRleHQ6IHZhbCxcbiAgICAgIG9mZnNldDogMCxcbiAgICB9KTtcbiAgfVxuICBnZXQgc2VhcmNoVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5zZWFyY2hUZXh0O1xuICB9XG5cbiAgc2V0IHBhZ2UodmFsOiBudW1iZXIpIHtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLl9maWx0ZXI/LmxpbWl0ID8gdGhpcy5fZmlsdGVyPy5saW1pdCAqIHZhbCA6IDA7XG4gICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIub2Zmc2V0ID09PSBvZmZzZXQpIHJldHVybjtcbiAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgfSk7XG4gIH1cbiAgZ2V0IHBhZ2UoKSB7XG4gICAgaWYgKCF0aGlzLl9maWx0ZXIpIHJldHVybiAxO1xuICAgIGlmICghdGhpcy5fZmlsdGVyLm9mZnNldCB8fCAhdGhpcy5fZmlsdGVyLmxpbWl0KSByZXR1cm4gMTtcblxuICAgIHJldHVybiB0aGlzLl9maWx0ZXIub2Zmc2V0IC8gdGhpcy5fZmlsdGVyLmxpbWl0O1xuICB9XG5cbiAgc2V0IGxpbWl0KHZhbDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIubGltaXQgPT09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICBsaW1pdDogdmFsLFxuICAgICAgb2Zmc2V0OiAwLFxuICAgIH0pO1xuICB9XG4gIGdldCBsaW1pdCgpIHtcbiAgICBpZiAoIXRoaXMuX2ZpbHRlcikgcmV0dXJuIDIwO1xuICAgIGlmICghdGhpcy5fZmlsdGVyLmxpbWl0KSByZXR1cm4gMjA7XG5cbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyLmxpbWl0O1xuICB9XG5cbiAgc2V0IHNvcnRCeSh2YWw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgdGhpcy5fZmlsdGVyLnNvcnRCeSA9PT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5yZWZyZXNoKHtcbiAgICAgIHNvcnRCeTogdmFsLFxuICAgIH0pO1xuICB9XG4gIGdldCBzb3J0QnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcj8uc29ydEJ5O1xuICB9XG5cbiAgc2V0IHF1ZXJ5KHZhbDogSUNydWRGaWx0ZXJRdWVyeUl0ZW1bXSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgdGhpcy5fZmlsdGVyLnF1ZXJ5ID09PSB2YWwpIHJldHVybjtcbiAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgcXVlcnk6IHZhbCxcbiAgICB9KTtcbiAgfVxuICBnZXQgcXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcj8ucXVlcnk7XG4gIH1cblxuICBzZXQgc29ydERlc2ModmFsOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIuc29ydERlc2MgPT09IHZhbCkgcmV0dXJuO1xuICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICBzb3J0RGVzYzogdmFsLFxuICAgIH0pO1xuICB9XG4gIGdldCBzb3J0RGVzYygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5zb3J0RGVzYztcbiAgfVxuXG4gIHNldCBzb3J0KHZhbDogeyBieT86IHN0cmluZzsgZGVzYz86IGJvb2xlYW4gfSB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgdGhpcy5fZmlsdGVyLnNvcnRCeSA9PT0gdmFsKSByZXR1cm47XG4gICAgdGhpcy5yZWZyZXNoKHtcbiAgICAgIHNvcnRCeTogdmFsPy5ieSxcbiAgICAgIHNvcnREZXNjOiB2YWw/LmRlc2MsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgc29ydCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYnk6IHRoaXMuX2ZpbHRlcj8uc29ydEJ5LFxuICAgICAgZGVzYzogdGhpcy5fZmlsdGVyPy5zb3J0RGVzYyxcbiAgICB9O1xuICB9XG5cbiAgc2V0IG9ubHlJbWFnZSh2YWw6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAoIXZhbCAmJiB0aGlzLm9ubHlJbWFnZSAmJiB0aGlzLl9maWx0ZXIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZpbHRlci5xdWVyeVxuICAgICAgICA/IHRoaXMuX2ZpbHRlci5xdWVyeT8uZmlsdGVyKFxuICAgICAgICAgICAgKHE6IElDcnVkRmlsdGVyUXVlcnlJdGVtKSA9PlxuICAgICAgICAgICAgICAhKHEudHlwZSA9PT0gJz0nICYmIHEua2V5ID09PSAnb25seUltYWdlJyksXG4gICAgICAgICAgKVxuICAgICAgICA6IFtdO1xuXG4gICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICBxdWVyeTogWy4uLnJlc3VsdF0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodmFsICYmICF0aGlzLm9ubHlJbWFnZSAmJiB0aGlzLl9maWx0ZXIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZpbHRlci5xdWVyeVxuICAgICAgICA/IHRoaXMuX2ZpbHRlci5xdWVyeS5maWx0ZXIoXG4gICAgICAgICAgICAocTogSUNydWRGaWx0ZXJRdWVyeUl0ZW0pID0+XG4gICAgICAgICAgICAgICEocS50eXBlID09PSAnPScgJiYgcS5rZXkgPT09ICdvbmx5SW1hZ2UnKSxcbiAgICAgICAgICApXG4gICAgICAgIDogW107XG4gICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgIHF1ZXJ5OiBbXG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICc9JyxcbiAgICAgICAgICAgIGtleTogJ29ubHlJbWFnZScsXG4gICAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIGdldCBvbmx5SW1hZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcj8ucXVlcnk/LnNvbWUoXG4gICAgICAocTogSUNydWRGaWx0ZXJRdWVyeUl0ZW0pID0+XG4gICAgICAgIHEudHlwZSA9PT0gJz0nICYmIHEua2V5ID09PSAnb25seUltYWdlJyAmJiBxLnZhbHVlID09PSAxLFxuICAgICk7XG4gIH1cblxuICBzZXQgZXhwb3N1cmUodmFsOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCF2YWwgJiYgdGhpcy5leHBvc3VyZSAmJiB0aGlzLl9maWx0ZXIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZpbHRlci5xdWVyeVxuICAgICAgICA/IHRoaXMuX2ZpbHRlci5xdWVyeT8uZmlsdGVyKFxuICAgICAgICAgICAgKHE6IElDcnVkRmlsdGVyUXVlcnlJdGVtKSA9PlxuICAgICAgICAgICAgICAhKFxuICAgICAgICAgICAgICAgIHEudHlwZSA9PT0gJz0nICYmXG4gICAgICAgICAgICAgICAgcS5rZXkgPT09ICdsb2NhdGlvblR5cGUnICYmXG4gICAgICAgICAgICAgICAgcS52YWx1ZSA9PT0gJ0Vrc3BvenljamEnXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgKVxuICAgICAgICA6IFtdO1xuXG4gICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICBxdWVyeTogWy4uLnJlc3VsdF0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodmFsICYmICF0aGlzLmV4cG9zdXJlICYmIHRoaXMuX2ZpbHRlcikge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZmlsdGVyLnF1ZXJ5XG4gICAgICAgID8gdGhpcy5fZmlsdGVyLnF1ZXJ5Py5maWx0ZXIoXG4gICAgICAgICAgICAocTogSUNydWRGaWx0ZXJRdWVyeUl0ZW0pID0+XG4gICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgcS50eXBlID09PSAnPScgJiZcbiAgICAgICAgICAgICAgICBxLmtleSA9PT0gJ2xvY2F0aW9uVHlwZScgJiZcbiAgICAgICAgICAgICAgICBxLnZhbHVlID09PSAnRWtzcG96eWNqYSdcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgIDogW107XG4gICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgIHF1ZXJ5OiBbXG4gICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICc9JyxcbiAgICAgICAgICAgIGtleTogJ2xvY2F0aW9uVHlwZScsXG4gICAgICAgICAgICB2YWx1ZTogJ0Vrc3BvenljamEnLFxuICAgICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgZ2V0IGV4cG9zdXJlKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXI/LnF1ZXJ5Py5zb21lKFxuICAgICAgKHE6IElDcnVkRmlsdGVyUXVlcnlJdGVtKSA9PlxuICAgICAgICBxLnR5cGUgPT09ICc9JyAmJiBxLmtleSA9PT0gJ2xvY2F0aW9uVHlwZScgJiYgcS52YWx1ZSA9PT0gJ0Vrc3BvenljamEnLFxuICAgICk7XG4gIH1cblxuICBzZXQgY3JlYXRvcnModmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdG9ycywgdmFsLCAnY3JlYXRvcnMnLCAnPScpO1xuICB9XG4gIGdldCBjcmVhdG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnY3JlYXRvcnMnKTtcbiAgfVxuXG4gIHNldCBjcmVhdGVEYXRlc0Zyb20odmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdGVEYXRlc0Zyb20sIHZhbCwgJ2NyZWF0ZURhdGVzJywgJz49Jyk7XG4gIH1cbiAgZ2V0IGNyZWF0ZURhdGVzRnJvbSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz49JywgJ2NyZWF0ZURhdGVzJyk7XG4gIH1cblxuICBzZXQgY3JlYXRlRGF0ZXNUbyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLmNyZWF0ZURhdGVzVG8sIHZhbCwgJ2NyZWF0ZURhdGVzJywgJzw9Jyk7XG4gIH1cbiAgZ2V0IGNyZWF0ZURhdGVzVG8oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KCc8PScsICdjcmVhdGVEYXRlcycpO1xuICB9XG5cbiAgc2V0IHB1YmxpY2F0aW9uRGF0ZUZyb20odmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5wdWJsaWNhdGlvbkRhdGVGcm9tLCB2YWwsICdwdWJsaWNhdGlvbkRhdGUnLCAnPj0nKTtcbiAgfVxuICBnZXQgcHVibGljYXRpb25EYXRlRnJvbSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz49JywgJ3B1YmxpY2F0aW9uRGF0ZScpO1xuICB9XG5cbiAgc2V0IHB1YmxpY2F0aW9uRGF0ZVRvKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMucHVibGljYXRpb25EYXRlVG8sIHZhbCwgJ3B1YmxpY2F0aW9uRGF0ZScsICc8PScpO1xuICB9XG4gIGdldCBwdWJsaWNhdGlvbkRhdGVUbygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJzw9JywgJ3B1YmxpY2F0aW9uRGF0ZScpO1xuICB9XG5cbiAgc2V0IGNyZWF0ZVBsYWNlcyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLmNyZWF0ZVBsYWNlcywgdmFsLCAnY3JlYXRlUGxhY2VzJywgJz0nKTtcbiAgfVxuICBnZXQgY3JlYXRlUGxhY2VzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICdjcmVhdGVQbGFjZXMnKTtcbiAgfVxuXG4gIHNldCBrZXl3b3Jkcyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLmtleXdvcmRzLCB2YWwsICdrZXl3b3JkcycsICc9Jyk7XG4gIH1cbiAgZ2V0IGtleXdvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICdrZXl3b3JkcycpO1xuICB9XG5cbiAgc2V0IHRlY2huaXF1ZXModmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy50ZWNobmlxdWVzLCB2YWwsICd0ZWNobmlxdWVzJywgJz0nKTtcbiAgfVxuICBnZXQgdGVjaG5pcXVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAndGVjaG5pcXVlcycpO1xuICB9XG5cbiAgc2V0IG1hdGVyaWFscyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLm1hdGVyaWFscywgdmFsLCAnbWF0ZXJpYWxzJywgJz0nKTtcbiAgfVxuICBnZXQgbWF0ZXJpYWxzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICdtYXRlcmlhbHMnKTtcbiAgfVxuXG4gIHNldCBjYXRlZ29yeSh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLmNhdGVnb3J5LCB2YWwsICdjYXRlZ29yeScsICc9Jyk7XG4gIH1cbiAgZ2V0IGNhdGVnb3J5KCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICdjYXRlZ29yeScpO1xuICB9XG5cbiAgc2V0IGRlcGFydG1lbnQodmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5kZXBhcnRtZW50LCB2YWwsICdkZXBhcnRtZW50JywgJz0nKTtcbiAgfVxuICBnZXQgZGVwYXJ0bWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnZGVwYXJ0bWVudCcpO1xuICB9XG5cbiAgc2V0IGxvY2F0aW9uKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMuY2F0ZWdvcnksIHZhbCwgJ2xvY2F0aW9uJywgJz0nKTtcbiAgfVxuICBnZXQgbG9jYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KCc9JywgJ2xvY2F0aW9uJyk7XG4gIH1cblxuICBzZXQgbG9jYXRpb25UeXBlKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMuY2F0ZWdvcnksIHZhbCwgJ2xvY2F0aW9uVHlwZScsICc9Jyk7XG4gIH1cbiAgZ2V0IGxvY2F0aW9uVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnbG9jYXRpb25UeXBlJyk7XG4gIH1cblxuICBzZXQgY3ljbGVzKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMuY3ljbGVzLCB2YWwsICdjeWNsZXMnLCAnPScpO1xuICB9XG4gIGdldCBjeWNsZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KCc9JywgJ2N5Y2xlcycpO1xuICB9XG5cbiAgc2V0IGF1dGhvcnModmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5hdXRob3JzLCB2YWwsICdhdXRob3JzJywgJz0nKTtcbiAgfVxuICBnZXQgYXV0aG9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnYXV0aG9ycycpO1xuICB9XG5cbiAgc2V0IHRhcmdldEdyb3Vwcyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLnRhcmdldEdyb3VwcywgdmFsLCAndGFyZ2V0R3JvdXBzJywgJz0nKTtcbiAgfVxuICBnZXQgdGFyZ2V0R3JvdXBzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICd0YXJnZXRHcm91cHMnKTtcbiAgfVxuXG4gIHNldCB0ZW1wbGF0ZSh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICB0aGlzLmZpbHRlclNldCh0aGlzLnRlbXBsYXRlLCB2YWwsICd0ZW1wbGF0ZScsICc9Jyk7XG4gIH1cbiAgZ2V0IHRlbXBsYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckdldCgnPScsICd0ZW1wbGF0ZScpO1xuICB9XG5cbiAgc2V0IHR5cGVzKHZhbDogRmlsdGVyVHlwZSkge1xuICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMudHlwZXMsIHZhbCwgJ3R5cGVzJywgJz0nKTtcbiAgfVxuICBnZXQgdHlwZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KCc9JywgJ3R5cGVzJyk7XG4gIH1cblxuICBzZXQgZXh0cmFOdW1iZXJzVmFsdWUodmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdG9ycywgdmFsLCAnZXh0cmFOdW1iZXJzVmFsdWUnLCAnPScpO1xuICB9XG4gIGdldCBleHRyYU51bWJlcnNWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoJz0nLCAnZXh0cmFOdW1iZXJzVmFsdWUnKTtcbiAgfVxuXG4gIHRvdGFsQ291bnQ6IFNpZ25hbDxudW1iZXI+ID0gKHRoaXMuZmFjYWRlIGFzIGFueSkudG90YWxDb3VudDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuX2ZpbHRlciA9ICh0aGlzLmZhY2FkZSBhcyBhbnkpLmZpbHRlcigpO1xuICAgIH0pO1xuICB9XG5cbiAgQERlYm91bmNlKDUwMClcbiAgcHJpdmF0ZSByZWZyZXNoKGZpbHRlcjogSUNydWRGaWx0ZXIpOiB2b2lkIHtcbiAgICBsZXQgY2hhbmdlID0gZmFsc2U7XG5cbiAgICBPYmplY3Qua2V5cyhmaWx0ZXIpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFfLmlzRXF1YWwoKHRoaXMuX2ZpbHRlciBhcyBhbnkpW2tleV0sIChmaWx0ZXIgYXMgYW55KVtrZXldKSlcbiAgICAgICAgY2hhbmdlID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGlmICghY2hhbmdlKSByZXR1cm47XG5cbiAgICAodGhpcy5mYWNhZGUgYXMgYW55KS5yZWFkKHtcbiAgICAgIC4uLih0aGlzLmZhY2FkZSBhcyBhbnkpLmZpbHRlcixcbiAgICAgIC4uLmZpbHRlcixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyR2V0KGtleTogc3RyaW5nLCB0eXBlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5xdWVyeT8uZmluZChcbiAgICAgIChxOiBJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSkgPT4gcS50eXBlID09PSBrZXkgJiYgcS5rZXkgPT09IHR5cGUsXG4gICAgKT8udmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGZpbHRlclNldChcbiAgICBjdXJyZW50VmFsdWU6IEZpbHRlclR5cGUsXG4gICAgdmFsOiBGaWx0ZXJUeXBlLFxuICAgIGtleTogc3RyaW5nLFxuICAgIHR5cGU6IGFueSxcbiAgKSB7XG4gICAgaWYgKCF2YWwgJiYgdGhpcy5fZmlsdGVyKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9maWx0ZXI/LnF1ZXJ5XG4gICAgICAgID8gdGhpcy5fZmlsdGVyPy5xdWVyeT8uZmlsdGVyKFxuICAgICAgICAgICAgKHE6IElDcnVkRmlsdGVyUXVlcnlJdGVtKSA9PiAhKHEudHlwZSA9PT0gdHlwZSAmJiBxLmtleSA9PT0ga2V5KSxcbiAgICAgICAgICApXG4gICAgICAgIDogW107XG5cbiAgICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgcXVlcnk6IFsuLi5yZXN1bHRdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHZhbCAmJiBjdXJyZW50VmFsdWUgIT09IHZhbCAmJiB0aGlzLl9maWx0ZXIpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZpbHRlcj8ucXVlcnlcbiAgICAgICAgPyB0aGlzLl9maWx0ZXI/LnF1ZXJ5Py5maWx0ZXIoXG4gICAgICAgICAgICAocTogSUNydWRGaWx0ZXJRdWVyeUl0ZW0pID0+ICEocS50eXBlID09PSB0eXBlICYmIHEua2V5ID09PSBrZXkpLFxuICAgICAgICAgIClcbiAgICAgICAgOiBbXTtcbiAgICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgcXVlcnk6IFtcbiAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgdmFsdWU6IHZhbCxcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LW1vYmlsZW1zLWZpbHRlcnMnLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWx0ZXJzQmFzZUNvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PlxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXRcbntcbiAgY29udGV4dD86IEZpbHRlcnNDb250ZXh0PFQ+O1xuXG4gIGNvbnRlbnRUcGwgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZD4oJ2NvbnRlbnRUcGwnKTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0ID0gbmV3IEZpbHRlcnNDb250ZXh0KCk7XG4gIH1cbn1cbiJdfQ==","import { DOCUMENT } from '@angular/common';\nimport { Directive, HostListener, Inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ScrollTopComponent {\n constructor(document) {\n this.document = document;\n }\n onWindowScroll() {\n if (window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop > 200) {\n this.windowScrolled = true;\n }\n else if ((this.windowScrolled && window.pageYOffset) ||\n document.documentElement.scrollTop ||\n document.body.scrollTop < 50) {\n this.windowScrolled = false;\n }\n }\n scrollToTop() {\n const scrollOptions = {\n top: 0,\n left: 0,\n behavior: 'smooth',\n };\n window.scrollTo(scrollOptions);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ScrollTopComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.0\", type: ScrollTopComponent, isStandalone: true, host: { listeners: { \"window:scroll\": \"onWindowScroll()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ScrollTopComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }], propDecorators: { onWindowScroll: [{\n type: HostListener,\n args: ['window:scroll', []]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXRvcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsLXRvcC9zY3JvbGwtdG9wLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdoRSxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQXNDLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBRzVELGNBQWM7UUFDWixJQUNFLE1BQU0sQ0FBQyxXQUFXO1lBQ2xCLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUztZQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQzdCLENBQUM7WUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO2FBQU0sSUFDTCxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUMzQyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVM7WUFDbEMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxFQUM1QixDQUFDO1lBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxhQUFhLEdBQW9CO1lBQ3JDLEdBQUcsRUFBRSxDQUFDO1lBQ04sSUFBSSxFQUFFLENBQUM7WUFDUCxRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDO1FBRUYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDOzhHQTlCVSxrQkFBa0Isa0JBR1QsUUFBUTtrR0FIakIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixTQUFTOzswQkFJSyxNQUFNOzJCQUFDLFFBQVE7eUNBRzVCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgU2Nyb2xsVG9wQ29tcG9uZW50IHtcbiAgd2luZG93U2Nyb2xsZWQhOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50KSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnLCBbXSlcbiAgb25XaW5kb3dTY3JvbGwoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgd2luZG93LnBhZ2VZT2Zmc2V0IHx8XG4gICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8XG4gICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCA+IDIwMFxuICAgICkge1xuICAgICAgdGhpcy53aW5kb3dTY3JvbGxlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICh0aGlzLndpbmRvd1Njcm9sbGVkICYmIHdpbmRvdy5wYWdlWU9mZnNldCkgfHxcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHxcbiAgICAgIGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIDwgNTBcbiAgICApIHtcbiAgICAgIHRoaXMud2luZG93U2Nyb2xsZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzY3JvbGxUb1RvcCgpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JvbGxPcHRpb25zOiBTY3JvbGxUb09wdGlvbnMgPSB7XG4gICAgICB0b3A6IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgIH07XG5cbiAgICB3aW5kb3cuc2Nyb2xsVG8oc2Nyb2xsT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==","import { Component, computed, inject } from '@angular/core';\nimport { ConfigPageType } from '@smartsoft001-mobilems/models';\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport * as i0 from \"@angular/core\";\nexport class FooterComponent {\n constructor() {\n this.configsFacade = inject(ConfigsFacade);\n this.config = computed(() => this.configsFacade.data, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.currentYear = computed(() => new Date().getFullYear(), ...(ngDevMode ? [{ debugName: \"currentYear\" }] : []));\n this.staticPages = computed(() => {\n const config = this.config();\n if (!config?.theme?.footer?.menu)\n return [];\n return config.theme.footer.menu.filter((item) => item.type === ConfigPageType.static);\n }, ...(ngDevMode ? [{ debugName: \"staticPages\" }] : []));\n this.hasStaticPages = computed(() => this.staticPages().length > 0, ...(ngDevMode ? [{ debugName: \"hasStaticPages\" }] : []));\n this.menuItems = computed(() => {\n const config = this.config();\n return config?.theme?.footer?.menu ?? [];\n }, ...(ngDevMode ? [{ debugName: \"menuItems\" }] : []));\n this.hasMenuItems = computed(() => this.menuItems().length > 0, ...(ngDevMode ? [{ debugName: \"hasMenuItems\" }] : []));\n }\n getStaticPageById(id) {\n return this.staticPages().find((page) => page.page.id === id);\n }\n getStaticPageTitle(id) {\n return this.getStaticPageById(id)?.page.title;\n }\n updateConfig(_config) {\n const current = this.config();\n if (!current)\n return;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: FooterComponent, isStandalone: true, selector: \"smart-mobilems-footer\", ngImport: i0, template: ``, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FooterComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-mobilems-footer', standalone: true, imports: [], template: `` }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFFLGNBQWMsRUFBa0IsTUFBTSwrQkFBK0IsQ0FBQztBQUUvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBMEI1RCxNQUFNLE9BQU8sZUFBZTtJQVA1QjtRQVFVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXJDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGtEQUFDLENBQUM7UUFDakQsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsdURBQUMsQ0FBQztRQUV2RCxnQkFBVyxHQUFHLFFBQVEsQ0FBc0IsR0FBRyxFQUFFO1lBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUU1QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQ3BDLENBQUMsSUFBSSxFQUE2QixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsTUFBTSxDQUN6RSxDQUFDO1FBQ0osQ0FBQyx1REFBQyxDQUFDO1FBRU0sbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLDBEQUFDLENBQUM7UUFFL0QsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE9BQU8sTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMzQyxDQUFDLHFEQUFDLENBQUM7UUFFTSxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsd0RBQUMsQ0FBQztLQWNyRTtJQVpDLGlCQUFpQixDQUFDLEVBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFBVTtRQUMzQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2hELENBQUM7SUFFRCxZQUFZLENBQUMsT0FBc0I7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztJQUN2QixDQUFDOzhHQW5DVSxlQUFlO2tHQUFmLGVBQWUsaUZBSGhCLEVBQUU7OzJGQUdELGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxFQUFFLFlBQ0QsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWdQYWdlVHlwZSwgQ29uZmlnTWVudUl0ZW0gfSBmcm9tICdAc21hcnRzb2Z0MDAxLW1vYmlsZW1zL21vZGVscyc7XG5cbmltcG9ydCB7IENvbmZpZ3NGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvY29uZmlncy5mYWNhZGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGb290ZXJTdGF0aWNQYWdlIHtcbiAgdHlwZTogQ29uZmlnUGFnZVR5cGUuc3RhdGljO1xuICB0aXRsZTogc3RyaW5nO1xuICBwYWdlOiB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICB0aXRsZTogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb290ZXJDb25maWcge1xuICB0aGVtZT86IHtcbiAgICBmb290ZXI/OiB7XG4gICAgICBtZW51PzogQ29uZmlnTWVudUl0ZW1bXTtcbiAgICB9O1xuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1tb2JpbGVtcy1mb290ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6IGBgLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBGb290ZXJDb21wb25lbnQge1xuICBwcml2YXRlIGNvbmZpZ3NGYWNhZGUgPSBpbmplY3QoQ29uZmlnc0ZhY2FkZSk7XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWdzRmFjYWRlLmRhdGEpO1xuICByZWFkb25seSBjdXJyZW50WWVhciA9IGNvbXB1dGVkKCgpID0+IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSk7XG5cbiAgcmVhZG9ubHkgc3RhdGljUGFnZXMgPSBjb21wdXRlZDxJRm9vdGVyU3RhdGljUGFnZVtdPigoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoIWNvbmZpZz8udGhlbWU/LmZvb3Rlcj8ubWVudSkgcmV0dXJuIFtdO1xuXG4gICAgcmV0dXJuIGNvbmZpZy50aGVtZS5mb290ZXIubWVudS5maWx0ZXIoXG4gICAgICAoaXRlbSk6IGl0ZW0gaXMgSUZvb3RlclN0YXRpY1BhZ2UgPT4gaXRlbS50eXBlID09PSBDb25maWdQYWdlVHlwZS5zdGF0aWMsXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaGFzU3RhdGljUGFnZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXRpY1BhZ2VzKCkubGVuZ3RoID4gMCk7XG5cbiAgcmVhZG9ubHkgbWVudUl0ZW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgcmV0dXJuIGNvbmZpZz8udGhlbWU/LmZvb3Rlcj8ubWVudSA/PyBbXTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaGFzTWVudUl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tZW51SXRlbXMoKS5sZW5ndGggPiAwKTtcblxuICBnZXRTdGF0aWNQYWdlQnlJZChpZDogbnVtYmVyKTogSUZvb3RlclN0YXRpY1BhZ2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnN0YXRpY1BhZ2VzKCkuZmluZCgocGFnZSkgPT4gcGFnZS5wYWdlLmlkID09PSBpZCk7XG4gIH1cblxuICBnZXRTdGF0aWNQYWdlVGl0bGUoaWQ6IG51bWJlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RhdGljUGFnZUJ5SWQoaWQpPy5wYWdlLnRpdGxlO1xuICB9XG5cbiAgdXBkYXRlQ29uZmlnKF9jb25maWc6IElGb290ZXJDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoIWN1cnJlbnQpIHJldHVybjtcbiAgfVxufVxuIl19","import { isPlatformBrowser } from '@angular/common';\nimport { Component, computed, inject, signal, PLATFORM_ID, } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport * as i0 from \"@angular/core\";\nexport class HeaderComponent {\n constructor() {\n this.configsFacade = inject(ConfigsFacade);\n this.router = inject(Router);\n this.platformId = inject(PLATFORM_ID);\n this.config = computed(() => this.configsFacade.data, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.isMobile = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n return typeof window !== 'undefined' && window.innerWidth <= 640;\n }, ...(ngDevMode ? [{ debugName: \"isMobile\" }] : []));\n this.showWcagConfig = signal(false, ...(ngDevMode ? [{ debugName: \"showWcagConfig\" }] : []));\n this.showSearchPanel = signal(false, ...(ngDevMode ? [{ debugName: \"showSearchPanel\" }] : []));\n this.user = signal(null, ...(ngDevMode ? [{ debugName: \"user\" }] : []));\n this.localCollectionCount = signal(0, ...(ngDevMode ? [{ debugName: \"localCollectionCount\" }] : []));\n this.headerConfig = computed(() => {\n const config = this.config();\n return config?.theme ?? {};\n }, ...(ngDevMode ? [{ debugName: \"headerConfig\" }] : []));\n this.isWcagVisible = computed(() => {\n return (this.showWcagConfig() &&\n this.headerConfig()?.header?.showWcagConfig !== false);\n }, ...(ngDevMode ? [{ debugName: \"isWcagVisible\" }] : []));\n this.isSearchVisible = computed(() => {\n return this.headerConfig()?.header?.showSearch !== false;\n }, ...(ngDevMode ? [{ debugName: \"isSearchVisible\" }] : []));\n this.isLocalCollectionVisible = computed(() => {\n return this.headerConfig()?.header?.showLocalCollection !== false;\n }, ...(ngDevMode ? [{ debugName: \"isLocalCollectionVisible\" }] : []));\n this.isLanguageSelectorVisible = computed(() => {\n return this.headerConfig()?.header?.showLanguageSelector !== false;\n }, ...(ngDevMode ? [{ debugName: \"isLanguageSelectorVisible\" }] : []));\n this.isUserAccountVisible = computed(() => {\n return this.headerConfig()?.header?.showUserAccount !== false;\n }, ...(ngDevMode ? [{ debugName: \"isUserAccountVisible\" }] : []));\n }\n toggleWcagConfig() {\n this.showWcagConfig.update((value) => !value);\n }\n toggleSearchPanel() {\n this.showSearchPanel.update((value) => !value);\n }\n onWcagCloseButtonEvent(closed) {\n this.showWcagConfig.set(!closed);\n }\n onSearchPanelButtonEvent(opened) {\n this.showSearchPanel.set(opened);\n }\n routeToLogin() {\n this.router.navigate(['/login']);\n }\n routeToUserAccount() {\n this.router.navigate(['/profile']);\n }\n routeToLocalCollection() {\n this.router.navigate(['/my-collection']);\n }\n setUser(user) {\n this.user.set(user);\n }\n setLocalCollectionCount(count) {\n this.localCollectionCount.set(count);\n }\n getUser() {\n return this.user();\n }\n getLocalCollectionCount() {\n return this.localCollectionCount();\n }\n updateConfig() {\n const current = this.config();\n if (!current)\n return;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: HeaderComponent, isStandalone: true, selector: \"smart-mobilems-header\", ngImport: i0, template: ``, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: HeaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-mobilems-header', standalone: true, imports: [], template: `` }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQTBCNUQsTUFBTSxPQUFPLGVBQWU7SUFQNUI7UUFRVSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEMsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksa0RBQUMsQ0FBQztRQUNqRCxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELE9BQU8sT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxDQUFDO1FBQ25FLENBQUMsb0RBQUMsQ0FBQztRQUVNLG1CQUFjLEdBQUcsTUFBTSxDQUFVLEtBQUssMERBQUMsQ0FBQztRQUN4QyxvQkFBZSxHQUFH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QUNyQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZO1FBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztJQUN2QixDQUFDOzhHQTdGVSxlQUFlO2tHQUFmLGVBQWUsaUZBSGhCLEVBQUU7OzJGQUdELGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxFQUFFLFlBQ0QsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICBQTEFURk9STV9JRCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBDb25maWdzRmFjYWRlIH0gZnJvbSAnLi4vLi4vK3N0YXRlL2NvbmZpZ3MuZmFjYWRlJztcblxuZXhwb3J0IGludGVyZmFjZSBJSGVhZGVyVXNlciB7XG4gIHVzZXJJRDogc3RyaW5nO1xuICBba2V5OiBzdHJpbmddOiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElIZWFkZXJDb25maWcge1xuICB0aGVtZT86IHtcbiAgICBoZWFkZXI/OiB7XG4gICAgICBzaG93V2NhZ0NvbmZpZz86IGJvb2xlYW47XG4gICAgICBzaG93U2VhcmNoPzogYm9vbGVhbjtcbiAgICAgIHNob3dMb2NhbENvbGxlY3Rpb24/OiBib29sZWFuO1xuICAgICAgc2hvd0xhbmd1YWdlU2VsZWN0b3I/OiBib29sZWFuO1xuICAgICAgc2hvd1VzZXJBY2NvdW50PzogYm9vbGVhbjtcbiAgICB9O1xuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1tb2JpbGVtcy1oZWFkZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6IGBgLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQge1xuICBwcml2YXRlIGNvbmZpZ3NGYWNhZGUgPSBpbmplY3QoQ29uZmlnc0ZhY2FkZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWdzRmFjYWRlLmRhdGEpO1xuICByZWFkb25seSBpc01vYmlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5pbm5lcldpZHRoIDw9IDY0MDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2hvd1djYWdDb25maWcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93U2VhcmNoUGFuZWwgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB1c2VyID0gc2lnbmFsPElIZWFkZXJVc2VyIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGxvY2FsQ29sbGVjdGlvbkNvdW50ID0gc2lnbmFsPG51bWJlcj4oMCk7XG5cbiAgcmVhZG9ubHkgaGVhZGVyQ29uZmlnID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgcmV0dXJuIChjb25maWc/LnRoZW1lIGFzIElIZWFkZXJDb25maWdbJ3RoZW1lJ10pID8/IHt9O1xuICB9KTtcblxuICByZWFkb25seSBpc1djYWdWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNob3dXY2FnQ29uZmlnKCkgJiZcbiAgICAgIHRoaXMuaGVhZGVyQ29uZmlnKCk/LmhlYWRlcj8uc2hvd1djYWdDb25maWcgIT09IGZhbHNlXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaXNTZWFyY2hWaXNpYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmhlYWRlckNvbmZpZygpPy5oZWFkZXI/LnNob3dTZWFyY2ggIT09IGZhbHNlO1xuICB9KTtcblxuICByZWFkb25seSBpc0xvY2FsQ29sbGVjdGlvblZpc2libGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyQ29uZmlnKCk/LmhlYWRlcj8uc2hvd0xvY2FsQ29sbGVjdGlvbiAhPT0gZmFsc2U7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGlzTGFuZ3VhZ2VTZWxlY3RvclZpc2libGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVyQ29uZmlnKCk/LmhlYWRlcj8uc2hvd0xhbmd1YWdlU2VsZWN0b3IgIT09IGZhbHNlO1xuICB9KTtcblxuICByZWFkb25seSBpc1VzZXJBY2NvdW50VmlzaWJsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5oZWFkZXJDb25maWcoKT8uaGVhZGVyPy5zaG93VXNlckFjY291bnQgIT09IGZhbHNlO1xuICB9KTtcblxuICB0b2dnbGVXY2FnQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1djYWdDb25maWcudXBkYXRlKCh2YWx1ZSkgPT4gIXZhbHVlKTtcbiAgfVxuXG4gIHRvZ2dsZVNlYXJjaFBhbmVsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1NlYXJjaFBhbmVsLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XG4gIH1cblxuICBvbldjYWdDbG9zZUJ1dHRvbkV2ZW50KGNsb3NlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd1djYWdDb25maWcuc2V0KCFjbG9zZWQpO1xuICB9XG5cbiAgb25TZWFyY2hQYW5lbEJ1dHRvbkV2ZW50KG9wZW5lZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd1NlYXJjaFBhbmVsLnNldChvcGVuZWQpO1xuICB9XG5cbiAgcm91dGVUb0xvZ2luKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2xvZ2luJ10pO1xuICB9XG5cbiAgcm91dGVUb1VzZXJBY2NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3Byb2ZpbGUnXSk7XG4gIH1cblxuICByb3V0ZVRvTG9jYWxDb2xsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL215LWNvbGxlY3Rpb24nXSk7XG4gIH1cblxuICBzZXRVc2VyKHVzZXI6IElIZWFkZXJVc2VyIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudXNlci5zZXQodXNlcik7XG4gIH1cblxuICBzZXRMb2NhbENvbGxlY3Rpb25Db3VudChjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbENvbGxlY3Rpb25Db3VudC5zZXQoY291bnQpO1xuICB9XG5cbiAgZ2V0VXNlcigpOiBJSGVhZGVyVXNlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnVzZXIoKTtcbiAgfVxuXG4gIGdldExvY2FsQ29sbGVjdGlvbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxDb2xsZWN0aW9uQ291bnQoKTtcbiAgfVxuXG4gIHVwZGF0ZUNvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoIWN1cnJlbnQpIHJldHVybjtcbiAgfVxufVxuIl19","import { isPlatformBrowser, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { Component, computed, inject, input, PLATFORM_ID } from '@angular/core';\nimport { Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { ConfigsFacade } from '../../+state/configs.facade';\nimport * as i0 from \"@angular/core\";\nexport class MenuComponent {\n constructor() {\n this.configsFacade = inject(ConfigsFacade);\n this.router = inject(Router);\n this.platformId = inject(PLATFORM_ID);\n this.menuItems = input([], ...(ngDevMode ? [{ debugName: \"menuItems\" }] : []));\n this.searchEnabled = input(false, ...(ngDevMode ? [{ debugName: \"searchEnabled\" }] : []));\n this.config = computed(() => this.configsFacade.data, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.menuConfig = computed(() => {\n const config = this.config();\n return config?.theme ?? {};\n }, ...(ngDevMode ? [{ debugName: \"menuConfig\" }] : []));\n this.mobileBreakpoint = computed(() => {\n return this.menuConfig()?.menu?.mobileBreakpoint ?? 960;\n }, ...(ngDevMode ? [{ debugName: \"mobileBreakpoint\" }] : []));\n this.isMobileMenu = computed(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n return (typeof window !== 'undefined' &&\n window.innerWidth <= this.mobileBreakpoint());\n }, ...(ngDevMode ? [{ debugName: \"isMobileMenu\" }] : []));\n this._menuOpenState = false;\n }\n toggleMenu() {\n this._menuOpenState = !this._menuOpenState;\n }\n closeMenu() {\n this._menuOpenState = false;\n }\n isOpened() {\n return this._menuOpenState;\n }\n isRouteActive(route) {\n return this.router.isActive(route, {\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'ignored',\n matrixParams: 'ignored',\n });\n }\n getMenuItemTitle(item) {\n if (item.title) {\n return item.title;\n }\n return this.isRouteActive(item.route)\n ? `${item.label} (active)`\n : item.label;\n }\n getMenuItemAriaLabel(item) {\n if (item.ariaLabel) {\n return item.ariaLabel;\n }\n return this.isRouteActive(item.route)\n ? `${item.label} - Current page`\n : item.label;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: MenuComponent, isStandalone: true, selector: \"smart-mobilems-menu\", inputs: { menuItems: { classPropertyName: \"menuItems\", publicName: \"menuItems\", isSignal: true, isRequired: false, transformFunction: null }, searchEnabled: { classPropertyName: \"searchEnabled\", publicName: \"searchEnabled\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"@if (!searchEnabled()) {\\n <h2 class=\\\"smart-sr-only\\\">Main Menu</h2>\\n\\n @if (isMobileMenu()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-py-[1.2rem]\\\"\\n [ngClass]=\\\"isOpened() ? '' : ''\\\"\\n role=\\\"navigation\\\"\\n attr.aria-label=\\\"Main Menu\\\"\\n >\\n <button\\n class=\\\"smart-h-[3.6rem] smart-relative smart-bg-transparent smart-border-0 smart-left-0 smart-flex smart-flex-row smart-items-center smart-text-[1.8rem] smart-font-bold smart-cursor-pointer\\\"\\n (click)=\\\"toggleMenu()\\\"\\n attr.aria-expanded=\\\"{{ isOpened() }}\\\"\\n attr.aria-label=\\\"{{ isOpened() ? 'Close menu' : 'Open menu' }}\\\"\\n >\\n @if (!isOpened()) {\\n <span\\n class=\\\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\\\"\\n >menu</span\\n >\\n } @else {\\n <span\\n class=\\\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\\\"\\n >close</span\\n >\\n }\\n </button>\\n </div>\\n }\\n\\n @if (!isMobileMenu()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-h-full smart-p-0\\\"\\n role=\\\"navigation\\\"\\n attr.aria-label=\\\"Main Menu\\\"\\n >\\n <div role=\\\"menubar\\\">\\n <ng-container *ngTemplateOutlet=\\\"menuTemplate\\\"></ng-container>\\n </div>\\n </div>\\n }\\n\\n @if (isMobileMenu() && isOpened()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-center smart-h-full smart-p-0 smart-border smart-border-[#f3f3f3] smart-bg-[#fefefe] smart-mb-[2.4rem] smart-shadow-[0_0.6rem_1.2rem_#efefef] smart-p-[1.2rem]\\\"\\n >\\n <div role=\\\"navigation\\\" aria-label=\\\"Main\\\">\\n <ng-container *ngTemplateOutlet=\\\"menuTemplate\\\"></ng-container>\\n </div>\\n </div>\\n }\\n}\\n\\n<ng-template #menuTemplate>\\n <ul\\n id=\\\"main-menu\\\"\\n role=\\\"menu\\\"\\n class=\\\"smart-h-full smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-flex-nowrap smart-list-none smart-p-0 smart-m-0 smart-gap-x-[0.3rem]\\\"\\n [ngClass]=\\\"\\n isMobileMenu()\\n ? 'smart-flex-wrap smart-justify-center smart-p-[1.2rem] smart-m-0'\\n : ''\\n \\\"\\n >\\n @for (item of menuItems(); track item.route) {\\n <li\\n class=\\\"smart-inline-flex smart-relative smart-w-auto smart-m-0\\\"\\n [ngClass]=\\\"isMobileMenu() ? 'smart-w-full smart-max-w-full' : ''\\\"\\n >\\n <a\\n class=\\\"smart-flex smart-items-center smart-flex-nowrap smart-text-black smart-transition-[border] smart-ease-in-out smart-duration-500 smart-border-b-[0.6rem] smart-border-b-transparent smart-cursor-pointer smart-justify-center smart-h-full smart-w-full smart-py-[1.2rem] smart-px-[1.8rem] smart-text-[1.6rem] smart-font-medium smart-whitespace-nowrap smart-m-0 smart-no-underline hover:smart-text-black hover:smart-bg-transparent hover:smart-border-b-[0.6rem] hover:smart-border-b-black\\\"\\n role=\\\"menuitem\\\"\\n [routerLink]=\\\"[item.route]\\\"\\n routerLinkActive=\\\"smart-cursor-default smart-text-black smart-bg-transparent smart-border-b-[0.6rem] smart-border-b-black\\\"\\n (click)=\\\"closeMenu()\\\"\\n [attr.title]=\\\"getMenuItemTitle(item)\\\"\\n [attr.aria-label]=\\\"getMenuItemAriaLabel(item)\\\"\\n >\\n @if (item.icon) {\\n <span\\n class=\\\"smart-text-[2.2rem] smart-mr-[0.4rem] smart-material-icons\\\"\\n >{{ item.icon }}</span\\n >\\n }\\n <span class=\\\"smart-inline-block\\\">{{ item.label }}</span>\\n </a>\\n </li>\\n }\\n </ul>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-mobilems-menu', standalone: true, imports: [NgClass, NgTemplateOutlet, RouterLink, RouterLinkActive], template: \"@if (!searchEnabled()) {\\n <h2 class=\\\"smart-sr-only\\\">Main Menu</h2>\\n\\n @if (isMobileMenu()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-py-[1.2rem]\\\"\\n [ngClass]=\\\"isOpened() ? '' : ''\\\"\\n role=\\\"navigation\\\"\\n attr.aria-label=\\\"Main Menu\\\"\\n >\\n <button\\n class=\\\"smart-h-[3.6rem] smart-relative smart-bg-transparent smart-border-0 smart-left-0 smart-flex smart-flex-row smart-items-center smart-text-[1.8rem] smart-font-bold smart-cursor-pointer\\\"\\n (click)=\\\"toggleMenu()\\\"\\n attr.aria-expanded=\\\"{{ isOpened() }}\\\"\\n attr.aria-label=\\\"{{ isOpened() ? 'Close menu' : 'Open menu' }}\\\"\\n >\\n @if (!isOpened()) {\\n <span\\n class=\\\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\\\"\\n >menu</span\\n >\\n } @else {\\n <span\\n class=\\\"smart-text-[3rem] smart-text-black smart-mr-[0.6rem] smart-material-icons\\\"\\n >close</span\\n >\\n }\\n </button>\\n </div>\\n }\\n\\n @if (!isMobileMenu()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-end smart-h-full smart-p-0\\\"\\n role=\\\"navigation\\\"\\n attr.aria-label=\\\"Main Menu\\\"\\n >\\n <div role=\\\"menubar\\\">\\n <ng-container *ngTemplateOutlet=\\\"menuTemplate\\\"></ng-container>\\n </div>\\n </div>\\n }\\n\\n @if (isMobileMenu() && isOpened()) {\\n <div\\n class=\\\"smart-w-full smart-flex smart-flex-row smart-justify-center smart-h-full smart-p-0 smart-border smart-border-[#f3f3f3] smart-bg-[#fefefe] smart-mb-[2.4rem] smart-shadow-[0_0.6rem_1.2rem_#efefef] smart-p-[1.2rem]\\\"\\n >\\n <div role=\\\"navigation\\\" aria-label=\\\"Main\\\">\\n <ng-container *ngTemplateOutlet=\\\"menuTemplate\\\"></ng-container>\\n </div>\\n </div>\\n }\\n}\\n\\n<ng-template #menuTemplate>\\n <ul\\n id=\\\"main-menu\\\"\\n role=\\\"menu\\\"\\n class=\\\"smart-h-full smart-w-full smart-flex smart-flex-row smart-justify-end smart-items-stretch smart-flex-nowrap smart-list-none smart-p-0 smart-m-0 smart-gap-x-[0.3rem]\\\"\\n [ngClass]=\\\"\\n isMobileMenu()\\n ? 'smart-flex-wrap smart-justify-center smart-p-[1.2rem] smart-m-0'\\n : ''\\n \\\"\\n >\\n @for (item of menuItems(); track item.route) {\\n <li\\n class=\\\"smart-inline-flex smart-relative smart-w-auto smart-m-0\\\"\\n [ngClass]=\\\"isMobileMenu() ? 'smart-w-full smart-max-w-full' : ''\\\"\\n >\\n <a\\n class=\\\"smart-flex smart-items-center smart-flex-nowrap smart-text-black smart-transition-[border] smart-ease-in-out smart-duration-500 smart-border-b-[0.6rem] smart-border-b-transparent smart-cursor-pointer smart-justify-center smart-h-full smart-w-full smart-py-[1.2rem] smart-px-[1.8rem] smart-text-[1.6rem] smart-font-medium smart-whitespace-nowrap smart-m-0 smart-no-underline hover:smart-text-black hover:smart-bg-transparent hover:smart-border-b-[0.6rem] hover:smart-border-b-black\\\"\\n role=\\\"menuitem\\\"\\n [routerLink]=\\\"[item.route]\\\"\\n routerLinkActive=\\\"smart-cursor-default smart-text-black smart-bg-transparent smart-border-b-[0.6rem] smart-border-b-black\\\"\\n (click)=\\\"closeMenu()\\\"\\n [attr.title]=\\\"getMenuItemTitle(item)\\\"\\n [attr.aria-label]=\\\"getMenuItemAriaLabel(item)\\\"\\n >\\n @if (item.icon) {\\n <span\\n class=\\\"smart-text-[2.2rem] smart-mr-[0.4rem] smart-material-icons\\\"\\n >{{ item.icon }}</span\\n >\\n }\\n <span class=\\\"smart-inline-block\\\">{{ item.label }}</span>\\n </a>\\n </li>\\n }\\n </ul>\\n</ng-template>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbWVudS9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9tZW51L21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQXlCNUQsTUFBTSxPQUFPLGFBQWE7SUFOMUI7UUFPVSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEMsY0FBUyxHQUFHLEtBQUssQ0FBYyxFQUFFLHFEQUFDLENBQUM7UUFDbkMsa0JBQWEsR0FBRyxLQUFLLENBQVUsS0FBSyx5REFBQyxDQUFDO1FBRXRDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLGtEQUFDLENBQUM7UUFFakQsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE9BQVEsTUFBTSxFQUFFLEtBQThCLElBQUksRUFBRSxDQUFDO1FBQ3ZELENBQUMsc0RBQUMsQ0FBQztRQUVNLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixJQUFJLEdBQUcsQ0FBQztRQUMxRCxDQUFDLDREQUFDLENBQUM7UUFFTSxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxPQUFPLENBQ0wsT0FBTyxNQUFNLEtBQUssV0FBVztnQkFDN0IsTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FDN0MsQ0FBQztRQUNKLENBQUMsd0RBQUMsQ0FBQztRQUVLLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0tBd0NoQztJQXRDQyxVQUFVO1FBQ1IsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0MsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDakMsS0FBSyxFQUFFLE9BQU87WUFDZCxXQUFXLEVBQUUsT0FBTztZQUNwQixRQUFRLEVBQUUsU0FBUztZQUNuQixZQUFZLEVBQUUsU0FBUztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBZTtRQUM5QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbkMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssV0FBVztZQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBZTtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLGlCQUFpQjtZQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQXBFVSxhQUFhO2tHQUFiLGFBQWEsK1dDN0IxQiw2cEhBMkZBLDRDRGpFWSxPQUFPLG9GQUFFLGdCQUFnQixvSkFBRSxVQUFVLG9PQUFFLGdCQUFnQjs7MkZBR3RELGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciwgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ29uZmlnc0ZhY2FkZSB9IGZyb20gJy4uLy4uLytzdGF0ZS9jb25maWdzLmZhY2FkZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lbnVJdGVtIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgcm91dGU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGFyaWFMYWJlbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWVudUNvbmZpZyB7XG4gIHRoZW1lPzoge1xuICAgIG1lbnU/OiB7XG4gICAgICBlbmFibGVkPzogYm9vbGVhbjtcbiAgICAgIG1vYmlsZUJyZWFrcG9pbnQ/OiBudW1iZXI7XG4gICAgfTtcbiAgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtbW9iaWxlbXMtbWVudScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0LCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBjb25maWdzRmFjYWRlID0gaW5qZWN0KENvbmZpZ3NGYWNhZGUpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gIHJlYWRvbmx5IG1lbnVJdGVtcyA9IGlucHV0PElNZW51SXRlbVtdPihbXSk7XG4gIHJlYWRvbmx5IHNlYXJjaEVuYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgY29uZmlnID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWdzRmFjYWRlLmRhdGEpO1xuXG4gIHJlYWRvbmx5IG1lbnVDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcoKTtcbiAgICByZXR1cm4gKGNvbmZpZz8udGhlbWUgYXMgSU1lbnVDb25maWdbJ3RoZW1lJ10pID8/IHt9O1xuICB9KTtcblxuICByZWFkb25seSBtb2JpbGVCcmVha3BvaW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb25maWcoKT8ubWVudT8ubW9iaWxlQnJlYWtwb2ludCA/PyA5NjA7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGlzTW9iaWxlTWVudSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICB3aW5kb3cuaW5uZXJXaWR0aCA8PSB0aGlzLm1vYmlsZUJyZWFrcG9pbnQoKVxuICAgICk7XG4gIH0pO1xuXG4gIHByaXZhdGUgX21lbnVPcGVuU3RhdGUgPSBmYWxzZTtcblxuICB0b2dnbGVNZW51KCk6IHZvaWQge1xuICAgIHRoaXMuX21lbnVPcGVuU3RhdGUgPSAhdGhpcy5fbWVudU9wZW5TdGF0ZTtcbiAgfVxuXG4gIGNsb3NlTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZW51T3BlblN0YXRlID0gZmFsc2U7XG4gIH1cblxuICBpc09wZW5lZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVudU9wZW5TdGF0ZTtcbiAgfVxuXG4gIGlzUm91dGVBY3RpdmUocm91dGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5pc0FjdGl2ZShyb3V0ZSwge1xuICAgICAgcGF0aHM6ICdleGFjdCcsXG4gICAgICBxdWVyeVBhcmFtczogJ2V4YWN0JyxcbiAgICAgIGZyYWdtZW50OiAnaWdub3JlZCcsXG4gICAgICBtYXRyaXhQYXJhbXM6ICdpZ25vcmVkJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldE1lbnVJdGVtVGl0bGUoaXRlbTogSU1lbnVJdGVtKTogc3RyaW5nIHtcbiAgICBpZiAoaXRlbS50aXRsZSkge1xuICAgICAgcmV0dXJuIGl0ZW0udGl0bGU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzUm91dGVBY3RpdmUoaXRlbS5yb3V0ZSlcbiAgICAgID8gYCR7aXRlbS5sYWJlbH0gKGFjdGl2ZSlgXG4gICAgICA6IGl0ZW0ubGFiZWw7XG4gIH1cblxuICBnZXRNZW51SXRlbUFyaWFMYWJlbChpdGVtOiBJTWVudUl0ZW0pOiBzdHJpbmcge1xuICAgIGlmIChpdGVtLmFyaWFMYWJlbCkge1xuICAgICAgcmV0dXJuIGl0ZW0uYXJpYUxhYmVsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pc1JvdXRlQWN0aXZlKGl0ZW0ucm91dGUpXG4gICAgICA/IGAke2l0ZW0ubGFiZWx9IC0gQ3VycmVudCBwYWdlYFxuICAgICAgOiBpdGVtLmxhYmVsO1xuICB9XG59XG4iLCJAaWYgKCFzZWFyY2hFbmFibGVkKCkpIHtcbiAgPGgyIGNsYXNzPVwic21hcnQtc3Itb25seVwiPk1haW4gTWVudTwvaDI+XG5cbiAgQGlmIChpc01vYmlsZU1lbnUoKSkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic21hcnQtdy1mdWxsIHNtYXJ0LWZsZXggc21hcnQtZmxleC1yb3cgc21hcnQtanVzdGlmeS1lbmQgc21hcnQtaXRlbXMtc3RyZXRjaCBzbWFydC1weS1bMS4ycmVtXVwiXG4gICAgICBbbmdDbGFzc109XCJpc09wZW5lZCgpID8gJycgOiAnJ1wiXG4gICAgICByb2xlPVwibmF2aWdhdGlvblwiXG4gICAgICBhdHRyLmFyaWEtbGFiZWw9XCJNYWluIE1lbnVcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzbWFydC1oLVszLjZyZW1dIHNtYXJ0LXJlbGF0aXZlIHNtYXJ0LWJnLXRyYW5zcGFyZW50IHNtYXJ0LWJvcmRlci0wIHNtYXJ0LWxlZnQtMCBzbWFydC1mbGV4IHNtYXJ0LWZsZXgtcm93IHNtYXJ0LWl0ZW1zLWNlbnRlciBzbWFydC10ZXh0LVsxLjhyZW1dIHNtYXJ0LWZvbnQtYm9sZCBzbWFydC1jdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVNZW51KClcIlxuICAgICAgICBhdHRyLmFyaWEtZXhwYW5kZWQ9XCJ7eyBpc09wZW5lZCgpIH19XCJcbiAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwie3sgaXNPcGVuZWQoKSA/ICdDbG9zZSBtZW51JyA6ICdPcGVuIG1lbnUnIH19XCJcbiAgICAgID5cbiAgICAgICAgQGlmICghaXNPcGVuZWQoKSkge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNtYXJ0LXRleHQtWzNyZW1dIHNtYXJ0LXRleHQtYmxhY2sgc21hcnQtbXItWzAuNnJlbV0gc21hcnQtbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgICAgPm1lbnU8L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInNtYXJ0LXRleHQtWzNyZW1dIHNtYXJ0LXRleHQtYmxhY2sgc21hcnQtbXItWzAuNnJlbV0gc21hcnQtbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgICAgPmNsb3NlPC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICB9XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoIWlzTW9iaWxlTWVudSgpKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJzbWFydC13LWZ1bGwgc21hcnQtZmxleCBzbWFydC1mbGV4LXJvdyBzbWFydC1qdXN0aWZ5LWVuZCBzbWFydC1oLWZ1bGwgc21hcnQtcC0wXCJcbiAgICAgIHJvbGU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgIGF0dHIuYXJpYS1sYWJlbD1cIk1haW4gTWVudVwiXG4gICAgPlxuICAgICAgPGRpdiByb2xlPVwibWVudWJhclwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVudVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoaXNNb2JpbGVNZW51KCkgJiYgaXNPcGVuZWQoKSkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwic21hcnQtdy1mdWxsIHNtYXJ0LWZsZXggc21hcnQtZmxleC1yb3cgc21hcnQtanVzdGlmeS1jZW50ZXIgc21hcnQtaC1mdWxsIHNtYXJ0LXAtMCBzbWFydC1ib3JkZXIgc21hcnQtYm9yZGVyLVsjZjNmM2YzXSBzbWFydC1iZy1bI2ZlZmVmZV0gc21hcnQtbWItWzIuNHJlbV0gc21hcnQtc2hhZG93LVswXzAuNnJlbV8xLjJyZW1fI2VmZWZlZl0gc21hcnQtcC1bMS4ycmVtXVwiXG4gICAgPlxuICAgICAgPGRpdiByb2xlPVwibmF2aWdhdGlvblwiIGFyaWEtbGFiZWw9XCJNYWluXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtZW51VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG59XG5cbjxuZy10ZW1wbGF0ZSAjbWVudVRlbXBsYXRlPlxuICA8dWxcbiAgICBpZD1cIm1haW4tbWVudVwiXG4gICAgcm9sZT1cIm1lbnVcIlxuICAgIGNsYXNzPVwic21hcnQtaC1mdWxsIHNtYXJ0LXctZnVsbCBzbWFydC1mbGV4IHNtYXJ0LWZsZXgtcm93IHNtYXJ0LWp1c3RpZnktZW5kIHNtYXJ0LWl0ZW1zLXN0cmV0Y2ggc21hcnQtZmxleC1ub3dyYXAgc21hcnQtbGlzdC1ub25lIHNtYXJ0LXAtMCBzbWFydC1tLTAgc21hcnQtZ2FwLXgtWzAuM3JlbV1cIlxuICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgaXNNb2JpbGVNZW51KClcbiAgICAgICAgPyAnc21hcnQtZmxleC13cmFwIHNtYXJ0LWp1c3RpZnktY2VudGVyIHNtYXJ0LXAtWzEuMnJlbV0gc21hcnQtbS0wJ1xuICAgICAgICA6ICcnXG4gICAgXCJcbiAgPlxuICAgIEBmb3IgKGl0ZW0gb2YgbWVudUl0ZW1zKCk7IHRyYWNrIGl0ZW0ucm91dGUpIHtcbiAgICAgIDxsaVxuICAgICAgICBjbGFzcz1cInNtYXJ0LWlubGluZS1mbGV4IHNtYXJ0LXJlbGF0aXZlIHNtYXJ0LXctYXV0byBzbWFydC1tLTBcIlxuICAgICAgICBbbmdDbGFzc109XCJpc01vYmlsZU1lbnUoKSA/ICdzbWFydC13LWZ1bGwgc21hcnQtbWF4LXctZnVsbCcgOiAnJ1wiXG4gICAgICA+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJzbWFydC1mbGV4IHNtYXJ0LWl0ZW1zLWNlbnRlciBzbWFydC1mbGV4LW5vd3JhcCBzbWFydC10ZXh0LWJsYWNrIHNtYXJ0LXRyYW5zaXRpb24tW2JvcmRlcl0gc21hcnQtZWFzZS1pbi1vdXQgc21hcnQtZHVyYXRpb24tNTAwIHNtYXJ0LWJvcmRlci1iLVswLjZyZW1dIHNtYXJ0LWJvcmRlci1iLXRyYW5zcGFyZW50IHNtYXJ0LWN1cnNvci1wb2ludGVyIHNtYXJ0LWp1c3RpZnktY2VudGVyIHNtYXJ0LWgtZnVsbCBzbWFydC13LWZ1bGwgc21hcnQtcHktWzEuMnJlbV0gc21hcnQtcHgtWzEuOHJlbV0gc21hcnQtdGV4dC1bMS42cmVtXSBzbWFydC1mb250LW1lZGl1bSBzbWFydC13aGl0ZXNwYWNlLW5vd3JhcCBzbWFydC1tLTAgc21hcnQtbm8tdW5kZXJsaW5lIGhvdmVyOnNtYXJ0LXRleHQtYmxhY2sgaG92ZXI6c21hcnQtYmctdHJhbnNwYXJlbnQgaG92ZXI6c21hcnQtYm9yZGVyLWItWzAuNnJlbV0gaG92ZXI6c21hcnQtYm9yZGVyLWItYmxhY2tcIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgW3JvdXRlckxpbmtdPVwiW2l0ZW0ucm91dGVdXCJcbiAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwic21hcnQtY3Vyc29yLWRlZmF1bHQgc21hcnQtdGV4dC1ibGFjayBzbWFydC1iZy10cmFuc3BhcmVudCBzbWFydC1ib3JkZXItYi1bMC42cmVtXSBzbWFydC1ib3JkZXItYi1ibGFja1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlTWVudSgpXCJcbiAgICAgICAgICBbYXR0ci50aXRsZV09XCJnZXRNZW51SXRlbVRpdGxlKGl0ZW0pXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldE1lbnVJdGVtQXJpYUxhYmVsKGl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInNtYXJ0LXRleHQtWzIuMnJlbV0gc21hcnQtbXItWzAuNHJlbV0gc21hcnQtbWF0ZXJpYWwtaWNvbnNcIlxuICAgICAgICAgICAgICA+e3sgaXRlbS5pY29uIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic21hcnQtaW5saW5lLWJsb2NrXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9saT5cbiAgICB9XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19","import { AppComponent } from './app/app.component';\nexport * from './app/app.component';\nexport * from './page/page.component';\nexport * from './filters/filters.component';\nexport * from './scroll-top/scroll-top.component';\nexport * from '../services/modal/modal-container.component';\nexport * from './footer';\nexport * from './header';\nexport * from './menu';\nexport const COMPONENTS = [AppComponent];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFFBQVEsQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vYXBwL2FwcC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2FwcC9hcHAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS9wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGwtdG9wL3Njcm9sbC10b3AuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4uL3NlcnZpY2VzL21vZGFsL21vZGFsLWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb290ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9oZWFkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tZW51JztcblxuZXhwb3J0IGNvbnN0IENPTVBPTkVOVFMgPSBbQXBwQ29tcG9uZW50XTtcbiJdfQ==","import { Directive, HostListener, inject, ElementRef } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Directive that adds a \"hover\" CSS class to the host element on mouse enter\n * and removes it on mouse leave.\n *\n * @example\n * ```html\n * <div smartHover>Hover me</div>\n * ```\n */\nexport class HoverDirective {\n constructor() {\n this.el = inject(ElementRef);\n }\n /**\n * Adds the \"hover\" class when the mouse enters the element\n */\n onMouseEnter() {\n this.el.nativeElement.classList.add('hover');\n }\n /**\n * Removes the \"hover\" class when the mouse leaves the element\n */\n onMouseLeave() {\n this.el.nativeElement.classList.remove('hover');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: HoverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.0\", type: HoverDirective, isStandalone: true, selector: \"[smartHover]\", host: { listeners: { \"mouseenter\": \"onMouseEnter()\", \"mouseleave\": \"onMouseLeave()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: HoverDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[smartHover]',\n standalone: true,\n }]\n }], propDecorators: { onMouseEnter: [{\n type: HostListener,\n args: ['mouseenter']\n }], onMouseLeave: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG92ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9kaXJlY3RpdmVzL2hvdmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU1RTs7Ozs7Ozs7R0FRRztBQUtILE1BQU0sT0FBTyxjQUFjO0lBSjNCO1FBS21CLE9BQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FpQjFDO0lBZkM7O09BRUc7SUFFSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFFSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDOzhHQWpCVSxjQUFjO2tHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBSjFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFRQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFTMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgaW5qZWN0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgYWRkcyBhIFwiaG92ZXJcIiBDU1MgY2xhc3MgdG8gdGhlIGhvc3QgZWxlbWVudCBvbiBtb3VzZSBlbnRlclxuICogYW5kIHJlbW92ZXMgaXQgb24gbW91c2UgbGVhdmUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxkaXYgc21hcnRIb3Zlcj5Ib3ZlciBtZTwvZGl2PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzbWFydEhvdmVyXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEhvdmVyRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbCA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAvKipcbiAgICogQWRkcyB0aGUgXCJob3ZlclwiIGNsYXNzIHdoZW4gdGhlIG1vdXNlIGVudGVycyB0aGUgZWxlbWVudFxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnaG92ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBcImhvdmVyXCIgY2xhc3Mgd2hlbiB0aGUgbW91c2UgbGVhdmVzIHRoZSBlbGVtZW50XG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdob3ZlcicpO1xuICB9XG59XG4iXX0=","import { Directive, input, inject, ElementRef, signal, effect, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Directive that provides programmatic scrolling and overflow detection\n * for horizontally or vertically scrollable containers.\n *\n * @example\n * ```html\n * <div smartScrollable [scrollUnit]=\"200\" #scroll=\"smartScrollable\">\n * <!-- scrollable content -->\n * </div>\n * <button (click)=\"scroll.scrollHorizontal(1)\" [disabled]=\"!scroll.canScrollEndHorizontal\">\n * Next →\n * </button>\n * ```\n */\nexport class ScrollableDirective {\n constructor() {\n this.el = inject(ElementRef);\n /**\n * The number of pixels to scroll per unit when using scroll methods.\n * Can be updated dynamically to change scroll behavior.\n */\n this.scrollUnit = input.required(...(ngDevMode ? [{ debugName: \"scrollUnit\" }] : []));\n /** Indicates if the container can scroll further to the right */\n this.canScrollEndHorizontal = signal(false, ...(ngDevMode ? [{ debugName: \"canScrollEndHorizontal\" }] : []));\n /** Indicates if the container can scroll further to the left */\n this.canScrollStartHorizontal = signal(false, ...(ngDevMode ? [{ debugName: \"canScrollStartHorizontal\" }] : []));\n /** Indicates if the container can scroll further down */\n this.canScrollEndVertical = signal(false, ...(ngDevMode ? [{ debugName: \"canScrollEndVertical\" }] : []));\n /** Indicates if the container can scroll further up */\n this.canScrollStartVertical = signal(false, ...(ngDevMode ? [{ debugName: \"canScrollStartVertical\" }] : []));\n /** Current horizontal scroll position */\n this.scrollLeftPosition = signal(0, ...(ngDevMode ? [{ debugName: \"scrollLeftPosition\" }] : []));\n /** Current vertical scroll position */\n this.scrollTopPosition = signal(0, ...(ngDevMode ? [{ debugName: \"scrollTopPosition\" }] : []));\n // Update overflow detection when scrollUnit changes\n effect(() => {\n this.scrollUnit();\n this.updateOverflow();\n });\n }\n ngOnInit() {\n this.updateOverflow();\n this.addScrollListener();\n this.addResizeListener();\n }\n /**\n * Scrolls the container horizontally by the specified number of units.\n * @param units Number of scroll units (can be negative for backward scroll)\n */\n scrollHorizontal(units) {\n const element = this.el.nativeElement;\n const scrollAmount = units * this.scrollUnit();\n element.scrollLeft += scrollAmount;\n this.updateOverflow();\n }\n /**\n * Scrolls the container vertically by the specified number of units.\n * @param units Number of scroll units (can be negative for upward scroll)\n */\n scrollVertical(units) {\n const element = this.el.nativeElement;\n const scrollAmount = units * this.scrollUnit();\n element.scrollTop += scrollAmount;\n this.updateOverflow();\n }\n /**\n * Updates all overflow detection signals based on current scroll position\n */\n updateOverflow() {\n const element = this.el.nativeElement;\n // Horizontal overflow detection\n const scrollLeft = element.scrollLeft;\n const scrollWidth = element.scrollWidth;\n const clientWidth = element.clientWidth;\n this.scrollLeftPosition.set(scrollLeft);\n this.canScrollStartHorizontal.set(scrollLeft > 0);\n this.canScrollEndHorizontal.set(scrollLeft + clientWidth < scrollWidth);\n // Vertical overflow detection\n const scrollTop = element.scrollTop;\n const scrollHeight = element.scrollHeight;\n const clientHeight = element.clientHeight;\n this.scrollTopPosition.set(scrollTop);\n this.canScrollStartVertical.set(scrollTop > 0);\n this.canScrollEndVertical.set(scrollTop + clientHeight < scrollHeight);\n }\n /**\n * Adds scroll event listener to track scroll position changes\n */\n addScrollListener() {\n this.el.nativeElement.addEventListener('scroll', () => {\n this.updateOverflow();\n });\n }\n /**\n * Adds window resize listener to recalculate overflow on resize\n */\n addResizeListener() {\n window.addEventListener('resize', () => {\n this.updateOverflow();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ScrollableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.0\", type: ScrollableDirective, isStandalone: true, selector: \"[smartScrollable]\", inputs: { scrollUnit: { classPropertyName: \"scrollUnit\", publicName: \"scrollUnit\", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: [\"smartScrollable\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ScrollableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[smartScrollable]',\n standalone: true,\n exportAs: 'smartScrollable',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvc2Nyb2xsYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFFVixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBTUgsTUFBTSxPQUFPLG1CQUFtQjtJQTJCOUI7UUExQmlCLE9BQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekM7OztXQUdHO1FBQ00sZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLHFEQUFVLENBQUM7UUFFL0MsaUVBQWlFO1FBQ2pFLDJCQUFzQixHQUFHLE1BQU0sQ0FBVSxLQUFLLGtFQUFDLENBQUM7UUFFaEQsZ0VBQWdFO1FBQ2hFLDZCQUF3QixHQUFHLE1BQU0sQ0FBVSxLQUFLLG9FQUFDLENBQUM7UUFFbEQseURBQXlEO1FBQ3pELHlCQUFvQixHQUFHLE1BQU0sQ0FBVSxLQUFLLGdFQUFDLENBQUM7UUFFOUMsdURBQXVEO1FBQ3ZELDJCQUFzQixHQUFHLE1BQU0sQ0FBVSxLQUFLLGtFQUFDLENBQUM7UUFFaEQseUNBQXlDO1FBQ3pDLHVCQUFrQixHQUFHLE1BQU0sQ0FBUyxDQUFDLDhEQUFDLENBQUM7UUFFdkMsdUNBQXVDO1FBQ3ZDLHNCQUFpQixHQUFHLE1BQU0sQ0FBUyxDQUFDLDZEQUFDLENBQUM7UUFHcEMsb0RBQW9EO1FBQ3BELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMvQyxPQUFPLENBQUMsVUFBVSxJQUFJLFlBQVksQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxLQUFhO1FBQzFCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MsT0FBTyxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFFdEMsZ0NBQWdDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDdEMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN4QyxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBRXhDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBRXhFLDhCQUE4QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3BDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDMUMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUUxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F4R1UsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBpbnB1dCxcbiAgaW5qZWN0LFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbiAgZWZmZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgdGhhdCBwcm92aWRlcyBwcm9ncmFtbWF0aWMgc2Nyb2xsaW5nIGFuZCBvdmVyZmxvdyBkZXRlY3Rpb25cbiAqIGZvciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzY3JvbGxhYmxlIGNvbnRhaW5lcnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxkaXYgc21hcnRTY3JvbGxhYmxlIFtzY3JvbGxVbml0XT1cIjIwMFwiICNzY3JvbGw9XCJzbWFydFNjcm9sbGFibGVcIj5cbiAqICAgPCEtLSBzY3JvbGxhYmxlIGNvbnRlbnQgLS0+XG4gKiA8L2Rpdj5cbiAqIDxidXR0b24gKGNsaWNrKT1cInNjcm9sbC5zY3JvbGxIb3Jpem9udGFsKDEpXCIgW2Rpc2FibGVkXT1cIiFzY3JvbGwuY2FuU2Nyb2xsRW5kSG9yaXpvbnRhbFwiPlxuICogICBOZXh0IOKGklxuICogPC9idXR0b24+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NtYXJ0U2Nyb2xsYWJsZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBleHBvcnRBczogJ3NtYXJ0U2Nyb2xsYWJsZScsXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbGFibGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHBpeGVscyB0byBzY3JvbGwgcGVyIHVuaXQgd2hlbiB1c2luZyBzY3JvbGwgbWV0aG9kcy5cbiAgICogQ2FuIGJlIHVwZGF0ZWQgZHluYW1pY2FsbHkgdG8gY2hhbmdlIHNjcm9sbCBiZWhhdmlvci5cbiAgICovXG4gIHJlYWRvbmx5IHNjcm9sbFVuaXQgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG5cbiAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29udGFpbmVyIGNhbiBzY3JvbGwgZnVydGhlciB0byB0aGUgcmlnaHQgKi9cbiAgY2FuU2Nyb2xsRW5kSG9yaXpvbnRhbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29udGFpbmVyIGNhbiBzY3JvbGwgZnVydGhlciB0byB0aGUgbGVmdCAqL1xuICBjYW5TY3JvbGxTdGFydEhvcml6b250YWwgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbnRhaW5lciBjYW4gc2Nyb2xsIGZ1cnRoZXIgZG93biAqL1xuICBjYW5TY3JvbGxFbmRWZXJ0aWNhbCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29udGFpbmVyIGNhbiBzY3JvbGwgZnVydGhlciB1cCAqL1xuICBjYW5TY3JvbGxTdGFydFZlcnRpY2FsID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiogQ3VycmVudCBob3Jpem9udGFsIHNjcm9sbCBwb3NpdGlvbiAqL1xuICBzY3JvbGxMZWZ0UG9zaXRpb24gPSBzaWduYWw8bnVtYmVyPigwKTtcblxuICAvKiogQ3VycmVudCB2ZXJ0aWNhbCBzY3JvbGwgcG9zaXRpb24gKi9cbiAgc2Nyb2xsVG9wUG9zaXRpb24gPSBzaWduYWw8bnVtYmVyPigwKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBVcGRhdGUgb3ZlcmZsb3cgZGV0ZWN0aW9uIHdoZW4gc2Nyb2xsVW5pdCBjaGFuZ2VzXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuc2Nyb2xsVW5pdCgpO1xuICAgICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICAgIHRoaXMuYWRkU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICB0aGlzLmFkZFJlc2l6ZUxpc3RlbmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0aGUgY29udGFpbmVyIGhvcml6b250YWxseSBieSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiB1bml0cy5cbiAgICogQHBhcmFtIHVuaXRzIE51bWJlciBvZiBzY3JvbGwgdW5pdHMgKGNhbiBiZSBuZWdhdGl2ZSBmb3IgYmFja3dhcmQgc2Nyb2xsKVxuICAgKi9cbiAgc2Nyb2xsSG9yaXpvbnRhbCh1bml0czogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBzY3JvbGxBbW91bnQgPSB1bml0cyAqIHRoaXMuc2Nyb2xsVW5pdCgpO1xuICAgIGVsZW1lbnQuc2Nyb2xsTGVmdCArPSBzY3JvbGxBbW91bnQ7XG4gICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdGhlIGNvbnRhaW5lciB2ZXJ0aWNhbGx5IGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIHVuaXRzLlxuICAgKiBAcGFyYW0gdW5pdHMgTnVtYmVyIG9mIHNjcm9sbCB1bml0cyAoY2FuIGJlIG5lZ2F0aXZlIGZvciB1cHdhcmQgc2Nyb2xsKVxuICAgKi9cbiAgc2Nyb2xsVmVydGljYWwodW5pdHM6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsQW1vdW50ID0gdW5pdHMgKiB0aGlzLnNjcm9sbFVuaXQoKTtcbiAgICBlbGVtZW50LnNjcm9sbFRvcCArPSBzY3JvbGxBbW91bnQ7XG4gICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgYWxsIG92ZXJmbG93IGRldGVjdGlvbiBzaWduYWxzIGJhc2VkIG9uIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZU92ZXJmbG93KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyBIb3Jpem9udGFsIG92ZXJmbG93IGRldGVjdGlvblxuICAgIGNvbnN0IHNjcm9sbExlZnQgPSBlbGVtZW50LnNjcm9sbExlZnQ7XG4gICAgY29uc3Qgc2Nyb2xsV2lkdGggPSBlbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgIGNvbnN0IGNsaWVudFdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgIHRoaXMuc2Nyb2xsTGVmdFBvc2l0aW9uLnNldChzY3JvbGxMZWZ0KTtcbiAgICB0aGlzLmNhblNjcm9sbFN0YXJ0SG9yaXpvbnRhbC5zZXQoc2Nyb2xsTGVmdCA+IDApO1xuICAgIHRoaXMuY2FuU2Nyb2xsRW5kSG9yaXpvbnRhbC5zZXQoc2Nyb2xsTGVmdCArIGNsaWVudFdpZHRoIDwgc2Nyb2xsV2lkdGgpO1xuXG4gICAgLy8gVmVydGljYWwgb3ZlcmZsb3cgZGV0ZWN0aW9uXG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gZWxlbWVudC5zY3JvbGxUb3A7XG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gZWxlbWVudC5zY3JvbGxIZWlnaHQ7XG4gICAgY29uc3QgY2xpZW50SGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQ7XG5cbiAgICB0aGlzLnNjcm9sbFRvcFBvc2l0aW9uLnNldChzY3JvbGxUb3ApO1xuICAgIHRoaXMuY2FuU2Nyb2xsU3RhcnRWZXJ0aWNhbC5zZXQoc2Nyb2xsVG9wID4gMCk7XG4gICAgdGhpcy5jYW5TY3JvbGxFbmRWZXJ0aWNhbC5zZXQoc2Nyb2xsVG9wICsgY2xpZW50SGVpZ2h0IDwgc2Nyb2xsSGVpZ2h0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHNjcm9sbCBldmVudCBsaXN0ZW5lciB0byB0cmFjayBzY3JvbGwgcG9zaXRpb24gY2hhbmdlc1xuICAgKi9cbiAgcHJpdmF0ZSBhZGRTY3JvbGxMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVPdmVyZmxvdygpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgd2luZG93IHJlc2l6ZSBsaXN0ZW5lciB0byByZWNhbGN1bGF0ZSBvdmVyZmxvdyBvbiByZXNpemVcbiAgICovXG4gIHByaXZhdGUgYWRkUmVzaXplTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlT3ZlcmZsb3coKTtcbiAgICB9KTtcbiAgfVxufVxuIl19","export * from './hover.directive';\nexport * from './scrollable.directive';\nexport const DIRECTIVES = [];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hvdmVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Njcm9sbGFibGUuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IERJUkVDVElWRVMgPSBbXTtcbiJdfQ==","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ConfigsFacade } from './+state/configs.facade';\nimport { COMPONENTS } from './components';\nimport { DIRECTIVES } from './directives';\nimport { SharedConfig } from './shared.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./components/app/app.component\";\nfunction initializeApp(configsFacade) {\n return () => {\n setTimeout(() => {\n configsFacade.init().then();\n });\n };\n}\nexport class SharedModule {\n static forFeature(config) {\n return {\n ngModule: SharedModule,\n providers: [\n {\n provide: SharedConfig,\n useValue: config,\n },\n ],\n };\n }\n static forRoot(config) {\n return {\n ngModule: SharedModule,\n providers: [\n {\n provide: SharedConfig,\n useValue: config,\n },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n multi: true,\n deps: [ConfigsFacade],\n },\n ],\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedModule, imports: [RouterModule, i1.AppComponent], exports: [i1.AppComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedModule, imports: [RouterModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: SharedModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [...DIRECTIVES],\n imports: [RouterModule, COMPONENTS],\n exports: [...DIRECTIVES, ...COMPONENTS], // Export our own components instead of SmartSharedModule\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvc2hhcmVkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFFL0MsU0FBUyxhQUFhLENBQUMsYUFBNEI7SUFDakQsT0FBTyxHQUFHLEVBQUU7UUFDVixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQU9ELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBb0I7UUFDcEMsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBb0I7UUFDakMsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsUUFBUSxFQUFFLE1BQU07aUJBQ2pCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixVQUFVLEVBQUUsYUFBYTtvQkFDekIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN0QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OEdBN0JVLFlBQVk7K0dBQVosWUFBWSxZQUhiLFlBQVk7K0dBR1gsWUFBWSxZQUhiLFlBQVk7OzJGQUdYLFlBQVk7a0JBTHhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsVUFBVSxDQUFDLEVBQUUseURBQXlEO2lCQUNuRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IENvbmZpZ3NGYWNhZGUgfSBmcm9tICcuLytzdGF0ZS9jb25maWdzLmZhY2FkZSc7XG5pbXBvcnQgeyBDT01QT05FTlRTIH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IERJUkVDVElWRVMgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU2hhcmVkQ29uZmlnIH0gZnJvbSAnLi9zaGFyZWQuY29uZmlnJztcblxuZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcChjb25maWdzRmFjYWRlOiBDb25maWdzRmFjYWRlKTogKCkgPT4gdm9pZCB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25maWdzRmFjYWRlLmluaXQoKS50aGVuKCk7XG4gICAgfSk7XG4gIH07XG59XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkRJUkVDVElWRVNdLFxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLCBDT01QT05FTlRTXSxcbiAgZXhwb3J0czogWy4uLkRJUkVDVElWRVMsIC4uLkNPTVBPTkVOVFNdLCAvLyBFeHBvcnQgb3VyIG93biBjb21wb25lbnRzIGluc3RlYWQgb2YgU21hcnRTaGFyZWRNb2R1bGVcbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkTW9kdWxlIHtcbiAgc3RhdGljIGZvckZlYXR1cmUoY29uZmlnOiBTaGFyZWRDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNoYXJlZE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogU2hhcmVkTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTaGFyZWRDb25maWcsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogU2hhcmVkQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxTaGFyZWRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFNoYXJlZE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogU2hhcmVkQ29uZmlnLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgdXNlRmFjdG9yeTogaW5pdGlhbGl6ZUFwcCxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICBkZXBzOiBbQ29uZmlnc0ZhY2FkZV0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","export var ListMode;\n(function (ListMode) {\n ListMode[\"mobile\"] = \"mobile\";\n ListMode[\"desktop\"] = \"desktop\";\n ListMode[\"masonryGrid\"] = \"masonryGrid\";\n ListMode[\"timeline\"] = \"timeline\";\n ListMode[\"map\"] = \"map\";\n})(ListMode || (ListMode = {}));\nexport var GameType;\n(function (GameType) {\n GameType[GameType[\"puzzle\"] = 1] = \"puzzle\";\n GameType[GameType[\"memo\"] = 2] = \"memo\";\n GameType[GameType[\"quiz\"] = 3] = \"quiz\";\n})(GameType || (GameType = {}));\nexport class ImageBox {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLDZCQUFpQixDQUFBO0lBQ2pCLCtCQUFtQixDQUFBO0lBQ25CLHVDQUEyQixDQUFBO0lBQzNCLGlDQUFxQixDQUFBO0lBQ3JCLHVCQUFXLENBQUE7QUFDYixDQUFDLEVBTlcsUUFBUSxLQUFSLFFBQVEsUUFNbkI7QUF3Q0QsTUFBTSxDQUFOLElBQVksUUFJWDtBQUpELFdBQVksUUFBUTtJQUNsQiwyQ0FBVSxDQUFBO0lBQ1YsdUNBQVEsQ0FBQTtJQUNSLHVDQUFRLENBQUE7QUFDVixDQUFDLEVBSlcsUUFBUSxLQUFSLFFBQVEsUUFJbkI7QUF1RUQsTUFBTSxPQUFPLFFBQVE7Q0FJcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNc0ZpbGUgfSBmcm9tICdAc21hcnRzb2Z0MDAxLW1vYmlsZW1zL21vZGVscyc7XG5cbmV4cG9ydCBlbnVtIExpc3RNb2RlIHtcbiAgbW9iaWxlID0gJ21vYmlsZScsXG4gIGRlc2t0b3AgPSAnZGVza3RvcCcsXG4gIG1hc29ucnlHcmlkID0gJ21hc29ucnlHcmlkJyxcbiAgdGltZWxpbmUgPSAndGltZWxpbmUnLFxuICBtYXAgPSAnbWFwJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUXVpY2tNZW51IHtcbiAgZWxlbWVudElkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2FtZSB7XG4gIHNjb3JlczogYW55O1xuICBnYW1lVHlwZTogR2FtZVR5cGU7XG4gIGRpZmZpY3VsdHk6IG51bWJlcjtcbiAgcHV6emxlSW1hZ2U6IE1zRmlsZTtcbiAgaW1hZ2U6IE1zRmlsZTtcbiAgaW1hZ2VzOiBJSW1hZ2VzW107XG4gIGNvdmVySW1hZ2U6IE1zRmlsZTtcbiAgcXVlc3Rpb25zPzogSUdhbWVRdWVzdGlvbltdO1xuICBvYmplY3RzOiBhbnlbXTtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBpZDogbnVtYmVyO1xuICBwdWJsaXNoZWQ6IGJvb2xlYW47XG4gIHVzZXJJZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHYW1lUXVlc3Rpb24ge1xuICBxdWVzdGlvbjogc3RyaW5nO1xuICBhbnN3ZXJzOiBJR2FtZUFuc3dlcltdO1xuICBmaWxlPzogTXNGaWxlO1xuICBoaW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdhbWVBbnN3ZXIge1xuICB1c2VyQ2hvaWNlPzogYm9vbGVhbjtcbiAgY2xhc3M/OiBzdHJpbmc7XG4gIGFuc3dlcjogc3RyaW5nO1xuICBjb3JyZWN0OiBib29sZWFuO1xuICBpZD86IG51bWJlcjtcbiAgcG9zaXRpb24/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBlbnVtIEdhbWVUeXBlIHtcbiAgcHV6emxlID0gMSxcbiAgbWVtbyA9IDIsXG4gIHF1aXogPSAzLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYmplY3RHYWxsZXJ5IHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBpdGVtczogSU9iamVjdEdhbGxlcnlJdGVtW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9iamVjdEdhbGxlcnlJdGVtIHtcbiAgaWQ6IG51bWJlcjtcbiAgcG9zaXRpb246IG51bWJlcjtcbiAgb2JqZWN0OiBJT2JqZWN0R2FsbGVyeVNpbmdsZU9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2JqZWN0R2FsbGVyeVNpbmdsZU9iamVjdCB7XG4gIGlkOiBudW1iZXI7XG4gIGludmVudG9yeU51bWJlcjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIG11bHRpbWVkaXVtOiBJU2luZ2xlT2JqZWN0TXVsdGltZWRpYTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2luZ2xlT2JqZWN0TXVsdGltZWRpYSB7XG4gIGFsdFRleHRFbjogc3RyaW5nO1xuICBleHRlbnNpb246IHN0cmluZztcbiAgYWx0VGV4dDogc3RyaW5nO1xuICBmaWxlUGF0aDogc3RyaW5nO1xuICBpZDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHYW1lTWVtb0NvbmZpZyB7XG4gIGhlYWRlclN0eWxlOiBzdHJpbmc7XG4gIGJveFN0eWxlOiBzdHJpbmc7XG4gIGhpZGRlbkxhYmVsPzogYm9vbGVhbjtcbiAgYnV0dG9uU3R5bGU/OiBzdHJpbmc7XG4gIGdhbWVOYW1lU3R5bGU/OiBzdHJpbmc7XG4gIHRleHRTdHlsZTogc3RyaW5nO1xuICBtZWRpYUJhc2VVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdhbWVQdXp6bGVDb25maWcge1xuICBoZWFkZXJTdHlsZTogc3RyaW5nO1xuICBib3hTdHlsZTogc3RyaW5nO1xuICBoaWRkZW5MYWJlbDogYm9vbGVhbjtcbiAgc3RhcnRCdXR0b25TdHlsZTogc3RyaW5nO1xuICBnYW1lTmFtZVN0eWxlOiBzdHJpbmc7XG4gIGltYWdlU3R5bGU6IHN0cmluZztcbiAgbm9JbWFnZVBsYWNlaG9sZGVyU3JjOiBzdHJpbmc7XG4gIG1lZGlhQmFzZVVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR2FtZVF1aXpDb25maWcge1xuICBoZWFkZXJTdHlsZTogc3RyaW5nO1xuICBib3hTdHlsZTogc3RyaW5nO1xuICBoaWRkZW5MYWJlbDogYm9vbGVhbjtcbiAgYnV0dG9uU3R5bGU6IHN0cmluZztcbiAgZ2FtZU5hbWVTdHlsZTogc3RyaW5nO1xuICBhbnN3ZXJTdHlsZTogc3RyaW5nO1xuICBxdWVzdGlvblN0eWxlOiBzdHJpbmc7XG4gIHRleHRTdHlsZTogc3RyaW5nO1xuICBwcm9ncmVzc1N0eWxlOiBzdHJpbmc7XG4gIGhpbnRTdHlsZTogc3RyaW5nO1xuICBub0ltYWdlUGxhY2Vob2xkZXJTcmM6IHN0cmluZztcbiAgbWVkaWFCYXNlVXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUltYWdlcyB7XG4gIGZpbGU6IE1zRmlsZTtcbiAgaWQ6IG51bWJlcjtcbiAgcG9zaXRpb246IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIEltYWdlQm94IHtcbiAgeFBvcyE6IHN0cmluZztcbiAgeVBvcyE6IHN0cmluZztcbiAgaW5kZXghOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUF1ZGlvIHtcbiAgaW1hZ2U/OiBNc0ZpbGU7XG4gIGF1ZGlvPzogTXNGaWxlO1xuICB0aXRsZTogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVZpZGVvIHtcbiAgaW1hZ2U/OiBNc0ZpbGU7XG4gIHZpZGVvPzogTXNGaWxlO1xuICB0aXRsZTogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVycm9yTWVzc2FnZXMge1xuICBsb2dpbkVycm9yTWVzc2FnZT86IHN0cmluZyB8IG51bGw7XG4gIGZvcmdvdFBhc3N3b3JkRXJyb3JNZXNzYWdlPzogRm9yZ290UGFzc3dvcmRFcnJvck1lc3NhZ2UgfCBudWxsO1xuICByZWdpc3RlckVycm9yTWVzc2FnZT86IFJlZ2lzdGVyRXJyb3JNZXNzYWdlIHwgbnVsbDtcbiAgY2hhbmdlUGFzc3dvcmRFcnJvck1lc3NhZ2U/OiBDaGFuZ2VQYXNzd29yZEVycm9yTWVzc2FnZSB8IG51bGw7XG4gIG1vZGlmeVVzZXJFcnJvck1lc3NhZ2U/OiBNb2RpZnlVc2VyRXJyb3JNZXNzYWdlIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VQYXNzd29yZEVycm9yTWVzc2FnZSB7XG4gIGZpcnN0OiBzdHJpbmc7XG4gIHNlY29uZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcmdvdFBhc3N3b3JkRXJyb3JNZXNzYWdlIHtcbiAgdXNlck5vdEZvdW5kOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vZGlmeVVzZXJFcnJvck1lc3NhZ2Uge1xuICBhdXRoZW50aWNhdGlvbkVycm9yOiB7XG4gICAgZW1haWw/OiBzdHJpbmc7XG4gICAgbG9naW4/OiBzdHJpbmc7XG4gICAgYXZhdGFyPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyRXJyb3JNZXNzYWdlIHtcbiAgZW1haWw6IHN0cmluZ1tdIHwgbnVsbDtcbiAgbG9naW46IHN0cmluZ1tdIHwgbnVsbDtcbiAgcGFzc3dvcmQ6IHtcbiAgICBmaXJzdDogc3RyaW5nW10gfCBudWxsO1xuICAgIHNlY29uZDogc3RyaW5nW10gfCBudWxsO1xuICB9O1xuICBzdGF0dXM6IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUmVnaXN0ZXIge1xuICB1c2VybmFtZTogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZD86IHN0cmluZztcbiAgcGFzc3dvcmQyPzogc3RyaW5nO1xuICB0ZXJtc0FjY2VwdGFuY2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXIge1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZD86IHN0cmluZztcbiAgdXNlcklEOiBzdHJpbmc7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGF2YXRhcj86IHN0cmluZztcbiAgbmV3c2xldHRlckFjY2VwdGFuY2U/OiBib29sZWFuO1xuICByZWZyZXNoVG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJJbmZvIHtcbiAgZW1haWw6IHN0cmluZztcbiAgdXNlcklEOiBzdHJpbmc7XG4gIGF2YXRhcj86IHN0cmluZztcbiAgbmV3c2xldHRlckFjY2VwdGFuY2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ2luUmVzcG9uc2Uge1xuICAvKipcbiAgICogSldUVG9rZW5cbiAgICovXG4gIHRva2VuOiBzdHJpbmc7XG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTG9naW5SZXNwb25zZSB7XG4gIC8qKlxuICAgKiBKV1RUb2tlblxuICAgKi9cbiAgdG9rZW46IHN0cmluZztcbiAgcmVmcmVzaF90b2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyTW9kaWZ5IHtcbiAgZW1haWw/OiBzdHJpbmc7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXJPbmUge1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzYzogYW55O1xuICB2YWx1ZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXJJdGVtIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2VhcmNoVGV4dD86IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZmlsdGVyOiBJRmlsdGVyT25lO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUXVlcnkge1xuICBpZD86IG51bWJlcjtcbiAgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICBzb3J0Qnk/OiBzdHJpbmc7XG4gIGZpbHRlckxpc3Q/OiB7XG4gICAgcXVlcnk/OiBJRmlsdGVySXRlbVtdO1xuICAgIHNlYXJjaFRleHQ/OiBzdHJpbmc7XG4gICAgc29ydEJ5Pzogc3RyaW5nO1xuICB9O1xuICBqb2JzPzogYW55W107XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBxdWVyeTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVc2VyUXVlcnlMaXN0IHtcbiAgaXRlbXM6IElVc2VyUXVlcnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hRdWVyeSB7XG4gIGRlbGV0ZUluUHJvZ3Jlc3M6IGJvb2xlYW47XG4gIC8vIGZpbHRlcnNMaXN0OiBGaWx0ZXJJdGVtW107XG4gIC8vIHByb2ZpbGVRdWVyeTogUHJvZmlsZVF1ZXJ5O1xuICBzZWFyY2hEYXRlOiBzdHJpbmc7XG4gIHNlYXJjaFRpdGxlOiBzdHJpbmc7XG59XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthStorageService } from '../services/auth-storage/auth-storage.service';\nexport const authenticationGuard = () => {\n const router = inject(Router);\n const authStorageService = inject(AuthStorageService);\n if (authStorageService.hasUser()) {\n return true;\n }\n router.navigate(['/logowanie']);\n return false;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2d1YXJkcy9hdXRoZW50aWNhdGlvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBaUIsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFbkYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWtCLEdBQUcsRUFBRTtJQUNyRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUV0RCxJQUFJLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDaEMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEF1dGhTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGgtc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBhdXRoZW50aWNhdGlvbkd1YXJkOiBDYW5BY3RpdmF0ZUZuID0gKCkgPT4ge1xuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgY29uc3QgYXV0aFN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KEF1dGhTdG9yYWdlU2VydmljZSk7XG5cbiAgaWYgKGF1dGhTdG9yYWdlU2VydmljZS5oYXNVc2VyKCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJvdXRlci5uYXZpZ2F0ZShbJy9sb2dvd2FuaWUnXSk7XG4gIHJldHVybiBmYWxzZTtcbn07XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthStorageService } from '../services/auth-storage/auth-storage.service';\nexport const unauthorizedGuard = () => {\n const router = inject(Router);\n const authStorageService = inject(AuthStorageService);\n if (!authStorageService.hasUser()) {\n return true;\n }\n router.navigate(['/strona-glowna']);\n return false;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRob3JpemVkLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9ndWFyZHMvdW5hdXRob3JpemVkLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBa0IsR0FBRyxFQUFFO0lBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXRELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDcEMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEF1dGhTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGgtc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCB1bmF1dGhvcml6ZWRHdWFyZDogQ2FuQWN0aXZhdGVGbiA9ICgpID0+IHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvbnN0IGF1dGhTdG9yYWdlU2VydmljZSA9IGluamVjdChBdXRoU3RvcmFnZVNlcnZpY2UpO1xuXG4gIGlmICghYXV0aFN0b3JhZ2VTZXJ2aWNlLmhhc1VzZXIoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcm91dGVyLm5hdmlnYXRlKFsnL3N0cm9uYS1nbG93bmEnXSk7XG4gIHJldHVybiBmYWxzZTtcbn07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2Z0MDAxLW1vYmlsZW1zLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zaGFyZWQvYW5ndWxhci9zcmMvc21hcnRzb2Z0MDAxLW1vYmlsZW1zLWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["NgxTranslateService","SmartStyleService","i1.AppComponent"],"mappings":";;;;;;;;;;;;;;;;;;AAAO,SAAS,sBAAsB,CAAC,OAAO,EAAE;AAChD,IAAI,MAAM,GAAG,GAAG;AAChB,QAAQ,EAAE,EAAE,iBAAiB;AAC7B,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACtC,QAAQ,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;AACnD,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC9B,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,EAAE;AAC7C,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;AACjC,IAAI;AACJ;AACY,MAAC,iBAAiB,GAAG;AACjC,IAAI,KAAK,EAAE;AACX;AACA,KAAK;AACL;AACA;;ACjBY,MAAC,WAAW,GAAG;AAC3B,IAAI,UAAU,EAAE,KAAK;AACrB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,aAAa,EAAE,EAAE;AACrB,IAAI,YAAY,EAAE,gCAAgC;AAClD;;ACHO,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM;AACjC,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;AACjD,YAAY,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACxE,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;AACjD,YAAY,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;AAC/D,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,IAAI;AACpB,oBAAoB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C,gBAAgB;AAChB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC;AAClF,oBAAoB,OAAO,IAAI;AAC/B,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;AACjD,YAAY,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC;AACrD,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI;AACtC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACxCN,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE;AAC/B,QAAQ,IAAI,CAAC,YAAY,GAAG,gCAAgC;AAC5D,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AAClI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACNN,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AAC1C,IAAI;AACJ,IAAI,GAAG,GAAG;AACV,QAAQ,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC;AAClD,QAAQ,OAAO,aAAa,CAAC,aAAa,CAAC;AAC3C,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,2BAA2B,EAAE;AACnF,gBAAgB,SAAS,EAAE,IAAI;AAC/B,gBAAgB,OAAO,EAAE,IAAI;AAC7B,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC;AACrE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK;AAClC,YAAY,OAAO;AACnB,gBAAgB,EAAE,EAAE,EAAE;AACtB,gBAAgB,cAAc,EAAE;AAChC,oBAAoB,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC;AAC3D,oBAAoB,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK;AACnD,iBAAiB;AACjB,gBAAgB,KAAK,EAAE,EAAE,CAAC,IAAI;AAC9B,aAAa;AACb,QAAQ,CAAC,CAAC,CAAC,CAAC;AACZ,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,EAAE;AAChB,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC;AACnC,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,GAAG,EAAE;AAClD,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACjL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACxJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACzCb,MAAM,cAAc,GAAG;AACvB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,MAAM,EAAE,QAAQ;AACpB,IAAI,KAAK,EAAE,OAAO;AAClB,IAAI,gBAAgB,EAAE,oBAAoB;AAC1C,IAAI,UAAU,EAAE,SAAS;AACzB,IAAI,UAAU,EAAE,SAAS;AACzB,CAAC;AACM,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C,QAAQ,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3D,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF;AACA,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE;AAChC,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACnD,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AACjC,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;AAC/C,IAAI;AACJ,IAAI,aAAa,CAAC,MAAM,EAAE;AAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS;AAC3B,YAAY;AACZ,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe;AACnD,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;AAC1C,YAAY,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;AAC7C,YAAY,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,CAAC,OAAO,EAAE;AAC3B,QAAQ,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,KAAK,CAAC;AACrE,QAAQ,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC;AACvE,QAAQ,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,KAAK,CAAC;AACrE,QAAQ,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,wBAAwB,EAAE,cAAc,CAAC,gBAAgB,CAAC;AAC5F,QAAQ,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,cAAc,CAAC,UAAU,CAAC;AACjF,QAAQ,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,cAAc,CAAC,UAAU,CAAC;AACjF,IAAI;AACJ,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAC9B,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;AAClD,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC;AACnD,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;AAClD,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,wBAAwB,CAAC;AAC9D,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC;AACzD,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC;AACzD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAClL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACzJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC7DhC,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AAC1C,IAAI;AACJ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE;AACnC,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACpC,YAAY,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AAC3G,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE;AAC5B,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClD,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,UAAU,EAAE;AAC9B,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;AAC3C,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC;AACpB,aAAa,GAAG,CAAC,GAAG;AACpB,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE;AAC9B,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACpC,YAAY,CAAC,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;AAC1E,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;AACjE;AACA,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACxC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC;AACpB,aAAa,GAAG,CAAC,GAAG;AACpB,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;AACrC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACpL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACvCN,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AAC1C,IAAI;AACJ,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,GAAG,OAAO,EAAE,kBAAkB,GAAG,qBAAqB,EAAE;AAChF,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;AACvD,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,OAAO,kBAAkB;AACrC,QAAQ;AACR,QAAQ,IAAI,IAAI;AAChB,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAC5C,YAAY,IAAI,GAAG,UAAU;AAC7B,QAAQ;AACR,aAAa;AACb,YAAY,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;AACrD,gBAAgB,OAAO,kBAAkB;AACzC,YAAY;AACZ;AACA,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9D,gBAAgB,QAAQ,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;AACzF,YAAY;AACZ,YAAY,IAAI,GAAG,UAAU,CAAC,QAAQ;AACtC,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC7B,YAAY,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACpC,QAAQ;AACR,QAAQ,OAAO,aAAa,GAAG,IAAI;AACnC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY,IAAI,CAAC,SAAS;AAC1B,YAAY,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;AACxD,YAAY,OAAO,IAAI,CAAC,QAAQ;AAChC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS;AACnD,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,QAAQ,IAAI;AACpB,YAAY,KAAK,KAAK;AACtB,gBAAgB,OAAO,8BAA8B;AACrD,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,iCAAiC;AACxD,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,oBAAoB;AAC3C;AACA,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACjL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACxJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACxDN,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3F,IAAI;AACJ,IAAI,mBAAmB,CAAC,OAAO,EAAE;AACjC,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;AACpC,IAAI;AACJ,IAAI,mBAAmB,CAAC,OAAO,EAAE;AACjC,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;AACpC,IAAI;AACJ,IAAI,QAAQ,CAAC,GAAG,EAAE;AAClB,QAAQ,IAAI,CAAC,GAAG;AAChB,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC5C;AACA,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,YAAY,QAAQ,GAAG;AACvB,iBAAiB,KAAK,CAAC,EAAE;AACzB,iBAAiB,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI;AAC1C,iBAAiB,IAAI,CAAC,EAAE,CAAC;AACzB,QAAQ;AACR;AACA,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;AAC9C,QAAQ,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;AAC1C,YAAY,OAAO,IAAI;AACvB,QAAQ,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,IAAI;AACJ,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACtB,QAAQ,QAAQ,GAAG;AACnB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACpB,iBAAiB,GAAG,CAAC,CAAC,CAAC,KAAK;AAC5B,gBAAgB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC1C,gBAAgB,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AACzD,YAAY,CAAC;AACb,iBAAiB,IAAI,CAAC,EAAE,CAAC;AACzB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAChL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACvJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AC7Cb,MAAM,sBAAsB,GAAG,oBAAoB;AAC5C,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAACA,gBAAmB,CAAC;AAC3D,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;AAC9B,YAAY,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE;AAC/C,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC/C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE;AAChE,QAAQ,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChI,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;AACjD,YAAY,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC;AACvE,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACrD,oBAAoB,OAAO,MAAM,CAAC,QAAQ;AAC1C,gBAAgB;AAChB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,OAAO,CAAC,IAAI,CAAC,oCAAoC,EAAE,KAAK,CAAC;AAC7E,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,IAAI;AAC7D,IAAI;AACJ,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;AACzD,IAAI;AACJ,IAAI,MAAM,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,cAAc,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;AAClE,QAAQ,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,CAAC;AACzD,QAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC;AACtD,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ;AAC1C,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC5C,YAAY,IAAI,GAAG,WAAW;AAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAChD,QAAQ;AACR,QAAQ,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE;AACzD,IAAI;AACJ,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;AACtC,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3C,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;AACjD,YAAY,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACxF,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACrDN,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AAChC,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5D,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AAC1C,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,IAAI;AACJ,IAAI,qBAAqB,CAAC,aAAa,EAAE;AACzC,QAAQ,IAAI,aAAa,EAAE;AAC3B,YAAY,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;AAClD,iBAAiB,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AACxG,iBAAiB,SAAS,CAAC,CAAC,YAAY,KAAK;AAC7C,gBAAgB,IAAI,YAAY,EAAE;AAClC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC/C,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,YAAY,OAAO,IAAI,CAAC,kBAAkB;AAC1C,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;AACrD,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC3C,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,eAAe,CAAC,KAAK,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE;AAClD,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChC,QAAQ;AACR,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;AAC5C,QAAQ;AACR,IAAI;AACJ,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAClC,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE;AAC9B,YAAY,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC;AACtF,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE;AAC9B,YAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC;AAC3C,QAAQ;AACR,QAAQ,IAAI,UAAU,CAAC,WAAW,EAAE;AACpC,YAAY,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC;AACvD,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC5C,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;AACvD,QAAQ,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE;AAChD,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI;AACZ,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC;AAC3E,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC5E,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACrF,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC/E,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAChF,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AACpC,oBAAoB,QAAQ,EAAE,cAAc;AAC5C,oBAAoB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC1D,iBAAiB,CAAC;AAClB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;AAC9D,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC;AAC/D,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,QAAQ;AACtF,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACxE,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACzE,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACxE,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACjE,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;AAC5B,YAAY,QAAQ,EAAE,UAAU;AAChC,YAAY,OAAO,EAAE,qCAAqC;AAC1D,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC7E,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACjF,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC3E,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5E,IAAI;AACJ,IAAI,SAAS,CAAC,GAAG,EAAE;AACnB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AAChC,IAAI;AACJ,IAAI,QAAQ,CAAC,SAAS,EAAE;AACxB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AACzD,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;AACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC1E,IAAI;AACJ,IAAI,cAAc,CAAC,WAAW,EAAE;AAChC,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;AAC1D,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC/E,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACxE,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,kBAAkB,EAAE,WAAW,EAAE;AAC9C,IAAI;AACJ,IAAI,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO;AACnF,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE;AACjD,YAAY,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC1D,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAClD,IAAI;AACJ,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,OAAO,EAAE;AACrB,QAAQ,OAAO;AACf,aAAa,OAAO,CAAC,QAAQ,EAAE,EAAE;AACjC,aAAa,OAAO,CAAC,SAAS,EAAE,GAAG;AACnC,aAAa,OAAO,CAAC,WAAW,EAAE,GAAG;AACrC,aAAa,OAAO,CAAC,UAAU,EAAE,GAAG;AACpC,aAAa,OAAO,CAAC,UAAU,EAAE,GAAG;AACpC,aAAa,OAAO,CAAC,UAAU,EAAE,GAAG;AACpC,aAAa,OAAO,CAAC,UAAU,EAAE,GAAG;AACpC,aAAa,OAAO,CAAC,UAAU,EAAE,GAAG;AACpC,aAAa,OAAO,CAAC,WAAW,EAAE,GAAG;AACrC,aAAa,OAAO,CAAC,UAAU,EAAE,GAAG;AACpC,aAAa,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;AACpC,IAAI;AACJ,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU;AAClD,QAAQ,OAAO,KAAK,EAAE,UAAU,EAAE;AAClC,YAAY,KAAK,GAAG,KAAK,CAAC,UAAU;AACpC,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,OAAO,EAAE;AACrB,QAAQ,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;AACvC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACvC,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AAC5C,QAAQ;AACR,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACpC,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACzC,QAAQ;AACR,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9K,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACrJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACzJvC;AACA;AACA;AACA;AACO,MAAM,uBAAuB,CAAC;AACrC,IAAI,WAAW,GAAG;AAClB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvG;AACA;AACA;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,EAAE;AACrC,IAAI;AACJ;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACjC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,MAAM,EAAE;AAC5B,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACjC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACzL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,yBAAyB,EAAE,eAAe,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACte;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACxP;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,gCAAgC;AAC9D,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,CAAC;AAC5C,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,yBAAyB;AAChD,aAAa,CAAC,EAAE,EAAE,CAAC;;ACzEnB;AACA;AACA;AACA;AACO,MAAM,QAAQ,CAAC;AACtB,IAAI,WAAW,CAAC,aAAa,EAAE;AAC/B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa;AAC1C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAE;AACzC;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAC5D,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AAChC,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AACpC,IAAI;AACJ;;ACnBA;AACA;AACA;AACA;AACO,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC;AAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACnD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE;AAC9B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,MAAM,YAAY,GAAG,eAAe,CAAC,uBAAuB,EAAE;AACtE,YAAY,mBAAmB,EAAE,IAAI,CAAC,QAAQ;AAC9C,SAAS,CAAC;AACV,QAAQ,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC;AAC1D,QAAQ,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1E,QAAQ,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM;AAC5D,YAAY,QAAQ,CAAC,KAAK,EAAE;AAC5B,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;AACrD,QAAQ,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AAC/C,QAAQ,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE;AACtD,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;AAC5C,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,YAAY,EAAE;AAC7B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;AAC7D,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACxB,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9C,QAAQ;AACR,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;AACrD,QAAQ,YAAY,CAAC,OAAO,EAAE;AAC9B,IAAI;AACJ;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;AAC7C,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACvE,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACtJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACzDN,MAAM,aAAa,SAAS,iBAAiB,CAAC;AACrD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;AACtC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,EAAE;AACpC,IAAI;AACJ,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,kBAAkB;AACtC,IAAI;AACJ,IAAI,SAAS,CAAC,GAAG,EAAE;AACnB,QAAQ,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC;AAC5B,IAAI;AACJ,IAAI,UAAU,CAAC,GAAG,EAAE;AACpB,QAAQ,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;AAC7B,IAAI;AACJ,IAAI,oBAAoB,CAAC,GAAG,EAAE;AAC9B,QAAQ,IAAI,CAAC,kBAAkB,GAAG,GAAG;AACrC,IAAI;AACJ,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC;AACvB,YAAY,UAAU,EAAE,GAAG;AAC3B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,kBAAkB,GAAG,GAAG;AACrC,QAAQ,OAAO,aAAa,CAAC;AAC7B,YAAY,IAAI,CAAC;AACjB,iBAAiB,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,kCAAkC,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1H,iBAAiB,IAAI,CAAC,UAAU,CAAC,MAAM;AACvC,gBAAgB,OAAO,EAAE,CAAC,IAAI,CAAC;AAC/B,YAAY,CAAC,CAAC,CAAC;AACf,YAAY,IAAI,CAAC;AACjB,iBAAiB,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,uCAAuC,EAAE,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACzI,iBAAiB,IAAI,CAAC,UAAU,CAAC,MAAM;AACvC,gBAAgB,OAAO,EAAE,CAAC,IAAI,CAAC;AAC/B,YAAY,CAAC,CAAC,CAAC;AACf,YAAY,IAAI,CAAC;AACjB,iBAAiB,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,mCAAmC,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC5H,iBAAiB,IAAI,CAAC,UAAU,CAAC,MAAM;AACvC,gBAAgB,OAAO,EAAE,CAAC,IAAI,CAAC;AAC/B,YAAY,CAAC,CAAC,CAAC;AACf,YAAY,IAAI,CAAC;AACjB,iBAAiB,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,8CAA8C,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACvI,iBAAiB,IAAI,CAAC,UAAU,CAAC,MAAM;AACvC,gBAAgB,OAAO,EAAE,CAAC,IAAI,CAAC;AAC/B,YAAY,CAAC,CAAC,CAAC;AACf,YAAY,IAAI,CAAC;AACjB,iBAAiB,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,8CAA8C,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AACvI,iBAAiB,IAAI,CAAC,UAAU,CAAC,MAAM;AACvC,gBAAgB,OAAO,EAAE,CAAC,IAAI,CAAC;AAC/B,YAAY,CAAC,CAAC,CAAC;AACf,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,uBAAuB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK;AACnH,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,IAAI,CAAC;AACpF,gBAAgB,iBAAiB,EAAE,uBAAuB,EAAE,IAAI,EAAE;AAClE,sBAAsB,eAAe,IAAI,CAAC;AAC1C,gBAAgB,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,IAAI,CAAC;AACtF,gBAAgB,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,IAAI,CAAC;AACtF,gBAAgB,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,IAAI,CAAC;AACtF,aAAa;AACb,QAAQ,CAAC,CAAC,CAAC;AACX,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;AACzC,QAAQ,MAAM,MAAM,GAAG,EAAE;AACzB,QAAQ,IAAI,GAAG,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE;AAC/D,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,QAAQ;AACR,aAAa,IAAI,GAAG,EAAE;AACtB,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvD,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAC/D,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3D,QAAQ;AACR,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACjE,QAAQ;AACR,QAAQ,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AAC/B,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAClL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACvJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AC1FN,MAAM,UAAU,CAAC;AACxB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C,QAAQ,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3D,IAAI;AACJ,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC;AAC7D,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;AACvD,QAAQ,IAAI,YAAY,EAAE;AAC1B,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC7C,QAAQ;AACR,IAAI;AACJ,IAAI,cAAc,CAAC,QAAQ,EAAE;AAC7B,QAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC3D,IAAI;AACJ,IAAI,iBAAiB,CAAC,WAAW,EAAE;AACnC,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,YAAY,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC;AACnE,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;AACxD,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC9E,QAAQ;AACR,IAAI;AACJ,IAAI,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE;AACjD,QAAQ,MAAM,IAAI,GAAG,EAAE;AACvB,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,IAAI,CAAC;AACtB,gBAAgB,QAAQ,EAAE,UAAU;AACpC,gBAAgB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,KAAK;AACxD,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,IAAI,WAAW,EAAE;AACzB,YAAY,IAAI,CAAC,IAAI,CAAC;AACtB,gBAAgB,QAAQ,EAAE,gBAAgB;AAC1C,gBAAgB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,WAAW;AACpE,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC/D,QAAQ;AACR,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC3D,QAAQ;AACR,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACjC,IAAI;AACJ,IAAI,UAAU,CAAC,UAAU,EAAE;AAC3B,QAAQ,IAAI,CAAC,UAAU;AACvB,YAAY,OAAO,UAAU;AAC7B;AACA,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,IAAI;AAChB,gBAAgB,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE;AAC9C,gBAAgB,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC;AAC3E,gBAAgB,OAAO,GAAG,CAAC,eAAe,CAAC,WAAW;AACtD,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,OAAO,CAAC,IAAI,CAAC,8DAA8D,EAAE,KAAK,CAAC;AACnG,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI;AACZ,YAAY,IAAI,OAAO,GAAG;AAC1B,iBAAiB,OAAO,CAAC,sBAAsB,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACpG,iBAAiB,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9F,YAAY,MAAM,QAAQ,GAAG;AAC7B,gBAAgB,GAAG,EAAE,GAAG;AACxB,gBAAgB,EAAE,EAAE,GAAG;AACvB,gBAAgB,EAAE,EAAE,GAAG;AACvB,gBAAgB,IAAI,EAAE,GAAG;AACzB,gBAAgB,IAAI,EAAE,GAAG;AACzB,gBAAgB,IAAI,EAAE,QAAQ;AAC9B,aAAa;AACb,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI;AAC1H,kBAAkB,QAAQ,CAAC,IAAI;AAC/B,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,OAAO,OAAO;AAC1B,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,KAAK,CAAC;AACtE,YAAY,OAAO,UAAU;AAC7B,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC7K,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACpJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACjGN,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5D,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AAC1C,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;AACvD,QAAQ,IAAI,CAAC,aAAa,EAAE;AAC5B,YAAY,OAAO,EAAE;AACrB,QAAQ;AACR;AACA,QAAQ,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG;AACzC,cAAc,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC;AACjE,cAAc,aAAa;AAC3B,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAC/D,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB;AACA,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY;AACvC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAClL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACzJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACjCN,MAAM,YAAY,CAAC;AAC1B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAACC,cAAiB,CAAC;AAC1D,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC;AAC1C,IAAI;AACJ,IAAI,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE;AACtC,QAAQ,MAAM,SAAS,GAAG;AAC1B,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc;AACzC,YAAY,GAAG,eAAe;AAC9B,SAAS;AACT,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;AAC1D,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACtJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACpBb,MAAM,eAAe,GAAG,aAAa;AACrC,MAAM,cAAc,GAAG;AACvB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,aAAa,EAAE,OAAO;AAC1B,IAAI,WAAW,EAAE,OAAO;AACxB,CAAC;AACM,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC5D,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C,QAAQ,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3D,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClG,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC/C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3J,QAAQ,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjK;AACA,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;AACzC,YAAY,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACzC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,MAAM,IAAI,GAAG;AACjB;AACA;AACA,IAAI;AACJ,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,QAAQ,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,CAAC;AACjD,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,OAAO,CAAC,KAAK,EAAE;AACnB,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC;AAC7C,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,KAAK,CAAC;AACtD,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5E,QAAQ,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,KAAK,CAAC;AACpD,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACxC,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,IAAI;AACJ,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,QAAQ,OAAO;AACvB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,CAAC;AACxB,YAAY,KAAK,OAAO;AACxB,gBAAgB,OAAO,CAAC;AACxB,YAAY;AACZ,gBAAgB,OAAO,CAAC;AACxB;AACA,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;AACnE,YAAY,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC;AAChE,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACrD,oBAAoB,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE;AAC3D,gBAAgB;AAChB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC;AACtE,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE;AACnE,YAAY,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACjF,QAAQ;AACR,IAAI;AACJ,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS;AAC3B,YAAY;AACZ,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY;AACZ,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACxD,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/D,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;AAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS;AAC3B,YAAY;AACZ,QAAQ,IAAI,eAAe,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC;AACpE,QAAQ,IAAI,CAAC,eAAe,EAAE;AAC9B,YAAY,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC5D,YAAY,eAAe,CAAC,EAAE,GAAG,aAAa;AAC9C,YAAY,eAAe,CAAC,SAAS,GAAG,SAAS;AACjD,YAAY,eAAe,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;AAC/D,YAAY,eAAe,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC;AAC/D,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;AACtD,QAAQ;AACR,QAAQ,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACtD,QAAQ,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC;AAC/E,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9K,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACrJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACpHhC,MAAM,eAAe,SAAS,WAAW,CAAC;AACjD,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE;AAC1B,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM;AACzF,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;AAC9C,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK;AAC5B,YAAY,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;AACtE,YAAY,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACrD,YAAY,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACpD,YAAY,IAAI,CAAC,IAAI,GAAG,OAAO;AAC/B,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM;AACzC,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,EAAE;AAChB,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC;AACnC,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,oBAAoB,EAAE,GAAG,GAAG,GAAG,EAAE;AAC5E,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACvC,IAAI;AACJ,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,QAAQ,IAAI,IAAI,GAAG,CAAC;AACpB,QAAQ,IAAI,MAAM,EAAE,MAAM,IAAI,MAAM,EAAE,KAAK,EAAE;AAC7C,YAAY,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK;AAC/C,QAAQ;AACR,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC;AACnD,QAAQ,IAAI,MAAM,EAAE,UAAU,EAAE;AAChC,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AACzD,QAAQ;AACR,QAAQ,IAAI,MAAM,EAAE,MAAM,EAAE;AAC5B,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;AAC/E,QAAQ;AACR,aAAa;AACb,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;AACjC,QAAQ;AACR,QAAQ,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK;AACtC,YAAY,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAClD,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAC3C,oBAAoB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AAC5F,gBAAgB,CAAC,CAAC;AAClB,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACxF,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,cAAc,CAAC,IAAI,CAAC;AACnC,aAAa,GAAG,CAAC,GAAG;AACpB,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC7B,YAAY,MAAM,QAAQ,GAAG,CAAC;AAC9B,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;AAChD,gBAAgB,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,EAAE,eAAe,IAAI,CAAC;AACjF,gBAAgB,KAAK,EAAE,EAAE;AACzB,aAAa;AACb,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AACjC,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK;AACpE,cAAc,SAAS,GAAG,IAAI,CAAC,iBAAiB;AAChD,cAAc,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7E,IAAI;AACJ,IAAI,WAAW,CAAC,GAAG,EAAE;AACrB,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AACtD,YAAY,OAAO,EAAE,CAAC;AACtB,gBAAgB,IAAI,EAAE,EAAE;AACxB,gBAAgB,UAAU,EAAE,CAAC;AAC7B,gBAAgB,KAAK,EAAE,EAAE;AACzB,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,OAAO,UAAU,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/E,IAAI;AACJ,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE;AAChC,QAAQ,QAAQ,IAAI;AACpB,YAAY,KAAK,IAAI;AACrB,gBAAgB,OAAO,QAAQ;AAC/B,YAAY,KAAK,IAAI;AACrB,gBAAgB,OAAO,MAAM;AAC7B,YAAY,KAAK,GAAG;AACpB,gBAAgB,OAAO,OAAO,GAAG,IAAI,GAAG,EAAE;AAC1C,YAAY;AACZ,gBAAgB,MAAM,qBAAqB;AAC3C;AACA,IAAI;AACJ;;ACrFO,MAAM,kBAAkB,CAAC;AAChC,IAAI,OAAO,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE;AAC1C,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;AACjC,YAAY,OAAO,MAAM;AACzB,QAAQ,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACnD,QAAQ,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACvD,QAAQ,MAAM,CAAC,MAAM,GAAG,CAAC;AACzB,QAAQ,MAAM,CAAC,KAAK,GAAG;AACvB,YAAY,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;AACpF,YAAY;AACZ,gBAAgB,GAAG,EAAE,IAAI,CAAC,GAAG;AAC7B,gBAAgB,IAAI,EAAE,GAAG;AACzB,gBAAgB,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK;AAC1C,oBAAoB,OAAO;AAC3B,wBAAwB,EAAE,EAAE,EAAE;AAC9B,wBAAwB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACtC,wBAAwB,QAAQ,EAAE,IAAI;AACtC,qBAAqB;AACrB,gBAAgB,CAAC,CAAC;AAClB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ;;ACQY,MAAC,QAAQ,GAAG;AACxB,IAAI,iBAAiB;AACrB,IAAI,cAAc;AAClB,IAAI,aAAa;AACjB,IAAI,kBAAkB;AACtB,IAAI,kBAAkB;AACtB,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,WAAW;AACf,IAAI,eAAe;AACnB,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,aAAa;AACjB;;AC1CO,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7C,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAC7C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3F,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,aAAa,CAAC,OAAO,EAAE;AACtC,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACvD,YAAY,IAAI,CAAC,IAAI;AACrB,gBAAgB,OAAO,IAAI;AAC3B,YAAY,OAAO;AACnB,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7E,aAAa;AACb,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACnD,YAAY,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AAC7C,YAAY,OAAO,MAAM;AACzB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAChL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACvJ;AACA,UAAU,CAAC;AACX,IAAI,WAAW,EAAE;AACjB,IAAI,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC;AACvC,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,UAAU,CAAC,mBAAmB,EAAE,OAAO;AAC3C,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;AAC5C,UAAU,CAAC;AACX,IAAI,WAAW,EAAE;AACjB,IAAI,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC;AACvC,IAAI,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC;AACvC,IAAI,UAAU,CAAC,mBAAmB,EAAE,OAAO;AAC3C,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;AACzC,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC;;AC/CjD,MAAM,YAAY,SAAS,gBAAgB,CAAC;AACnD,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAChL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,oJAAoJ,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACtjB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,oJAAoJ,EAAE;AAC9O,SAAS,CAAC,EAAE,CAAC;;ACRN,MAAM,aAAa,SAAS,iBAAiB,CAAC;AACrD,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACFN,MAAM,cAAc,SAAS,aAAa,CAAC;AAClD,IAAI,IAAI,UAAU,CAAC,GAAG,EAAE;AACxB,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,GAAG;AAC3D,YAAY;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC;AACrB,YAAY,UAAU,EAAE,GAAG;AAC3B,YAAY,MAAM,EAAE,CAAC;AACrB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,UAAU;AACvC,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;AAClB,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,GAAG,GAAG,CAAC;AAC1E,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM;AAC1D,YAAY;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC;AACrB,YAAY,MAAM,EAAE,MAAM;AAC1B,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO;AACzB,YAAY,OAAO,CAAC;AACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;AACvD,YAAY,OAAO,CAAC;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;AACvD,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE;AACnB,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,GAAG;AACtD,YAAY;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC;AACrB,YAAY,KAAK,EAAE,GAAG;AACtB,YAAY,MAAM,EAAE,CAAC;AACrB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO;AACzB,YAAY,OAAO,EAAE;AACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK;AAC/B,YAAY,OAAO,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK;AACjC,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,GAAG,EAAE;AACpB,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG;AACvD,YAAY;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC;AACrB,YAAY,MAAM,EAAE,GAAG;AACvB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM;AACnC,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE;AACnB,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,GAAG;AACtD,YAAY;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC;AACrB,YAAY,KAAK,EAAE,GAAG;AACtB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK;AAClC,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,GAAG;AACzD,YAAY;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC;AACrB,YAAY,QAAQ,EAAE,GAAG;AACzB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ;AACrC,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;AAClB,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG;AACvD,YAAY;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC;AACrB,YAAY,MAAM,EAAE,GAAG,EAAE,EAAE;AAC3B,YAAY,QAAQ,EAAE,GAAG,EAAE,IAAI;AAC/B,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO;AACf,YAAY,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM;AACpC,YAAY,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ;AACxC,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE;AACvB,QAAQ,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;AACpD,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AACxC,kBAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC;AAC9F,kBAAkB,EAAE;AACpB,YAAY,IAAI,CAAC,OAAO,CAAC;AACzB,gBAAgB,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;AAClC,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,EAAE;AACpD,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AACxC,kBAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC;AAC7F,kBAAkB,EAAE;AACpB,YAAY,IAAI,CAAC,OAAO,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,GAAG,MAAM;AAC7B,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,GAAG;AACjC,wBAAwB,GAAG,EAAE,WAAW;AACxC,wBAAwB,KAAK,EAAE,CAAC;AAChC,wBAAwB,MAAM,EAAE,IAAI;AACpC,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;AACzG,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AACnD,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AACxC,kBAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG;AACpE,oBAAoB,CAAC,CAAC,GAAG,KAAK,cAAc;AAC5C,oBAAoB,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC;AAC7C,kBAAkB,EAAE;AACpB,YAAY,IAAI,CAAC,OAAO,CAAC;AACzB,gBAAgB,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;AAClC,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AACnD,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AACxC,kBAAkB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG;AACpE,oBAAoB,CAAC,CAAC,GAAG,KAAK,cAAc;AAC5C,oBAAoB,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC;AAC7C,kBAAkB,EAAE;AACpB,YAAY,IAAI,CAAC,OAAO,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,GAAG,MAAM;AAC7B,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,GAAG;AACjC,wBAAwB,GAAG,EAAE,cAAc;AAC3C,wBAAwB,KAAK,EAAE,YAAY;AAC3C,wBAAwB,MAAM,EAAE,IAAI;AACpC,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,cAAc,IAAI,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC;AACvH,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;AAC9C,IAAI;AACJ,IAAI,IAAI,eAAe,CAAC,GAAG,EAAE;AAC7B,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC;AACtE,IAAI;AACJ,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC;AAClD,IAAI;AACJ,IAAI,IAAI,aAAa,CAAC,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC;AACpE,IAAI;AACJ,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC;AAClD,IAAI;AACJ,IAAI,IAAI,mBAAmB,CAAC,GAAG,EAAE;AACjC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC;AAC9E,IAAI;AACJ,IAAI,IAAI,mBAAmB,GAAG;AAC9B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC;AACtD,IAAI;AACJ,IAAI,IAAI,iBAAiB,CAAC,GAAG,EAAE;AAC/B,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC;AAC5E,IAAI;AACJ,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,CAAC;AACtD,IAAI;AACJ,IAAI,IAAI,YAAY,CAAC,GAAG,EAAE;AAC1B,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC;AACnE,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC;AAClD,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;AAC9C,IAAI;AACJ,IAAI,IAAI,UAAU,CAAC,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC;AAC/D,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC;AAChD,IAAI;AACJ,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE;AACvB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC;AAC7D,IAAI;AACJ,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC;AAC/C,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;AAC9C,IAAI;AACJ,IAAI,IAAI,UAAU,CAAC,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,CAAC;AAC/D,IAAI;AACJ,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC;AAChD,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;AAC9C,IAAI;AACJ,IAAI,IAAI,YAAY,CAAC,GAAG,EAAE;AAC1B,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC;AAC/D,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC;AAClD,IAAI;AACJ,IAAI,IAAI,MAAM,CAAC,GAAG,EAAE;AACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC;AACvD,IAAI;AACJ,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC;AAC5C,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE;AACrB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC;AACzD,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC;AAC7C,IAAI;AACJ,IAAI,IAAI,YAAY,CAAC,GAAG,EAAE;AAC1B,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,CAAC;AACnE,IAAI;AACJ,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC;AAClD,IAAI;AACJ,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC;AAC9C,IAAI;AACJ,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE;AACnB,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC;AACrD,IAAI;AACJ,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;AAC3C,IAAI;AACJ,IAAI,IAAI,iBAAiB,CAAC,GAAG,EAAE;AAC/B,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,CAAC;AACpE,IAAI;AACJ,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACvD,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,UAAU,EAAE;AAC1C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;AAChD,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/C,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,QAAQ,IAAI,MAAM,GAAG,KAAK;AAC1B,QAAQ,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AAC7C,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,gBAAgB,MAAM,GAAG,IAAI;AAC7B,QAAQ,CAAC,CAAC;AACV,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY;AACZ,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACjC,YAAY,GAAG,MAAM;AACrB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,KAAK;AACxF,IAAI;AACJ,IAAI,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;AAC5C,QAAQ,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;AAClC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;AACzC,kBAAkB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AACxF,kBAAkB,EAAE;AACpB,YAAY,IAAI,CAAC,OAAO,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;AAClC,aAAa,CAAC;AACd,QAAQ;AACR,QAAQ,IAAI,GAAG,IAAI,YAAY,KAAK,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;AACzD,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;AACzC,kBAAkB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AACxF,kBAAkB,EAAE;AACpB,YAAY,IAAI,CAAC,OAAO,CAAC;AACzB,gBAAgB,MAAM,EAAE,CAAC;AACzB,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,GAAG,MAAM;AAC7B,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,IAAI;AAClC,wBAAwB,GAAG,EAAE,GAAG;AAChC,wBAAwB,KAAK,EAAE,GAAG;AAClC,wBAAwB,MAAM,EAAE,IAAI;AACpC,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC;AACd,QAAQ;AACR,IAAI;AACJ;AACA,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,GAAG,CAAC;AACjB,IAAI,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC;AACvC,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7C,IAAI,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC;AAC1C,CAAC,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC;AACtC,MAAM,oBAAoB,CAAC;AAClC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzG,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,EAAE;AAC3C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACtL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACtT;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,wBAAwB;AACtD,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACtVN,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,CAAC,QAAQ,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,IAAI;AACJ,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,MAAM,CAAC,WAAW;AAC9B,YAAY,QAAQ,CAAC,eAAe,CAAC,SAAS;AAC9C,YAAY,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE;AAC3C,YAAY,IAAI,CAAC,cAAc,GAAG,IAAI;AACtC,QAAQ;AACR,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,WAAW;AAC3D,YAAY,QAAQ,CAAC,eAAe,CAAC,SAAS;AAC9C,YAAY,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,EAAE;AAC1C,YAAY,IAAI,CAAC,cAAc,GAAG,KAAK;AACvC,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,aAAa,GAAG;AAC9B,YAAY,GAAG,EAAE,CAAC;AAClB,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,QAAQ,EAAE,QAAQ;AAC9B,SAAS;AACT,QAAQ,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;AACtC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACvM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACxN;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClE,oBAAoB,IAAI,EAAE,MAAM;AAChC,oBAAoB,IAAI,EAAE,CAAC,QAAQ;AACnC,iBAAiB,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,CAAC;AAC1D,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,eAAe,EAAE,EAAE;AAC1C,aAAa,CAAC,EAAE,EAAE,CAAC;;AClCZ,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9G,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzH,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI;AAC5C,gBAAgB,OAAO,EAAE;AACzB,YAAY,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM,CAAC;AACjG,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpI,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,OAAO,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;AACpD,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9H,IAAI;AACJ,IAAI,iBAAiB,CAAC,EAAE,EAAE;AAC1B,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AACrE,IAAI;AACJ,IAAI,kBAAkB,CAAC,EAAE,EAAE;AAC3B,QAAQ,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK;AACrD,IAAI;AACJ,IAAI,YAAY,CAAC,OAAO,EAAE;AAC1B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY;AACZ,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,uBAAuB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACxN;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE;AACrG,SAAS,CAAC,EAAE,CAAC;;AClCN,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9G,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACrD,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,YAAY,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,IAAI,GAAG;AAC5E,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpG,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtG,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/E,QAAQ,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5G,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM;AAC3C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,OAAO,MAAM,EAAE,KAAK,IAAI,EAAE;AACtC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,QAAQ,IAAI,CAAC,cAAc,EAAE;AACzC,gBAAgB,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,cAAc,KAAK,KAAK;AACrE,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM;AAC9C,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,UAAU,KAAK,KAAK;AACpE,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpE,QAAQ,IAAI,CAAC,wBAAwB,GAAG,QAAQ,CAAC,MAAM;AACvD,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,mBAAmB,KAAK,KAAK;AAC7E,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7E,QAAQ,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC,MAAM;AACxD,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,oBAAoB,KAAK,KAAK;AAC9E,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,MAAM;AACnD,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,eAAe,KAAK,KAAK;AACzE,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzE,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;AACrD,IAAI;AACJ,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;AACtD,IAAI;AACJ,IAAI,sBAAsB,CAAC,MAAM,EAAE;AACnC,QAAQ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACxC,IAAI;AACJ,IAAI,wBAAwB,CAAC,MAAM,EAAE;AACrC,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;AACxC,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxC,IAAI;AACJ,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,sBAAsB,GAAG;AAC7B,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAChD,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,EAAE;AAClB,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,IAAI;AACJ,IAAI,uBAAuB,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5C,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,IAAI,CAAC,IAAI,EAAE;AAC1B,IAAI;AACJ,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,OAAO,IAAI,CAAC,oBAAoB,EAAE;AAC1C,IAAI;AACJ,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AACrC,QAAQ,IAAI,CAAC,OAAO;AACpB,YAAY;AACZ,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,uBAAuB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACxN;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE;AACrG,SAAS,CAAC,EAAE,CAAC;;ACjFN,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACpC,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAC7C,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtF,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjG,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9G,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACxC,YAAY,OAAO,MAAM,EAAE,KAAK,IAAI,EAAE;AACtC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,gBAAgB,IAAI,GAAG;AACnE,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM;AAC3C,YAAY,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACrD,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,YAAY,QAAQ,OAAO,MAAM,KAAK,WAAW;AACjD,gBAAgB,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC5D,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK;AACnC,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc;AAClD,IAAI;AACJ,IAAI,SAAS,GAAG;AAChB,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK;AACnC,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,cAAc;AAClC,IAAI;AACJ,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC3C,YAAY,KAAK,EAAE,OAAO;AAC1B,YAAY,WAAW,EAAE,OAAO;AAChC,YAAY,QAAQ,EAAE,SAAS;AAC/B,YAAY,YAAY,EAAE,SAAS;AACnC,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,gBAAgB,CAAC,IAAI,EAAE;AAC3B,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE;AACxB,YAAY,OAAO,IAAI,CAAC,KAAK;AAC7B,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK;AAC5C,cAAc,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;AACrC,cAAc,IAAI,CAAC,KAAK;AACxB,IAAI;AACJ,IAAI,oBAAoB,CAAC,IAAI,EAAE;AAC/B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AAC5B,YAAY,OAAO,IAAI,CAAC,SAAS;AACjC,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK;AAC5C,cAAc,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;AAC3C,cAAc,IAAI,CAAC,KAAK;AACxB,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6pHAA6pH,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC11J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE,QAAQ,EAAE,6pHAA6pH,EAAE;AACrzH,SAAS,CAAC,EAAE,CAAC;;AC3DD,MAAC,UAAU,GAAG,CAAC,YAAY;;ACPvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC,IAAI;AACJ;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;AACpD,IAAI;AACJ;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;AACvD,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAChL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACzQ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,cAAc;AAC5C,oBAAoB,UAAU,EAAE,IAAI;AACpC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,CAAC;AAC7C,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,YAAY;AACnC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,YAAY;AACnC,aAAa,CAAC,EAAE,EAAE,CAAC;;ACxCnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACpC;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F;AACA,QAAQ,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpH;AACA,QAAQ,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxH;AACA,QAAQ,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChH;AACA,QAAQ,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,wBAAwB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpH;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxG;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtG;AACA,QAAQ,MAAM,CAAC,MAAM;AACrB,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AAC7C,QAAQ,MAAM,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AACtD,QAAQ,OAAO,CAAC,UAAU,IAAI,YAAY;AAC1C,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AAC7C,QAAQ,MAAM,YAAY,GAAG,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AACtD,QAAQ,OAAO,CAAC,SAAS,IAAI,YAAY;AACzC,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B,IAAI;AACJ;AACA;AACA;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa;AAC7C;AACA,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU;AAC7C,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW;AAC/C,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW;AAC/C,QAAQ,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AAC/C,QAAQ,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AAC/E;AACA,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;AAC3C,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY;AACjD,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY;AACjD,QAAQ,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC7C,QAAQ,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;AACtD,QAAQ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC;AAC9E,IAAI;AACJ;AACA;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;AAC/D,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;AACA;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;AAChD,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACrL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3W;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,mBAAmB;AACjD,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,QAAQ,EAAE,iBAAiB;AAC/C,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;AC/G3B,MAAC,UAAU,GAAG;;ACM1B,SAAS,aAAa,CAAC,aAAa,EAAE;AACtC,IAAI,OAAO,MAAM;AACjB,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;AACvC,QAAQ,CAAC,CAAC;AACV,IAAI,CAAC;AACL;AACO,MAAM,YAAY,CAAC;AAC1B,IAAI,OAAO,UAAU,CAAC,MAAM,EAAE;AAC9B,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,YAAY;AAClC,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,OAAO,EAAE,YAAY;AACzC,oBAAoB,QAAQ,EAAE,MAAM;AACpC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,OAAO,CAAC,MAAM,EAAE;AAC3B,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,YAAY;AAClC,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,OAAO,EAAE,YAAY;AACzC,oBAAoB,QAAQ,EAAE,MAAM;AACpC,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,OAAO,EAAE,eAAe;AAC5C,oBAAoB,UAAU,EAAE,aAAa;AAC7C,oBAAoB,KAAK,EAAE,IAAI;AAC/B,oBAAoB,IAAI,EAAE,CAAC,aAAa,CAAC;AACzC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7K,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,YAAY,EAAEC,YAAe,CAAC,EAAE,OAAO,EAAE,CAACA,YAAe,CAAC,EAAE,CAAC,CAAC;AACrM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACxJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC;AACjD,oBAAoB,OAAO,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;AACvD,oBAAoB,OAAO,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,UAAU,CAAC;AAC3D,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACvDH,IAAC;AACX,CAAC,UAAU,QAAQ,EAAE;AACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ;AACjC,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS;AACnC,IAAI,QAAQ,CAAC,aAAa,CAAC,GAAG,aAAa;AAC3C,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU;AACrC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK;AAC3B,CAAC,EAAE,QAAQ,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;AACrB,IAAC;AACX,CAAC,UAAU,QAAQ,EAAE;AACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ;AAC/C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;AAC3C,CAAC,EAAE,QAAQ,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;AACxB,MAAM,QAAQ,CAAC;AACtB;;ACZY,MAAC,mBAAmB,GAAG,MAAM;AACzC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC,IAAI,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACzD,IAAI,IAAI,kBAAkB,CAAC,OAAO,EAAE,EAAE;AACtC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC;AACnC,IAAI,OAAO,KAAK;AAChB;;ACRY,MAAC,iBAAiB,GAAG,MAAM;AACvC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACjC,IAAI,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACzD,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE;AACvC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACvC,IAAI,OAAO,KAAK;AAChB;;ACXA;AACA;AACA;;;;"}