{"version":3,"file":"scripts/@lvflanders/bar-ng/lvflanders-bar-ng-18.min.js","mappings":"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","sources":["webpack://ng-cli/webpack/runtime/create fake namespace object","webpack://ng-cli/webpack/bootstrap","webpack://ng-cli/webpack/runtime/define property getters","webpack://ng-cli/webpack/runtime/hasOwnProperty shorthand","webpack://ng-cli/webpack/runtime/make namespace object","webpack://ng-cli/external var \"ng.core\"","webpack://ng-cli/external var \"rxjs\"","webpack://ng-cli/external var \"lvflanders.bar.shared\"","webpack://ng-cli/external var \"ng.common.http\"","webpack://ng-cli/external var \"ng.router\"","webpack://ng-cli/external var \"ng.common\"","webpack://ng-cli/external var \"window[\\\"date-fns\\\"]\"","webpack://ng-cli/external var \"rxjs.operators\"","webpack://ng-cli/external var \"ng.common.locales.extra.nl\"","webpack://ng-cli/external var \"ng.common.locales.extra.nlBe\"","webpack://ng-cli/external var \"ng.common.locales.nl\"","webpack://ng-cli/external var \"ng.common.locales.nlBe\"","webpack://ng-cli/external var \"window[\\\"@elastic\\\"][\\\"apm-rum\\\"]\"","webpack://ng-cli/external var \"window[\\\"@elastic\\\"][\\\"apm-rum-core\\\"]\"","webpack://ng-cli/../node_modules/@elastic/apm-rum-angular/fesm2015/elastic-apm-rum-angular.js","webpack://ng-cli/external var \"inversify\"","webpack://ng-cli/external var \"ng.core.rxjsInterop\"","webpack://ng-cli/external var \"window[\\\"file-saver\\\"]\"","webpack://ng-cli/./dist/@lvflanders/bar-ng/fesm2022/lvflanders-bar-ng.mjs","webpack://ng-cli/./cdn/lvflanders-bar-ng.ts"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = ng.core;","const __WEBPACK_NAMESPACE_OBJECT__ = rxjs;","const __WEBPACK_NAMESPACE_OBJECT__ = lvflanders.bar.shared;","const __WEBPACK_NAMESPACE_OBJECT__ = ng.common.http;","const __WEBPACK_NAMESPACE_OBJECT__ = ng.router;","const __WEBPACK_NAMESPACE_OBJECT__ = ng.common;","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"date-fns\"];","const __WEBPACK_NAMESPACE_OBJECT__ = rxjs.operators;","const __WEBPACK_NAMESPACE_OBJECT__ = ng.common.locales.extra.nl;","const __WEBPACK_NAMESPACE_OBJECT__ = ng.common.locales.extra.nlBe;","const __WEBPACK_NAMESPACE_OBJECT__ = ng.common.locales.nl;","const __WEBPACK_NAMESPACE_OBJECT__ = ng.common.locales.nlBe;","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"@elastic\"][\"apm-rum\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"@elastic\"][\"apm-rum-core\"];","import * as i0 from '@angular/core';\nimport { InjectionToken, NgModule, Injectable, Inject, ErrorHandler } from '@angular/core';\nimport * as i1 from '@angular/router';\nimport { RouterModule } from '@angular/router';\nimport * as i2 from '@elastic/apm-rum';\nimport { apm } from '@elastic/apm-rum';\nimport { afterFrame } from '@elastic/apm-rum-core';\n\n/**\n * MIT License\n *\n * Copyright (c) 2017-present, Elasticsearch BV\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\nconst APM = new InjectionToken('APM Base Client');\nclass ApmModule {\n}\nApmModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nApmModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmModule, imports: [RouterModule] });\nApmModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmModule, providers: [{ provide: APM, useValue: apm }], imports: [[RouterModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [RouterModule],\n providers: [{ provide: APM, useValue: apm }]\n }]\n }] });\n\nclass ApmService {\n constructor(apm, router, ngZone) {\n this.apm = apm;\n this.router = router;\n this.ngZone = ngZone;\n }\n init(config) {\n const apmInstance = this.ngZone.runOutsideAngular(() => this.apm.init(config));\n if (!apmInstance.isActive()) {\n return apmInstance;\n }\n /**\n * Start listening to route change once we\n * intiailize to set the correct transaction names\n */\n this.observe();\n return apmInstance;\n }\n observe() {\n let transaction;\n this.router.events.subscribe(event => {\n const eventName = event.toString();\n if (eventName.indexOf('NavigationStart') >= 0) {\n const name = event.url;\n transaction = this.apm.startTransaction(name, 'route-change', {\n managed: true,\n canReuse: true\n });\n }\n else if (eventName.indexOf('NavigationError') >= 0) {\n transaction && transaction.detectFinish();\n }\n else if (eventName.indexOf('NavigationEnd') >= 0) {\n if (!transaction) {\n return;\n }\n /**\n * The below logic must be placed in NavigationEnd since\n * the we depend on the current route state to get the path\n *\n * Even If there are any redirects, the router state path\n * will be matched with the correct url on navigation end\n *\n * Traverse the activated route tree to figure out the nested\n * route path\n */\n const route = this.router.routerState.root.firstChild;\n if (route) {\n let child = route;\n let path = '/' + child.routeConfig.path;\n while (child) {\n child = child.firstChild;\n if (child && child.routeConfig) {\n const currentPath = child.routeConfig.path;\n /**\n * Ignore empty path's in the route config\n */\n if (currentPath) {\n path += '/' + currentPath;\n }\n }\n }\n transaction.name = path;\n }\n afterFrame(() => transaction.detectFinish());\n }\n });\n }\n}\nApmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmService, deps: [{ token: APM }, { token: i1.Router }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nApmService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: function () { return [{ type: i2.ApmBase, decorators: [{\n type: Inject,\n args: [APM]\n }] }, { type: i1.Router }, { type: i0.NgZone }]; } });\n\n/**\n * MIT License\n *\n * Copyright (c) 2017-present, Elasticsearch BV\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\nclass ApmErrorHandler extends ErrorHandler {\n constructor(apm) {\n super();\n this.apm = apm;\n }\n handleError(error) {\n this.apm.captureError(error.originalError || error);\n super.handleError(error);\n }\n}\nApmErrorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmErrorHandler, deps: [{ token: APM }], target: i0.ɵɵFactoryTarget.Injectable });\nApmErrorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmErrorHandler });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.0.4\", ngImport: i0, type: ApmErrorHandler, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i2.ApmBase, decorators: [{\n type: Inject,\n args: [APM]\n }] }]; } });\n\n/**\n * MIT License\n *\n * Copyright (c) 2017-present, Elasticsearch BV\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { APM, ApmErrorHandler, ApmModule, ApmService };\n//# sourceMappingURL=elastic-apm-rum-angular.js.map\n","const __WEBPACK_NAMESPACE_OBJECT__ = inversify;","const __WEBPACK_NAMESPACE_OBJECT__ = ng.core.rxjsInterop;","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"file-saver\"];","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, Component, isSignal, Injectable, APP_INITIALIZER, Injector, EventEmitter, signal, DestroyRef, NgZone, ErrorHandler, LOCALE_ID, ENVIRONMENT_INITIALIZER, makeEnvironmentProviders } from '@angular/core';\nimport { from, Observable, lastValueFrom, of, tap, catchError, throwError, BehaviorSubject, filter, switchMap, map, mergeMap as mergeMap$1, forkJoin } from 'rxjs';\nimport { getParamNames, BarCacheManager, BarCacheStore, BarCacheEntryOptions, BaasMeetpuntService, BarStopwatch, _OopsDomService, _OopsType, resolveValue, BaasAppState, BAAS_CUSTOM_EVENT, openUrl, BaasSecurityService, BaasI18n, concatUrl, BaasAuthService, BaasLoggingService, checkDateObject, convertToISOString, LOCALE, _BaasApm, BAAS_TYPES, _BarAppInfoManager, _BarXdc, BaasBootstrapOptions, _BaasContextManager, extractUrlParts, BaasAuditType, BaasContextTransportModus, _BAAS_SHARED_CONSTANTS, checkUrlAbsolute, _checkCompatibleOrigin, ensureGlobal, BaasMeldingService, BaasAuditService, BaasToepassingService, generateUuid, _addAuditInfoOnDocument, BAAS_METADATA_KEY, BarCacheStoreType, BarNotificationManager, _BaasProfielService, BaasConfigurationService, BarIdpClient, BarGvkManager, _BaasStaticConfigurationApiClient } from '@lvflanders/bar';\nimport { HttpParams, HttpResponse, HTTP_INTERCEPTORS, provideHttpClient, withInterceptors, withInterceptorsFromDi, HttpClient } from '@angular/common/http';\nimport { Router, NavigationEnd, NavigationStart, NavigationError, DefaultUrlSerializer, UrlSerializer } from '@angular/router';\nimport { registerLocaleData, LocationStrategy, PathLocationStrategy } from '@angular/common';\nimport { parseISO, isAfter, isBefore, isEqual } from 'date-fns';\nimport { tap as tap$1, mergeMap, catchError as catchError$1, delayWhen } from 'rxjs/operators';\nimport localeNlExtra from '@angular/common/locales/extra/nl';\nimport localeNlBeExtra from '@angular/common/locales/extra/nl-BE';\nimport localeNl from '@angular/common/locales/nl';\nimport localeNlBe from '@angular/common/locales/nl-BE';\nimport { ApmService, APM } from '@elastic/apm-rum-angular';\nimport { Container } from 'inversify';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { saveAs } from 'file-saver';\n\n// injection token to have same class injected in different ways\nconst BAR_GLOBAL_CACHE = new InjectionToken('Global cache store');\nconst BAR_USER_CACHE = new InjectionToken('User cache store');\nconst BAR_APP_CACHE = new InjectionToken('Application cache store');\nconst BAR_MELDINGEN_CACHE = new InjectionToken('Meldingen cache store');\n/** Token for BAR initialized lifecycle hook. */\nconst BAR_INITIALIZED = new InjectionToken('BAR initialized token.');\n/** Token for BAR error handler hook. */\nconst BAR_ERROR_HANDLER = new InjectionToken('BAR error handling token.');\n/** Token used to define whether running under localhost. */\nconst BAR_LOCALHOST = new InjectionToken('BAR localhost token');\n/** @deprecated Token for APM configuration. */\nconst BAAS_APM_CONFIG = new InjectionToken('BaaS APM configuratie');\n/** Token for Telemetry service. */\nconst BAAS_TELEMETRY = new InjectionToken('BaaS Telemetry service');\n\n/** Internal global variable to access BaaS Core context. */\nconst baasCoreContext = {\n injector: undefined\n};\n\nfunction defineCacheKey(cacheKeyPrefix, paramNames, args) {\n // no arguments just use cache key prefix (class + method)\n if (paramNames.length == 0) {\n return cacheKeyPrefix;\n }\n if (paramNames.length != args.length) {\n // we cannot match the parameters names with the arguments so we just stringify entire args\n return `${cacheKeyPrefix}_${JSON.stringify(args)}`;\n }\n // we have matching parameters, loop through them and generate a full cache key\n let result = cacheKeyPrefix;\n for (let i = 0; i < paramNames.length; i++) {\n result += `_${paramNames[i]}:${JSON.stringify(args[i])}`;\n }\n return result;\n}\n/**\n * Decorator to use to use on functions which return an observable which will use @lvflanders/bar caching.\n * Note that because it uses async cache it cannot be used on methods which do not return Observable.\n * @param options\n */\nfunction BarCacheable(options) {\n return function (target, key, descriptor) {\n // original method\n const originalMethod = descriptor.value;\n const className = target.constructor != null ? target.constructor.name : null;\n const cacheKeyPrefix = options == null || options.key == null ? `${className}_${key}` : options.key;\n const paramNames = getParamNames(descriptor.value);\n descriptor.value = function (...args) {\n const cacheKey = defineCacheKey(cacheKeyPrefix, paramNames, args);\n let cacheStore;\n if (options != null && options.store != null) {\n if (options.store instanceof InjectionToken) {\n // we have an injection token use this\n cacheStore = baasCoreContext.injector.get(options.store);\n }\n else {\n const manager = baasCoreContext.injector.get(BarCacheManager);\n cacheStore = manager.getStore(options.store);\n }\n }\n else {\n // get the default one which is for the current app\n cacheStore = baasCoreContext.injector.get(BarCacheStore);\n }\n if (options != null && options.promise) {\n // consumer wants to use a promise return type\n return cacheStore.getOrSetItem(cacheKey, () => {\n // callback in case not in cache yet\n // get original result and we make assumption that an observable is used because this is what is mostly used in Angular applications\n const originalResult = originalMethod.apply(this, args);\n if (originalResult instanceof Promise) {\n // convert it back to a promise because @lvflanders/bar uses promises to be more loosely coupled\n return originalResult;\n }\n else {\n Promise.reject('Functions using BarCacheable from @lvflanders/bar-ng decorator must return a Promise in case BarCacheableOptions.promise equals true.');\n }\n }, options != null ? options.options : BarCacheEntryOptions.default);\n }\n else {\n // consumer wants to use default Observable return type\n // get the item through the cache and converts it to observable because we cannot detect at runtime what the return type of a method is without executing it\n return from(cacheStore.getOrSetItem(cacheKey, () => {\n // callback in case not in cache yet\n // get original result and we make assumption that an observable is used because this is what is mostly used in Angular applications\n const originalResult = originalMethod.apply(this, args);\n if (originalResult instanceof Observable) {\n // convert it back to a promise because @lvflanders/bar uses promises to be more loosely coupled\n return lastValueFrom(originalResult);\n }\n else {\n Promise.reject('Functions using BarCacheable from @lvflanders/bar-ng decorator must return an Observable in case BarCacheableOptions.promise is not equal true.');\n }\n }, options != null ? options.options : BarCacheEntryOptions.default));\n }\n };\n return descriptor;\n };\n}\n\n// https://netbasal.com/inspiration-for-custom-decorators-in-angular-95aeb87f072c\n/**\n * Measures the duration of a directive or component (which is a directive) between ngOnInit and ngAfterViewInit.\n */\nfunction BarMeetpunt() {\n return function (constructor) {\n // get meetpunt service through static injector on the core module\n const meetpunt = baasCoreContext.injector.get(BaasMeetpuntService);\n const ngOnInit = constructor.prototype.ngOnInit;\n let stopwatch = null;\n // override the ngOnInit\n constructor.prototype.ngOnInit = function (...args) {\n // create and start new watch\n stopwatch = new BarStopwatch();\n stopwatch.start();\n // call original ngOnInit after starting the watch (if present)\n ngOnInit && ngOnInit.apply(this, args);\n };\n const ngAfterViewInit = constructor.prototype.ngAfterViewInit;\n // override the ngAfterViewInit\n constructor.prototype.ngAfterViewInit = function (...args) {\n // call original ngAfterViewInit if present\n ngAfterViewInit && ngAfterViewInit.apply(this, args);\n // stop the watch\n stopwatch.stop();\n // call meetpunt service to log this\n meetpunt.log({\n meetpunt: 'DIRECTIVE',\n meetpuntDetail: constructor.name,\n waarde: stopwatch.duration,\n meetpuntInfo: document.location.href\n });\n stopwatch = null;\n };\n };\n}\n\nfunction barPageNotFoundGuard() {\n return (route, state) => {\n if (!route.routeConfig?.component)\n return true;\n const oopsDomService = inject(_OopsDomService);\n oopsDomService.showOops({ type: _OopsType.NotFound });\n return true;\n };\n}\n\n/** Purpose of component is to be able to trigger the route. */\nclass BarPageNotFoundComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarPageNotFoundComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarPageNotFoundComponent, isStandalone: true, selector: \"bar-page-not-found\", ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarPageNotFoundComponent, decorators: [{\n type: Component,\n args: [{\n // no html, barPageNotFoundGuard is used to trigger oops\n template: '',\n standalone: true,\n selector: 'bar-page-not-found'\n }]\n }] });\n\n/**\n * Will return an Observable based on a value which can be of different types.\n * @param value\n */\nfunction resolveValue$(value) {\n if (value instanceof Observable) {\n return value;\n }\n if (value instanceof Promise) {\n return from(value);\n }\n const resolvedValue = resolveValue(value);\n return of(resolvedValue);\n}\nfunction resolveSignalValue(value) {\n return isSignal(value) ? value() : value;\n}\n/**\n * Convers an object to a http params.\n * @param obj\n */\n// https://github.com/angular/angular/issues/18012\nfunction convertToHttpParams(obj) {\n let params = new HttpParams();\n if (obj != null) {\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n const val = obj[key];\n if (val !== null && val !== undefined) {\n params = params.append(key, val.toString());\n }\n }\n }\n }\n return params;\n}\n/** Creates the default base href factory. The base href factory generated will ensure the base href match is done in a case insensitive way. Use this when providing APP_BASE_HREF.*/\nfunction createDefaultBaseHrefFactory(baseHref) {\n return () => {\n if (!baseHref || baseHref === '/')\n return baseHref;\n // do not take into account end slash because pathname is not with end slash\n const comparisonBaseHref = baseHref.endsWith('/') ? baseHref.substring(0, baseHref.length - 1) : baseHref;\n if (!window.location.pathname.toLowerCase().startsWith(comparisonBaseHref.toLowerCase()))\n return baseHref;\n return window.location.pathname.substring(0, comparisonBaseHref.length);\n };\n}\nfunction createPageNotFoundRoute(path) {\n return {\n path,\n component: BarPageNotFoundComponent,\n canActivate: [barPageNotFoundGuard()],\n data: { _framework: true }\n };\n}\n\nconst PAGES_ROOT_PATH = 'bui/';\nconst STORAGE_KEY_PREFIX = 'lvflanders.bar.ng.core.';\nconst BAR_CORE_CONSTANTS = {\n STORAGE_KEY_PREFIX,\n PAGES: {\n ONBESCHIKBAAR: PAGES_ROOT_PATH + 'blokkerende-melding',\n SESSION_EXPIRED: PAGES_ROOT_PATH + 'session-expired',\n INSUFFICIENT_PRIVILEGES: PAGES_ROOT_PATH + 'insufficient-privileges',\n LOG_OFF: PAGES_ROOT_PATH + 'log-off'\n }\n};\n\nclass BarRoutingService {\n #router = inject(Router);\n /**\n * Will navigates to a given url and make sure the current component is not reused in case of a same route navigation (reload).\n * @param url\n */\n async navigateByUrlWithReload(url, extras) {\n // navigate to the bar refresh route to then navigate to the same url (tricks of the trade)\n await this.#router.navigateByUrl('/bar-refresh', { skipLocationChange: true });\n // to then navigate back to the same page\n return await this.#router.navigateByUrl(url);\n }\n /**\n * Will navigates based on command array and make sure the current component is not reused in case of a same route navigation (reload).\n * @param url\n */\n async navigateWithReload(commands, extras) {\n // navigate to the bar refresh route to then navigate to the same url (tricks of the trade)\n await this.#router.navigateByUrl('/bar-refresh', { skipLocationChange: true });\n // to then navigate back to the same page\n return await this.#router.navigate(commands, extras);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRoutingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRoutingService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRoutingService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass BarCoreService {\n #injector;\n #appState;\n #hubMessage;\n #basiscontextChanged;\n // avoid cyclic dependency\n get #router() {\n return this.#injector.get(Router);\n }\n get #routing() {\n return this.#injector.get(BarRoutingService);\n }\n // avoid cyclic dependency\n get #appInits() {\n return this.#injector.get(APP_INITIALIZER);\n }\n constructor() {\n this.#injector = inject(Injector);\n this.#appState = inject(BaasAppState, { optional: true });\n /** Global core event that is invoked when an error occurs. */\n this.errorOccurred = new EventEmitter();\n /** Event invoked when performed soft refresh. */\n this.refreshed = new EventEmitter();\n /** Occurs when a custom message is send from the BaaS hub and received in the client. */\n this.customHubMessageReceived = new EventEmitter();\n this.basiscontextChanged = new EventEmitter();\n this.#hubMessage = (event) => this.customHubMessageReceived.emit(event.detail);\n this.#basiscontextChanged = (event) => this.basiscontextChanged.emit(event.detail);\n // Listen for the custom event on a JavaScript object or DOM element\n window.addEventListener(BAAS_CUSTOM_EVENT.CUSTOM_HUB_MESSAGE, this.#hubMessage);\n window.addEventListener(BAAS_CUSTOM_EVENT.BASISCONTEXT_CHANGED, this.#basiscontextChanged);\n }\n ngOnDestroy() {\n window.removeEventListener(BAAS_CUSTOM_EVENT.CUSTOM_HUB_MESSAGE, this.#hubMessage);\n window.removeEventListener(BAAS_CUSTOM_EVENT.BASISCONTEXT_CHANGED, this.#basiscontextChanged);\n this.basiscontextChanged.complete();\n this.customHubMessageReceived.complete();\n this.errorOccurred.complete();\n this.refreshed.complete();\n }\n /** Performs a soft refresh (make sure to have onSameUrlNavigation set to 'reload' in the routing setup) */\n async refresh() {\n // https://dormoshe.io/articles/hook-into-angular-initialization-process-8\n // get all async promises (or executed if no promise)\n if (this.#appInits) {\n for (const appInit of this.#appInits) {\n const initResult = appInit();\n await Promise.resolve(initResult);\n }\n }\n // after executing all startup logic\n // save url before navigating (otherwise wrong one)\n const url = this.#router.url;\n // use custom navigate with to reload to ensure route component is completely reloaded\n await this.#routing.navigateWithReload([url]);\n this.refreshed.emit();\n }\n /**\n * Navigate to the defined home url (default is startscherm)\n * @param invokeHomeAction Whether to invoke the custom home action defined in this service as a property.\n */\n async navigateHome(invokeHomeAction = true) {\n await this.#navigateAction(invokeHomeAction, () => {\n window.location = this.#appState.config.homeUrl;\n }, this.homeAction, undefined);\n }\n async navigateRoot(invokeRootAction = true, event = undefined) {\n await this.#navigateAction(invokeRootAction, async () => {\n const newTab = event && (event.ctrlKey || event.metaKey);\n if (newTab) {\n openUrl(this.#appState.location.app.url, '_blank');\n }\n else {\n await this.#router.navigate(['./']);\n }\n }, this.rootAction, event);\n }\n async #navigateAction(invokeAction, defaultAction, action, event) {\n let defaultBehaviour = false;\n if (invokeAction && action != null) {\n if (action.action != null) {\n const result = action.action(event);\n if (result instanceof Promise) {\n await result;\n }\n }\n else if (action.routerUrl != null) {\n const routerUrl = resolveValue(action.routerUrl);\n await this.#router.navigateByUrl(routerUrl);\n }\n else if (action.routerCommands != null) {\n const routerLink = resolveValue(action.routerCommands);\n await this.#router.navigate(routerLink);\n }\n else if (action.href != null) {\n const href = resolveValue(action.href);\n openUrl(href, action.target);\n }\n else {\n defaultBehaviour = true;\n }\n }\n else {\n defaultBehaviour = true;\n }\n if (defaultBehaviour)\n defaultAction();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarCoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarCoreService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarCoreService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\nfunction barActieAllowedGuard(...acties) {\n return async () => {\n const security = inject(BaasSecurityService);\n const i18n = inject(BaasI18n);\n const appState = inject(BaasAppState);\n const core = inject(BarCoreService);\n const localhost = inject(BAR_LOCALHOST);\n // iterate all acties\n for (const actie of acties) {\n const result = await security.checkActieAllowedFromContext(actie);\n if (!result) {\n if (!localhost) {\n // perform hard redirect on deployed environment\n window.location.href = concatUrl(appState.location.baasStatic.url, BAR_CORE_CONSTANTS.PAGES.INSUFFICIENT_PRIVILEGES);\n }\n else {\n // on localhost emit an error, do not perform hard redirect\n const errorMessage = i18n.get('DOMAIN_BAAS_CORE.INSUFFICIENT_PRIVILEGES_FOR_ACTIE', {\n actie: actie.actie,\n includeVoorwie: actie.includeVoorwie,\n includeHoedanigheid: actie.includeHoedanigheid\n });\n console.error(errorMessage);\n const error = new Error(errorMessage);\n core.errorOccurred.emit(error);\n }\n return false;\n }\n }\n return true;\n };\n}\n\nfunction barAuthGuard() {\n return () => {\n const authService = inject(BaasAuthService);\n return authService.authenticated ? of(true) : from(authService.authenticate());\n };\n}\n\nfunction barZoneGuard(...zones) {\n return async () => {\n const appState = inject(BaasAppState);\n const core = inject(BarCoreService);\n const i18n = inject(BaasI18n);\n const localhost = inject(BAR_LOCALHOST);\n let result = false;\n if (zones != null && zones.length > 0 && appState.basiscontext != null && appState.basiscontext.zone != null && appState.basiscontext.zone.length > 0) {\n result = zones.indexOf(appState.basiscontext.zone) > -1;\n }\n if (!result) {\n if (!localhost) {\n await core.navigateHome();\n }\n else {\n const errorMessage = i18n.get('DOMAIN_BAAS_CORE.ZONES_NOT_ALLOWED', { zones: zones.join() });\n console.error(errorMessage);\n const error = new Error(errorMessage);\n core.errorOccurred.emit(error);\n }\n }\n return result;\n };\n}\n\n/**\n * Actie object to check. This is needed by the BarActieAllowedGuard.\n */\nclass BarActieFromContext {\n constructor(actie) {\n this.includeVoorwie = true;\n this.includeHoedanigheid = true;\n if (actie != null) {\n this.actie = actie.actie;\n this.includeVoorwie =\n actie.includeVoorwie === undefined\n ? true\n : actie.includeVoorwie;\n this.includeHoedanigheid =\n actie.includeHoedanigheid === undefined\n ? true\n : actie.includeHoedanigheid;\n }\n }\n}\n\n/** Represents a definition of an action without UI or styling. */\nclass BarActionDef {\n}\n\n/** Options for the cacheable decorator. */\nclass BarCacheableOptions {\n constructor() {\n /** Whether to use a promise instead of an Observable. The reason is that we cannot guess the return type by default without executing it. */\n this.promise = false;\n }\n}\n\n/** Represents the strategy to use for converting date objects to strings. */\nvar BarDateTimeConversionStrategy;\n(function (BarDateTimeConversionStrategy) {\n /** Converts the date to an iso string with the exact same date. */\n BarDateTimeConversionStrategy[BarDateTimeConversionStrategy[\"Iso\"] = 0] = \"Iso\";\n /** Converts the date to an iso string in GMT 0. */\n BarDateTimeConversionStrategy[BarDateTimeConversionStrategy[\"IsoGmt\"] = 1] = \"IsoGmt\";\n})(BarDateTimeConversionStrategy || (BarDateTimeConversionStrategy = {}));\n\nvar BarMeldingType;\n(function (BarMeldingType) {\n BarMeldingType[\"Opgelost\"] = \"OPGELOST\";\n BarMeldingType[\"Informatief\"] = \"INFORMATIEF\";\n BarMeldingType[\"Belangrijk\"] = \"BELANGRIJK\";\n BarMeldingType[\"Onbeschikbaar\"] = \"ONBESCHIKBAAR\";\n BarMeldingType[\"Banner\"] = \"BANNER\";\n})(BarMeldingType || (BarMeldingType = {}));\n\nclass BarMelding {\n convert(m) {\n const meldingTypeMapping = {\n 20: BarMeldingType.Opgelost,\n 40: BarMeldingType.Informatief,\n 60: BarMeldingType.Belangrijk,\n 80: BarMeldingType.Onbeschikbaar,\n 90: BarMeldingType.Banner\n };\n const classicBannerProcessing = (m) => {\n // banner information is the same accross BAR en BaaS\n this.bannerTitle = m.bannerTitle;\n this.bannerUrl = m.bannerUrl;\n this.bannerUrlText = m.bannerUrlText;\n this.bannerImage = m.bannerImage;\n };\n if (m.baas === true) {\n //BaaS melding\n if (m.version === '2') {\n // V2\n const readField = (m, field) => m.fields?.find(f => f.name === field)?.content;\n Object.assign(this, {\n id: m.meldingId,\n startDate: m.validFrom,\n endDate: m.validUntil,\n meldingType: m.meldingType,\n location: m.urlPattern,\n content: readField(m, 'TEKST'),\n title: readField(m, 'TITEL'),\n zone: m.zone\n });\n if (this.meldingType === BarMeldingType.Banner) {\n this.bannerTitle = readField(m, 'TITLE');\n this.bannerUrl = readField(m, 'LINK_URL');\n this.bannerUrlText = readField(m, 'LINK_CONTENT');\n this.bannerImage = readField(m, 'IMAGE');\n }\n }\n else {\n Object.assign(this, {\n id: m.meldingId,\n startDate: m.validFrom,\n endDate: m.validUntil,\n meldingType: meldingTypeMapping[m._mtype],\n location: m.urlPattern,\n content: m.meldingText,\n zone: m.zone\n });\n classicBannerProcessing(m);\n }\n }\n //BAR melding\n else {\n Object.assign(this, {\n id: m.id,\n startDate: m.startDatum,\n endDate: m.eindDatum,\n meldingType: meldingTypeMapping[m.meldingType],\n location: m.locatie,\n content: m.tekst,\n zone: m.zone\n });\n classicBannerProcessing(m);\n }\n return this;\n }\n}\n\n// https://stackoverflow.com/a/46078299/2174621\nclass BarHttpParams extends HttpParams {\n constructor(\n /**This means this is a request that should pass the interceptor but happens in background*/\n backgroundRequest = false, \n /**This means interception should be ommited*/\n ommitInterceptor = false, options) {\n super(options);\n this.backgroundRequest = backgroundRequest;\n this.ommitInterceptor = ommitInterceptor;\n }\n}\n\n// https://medium.com/@amcdnl/global-error-handling-with-angular2-6b992bdfb59c\nclass BarErrorHandler {\n #core = inject(BarCoreService);\n #logging = inject(BaasLoggingService, { optional: true });\n #errorHandlerHooks = inject(BAR_ERROR_HANDLER, { optional: true });\n #telemetry = inject(BAAS_TELEMETRY, { optional: true });\n handleError(error) {\n if (error == null)\n return;\n if (typeof error === 'object') {\n error.handled = true;\n }\n let proceed = true;\n // process angular hooks\n if (this.#errorHandlerHooks && this.#errorHandlerHooks.length) {\n this.#errorHandlerHooks.forEach((hook) => {\n const args = {\n handled: false,\n error: error\n };\n hook.run(args);\n if (args.handled)\n proceed = false;\n });\n }\n // a hook already handled the error, stop proceeding\n if (!proceed)\n return;\n // do something with the exception\n try {\n console.error(error);\n const getCircularReplacer = () => {\n const seen = new WeakSet();\n return (key, value) => {\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return;\n }\n seen.add(value);\n }\n return value;\n };\n };\n // put the error in session storage\n window.sessionStorage[BAR_CORE_CONSTANTS.STORAGE_KEY_PREFIX + 'error'] = JSON.stringify(error, getCircularReplacer());\n this.#core.errorOccurred.emit(error);\n if (this.#logging != null) {\n this.#logging.error({ error });\n }\n // telemetry is optional, for example polaris doesn't have telemetry\n if (this.#telemetry)\n this.#telemetry.handleError(error);\n }\n catch (error) {\n console.error(error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorHandler }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorHandler, decorators: [{\n type: Injectable\n }] });\n\n// NOTE implemented because of persisting caching issues with aspnet core fallback index.html action\n// https://medium.com/@kamrankhatti/angular-lazy-routes-loading-chunk-failed-42b16c22a377\nconst CHUNK_FAILED_MESSAGE = /Loading chunk [\\d]+ failed/;\nclass BarErrorChunkLoadFailedHook {\n /** Invoked by the error handler. */\n run(args) {\n if (args.error?.message && CHUNK_FAILED_MESSAGE.test(args.error.message)) {\n args.handled = true;\n console.warn('Chunk failed to load, reloading the page.');\n window.location.reload();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorChunkLoadFailedHook, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorChunkLoadFailedHook }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorChunkLoadFailedHook, decorators: [{\n type: Injectable\n }] });\n\nclass BarErrorExpressionChangedAfterCheckedHook {\n /** Invoked by the error handler. */\n run(args) {\n if (args.error &&\n // NOTE since ng 18 we get -100 code\n (args.error.code === '100' || args.error.code === -100) &&\n args.error.message &&\n args.error.message.indexOf('NG0100') > -1) {\n args.handled = true;\n console.error(args.error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorExpressionChangedAfterCheckedHook, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorExpressionChangedAfterCheckedHook }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorExpressionChangedAfterCheckedHook, decorators: [{\n type: Injectable\n }] });\n\nfunction baasTelemetryInterceptor(req, next) {\n const telemetry = inject(BAAS_TELEMETRY);\n const transaction = telemetry.startTransaction(`NG HTTP ${req.method} ${req.url}`, 'ng-http-client');\n const httpSpan = transaction.startSpan('Invoking http call with Angular HttpClient', 'ng-apm-interceptor');\n const end = () => {\n httpSpan?.end();\n transaction.end();\n };\n return next(req).pipe(tap(() => {\n end();\n }), catchError((error) => {\n telemetry.handleError(error);\n end();\n return throwError(() => error);\n }));\n}\n\n// NOTE based on https://gist.github.com/martinobordin/39bb1fe3400a29c1078dec00ff76bba9\nconst ISO_8601_REGEX = /^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(([+-]\\d\\d:\\d\\d)|Z)?$/;\nfunction barDateTimeInterceptor(conversionStrategy) {\n return (req, next) => {\n traverseInput(req.body);\n return next(req).pipe(tap$1((event) => {\n if (event instanceof HttpResponse) {\n const body = event.body;\n traverseOutput(body);\n }\n }));\n };\n function traverseInput(body) {\n traverse(body, (value) => checkDateObject(value), (value) => toISO(value), (body) => traverseInput(body));\n }\n function traverseOutput(body) {\n traverse(body, (value) => isIso8601(value), (value) => parseISO(value), (body) => traverseOutput(body));\n }\n function toISO(value) {\n switch (conversionStrategy) {\n case BarDateTimeConversionStrategy.IsoGmt:\n return value.toISOString();\n default:\n case BarDateTimeConversionStrategy.Iso:\n return convertToISOString(value);\n }\n }\n function traverse(body, matcher, converter, traverser) {\n if (body == null || typeof body !== 'object')\n return;\n if (Array.isArray(body)) {\n for (let i = 0; i < body.length; i++) {\n const value = body[i];\n if (matcher(value)) {\n body[i] = converter(value);\n }\n else if (typeof value === 'object') {\n traverser(value);\n }\n }\n }\n else {\n for (const key of Object.keys(body)) {\n const value = body[key];\n if (matcher(value)) {\n body[key] = converter(value);\n }\n else if (typeof value === 'object') {\n traverser(value);\n }\n }\n }\n }\n function isIso8601(value) {\n if (value === null || value === undefined)\n return false;\n return ISO_8601_REGEX.test(value);\n }\n}\n\nconst BAAS_CORE_I18N = {\n GENERIC_ERROR: 'Er heeft zich een fout voorgedaan',\n INSUFFICIENT_PRIVILEGES_FOR_ACTIE: 'Onvoldoende rechten voor actie \"{{actie}}\" (includeVoorWie: {{includeVoorwie}} - includeHoedanigheid: {{includeHoedanigheid}})',\n ZONES_NOT_ALLOWED: 'Geen toegang voor zone(s): \"{{zones}}\"'\n};\n\nclass BarEmptyComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarEmptyComponent, isStandalone: true, selector: \"bar-empty\", ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEmptyComponent, decorators: [{\n type: Component,\n args: [{ template: '', standalone: true, selector: 'bar-empty' }]\n }] });\n\nconst CORE_ROUTES = [{ path: 'bar-refresh', component: BarEmptyComponent, data: { _framework: true } }, createPageNotFoundRoute('**')];\nclass BaasCoreInitService {\n #injector = inject(Injector);\n #router = inject(Router);\n #i18n = inject(BaasI18n);\n init() {\n baasCoreContext.injector = this.#injector;\n // register nl-BE\n registerLocaleData(localeNlBe, LOCALE.FLEMISH, localeNlBeExtra);\n registerLocaleData(localeNl, LOCALE.DUTCH, localeNlExtra);\n // set up translation system\n this.#i18n.addTranslations('DOMAIN_BAAS_CORE', BAAS_CORE_I18N);\n this.#router.config.push(...CORE_ROUTES);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasCoreInitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasCoreInitService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasCoreInitService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/** Optional feature kind. */\nvar BaasCoreFeatureKind;\n(function (BaasCoreFeatureKind) {\n /** Whether we want date & time interception. */\n BaasCoreFeatureKind[BaasCoreFeatureKind[\"DateTimeInterception\"] = 0] = \"DateTimeInterception\";\n /** Whether we want a full app connected to the BaaS backend. */\n BaasCoreFeatureKind[BaasCoreFeatureKind[\"BaasApp\"] = 1] = \"BaasApp\";\n /** Whether to use i18n features from @lvflanders/bar and connect them to Angular.\n * Note do not use this feature in case the BaaS App feature is used! */\n BaasCoreFeatureKind[BaasCoreFeatureKind[\"I18n\"] = 2] = \"I18n\";\n /** Apm settings. */\n BaasCoreFeatureKind[BaasCoreFeatureKind[\"Apm\"] = 3] = \"Apm\";\n})(BaasCoreFeatureKind || (BaasCoreFeatureKind = {}));\n/** Internal dictionary keeping the order of each enum member */\nconst _BAAS_CORE_FEATURE_ORDER = {\n [BaasCoreFeatureKind.DateTimeInterception]: 0,\n [BaasCoreFeatureKind.BaasApp]: 1,\n [BaasCoreFeatureKind.I18n]: 2,\n [BaasCoreFeatureKind.Apm]: 3\n};\n\n/** Token to resolve BaasCommonApiClient interface. */\nconst BAAS_COMMON_API_CLIENT = new InjectionToken('BaasCommonApiClient token.');\n\n/** Angular APM service. */\nclass _BaasApmService {\n #apmService = inject(ApmService);\n #apm = inject(_BaasApm);\n /** Initializes APM for Angular. */\n observe() {\n // init only observes, APM is normally setup in @lvflanders/bar\n if (this.#apm.active)\n this.#apmService.observe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BaasApmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BaasApmService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BaasApmService, decorators: [{\n type: Injectable\n }] });\n\n/** Hook for setting up Elastic APM. */\nclass BaasApmInitHook {\n constructor() {\n this.#apm = inject(_BaasApmService);\n this._framework = true;\n }\n #apm;\n run() {\n this.#apm.observe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasApmInitHook, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasApmInitHook }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasApmInitHook, decorators: [{\n type: Injectable\n }] });\n\n/** Error handler hooks which uses the error delegate system of @lvflanders/bar. */\nclass BarErrorDelegateHandlerHook {\n #container = inject(Container);\n run(args) {\n if (!this.#container.isBound(BAAS_TYPES.BarErrorDelegate))\n return;\n const delegates = this.#container.getAll(BAAS_TYPES.BarErrorDelegate);\n for (const delegate of delegates) {\n const delegateArgs = {\n handled: false,\n error: args.error\n };\n delegate.handle(delegateArgs);\n if (delegateArgs.handled)\n args.handled = true;\n if (args.handled)\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorDelegateHandlerHook, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorDelegateHandlerHook }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarErrorDelegateHandlerHook, decorators: [{\n type: Injectable\n }] });\n\nclass BarCoreInterceptor {\n #state = inject(BaasAppState);\n #appInfo = inject(_BarAppInfoManager);\n #xdc = inject(_BarXdc);\n #options = inject(BaasBootstrapOptions);\n #baasContextManager = inject(_BaasContextManager);\n #meetpunt = inject(BaasMeetpuntService);\n #logging = inject(BaasLoggingService);\n #localhost = inject(BAR_LOCALHOST);\n #oopsDomService = inject(_OopsDomService);\n constructor() {\n this.#defineGlobal();\n }\n // defines if we handle the forbidden status (combined means we check different parts of the afschakelplan)\n get #handleAuthFailedStatusCombined() {\n // we handle it if defined globally through configuration and if the user didn't turn it off (if we don't have the configuration yet we assume we want to handle: init call)\n return this.#handleAuthFailedStatus && (!this.#state.config || this.#state.config.interception?.handleAuthFailed);\n }\n // gets if we handle the forbidden status based on a global linked to the local storage\n get #handleAuthFailedStatus() {\n let result = true;\n const tmp = window.localStorage.getItem('lvflanders.bar.ng.core.interception.handleAuthFailed');\n if (tmp != null && tmp.length > 0) {\n result = JSON.parse(tmp);\n }\n return result;\n }\n // sets if we handle the forbidden status based on a global linked to the local storage\n set #handleAuthFailedStatus(value) {\n window.localStorage.setItem('lvflanders.bar.ng.core.interception.handleAuthFailed', JSON.stringify(value));\n }\n // defines if we handle the forbidden status (combined means we check different parts of the afschakelplan)\n get #handleForbiddenStatusCombined() {\n // we handle it if defined globally through configuration and if the user didn't turn it off\n return this.#handleForbiddenStatus && this.#state.config?.interception?.handleForbidden;\n }\n // gets if we handle the forbidden status based on a global linked to the local storage\n get #handleForbiddenStatus() {\n let result = true;\n const tmp = window.localStorage.getItem('lvflanders.bar.ng.core.interception.handleForbidden');\n if (tmp != null && tmp.length > 0) {\n result = JSON.parse(tmp);\n }\n return result;\n }\n // sets if we handle the forbidden status based on a global linked to the local storage\n set #handleForbiddenStatus(value) {\n window.localStorage.setItem('lvflanders.bar.ng.core.interception.handleForbidden', JSON.stringify(value));\n }\n intercept(request, next) {\n const ommitInterceptor = request.params instanceof BarHttpParams && request.params.ommitInterceptor;\n if (ommitInterceptor) {\n return next.handle(request);\n }\n else {\n let stopwatch = null;\n // first we need to know if this is a background request, we don't want audit for audit (recursive)\n const backgroundRequest = request.params instanceof BarHttpParams && request.params.backgroundRequest;\n if (!backgroundRequest && this.#meetpunt.loggingEnabled) {\n stopwatch = new BarStopwatch();\n stopwatch.start();\n }\n // determine whether this is a domain request\n const domainRequest = this.#checkDomainRequest(request.url);\n const crossDomainRequest = this.#checkCrossDomainRequest(request.url);\n let promise = null;\n // for domain requests (within same application) or cross domain request, we want to persist the basiscontext or at least sync the cookies if enabled\n if (domainRequest || crossDomainRequest) {\n if (this.#state.basiscontext != null) {\n // before we do the call we make sure the cookie is up to date for the request\n promise = this.#appInfo.persistBasiscontext({\n caller: 'Interceptor',\n url: request.url\n });\n }\n else if (crossDomainRequest && this.#xdc.enabled) {\n promise = this.#xdc.sync({\n caller: 'Interceptor',\n url: request.url\n });\n }\n // clone request\n request = request.clone({\n // needed for localhost cookie sharing\n withCredentials: true,\n headers: this.#defineHeaders(request.headers, domainRequest, crossDomainRequest)\n });\n }\n if (promise != null) {\n // execute promise before proceeding\n // use merge map to be able\n return from(promise).pipe(mergeMap(() => {\n return this.#handleRequest(request, next, stopwatch, domainRequest, crossDomainRequest);\n }));\n }\n else {\n // no promise just proceed\n return this.#handleRequest(request, next, stopwatch, domainRequest, crossDomainRequest);\n }\n }\n }\n #handleRequest(request, next, stopwatch, domainRequest, crossDomainRequest) {\n return next.handle(request).pipe(catchError$1((error) => {\n // 455 custom code authentication engine or authentication handler (in localhost we also want redirect behavior)\n if (this.#handleAuthFailedStatusCombined && !this.#localhost && error.status == 455) {\n this.#handleAuthFailed(error);\n }\n // 403 forbidden (e.g. actie allowed failed) handling, in localhost we don't want to get kicked out of application\n else if (this.#handleForbiddenStatusCombined && !this.#localhost && error.status == 403) {\n this.#handleForbidden(error);\n }\n return throwError(() => error);\n }), \n // tap to execute some non asynchronous code after the request\n tap$1((ev) => {\n if (ev instanceof HttpResponse) {\n if (domainRequest) {\n // get the basiscontext based on cookie and update basiscontext in temp state and page state\n // a request can lead to changed basiscontext\n const basiscontext = this.#appInfo.getBasiscontext();\n const basiscontextKey = 'basiscontext';\n this.#state[basiscontextKey] = basiscontext;\n }\n if (stopwatch != null) {\n // read audit id response headers\n const auditId = ev.headers.get('X-Audit-Id');\n stopwatch.stop();\n this.#meetpunt.log({\n meetpunt: 'INTERCEPTOR',\n meetpuntDetail: extractUrlParts(request.url).pathname,\n waarde: stopwatch.duration,\n meetpuntInfo: request.url,\n auditId: auditId\n });\n }\n }\n }), \n // https://stackoverflow.com/a/52206312/2174621\n // here we execute another observable, but we don't alter the output which is needed by the return parameter of this function (delayWhen doesn't alter result)\n delayWhen((ev) => {\n // execute the sync promise in case it's a httpresponse (otherwise auto resolve)\n return from(ev instanceof HttpResponse && crossDomainRequest\n ? this.#xdc.sync({\n caller: 'Interceptor-End',\n url: request.url\n })\n : Promise.resolve());\n }));\n }\n #defineHeaders(headers, domainRequest, crossDomainRequest) {\n // needed for aspnet core knowing about ajax requests\n headers = headers.set('X-Requested-With', 'XMLHttpRequest');\n let requestToken = null;\n if (domainRequest && !crossDomainRequest && this.#state.localRequestToken != null && this.#xdc.enabled) {\n // local request cookie in case domain request && cross domain cookeis are enabled\n requestToken = this.#state.localRequestToken;\n }\n else if (this.#state.requestToken != null) {\n requestToken = this.#state.requestToken;\n }\n if (requestToken != null) {\n // antiforgery header\n headers = headers.set('X-XSRF-TOKEN', requestToken);\n }\n let auditId = null;\n let auditType = null;\n if (this.#state.routeId != null) {\n auditId = this.#state.routeId;\n auditType = BaasAuditType.Route;\n }\n else if (this.#state.pageId != null) {\n auditId = this.#state.pageId;\n auditType = BaasAuditType.Page;\n }\n else if (this.#state.sessionId != null) {\n auditId = this.#state.sessionId;\n auditType = BaasAuditType.Session;\n }\n if (auditId != null) {\n // set audit id so that audit system can chain everything together\n headers = headers.set('X-Audit-Id', auditId).set('X-Audit-Type', auditType);\n }\n //wimfra: adds baas header to request, when available in sessiondata.\n //this header will have preference to cookies, when being passed\n headers = this.#addBaasHeaders(headers);\n return headers;\n }\n /**pass headers from session storage to call */\n #addBaasHeaders(headers) {\n if (this.#options.auth.contextTransportModus === BaasContextTransportModus.Header &&\n this.#baasContextManager.checkBaasContextInStorage() &&\n !headers.has(_BAAS_SHARED_CONSTANTS.HEADER.BAAS_BACKEND_HEADER)) {\n // (old BAR apps only accept baas.context.backend headers)\n headers = headers.set(_BAAS_SHARED_CONSTANTS.HEADER.BAAS_BACKEND_HEADER, this.#baasContextManager.getBaasContextAsHeaderString());\n }\n if (!headers.has(_BAAS_SHARED_CONSTANTS.HEADER.BAAS_BROWSER_CALLSTACK)) {\n const callStack = [\n {\n userId: this.#state.basiscontext?.userId,\n appCode: this.#state.toepassing?.code\n }\n ];\n const headerValue = JSON.stringify(callStack);\n headers = headers.set(_BAAS_SHARED_CONSTANTS.HEADER.BAAS_BROWSER_CALLSTACK, headerValue);\n }\n return headers;\n }\n #checkDomainRequest(url) {\n return (!checkUrlAbsolute(url) ||\n url.indexOf('localhost') > -1 ||\n url.startsWith(document.location.origin) ||\n _checkCompatibleOrigin(url, this.#options.compatibleOrigins));\n }\n /* check if this is a cross domain request\n rules:\n - xdc must be enabled (localhost, not production...)\n - we must be doing a call to the release domain (which is not localhost)\n */\n #checkCrossDomainRequest(url) {\n const result = false;\n if (this.#localhost) {\n // get the parts of the url being invoked by http\n const invokedUrlParts = extractUrlParts(url);\n // do the check if this is really a cross domain check (http call to origin of cross domain && cross domain is not localhost)\n return invokedUrlParts.origin == this.#state.location.release.origin && this.#state.location.release.hostname != 'localhost';\n }\n return result;\n }\n #handleAuthFailed(error) {\n this.#performExtraLogging('Auth Failed (455)', error.url, 'Performing log off.');\n this.#oopsDomService.showOops({ type: _OopsType.Authentication });\n }\n #handleForbidden(error) {\n this.#performExtraLogging('Forbidden (403)', error.url, 'Navigating to insufficient privileges page.');\n window.location.href = this.#state.location.baasStatic.url + BAR_CORE_CONSTANTS.PAGES.INSUFFICIENT_PRIVILEGES;\n }\n /** Define global variables related to interception */\n #defineGlobal() {\n // make sure the state is available globally for non Angular code\n const interception = ensureGlobal('lvflanders.bar.ng.core.interception');\n // here we define a global property to be used to turn on/off the fact that we handle auth failed responses\n Object.defineProperty(interception, 'handleAuthFailed', {\n set: (value) => {\n this.#handleAuthFailedStatus = value;\n },\n get: () => {\n return this.#handleAuthFailedStatus;\n },\n configurable: true\n });\n // here we define a global property to be used to turn on/off the fact that we handle auth failed responses\n Object.defineProperty(interception, 'handleForbidden', {\n set: (value) => {\n this.#handleForbiddenStatus = value;\n },\n get: () => {\n return this.#handleForbiddenStatus;\n },\n configurable: true\n });\n }\n #performExtraLogging(action, url, comment) {\n let message = `[BarCoreInterceptor] ${action} - ${url}`;\n if (comment)\n message += ` - ${comment}`;\n if (this.#state?.basiscontext)\n message += ` - context: ${JSON.stringify(this.#state?.basiscontext)}`;\n this.#logging.warn({ message });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarCoreInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarCoreInterceptor }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarCoreInterceptor, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\n/** Angular service holding reactive state (signals) regarding the application.*/\nclass BaasCoreStateService {\n constructor() {\n this.#state = inject(_BarCoreStateService);\n this.basiscontext = this.#state.basiscontext.asReadonly();\n this.meldingen = this.#state.meldingen.asReadonly();\n }\n #state;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasCoreStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasCoreStateService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasCoreStateService, decorators: [{\n type: Injectable\n }] });\n/** @deprecated Will be renamed with next major.\n Internal service which holds state of the BAR Angular core module within the single page.\n With this in place we can access the state anywhere.\n */\n// NOTE not a model because injectable provider and not a service because it only holds state\nclass _BarCoreStateService {\n #coreService;\n constructor() {\n this.#coreService = inject(BarCoreService);\n /** Meldingen set by the BarMeldingGuard */\n this.meldingen = signal(undefined);\n this.basiscontext = signal(undefined);\n this.#coreService.basiscontextChanged.pipe(takeUntilDestroyed()).subscribe((basiscontext) => this.basiscontext.set(basiscontext));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarCoreStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarCoreStateService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarCoreStateService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\nclass BarMeldingenEngine {\n #state = inject(BaasAppState);\n #coreState = inject(_BarCoreStateService);\n #meldingService = inject(BaasMeldingService);\n /** Retrieves and processes the meldinen. Returns true in case the route is available (meaning no blocking meldingen). */\n async retrieveAndProcess(routeUrl) {\n const pathnameEndsWithSlash = this.#state.location.app.pathname.endsWith('/');\n const url = `${this.#state.location.app.pathname}${pathnameEndsWithSlash ? routeUrl.substring(1) : routeUrl}`;\n let meldingen;\n try {\n meldingen = await this.#meldingService.getMeldingen(url);\n }\n catch (err) {\n meldingen = [];\n }\n let onbeschikbaarMelding = null;\n if (meldingen && meldingen.length) {\n // Parse DTO to our model\n const parsedMeldingen = meldingen.map((m) => new BarMelding().convert(m));\n // Find melding of type onbeschikbaar\n onbeschikbaarMelding = parsedMeldingen.find((m) => m.meldingType === BarMeldingType.Onbeschikbaar);\n // If melding of type onbeschikbaar has been found, redirect to onbeschikbaar page\n if (onbeschikbaarMelding) {\n this.#handleOnbeschikbaar(onbeschikbaarMelding);\n }\n else {\n // Set meldingen on layout\n this.#coreState.meldingen.set(parsedMeldingen);\n }\n }\n else {\n this.#coreState.meldingen.set([]);\n }\n return onbeschikbaarMelding == null;\n }\n #handleOnbeschikbaar(melding) {\n const meldingKey = `${BAR_CORE_CONSTANTS.STORAGE_KEY_PREFIX}melding_${melding.id}`;\n // store melding content in session storage\n window.sessionStorage.setItem(meldingKey, JSON.stringify(melding));\n // redirect to onbeschikbaar pagina which will ready the melding to show from the session storage (and clean it up)\n window.location.href = `${this.#state.location.baasStatic.url}${BAR_CORE_CONSTANTS.PAGES.ONBESCHIKBAAR}/${melding.id}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMeldingenEngine, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMeldingenEngine }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMeldingenEngine, decorators: [{\n type: Injectable\n }] });\n\nfunction barMeldingGuard() {\n return (route, state) => {\n if (!route.routeConfig?.component)\n return true;\n const meldingEngine = inject(BarMeldingenEngine);\n return meldingEngine.retrieveAndProcess(state.url);\n };\n}\n\n// internal key in app store\nconst KEY_ENDPOINTS = '_endpoints';\n/** Internal class logging all routes of the app. */\nclass _BarRouteLogger {\n #api = inject(BAAS_COMMON_API_CLIENT);\n #localhost = inject(BAR_LOCALHOST);\n #router = inject(Router);\n #state = inject(BaasAppState);\n #appStore = inject(BarCacheStore);\n #loggedEndpoints$$ = new BehaviorSubject(undefined);\n #destroyRef = inject(DestroyRef);\n ngOnDestroy() {\n this.#loggedEndpoints$$.complete();\n }\n init() {\n // behavior must be turned on and not in localhost modus\n const enabled = this.#state.config.baasStatic?.general?.endpointLoggingEnabled && !this.#localhost;\n if (!enabled)\n return;\n this.#router.events\n .pipe(filter((val) => val instanceof NavigationEnd), switchMap(() => {\n // Check if data is available in the BehaviorSubject, otherwise, fetch from appStore\n // NOTE this is to avoid having to access indexed db too much\n if (this.#loggedEndpoints$$.getValue() === undefined) {\n // also get the already logged endpoints from the storage\n return from(this.#appStore.getItem(KEY_ENDPOINTS)).pipe(tap((endpoints) => {\n // Cache the fetched endpoints in the BehaviorSubject\n this.#loggedEndpoints$$.next(endpoints);\n }));\n }\n else {\n return this.#loggedEndpoints$$.asObservable(); // Use cached data\n }\n }), map((loggedEndpoints) => {\n if (!loggedEndpoints)\n loggedEndpoints = [];\n const endpointsToLog = [];\n this.#collect(this.#router.config, endpointsToLog, loggedEndpoints);\n return { endpoints: endpointsToLog, loggedEndpoints };\n }), filter((result) => result.endpoints.length > 0), mergeMap$1((result) => {\n const remember$ = from(this.#appStore.setItem(KEY_ENDPOINTS, result.loggedEndpoints.concat(result.endpoints)));\n return forkJoin([from(this.#api.saveEndpoints(this.#state.toepassing.code, this.#state.toepassing.versie, result.endpoints)), remember$]);\n }), takeUntilDestroyed(this.#destroyRef))\n .subscribe();\n }\n #collect(routes, endpointsToLog, loggedEndpoints, parentPath = undefined) {\n routes\n // don't collect framework routes\n .filter((route) => !route.data?._framework)\n .forEach((route) => {\n const fullPath = parentPath ? concatUrl(parentPath, route.path) : route.path;\n if (route.loadChildren) {\n // check that lazy loaded module has already been loaded\n if (route._loadedRoutes) {\n // lazy loaded module, traverse the children\n this.#collect(route._loadedRoutes, endpointsToLog, loggedEndpoints, fullPath);\n }\n }\n else {\n if (route.children?.length > 0) {\n // this is a parent route, so traverse the children\n this.#collect(route.children, endpointsToLog, loggedEndpoints, fullPath);\n }\n // define whether it is an end route\n const endRoute = route.component || route.loadComponent || route.redirectTo;\n // real route should have a component (but can still be a parent route)\n if (!route._baasHandled && endRoute) {\n const path = concatUrl(this.#state.location.appRoot.pathname, fullPath);\n // chech that it has not been logged yet\n if (loggedEndpoints.indexOf(path) == -1) {\n // regular route, just log in case not handled yet\n endpointsToLog.push(path);\n }\n // mark as handled in case leaf route\n // note that a parent route could always have lazy loaded modules which have not been loaded yet\n route._baasHandled = true;\n }\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarRouteLogger, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarRouteLogger }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarRouteLogger, decorators: [{\n type: Injectable\n }] });\n\n/** Public BAR (initialization) service */\nclass BarStartupService {\n #injector = inject(Injector);\n #audit = inject(BaasAuditService);\n #state = inject(BaasAppState);\n #meetpunt = inject(BaasMeetpuntService);\n #initializedHooks = inject(BAR_INITIALIZED, { optional: true });\n #toepassing = inject(BaasToepassingService);\n #routeLogger = inject(_BarRouteLogger);\n #coreState = inject(_BarCoreStateService);\n #meldingEngine = inject(BarMeldingenEngine);\n #zone = inject(NgZone);\n #error = inject(ErrorHandler);\n #telemetry = inject(BAAS_TELEMETRY);\n #stopwatch;\n #telemetryGlobalSpan;\n // avoid cyclic DI error\n get #router() {\n return this.#injector.get(Router);\n }\n constructor() {\n // here we put some global stuff\n const core = ensureGlobal('lvflanders.bar.ng.core');\n // make global variable to handle the error from outside Angular\n core.handleError = (error) => {\n // run back in Angular zone from outside Angular\n this.#zone.run(() => {\n // invoke error routine\n this.#error.handleError(error);\n });\n };\n // handled unhanded errors with promises\n window.onunhandledrejection = (event) => this.#zone.run(() => {\n this.#error.handleError(event.reason);\n });\n }\n async load() {\n if (this.#telemetry.currentTransaction) {\n this.#telemetryGlobalSpan = this.#telemetry.currentTransaction.startSpan('Angular startup process (post @lvflanders/bar bootstrap)', 'ng-startup-process');\n }\n this.#coreState.basiscontext.set(this.#state.basiscontext);\n // init logging of routes\n this.#routeLogger.init();\n this.#enhanceRouting();\n // meldingen and audit stuff bound to routing\n this.#bindRouterEvents();\n // here we put some global stuff\n const core = ensureGlobal('lvflanders.bar.ng.core');\n // make sure the state is available globally for non Angular code\n core.state = this.#state;\n // put the toepassing service on global scope to open it up for outside user (such as puppeteer and web accessibility)\n core.toepassing = this.#toepassing;\n return lastValueFrom(this.#initialized());\n }\n /** Invoked when BAR is initialized. */\n #initialized() {\n const end = () => {\n if (this.#telemetryGlobalSpan)\n this.#telemetryGlobalSpan.end();\n };\n if (this.#initializedHooks != null) {\n return this.#executeInitializedHooks().pipe(tap$1(() => end()));\n }\n else {\n end();\n return of(undefined);\n }\n }\n #executeInitializedHooks() {\n const hookComparer = (a, b) => {\n // first let _framework internal property take precedence\n if (a._framework && !b._framework)\n return -1;\n if (!a._framework && b._framework)\n return 1;\n // second take into account the order\n if (a.order == null && b.order == null)\n return 0;\n if (a.order != null && b.order == null)\n return -1;\n if (a.order == null && b.order != null)\n return 1;\n if (a.order < b.order)\n return -1;\n if (a.order > b.order)\n return 1;\n return 0;\n };\n // sort the hooks by order, if no order it goes in the back of the list\n const sortedHooks = this.#initializedHooks.sort(hookComparer);\n let result$ = null;\n // NOTE concat didn't seem to work and forkJoin doesn't preserve the order\n // ensure everything is ran sequentially by modifying the observable till we reach the end of the array\n for (let i = 0; i < sortedHooks.length; i++) {\n const hookOutput$ = sortedHooks[i].run() || of(undefined);\n if (!result$)\n result$ = hookOutput$;\n else\n result$ = result$.pipe(mergeMap(() => hookOutput$));\n }\n return result$;\n }\n #bindRouterEvents() {\n // here we measure the routing time\n this.#router.events.subscribe(async (val) => {\n // on navigation start we start the stopwatch\n if (val instanceof NavigationStart) {\n // first reset the meldingen\n this.#coreState.meldingen.set(undefined);\n if (this.#stopwatch != null) {\n this.#stopwatch.start();\n }\n }\n // on navigation end or error we stop the stopwatch\n else if (val instanceof NavigationEnd) {\n // meldingen are still undefined, meaning there was no meldingen guard, retrieve meldingen\n if (this.#coreState.meldingen() === undefined)\n await this.#retrieveMeldingen(val.urlAfterRedirects || val.url);\n this.#endRouteWatch(val, 'ROUTER_NAVIGATION_END');\n }\n else if (val instanceof NavigationError) {\n this.#endRouteWatch(val, 'ROUTER_NAVIGATION_END');\n }\n });\n }\n #endRouteWatch(val, meetpunt) {\n // generate the route id\n const routeIdKey = 'routeId';\n this.#state[routeIdKey] = generateUuid();\n // audit this\n const audit = {\n auditId: this.#state.routeId,\n parentAuditId: this.#state.pageId,\n auditType: BaasAuditType.Route,\n details: {\n ROUTE: val.url,\n // also log the URL for completeness\n URL: document.location.href\n }\n };\n this.#audit.log(audit);\n _addAuditInfoOnDocument(audit);\n // do it in timeout so we executed meetpunt after (more accurate measurement)\n window.setTimeout(() => {\n // if no stopwatch it means meetpunten is not enabled\n if (this.#stopwatch != null) {\n this.#stopwatch.stop();\n this.#meetpunt.log({\n meetpunt,\n meetpuntDetail: val.url,\n waarde: this.#stopwatch.duration,\n meetpuntInfo: val.url,\n auditId: this.#state.routeId\n });\n }\n }, 0);\n }\n /** Enhances routing of application by adding guards where needed. */\n #enhanceRouting() {\n if (this.#router.config) {\n this.#router.config\n // do not handle framework routes\n .filter((route) => route.data?._framework !== true)\n .forEach((route) => {\n if (route.children || route.loadChildren) {\n if (!route.canActivateChild)\n route.canActivateChild = [];\n route.canActivateChild.push(barMeldingGuard());\n }\n else if (route.component) {\n if (!route.canActivate)\n route.canActivate = [];\n route.canActivate.push(barMeldingGuard());\n }\n });\n }\n }\n async #retrieveMeldingen(routeUrl) {\n await this.#meldingEngine.retrieveAndProcess(routeUrl);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarStartupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarStartupService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarStartupService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\n// next will be called at application startup\nfunction startupServiceFactory(startup) {\n // AOT-proof setup: https://github.com/angular/angular-cli/issues/5158\n const fn = () => startup.load();\n return fn;\n}\n/** Creates a factory which makes the bridge between non-angular @lvflanders/bar (InversifyJS) and Angular @lvflanders/bar-ng. */\nfunction createBarContainerBridgeFactory(serviceIdentifier, container) {\n const result = () => container.get(serviceIdentifier);\n return result;\n}\nfunction createDefaultCacheStoreFactory(container, cacheStoreType) {\n const result = () => container.getTagged(BarCacheStore, BAAS_METADATA_KEY.CACHE_STORE_TYPE_TAG, cacheStoreType);\n return result;\n}\nfunction userCacheStoreFactory(cacheManager, coreState) {\n // use lambda for user id because it can change over the lifetime of this application\n return cacheManager.getStore({\n storeType: BarCacheStoreType.User,\n userId: coreState.basiscontext.userId\n });\n}\nfunction meldingenCacheStoreFactory(cacheManager) {\n return cacheManager.getStore({ storeType: BarCacheStoreType.Global, store: 'meldingen' });\n}\nfunction notificationManagerFactory() {\n return new BarNotificationManager();\n}\nfunction defineAppProviders(container) {\n return [\n {\n provide: Container,\n useValue: container\n },\n {\n provide: BaasLoggingService,\n useFactory: createBarContainerBridgeFactory(BaasLoggingService, container)\n },\n // here we register our interceptor\n {\n provide: HTTP_INTERCEPTORS,\n useClass: BarCoreInterceptor,\n multi: true\n },\n // next registration is the BAR service used at startup\n BarStartupService,\n {\n provide: APP_INITIALIZER,\n useFactory: startupServiceFactory,\n deps: [BarStartupService],\n multi: true\n },\n {\n provide: BaasAuthService,\n useFactory: createBarContainerBridgeFactory(BaasAuthService, container)\n },\n {\n provide: BaasAppState,\n useFactory: createBarContainerBridgeFactory(BaasAppState, container)\n },\n _BarCoreStateService,\n BaasCoreStateService,\n {\n provide: _BarAppInfoManager,\n useFactory: createBarContainerBridgeFactory(_BarAppInfoManager, container)\n },\n {\n provide: _BaasContextManager,\n useFactory: createBarContainerBridgeFactory(_BaasContextManager, container)\n },\n {\n provide: BaasAuditService,\n useFactory: createBarContainerBridgeFactory(BaasAuditService, container)\n },\n {\n provide: BaasToepassingService,\n useFactory: createBarContainerBridgeFactory(BaasToepassingService, container)\n },\n {\n provide: BaasSecurityService,\n useFactory: createBarContainerBridgeFactory(BaasSecurityService, container)\n },\n {\n provide: _BaasProfielService,\n useFactory: createBarContainerBridgeFactory(_BaasProfielService, container)\n },\n {\n provide: BaasConfigurationService,\n useFactory: createBarContainerBridgeFactory(BaasConfigurationService, container)\n },\n {\n provide: BaasMeetpuntService,\n useFactory: createBarContainerBridgeFactory(BaasMeetpuntService, container)\n },\n {\n provide: _BarXdc,\n useFactory: createBarContainerBridgeFactory(_BarXdc, container)\n },\n {\n provide: BaasMeldingService,\n useFactory: createBarContainerBridgeFactory(BaasMeldingService, container)\n },\n BarMeldingenEngine,\n // NOTE still used by @lvflanders/startscherm-ng-ui\n {\n provide: BarIdpClient,\n useFactory: createBarContainerBridgeFactory(BarIdpClient, container)\n },\n {\n provide: BarCacheManager,\n useFactory: createBarContainerBridgeFactory(BarCacheManager, container)\n },\n {\n provide: BarNotificationManager,\n useFactory: notificationManagerFactory\n },\n {\n // inject default cache store which is for the current app\n provide: BarCacheStore,\n useFactory: createDefaultCacheStoreFactory(container, BarCacheStoreType.Application),\n deps: [BarCacheManager]\n },\n {\n // inject current app cache\n provide: BAR_APP_CACHE,\n useFactory: createDefaultCacheStoreFactory(container, BarCacheStoreType.Application),\n deps: [BarCacheManager]\n },\n {\n // inject the user cache\n provide: BAR_USER_CACHE,\n useFactory: userCacheStoreFactory,\n deps: [BarCacheManager, BaasAppState]\n },\n {\n // inject the global cache\n provide: BAR_GLOBAL_CACHE,\n useFactory: createDefaultCacheStoreFactory(container, BarCacheStoreType.Global),\n deps: [BarCacheManager]\n },\n {\n provide: BAR_MELDINGEN_CACHE,\n useFactory: meldingenCacheStoreFactory,\n deps: [BarCacheManager]\n },\n // bridge to link the GVK state to the @lvflanders/bar-ng state\n {\n provide: BarGvkManager,\n useFactory: createBarContainerBridgeFactory(BarGvkManager, container)\n },\n {\n provide: BaasI18n,\n useFactory: createBarContainerBridgeFactory(BaasI18n, container)\n },\n {\n provide: BaasBootstrapOptions,\n useFactory: createBarContainerBridgeFactory(BaasBootstrapOptions, container)\n },\n _BarRouteLogger,\n {\n // NOTE Angular doesn't like symbols for ioc, can lead to strange errors in CDN modus\n provide: BAAS_COMMON_API_CLIENT,\n useFactory: createBarContainerBridgeFactory(BAAS_TYPES.BaasCommonApiClient, container)\n },\n {\n provide: _BaasStaticConfigurationApiClient,\n useFactory: createBarContainerBridgeFactory(_BaasStaticConfigurationApiClient, container)\n },\n {\n provide: _OopsDomService,\n useFactory: createBarContainerBridgeFactory(_OopsDomService, container)\n },\n {\n provide: BAR_LOCALHOST,\n useFactory: (options) => options.localhost,\n deps: [BaasBootstrapOptions]\n },\n // NOTE this makes the link with non angular error delegates (e.g. gismap)\n {\n provide: BAR_ERROR_HANDLER,\n useClass: BarErrorDelegateHandlerHook,\n multi: true\n },\n ...defineApmProviders(container)\n ];\n}\nfunction defineApmProviders(container) {\n const apm = container.get(_BaasApm);\n return [\n {\n provide: BAAS_TELEMETRY,\n useFactory: createBarContainerBridgeFactory(BAAS_TYPES.BaasTelemetry, container)\n },\n { provide: APM, useValue: apm.apm },\n {\n provide: _BaasApm,\n useFactory: createBarContainerBridgeFactory(_BaasApm, container)\n },\n _BaasApmService,\n ApmService,\n {\n provide: BAR_INITIALIZED,\n useClass: BaasApmInitHook,\n multi: true\n }\n ];\n}\n\n// next is needed for case insensitive routing (added as provider in the forRoot method)\nclass LowerCaseUrlSerializer extends DefaultUrlSerializer {\n parse(url) {\n const urlTree = super.parse(url);\n this.#lowerCaseSegments(urlTree.root);\n return urlTree;\n }\n // https://stackoverflow.com/a/70879670\n #lowerCaseSegments(urlSegmentGroup) {\n if (urlSegmentGroup.hasChildren()) {\n Object.entries(urlSegmentGroup.children).forEach(([key, value]) => this.#lowerCaseSegments(value));\n }\n urlSegmentGroup.segments.forEach((segment) => (segment.path = segment.path.toLowerCase()));\n }\n}\n/** Provides the default configuration and providers for BaaS. */\nfunction provideBaasCore(...features) {\n if (!features)\n features = [];\n // Providing services for the features sort by feature kind,\n // the order is important to avoid overriding providers by default providers\n // Sort the features based on the custom order\n features = features.sort((a, b) => {\n const orderA = _BAAS_CORE_FEATURE_ORDER[a.kind] ?? Number.MAX_VALUE; // Default to MAX_VALUE if not found\n const orderB = _BAAS_CORE_FEATURE_ORDER[b.kind] ?? Number.MAX_VALUE;\n return orderA - orderB;\n });\n // default providers\n const providers = [\n { provide: LOCALE_ID, useValue: LOCALE.FLEMISH },\n {\n provide: UrlSerializer,\n // routing needs to work case insensitive\n useClass: LowerCaseUrlSerializer\n },\n Location,\n {\n provide: LocationStrategy,\n useClass: PathLocationStrategy\n },\n {\n provide: ErrorHandler,\n useClass: BarErrorHandler\n },\n {\n provide: BAR_ERROR_HANDLER,\n useClass: BarErrorExpressionChangedAfterCheckedHook,\n multi: true\n },\n {\n provide: BAR_ERROR_HANDLER,\n useClass: BarErrorChunkLoadFailedHook,\n multi: true\n },\n {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => inject(BaasCoreInitService).init()\n },\n features.map((feature) => feature.providers)\n ];\n return makeEnvironmentProviders(providers);\n}\n/** @deprecated Use \\@lvflanders/bar BaasBootstrapOptions.telemetry instead. This is not used anymore and doesn't do anything.\n * Angular options for APM. */\nfunction withApm(options) {\n return {\n kind: BaasCoreFeatureKind.Apm,\n providers: [\n {\n provide: BAAS_APM_CONFIG,\n useValue: options\n }\n ]\n };\n}\nfunction withDateTimeInterception(conversionStrategy = BarDateTimeConversionStrategy.Iso) {\n return {\n kind: BaasCoreFeatureKind.DateTimeInterception,\n providers: [provideHttpClient(withInterceptors([barDateTimeInterceptor(conversionStrategy)]))]\n };\n}\n/** Provides the BaaS App providers which is statefull and invokes a backend api. */\nfunction withBaasAppBehavior(appInstance) {\n return {\n kind: BaasCoreFeatureKind.BaasApp,\n providers: [\n // add the interceptors\n provideHttpClient(withInterceptors([baasTelemetryInterceptor]), withInterceptorsFromDi()),\n // in case connected we need to add extra providers\n ...defineAppProviders(appInstance.container)\n ]\n };\n}\n/** Whether the i18n features from \\@lvflanders/bar should be integrated. Don't combine this with the function withBaasAppBehavior.*/\nfunction withI18n(options = {}) {\n const i18n = new BaasI18n(options);\n return {\n kind: BaasCoreFeatureKind.I18n,\n providers: [{ provide: BaasI18n, useValue: i18n }]\n };\n}\n\n/** Internal class around window object for use within Angular context. */\nclass _BaasWindow {\n #ngZone = inject(NgZone);\n /** Sets a timeout on the window object outside angular to avoid change detection cycles because of zonejs. */\n setTimeoutOutsideAngular(handler, timeout) {\n return new Promise((resolve) => {\n this.#ngZone.runOutsideAngular(() => {\n const result = window.setTimeout(handler, timeout);\n resolve(result);\n });\n });\n }\n setIntervalOutsideAngular(handler, timeout) {\n return new Promise((resolve) => {\n this.#ngZone.runOutsideAngular(() => {\n const result = window.setInterval(handler, timeout);\n resolve(result);\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BaasWindow, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BaasWindow, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BaasWindow, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass BaasFileService {\n #http = inject(HttpClient);\n /** Downloads a file through http and saves it.\n * For the filename you might have to add a header in the aspnet core action like so: Response.Headers[\"Access-Control-Expose-Headers\"] = new StringValues(\"Content-Disposition\");\n * Otherwise the JS/Angular code might not be able to read the filename from the headers (cors).\n */\n async download(\n /** Url of file (action).*/ url, \n /* Optional client-side filename. By default an attempt is done to read the server-side filename. */ filename = undefined) {\n const response = await lastValueFrom(this.#http.get(url, { observe: 'response', responseType: 'blob' }));\n if (!response.body || response.body.size === 0) {\n console.warn('No data returned from server');\n return;\n }\n if (!filename) {\n filename = response.headers.get('content-disposition')?.split('filename=')[1]?.split(';')[0];\n // trim quotes to avoid files starting and ending with _\n filename = filename?.replace(/^\"|\"$/g, '');\n }\n saveAs(response.body, filename);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasFileService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasFileService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/** Creates a validator which compares the given control to another control with a comparison type in case both controls are filled in.\n The error key is the comparison type.\n */\nfunction createComparisonValidator(otherControl, comparison) {\n return (control) => {\n const otherValue = otherControl.value;\n if (control.value && otherValue) {\n switch (comparison) {\n case 'equal': {\n if (control.value != otherValue)\n return { equal: true };\n break;\n }\n case 'larger': {\n if (control.value <= otherValue)\n return { larger: true };\n break;\n }\n case 'largerOrEqual': {\n if (control.value < otherValue)\n return { largerOrEqual: true };\n break;\n }\n case 'smaller': {\n if (control.value >= otherValue)\n return { smaller: true };\n break;\n }\n case 'smallerOrEqual': {\n if (control.value > otherValue)\n return { smallerOrEqual: true };\n break;\n }\n default:\n return null;\n }\n }\n return null;\n };\n}\n/** @experimental Creates a validator which compares the given date control to another date control with a comparison type in case both controls are filled in.\n Date-fns is used internally.\n The error key is the comparison type.\n */\nfunction createDateComparisonValidator(otherControl, comparison) {\n return (control) => {\n const otherValue = otherControl?.value;\n if (control?.value && otherValue) {\n switch (comparison) {\n case 'equal': {\n if (!isEqual(control.value, otherValue))\n return { equal: true };\n break;\n }\n case 'larger': {\n if (!isAfter(control.value, otherValue))\n return { larger: true };\n break;\n }\n case 'largerOrEqual': {\n if (isBefore(control.value, otherValue))\n return { largerOrEqual: true };\n break;\n }\n case 'smaller': {\n if (!isBefore(control.value, otherValue))\n return { smaller: true };\n break;\n }\n case 'smallerOrEqual': {\n if (isAfter(control.value, otherValue))\n return { smallerOrEqual: true };\n break;\n }\n default:\n return null;\n }\n }\n return null;\n };\n}\n\n// Public functions\n/** Creates a validator with a given error key and callback to check for validity. */\nfunction createGenericValidator(errorKey, checkValid) {\n return (control) => {\n const valid = checkValid(control);\n if (valid)\n return null;\n else {\n const result = {};\n result[errorKey] = { value: control.value };\n return result;\n }\n };\n}\nfunction checkTruthy(value, truthyCheckMode) {\n switch (truthyCheckMode) {\n case 'truthy':\n return value; // Default truthy check\n case 'notNullOrUndefined':\n return value !== null && value !== undefined;\n case 'notNull':\n return value !== null;\n case 'notUndefined':\n return value !== undefined;\n }\n}\n/** Creates a validators where the given control value is required in case a given condition is true. */\nfunction createRequiredIfValidator(ifCondition, truthyCheckMode = 'truthy') {\n const checkValid = (control) => {\n return !ifCondition(control) || checkTruthy(control?.value, truthyCheckMode);\n };\n return createGenericValidator('required', checkValid);\n}\n/** Creates a validators where the given control value must be larger than the value of another given control. */\nfunction createGreaterThanControlValidator(otherControl) {\n return createCompareControlValidator('greaterThan', otherControl, (value, otherValue) => value > otherValue);\n}\n/** Creates a validators where the given control value must be larger than or equal to the value of another given control. */\nfunction createGreaterThanOrEqualControlValidator(otherControl) {\n return createCompareControlValidator('greaterThanOrEqual', otherControl, (value, otherValue) => value >= otherValue);\n}\n/** Creates a validators where the given control value must be smaller than the value of another given control. */\nfunction createSmallerThanControlValidator(otherControl) {\n return createCompareControlValidator('smallerThan', otherControl, (value, otherValue) => value < otherValue);\n}\n/** Creates a validators where the given control value must be smaller than or equal the value of another given control. */\nfunction createSmallerThanOrEqualControlValidator(otherControl) {\n return createCompareControlValidator('smallerThanOrEqual', otherControl, (value, otherValue) => value <= otherValue);\n}\n// Facade\n// NOTE inspired by Validators class from @angular\n/** BAR reactive forms validators. */\nclass BarValidators {\n /** Creates a validators where the given control value is required in case a given condition is true. */\n static requiredIf(ifCondition, truthyCheckMode = 'truthy') {\n return createRequiredIfValidator(ifCondition, truthyCheckMode);\n }\n /** Creates a validators where the given control value must be larger than the value of another given control. */\n static greaterThanControl(otherControl) {\n return createGreaterThanControlValidator(otherControl);\n }\n /** Creates a validators where the given control value must be larger than or equal to the value of another given control. */\n static greaterThanOrEqualControl(otherControl) {\n return createGreaterThanOrEqualControlValidator(otherControl);\n }\n /** Creates a validators where the given control value must be smaller than the value of another given control. */\n static smallerThanControl(otherControl) {\n return createSmallerThanControlValidator(otherControl);\n }\n /** Creates a validators where the given control value must be smaller than or equal the value of another given control. */\n static smallerThanOrEqualControl(otherControl) {\n return createSmallerThanOrEqualControlValidator(otherControl);\n }\n /** @experimental Creates a validators where the given control date value is compared to to another typed date control using date-fns. */\n static dateComparison(otherControl, comparison) {\n return createDateComparisonValidator(otherControl, comparison);\n }\n /** Creates a validators where the given control value is compared to to another control. */\n static comparison(otherControl, comparison) {\n return createComparisonValidator(otherControl, comparison);\n }\n}\n// Private functions\nfunction controlValueDefined(control) {\n return control?.value != null;\n}\nfunction createCompareControlValidator(errorKey, otherControl, comparisonCondition) {\n return createGenericValidator(errorKey, (control) => {\n // both control values must be defined in able to perform the condition (otherwise it is considered value)\n return !controlValueDefined(control) || !controlValueDefined(otherControl) || comparisonCondition(control.value, otherControl.value);\n });\n}\n\n/*\n * Public API Surface of @lvflanders/bar-ng\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BAAS_APM_CONFIG, BAAS_TELEMETRY, BAR_APP_CACHE, BAR_ERROR_HANDLER, BAR_GLOBAL_CACHE, BAR_INITIALIZED, BAR_LOCALHOST, BAR_MELDINGEN_CACHE, BAR_USER_CACHE, BaasCoreStateService, BaasFileService, BarActieFromContext, BarActionDef, BarCacheable, BarCacheableOptions, BarCoreService, BarDateTimeConversionStrategy, BarHttpParams, BarMeetpunt, BarMelding, BarMeldingType, BarRoutingService, BarValidators, _BaasWindow, _BarCoreStateService, barActieAllowedGuard, barAuthGuard, barZoneGuard, convertToHttpParams, createComparisonValidator, createDateComparisonValidator, createDefaultBaseHrefFactory, createGenericValidator, createGreaterThanControlValidator, createGreaterThanOrEqualControlValidator, createPageNotFoundRoute, createRequiredIfValidator, createSmallerThanControlValidator, createSmallerThanOrEqualControlValidator, provideBaasCore, resolveSignalValue, resolveValue$, withApm, withBaasAppBehavior, withDateTimeInterception, withI18n };\n//# sourceMappingURL=lvflanders-bar-ng.mjs.map\n","import * as lvFlandersBarNgCore from '../dist/@lvflanders/bar-ng';\r\n\r\n// global glue variable for externals\r\nif (window['lvflanders'] == null) window['lvflanders'] = {};\r\nif (window['lvflanders'].bar == null) window['lvflanders'].bar = {};\r\nif (window['lvflanders'].bar.ng == null) window['lvflanders'].bar.ng = {};\r\n\r\nwindow['lvflanders'].bar.ng.core = lvFlandersBarNgCore;\r\n\r\nexport { lvFlandersBarNgCore };"],"names":["leafPrototypes","getProto","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","Object","getPrototypeOf","obj","t","value","mode","this","__esModule","then","ns","create","r","def","current","indexOf","getOwnPropertyNames","forEach","key","d","definition","o","defineProperty","enumerable","get","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","ng","core","rxjs","lvflanders","bar","shared","common","http","router","window","operators","locales","extra","nl","nlBe","APM","InjectionToken","ApmModule","minVersion","version","ngImport","type","deps","target","NgModule","imports","RouterModule","providers","provide","useValue","apm","decorators","args","ApmService","constructor","ngZone","init","config","apmInstance","runOutsideAngular","isActive","observe","transaction","events","subscribe","event","eventName","toString","name","url","startTransaction","managed","canReuse","detectFinish","route","routerState","root","firstChild","child","path","routeConfig","currentPath","afterFrame","token","Injectable","providedIn","ctorParameters","Inject","ApmErrorHandler","ErrorHandler","super","handleError","error","captureError","originalError","inversify","rxjsInterop","BAR_GLOBAL_CACHE","BAR_USER_CACHE","BAR_APP_CACHE","BAR_MELDINGEN_CACHE","BAR_INITIALIZED","BAR_ERROR_HANDLER","BAR_LOCALHOST","BAAS_APM_CONFIG","BAAS_TELEMETRY","baasCoreContext","injector","BarCacheable","options","descriptor","originalMethod","className","cacheKeyPrefix","paramNames","getParamNames","cacheKey","length","JSON","stringify","result","i","defineCacheKey","cacheStore","store","BarCacheManager","getStore","BarCacheStore","promise","getOrSetItem","originalResult","apply","Promise","reject","BarCacheEntryOptions","default","from","Observable","lastValueFrom","BarMeetpunt","meetpunt","BaasMeetpuntService","ngOnInit","stopwatch","BarStopwatch","start","ngAfterViewInit","stop","log","meetpuntDetail","waarde","duration","meetpuntInfo","document","location","href","BarPageNotFoundComponent","Component","isStandalone","selector","template","isInline","resolveValue$","resolvedValue","resolveValue","of","resolveSignalValue","isSignal","convertToHttpParams","params","HttpParams","val","append","createDefaultBaseHrefFactory","baseHref","comparisonBaseHref","endsWith","substring","pathname","toLowerCase","startsWith","createPageNotFoundRoute","component","canActivate","state","inject","_OopsDomService","showOops","_OopsType","NotFound","data","_framework","standalone","PAGES_ROOT_PATH","BAR_CORE_CONSTANTS","STORAGE_KEY_PREFIX","PAGES","ONBESCHIKBAAR","SESSION_EXPIRED","INSUFFICIENT_PRIVILEGES","LOG_OFF","BarRoutingService","Router","navigateByUrlWithReload","extras","navigateByUrl","skipLocationChange","navigateWithReload","commands","navigate","BarCoreService","APP_INITIALIZER","Injector","BaasAppState","optional","errorOccurred","EventEmitter","refreshed","customHubMessageReceived","basiscontextChanged","emit","detail","addEventListener","BAAS_CUSTOM_EVENT","CUSTOM_HUB_MESSAGE","BASISCONTEXT_CHANGED","ngOnDestroy","removeEventListener","complete","refresh","appInit","initResult","resolve","navigateHome","invokeHomeAction","homeUrl","homeAction","navigateRoot","invokeRootAction","async","ctrlKey","metaKey","openUrl","app","rootAction","invokeAction","defaultAction","action","defaultBehaviour","routerUrl","routerCommands","routerLink","barActieAllowedGuard","acties","security","BaasSecurityService","i18n","BaasI18n","appState","localhost","actie","checkActieAllowedFromContext","errorMessage","includeVoorwie","includeHoedanigheid","console","Error","concatUrl","baasStatic","barAuthGuard","authService","BaasAuthService","authenticated","authenticate","barZoneGuard","zones","basiscontext","zone","join","BarActieFromContext","BarActionDef","BarCacheableOptions","BarDateTimeConversionStrategy","BarMeldingType","BarMelding","convert","m","meldingTypeMapping","Opgelost","Informatief","Belangrijk","Onbeschikbaar","Banner","classicBannerProcessing","bannerTitle","bannerUrl","bannerUrlText","bannerImage","baas","readField","field","fields","find","f","content","assign","id","meldingId","startDate","validFrom","endDate","validUntil","meldingType","urlPattern","title","_mtype","meldingText","startDatum","eindDatum","locatie","tekst","BarHttpParams","backgroundRequest","ommitInterceptor","BarErrorHandler","BaasLoggingService","handled","proceed","hook","run","getCircularReplacer","seen","WeakSet","has","add","sessionStorage","CHUNK_FAILED_MESSAGE","BarErrorChunkLoadFailedHook","message","test","warn","reload","BarErrorExpressionChangedAfterCheckedHook","code","baasTelemetryInterceptor","req","next","telemetry","method","httpSpan","startSpan","end","pipe","tap","catchError","throwError","ISO_8601_REGEX","barDateTimeInterceptor","conversionStrategy","traverseInput","body","HttpResponse","traverseOutput","traverse","checkDateObject","IsoGmt","toISOString","Iso","convertToISOString","toISO","isIso8601","parseISO","matcher","converter","traverser","Array","isArray","keys","BAAS_CORE_I18N","GENERIC_ERROR","INSUFFICIENT_PRIVILEGES_FOR_ACTIE","ZONES_NOT_ALLOWED","BarEmptyComponent","CORE_ROUTES","BaasCoreInitService","registerLocaleData","LOCALE","FLEMISH","DUTCH","addTranslations","push","BaasCoreFeatureKind","_BAAS_CORE_FEATURE_ORDER","DateTimeInterception","BaasApp","I18n","Apm","BAAS_COMMON_API_CLIENT","_BaasApmService","_BaasApm","active","BaasApmInitHook","BarErrorDelegateHandlerHook","Container","isBound","BAAS_TYPES","BarErrorDelegate","delegates","getAll","delegate","delegateArgs","handle","BarCoreInterceptor","_BarAppInfoManager","_BarXdc","BaasBootstrapOptions","_BaasContextManager","interception","handleAuthFailed","tmp","localStorage","getItem","parse","setItem","handleForbidden","intercept","request","loggingEnabled","domainRequest","crossDomainRequest","persistBasiscontext","caller","enabled","sync","clone","withCredentials","headers","mergeMap","status","ev","getBasiscontext","basiscontextKey","auditId","extractUrlParts","delayWhen","set","requestToken","localRequestToken","auditType","routeId","BaasAuditType","Route","pageId","Page","sessionId","Session","auth","contextTransportModus","BaasContextTransportModus","Header","checkBaasContextInStorage","_BAAS_SHARED_CONSTANTS","HEADER","BAAS_BACKEND_HEADER","getBaasContextAsHeaderString","BAAS_BROWSER_CALLSTACK","callStack","userId","appCode","toepassing","headerValue","checkUrlAbsolute","origin","_checkCompatibleOrigin","compatibleOrigins","release","hostname","Authentication","ensureGlobal","configurable","comment","BaasCoreStateService","_BarCoreStateService","asReadonly","meldingen","signal","takeUntilDestroyed","BarMeldingenEngine","BaasMeldingService","retrieveAndProcess","routeUrl","pathnameEndsWithSlash","getMeldingen","err","onbeschikbaarMelding","parsedMeldingen","map","melding","meldingKey","barMeldingGuard","KEY_ENDPOINTS","_BarRouteLogger","BehaviorSubject","DestroyRef","general","endpointLoggingEnabled","filter","NavigationEnd","switchMap","getValue","endpoints","asObservable","loggedEndpoints","endpointsToLog","remember$","concat","forkJoin","saveEndpoints","versie","routes","parentPath","fullPath","loadChildren","_loadedRoutes","children","endRoute","loadComponent","redirectTo","_baasHandled","appRoot","BarStartupService","BaasAuditService","BaasToepassingService","NgZone","onunhandledrejection","reason","load","currentTransaction","sortedHooks","sort","a","b","order","result$","hookOutput$","NavigationStart","urlAfterRedirects","NavigationError","generateUuid","audit","parentAuditId","details","ROUTE","URL","_addAuditInfoOnDocument","setTimeout","canActivateChild","startupServiceFactory","startup","createBarContainerBridgeFactory","serviceIdentifier","container","createDefaultCacheStoreFactory","cacheStoreType","getTagged","BAAS_METADATA_KEY","CACHE_STORE_TYPE_TAG","userCacheStoreFactory","cacheManager","coreState","storeType","BarCacheStoreType","User","meldingenCacheStoreFactory","Global","notificationManagerFactory","BarNotificationManager","defineApmProviders","useFactory","BaasTelemetry","useClass","multi","LowerCaseUrlSerializer","DefaultUrlSerializer","urlTree","urlSegmentGroup","hasChildren","entries","segments","segment","provideBaasCore","features","kind","Number","MAX_VALUE","LOCALE_ID","UrlSerializer","Location","LocationStrategy","PathLocationStrategy","ENVIRONMENT_INITIALIZER","feature","makeEnvironmentProviders","withApm","withDateTimeInterception","provideHttpClient","withInterceptors","withBaasAppBehavior","appInstance","withInterceptorsFromDi","HTTP_INTERCEPTORS","_BaasProfielService","BaasConfigurationService","BarIdpClient","Application","BarGvkManager","BaasCommonApiClient","_BaasStaticConfigurationApiClient","withI18n","_BaasWindow","setTimeoutOutsideAngular","handler","timeout","setIntervalOutsideAngular","setInterval","BaasFileService","HttpClient","download","filename","response","responseType","size","split","replace","saveAs","createComparisonValidator","otherControl","comparison","control","otherValue","equal","larger","largerOrEqual","smaller","smallerOrEqual","createDateComparisonValidator","isEqual","isAfter","isBefore","createGenericValidator","errorKey","checkValid","createRequiredIfValidator","ifCondition","truthyCheckMode","checkTruthy","createGreaterThanControlValidator","createCompareControlValidator","createGreaterThanOrEqualControlValidator","createSmallerThanControlValidator","createSmallerThanOrEqualControlValidator","BarValidators","requiredIf","greaterThanControl","greaterThanOrEqualControl","smallerThanControl","smallerThanOrEqualControl","dateComparison","controlValueDefined","comparisonCondition"],"sourceRoot":""}