{"version":3,"file":"abp-ng.core.mjs","sources":["../tmp-esm2022/lib/abstracts/ng-model.component.js","../tmp-esm2022/lib/abstracts/auth.guard.js","../tmp-esm2022/lib/abstracts/auth.service.js","../tmp-esm2022/lib/abstracts/auth-error-filter.js","../tmp-esm2022/lib/tokens/localization.token.js","../tmp-esm2022/lib/tokens/options.token.js","../tmp-esm2022/lib/utils/localization-utils.js","../tmp-esm2022/lib/utils/string-utils.js","../tmp-esm2022/lib/services/content-projection.service.js","../tmp-esm2022/lib/utils/array-utils.js","../tmp-esm2022/lib/utils/common-utils.js","../tmp-esm2022/lib/utils/date-utils.js","../tmp-esm2022/lib/utils/object-utils.js","../tmp-esm2022/lib/utils/internal-store-utils.js","../tmp-esm2022/lib/services/environment.service.js","../tmp-esm2022/lib/services/http-error-reporter.service.js","../tmp-esm2022/lib/utils/environment-utils.js","../tmp-esm2022/lib/utils/factory-utils.js","../tmp-esm2022/lib/utils/file-utils.js","../tmp-esm2022/lib/utils/number-utils.js","../tmp-esm2022/lib/utils/form-utils.js","../tmp-esm2022/lib/utils/generator-utils.js","../tmp-esm2022/lib/utils/http-utils.js","../tmp-esm2022/lib/services/local-storage.service.js","../tmp-esm2022/lib/services/session-state.service.js","../tmp-esm2022/lib/tokens/app-config.token.js","../tmp-esm2022/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.js","../tmp-esm2022/lib/tokens/tenant-key.token.js","../tmp-esm2022/lib/tokens/http-context.token.js","../tmp-esm2022/lib/clients/http.client.js","../tmp-esm2022/lib/services/rest.service.js","../tmp-esm2022/lib/services/multi-tenancy.service.js","../tmp-esm2022/lib/tokens/tenant-not-found-by-name.js","../tmp-esm2022/lib/utils/multi-tenancy-utils.js","../tmp-esm2022/lib/tokens/check-authentication-state.js","../tmp-esm2022/lib/utils/initial-utils.js","../tmp-esm2022/lib/strategies/cross-origin.strategy.js","../tmp-esm2022/lib/strategies/dom.strategy.js","../tmp-esm2022/lib/utils/lazy-load-utils.js","../tmp-esm2022/lib/utils/queue.js","../tmp-esm2022/lib/utils/route-utils.js","../tmp-esm2022/lib/utils/tree-utils.js","../tmp-esm2022/lib/services/dom-insertion.service.js","../tmp-esm2022/lib/tokens/lodaer-delay.token.js","../tmp-esm2022/lib/services/http-wait.service.js","../tmp-esm2022/lib/services/resource-wait.service.js","../tmp-esm2022/lib/services/lazy-load.service.js","../tmp-esm2022/lib/tokens/list.token.js","../tmp-esm2022/lib/services/list.service.js","../tmp-esm2022/lib/services/permission.service.js","../tmp-esm2022/lib/services/replaceable-components.service.js","../tmp-esm2022/lib/services/router-events.service.js","../tmp-esm2022/lib/services/router-wait.service.js","../tmp-esm2022/lib/tokens/cookie-language-key.token.js","../tmp-esm2022/lib/tokens/manage-profile.token.js","../tmp-esm2022/lib/tokens/queue.token.js","../tmp-esm2022/lib/tokens/include-localization-resources.token.js","../tmp-esm2022/lib/tokens/pipe-to-login.token.js","../tmp-esm2022/lib/tokens/set-token-response-to-storage.token.js","../tmp-esm2022/lib/tokens/others-group.token.js","../tmp-esm2022/lib/tokens/compare-func.token.js","../tmp-esm2022/lib/tokens/dynamic-layout.token.js","../tmp-esm2022/lib/tokens/title-strategy-disable-project-name.token.js","../tmp-esm2022/lib/services/routes.service.js","../tmp-esm2022/lib/services/subscription.service.js","../tmp-esm2022/lib/services/track-by.service.js","../tmp-esm2022/lib/services/window.service.js","../tmp-esm2022/lib/services/internet-connection-service.js","../tmp-esm2022/lib/services/local-storage-listener.service.js","../tmp-esm2022/lib/services/title-strategy.service.js","../tmp-esm2022/lib/services/timezone.service.js","../tmp-esm2022/lib/services/time.service.js","../tmp-esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.js","../tmp-esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.js","../tmp-esm2022/lib/services/config-state.service.js","../tmp-esm2022/lib/services/localization.service.js","../tmp-esm2022/lib/components/dynamic-layout.component.js","../tmp-esm2022/lib/components/replaceable-route-container.component.js","../tmp-esm2022/lib/components/router-outlet.component.js","../tmp-esm2022/lib/constants/different-locales.js","../tmp-esm2022/lib/constants/default-layouts.js","../tmp-esm2022/lib/directives/autofocus.directive.js","../tmp-esm2022/lib/directives/debounce.directive.js","../tmp-esm2022/lib/directives/for.directive.js","../tmp-esm2022/lib/directives/form-submit.directive.js","../tmp-esm2022/lib/directives/init.directive.js","../tmp-esm2022/lib/directives/permission.directive.js","../tmp-esm2022/lib/directives/replaceable-template.directive.js","../tmp-esm2022/lib/directives/stop-propagation.directive.js","../tmp-esm2022/lib/directives/show-password.directive.js","../tmp-esm2022/lib/directives/caps-lock.directive.js","../tmp-esm2022/lib/utils/date-extensions.js","../tmp-esm2022/lib/providers/cookie-language.provider.js","../tmp-esm2022/lib/providers/locale.provider.js","../tmp-esm2022/lib/providers/include-localization-resources.provider.js","../tmp-esm2022/lib/handlers/routes.handler.js","../tmp-esm2022/lib/interceptors/api.interceptor.js","../tmp-esm2022/lib/interceptors/timezone.interceptor.js","../tmp-esm2022/lib/providers/core-module-config.provider.js","../tmp-esm2022/lib/pipes/localization.pipe.js","../tmp-esm2022/lib/pipes/safe-html.pipe.js","../tmp-esm2022/lib/pipes/sort.pipe.js","../tmp-esm2022/lib/pipes/to-injector.pipe.js","../tmp-esm2022/lib/pipes/short-date.pipe.js","../tmp-esm2022/lib/pipes/short-time.pipe.js","../tmp-esm2022/lib/pipes/short-date-time.pipe.js","../tmp-esm2022/lib/pipes/utc-to-local.pipe.js","../tmp-esm2022/lib/pipes/lazy-localization.pipe.js","../tmp-esm2022/lib/core.module.js","../tmp-esm2022/lib/guards/permission.guard.js","../tmp-esm2022/lib/localization.module.js","../tmp-esm2022/lib/models/dtos.js","../tmp-esm2022/lib/models/auth-events.js","../tmp-esm2022/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.js","../tmp-esm2022/lib/strategies/container.strategy.js","../tmp-esm2022/lib/strategies/content-security.strategy.js","../tmp-esm2022/lib/strategies/content.strategy.js","../tmp-esm2022/lib/strategies/context.strategy.js","../tmp-esm2022/lib/strategies/loading.strategy.js","../tmp-esm2022/lib/strategies/projection.strategy.js","../tmp-esm2022/lib/validators/age.validator.js","../tmp-esm2022/lib/validators/credit-card.validator.js","../tmp-esm2022/lib/validators/range.validator.js","../tmp-esm2022/lib/validators/required.validator.js","../tmp-esm2022/lib/validators/string-length.validator.js","../tmp-esm2022/lib/validators/unique-character.validator.js","../tmp-esm2022/lib/validators/url.validator.js","../tmp-esm2022/lib/validators/username.validator.js","../tmp-esm2022/lib/validators/index.js","../tmp-esm2022/public-api.js","../tmp-esm2022/abp-ng.core.js"],"sourcesContent":["import { ChangeDetectorRef, Component, inject, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n// Not an abstract class on purpose. Do not change!\nexport class AbstractNgModelComponent {\n    constructor() {\n        this.cdRef = inject(ChangeDetectorRef);\n        this.valueFn = value => value;\n        this.valueLimitFn = value => false;\n    }\n    set value(value) {\n        value = this.valueFn(value, this._value);\n        if (this.valueLimitFn(value, this._value) !== false || this.readonly)\n            return;\n        this._value = value;\n        this.notifyValueChange();\n    }\n    get value() {\n        return this._value || this.defaultValue;\n    }\n    get defaultValue() {\n        return this._value;\n    }\n    notifyValueChange() {\n        if (this.onChange) {\n            this.onChange(this.value);\n        }\n    }\n    writeValue(value) {\n        this._value = this.valueLimitFn(value, this._value) || value;\n        this.cdRef.markForCheck();\n    }\n    registerOnChange(fn) {\n        this.onChange = fn;\n    }\n    registerOnTouched(fn) {\n        this.onTouched = fn;\n    }\n    setDisabledState(isDisabled) {\n        this.disabled = isDisabled;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbstractNgModelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.7\", type: AbstractNgModelComponent, isStandalone: true, selector: \"ng-component\", inputs: { disabled: \"disabled\", readonly: \"readonly\", valueFn: \"valueFn\", valueLimitFn: \"valueLimitFn\", value: \"value\" }, ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbstractNgModelComponent, decorators: [{\n            type: Component,\n            args: [{\n                    template: '',\n                }]\n        }], propDecorators: { disabled: [{\n                type: Input\n            }], readonly: [{\n                type: Input\n            }], valueFn: [{\n                type: Input\n            }], valueLimitFn: [{\n                type: Input\n            }], value: [{\n                type: Input\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbW9kZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2Fic3RyYWN0cy9uZy1tb2RlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUc1RSxtREFBbUQ7QUFJbkQsTUFBTSxPQUFPLHdCQUF3QjtJQUhyQztRQUtZLFVBQUssR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQVc1QyxZQUFPLEdBQXVDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBaUIsQ0FBQztRQUd6RSxpQkFBWSxHQUF5QyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztLQTBDckU7SUF4Q0MsSUFDSSxLQUFLLENBQUMsS0FBUTtRQUNoQixLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVyRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTdFLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFRO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDOzhHQXpEVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixrTUFGekIsRUFBRTs7MkZBRUQsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiOzhCQVFDLFFBQVE7c0JBRFAsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLy8gTm90IGFuIGFic3RyYWN0IGNsYXNzIG9uIHB1cnBvc2UuIERvIG5vdCBjaGFuZ2UhXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFic3RyYWN0TmdNb2RlbENvbXBvbmVudDxUID0gYW55LCBVID0gVD4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHJvdGVjdGVkIF92YWx1ZSE6IFQ7XHJcbiAgcHJvdGVjdGVkIGNkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBvbkNoYW5nZT86ICh2YWx1ZTogVCkgPT4gdm9pZDtcclxuICBvblRvdWNoZWQ/OiAoKSA9PiB2b2lkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICByZWFkb25seT86IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdmFsdWVGbjogKHZhbHVlOiBVLCBwcmV2aW91c1ZhbHVlPzogVCkgPT4gVCA9IHZhbHVlID0+IHZhbHVlIGFzIGFueSBhcyBUO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHZhbHVlTGltaXRGbjogKHZhbHVlOiBULCBwcmV2aW91c1ZhbHVlPzogVCkgPT4gYW55ID0gdmFsdWUgPT4gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XHJcbiAgICB2YWx1ZSA9IHRoaXMudmFsdWVGbih2YWx1ZSBhcyBhbnkgYXMgVSwgdGhpcy5fdmFsdWUpO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlTGltaXRGbih2YWx1ZSwgdGhpcy5fdmFsdWUpICE9PSBmYWxzZSB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMubm90aWZ5VmFsdWVDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBUIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZSB8fCB0aGlzLmRlZmF1bHRWYWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBkZWZhdWx0VmFsdWUoKTogVCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBub3RpZnlWYWx1ZUNoYW5nZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHRoaXMudmFsdWVMaW1pdEZuKHZhbHVlLCB0aGlzLl92YWx1ZSkgfHwgdmFsdWU7XHJcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbn1cclxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated Use `authGuard` *function* instead.\n */\nexport class AuthGuard {\n    canActivate() {\n        console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\n        return false;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AuthGuard, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\nexport const authGuard = () => {\n    console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\n    return false;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9hYnN0cmFjdHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQzs7R0FFRztBQUlILE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFdBQVc7UUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7UUFDekYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQUpVLFNBQVM7a0hBQVQsU0FBUyxjQUZSLE1BQU07OzJGQUVQLFNBQVM7a0JBSHJCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQVFELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBa0IsR0FBRyxFQUFFO0lBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztJQUN6RixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSUFicEd1YXJkIH0gZnJvbSAnLi9hYnN0cmFjdC1ndWFyZCc7XHJcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIFVzZSBgYXV0aEd1YXJkYCAqZnVuY3Rpb24qIGluc3RlYWQuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGltcGxlbWVudHMgSUFicEd1YXJkIHtcclxuICBjYW5BY3RpdmF0ZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xyXG4gICAgY29uc29sZS5lcnJvcignWW91IHNob3VsZCBhZGQgQGFicC9uZy1vYXV0aCBwYWNrYWdlcyBvciBjcmVhdGUgeW91ciBvd24gYXV0aCBwYWNrYWdlcy4nKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBhdXRoR3VhcmQ6IENhbkFjdGl2YXRlRm4gPSAoKSA9PiB7XHJcbiAgY29uc29sZS5lcnJvcignWW91IHNob3VsZCBhZGQgQGFicC9uZy1vYXV0aCBwYWNrYWdlcyBvciBjcmVhdGUgeW91ciBvd24gYXV0aCBwYWNrYWdlcy4nKTtcclxuICByZXR1cm4gZmFsc2U7XHJcbn07XHJcbiJdfQ==","import { Injectable } from '@angular/core';\nimport { of } from 'rxjs';\nimport * as i0 from \"@angular/core\";\n/**\n * Abstract service for Authentication.\n */\nexport class AuthService {\n    warningMessage() {\n        console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\n    }\n    get oidc() {\n        this.warningMessage();\n        return false;\n    }\n    set oidc(value) {\n        this.warningMessage();\n    }\n    init() {\n        this.warningMessage();\n        return Promise.resolve(undefined);\n    }\n    login(params) {\n        this.warningMessage();\n        return of(undefined);\n    }\n    logout(queryParams) {\n        this.warningMessage();\n        return of(undefined);\n    }\n    navigateToLogin(queryParams) { }\n    get isInternalAuth() {\n        throw new Error('not implemented');\n    }\n    get isAuthenticated() {\n        this.warningMessage();\n        return false;\n    }\n    loginUsingGrant(grantType, parameters, headers) {\n        console.log({ grantType, parameters, headers });\n        return Promise.reject(new Error('not implemented'));\n    }\n    getAccessTokenExpiration() {\n        this.warningMessage();\n        return 0;\n    }\n    getRefreshToken() {\n        this.warningMessage();\n        return '';\n    }\n    getAccessToken() {\n        this.warningMessage();\n        return '';\n    }\n    refreshToken() {\n        this.warningMessage();\n        return Promise.resolve(undefined);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AuthService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AuthService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2Fic3RyYWN0cy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUl0Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxXQUFXO0lBQ2QsY0FBYztRQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxLQUFjO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFtQjtRQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFvQjtRQUN6QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELGVBQWUsQ0FBQyxXQUFvQixJQUFVLENBQUM7SUFFL0MsSUFBSSxjQUFjO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlLENBQ2IsU0FBaUIsRUFDakIsVUFBa0IsRUFDbEIsT0FBcUI7UUFFckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDOzhHQW5FVSxXQUFXO2tIQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2luUGFyYW1zIH0gZnJvbSAnLi4vbW9kZWxzL2F1dGgnO1xyXG5pbXBvcnQgeyBBYnBBdXRoUmVzcG9uc2UgfSBmcm9tICcuL2F1dGgtcmVzcG9uc2UubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEFic3RyYWN0IHNlcnZpY2UgZm9yIEF1dGhlbnRpY2F0aW9uLlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIGltcGxlbWVudHMgSUF1dGhTZXJ2aWNlIHtcclxuICBwcml2YXRlIHdhcm5pbmdNZXNzYWdlKCkge1xyXG4gICAgY29uc29sZS5lcnJvcignWW91IHNob3VsZCBhZGQgQGFicC9uZy1vYXV0aCBwYWNrYWdlcyBvciBjcmVhdGUgeW91ciBvd24gYXV0aCBwYWNrYWdlcy4nKTtcclxuICB9XHJcblxyXG4gIGdldCBvaWRjKCk6IGJvb2xlYW4ge1xyXG4gICAgdGhpcy53YXJuaW5nTWVzc2FnZSgpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9pZGModmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMud2FybmluZ01lc3NhZ2UoKTtcclxuICB9XHJcblxyXG4gIGluaXQoKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHRoaXMud2FybmluZ01lc3NhZ2UoKTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIGxvZ2luKHBhcmFtczogTG9naW5QYXJhbXMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy53YXJuaW5nTWVzc2FnZSgpO1xyXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQocXVlcnlQYXJhbXM/OiBQYXJhbXMpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy53YXJuaW5nTWVzc2FnZSgpO1xyXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvTG9naW4ocXVlcnlQYXJhbXM/OiBQYXJhbXMpOiB2b2lkIHsgfVxyXG5cclxuICBnZXQgaXNJbnRlcm5hbEF1dGgoKTogYm9vbGVhbiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcclxuICAgIHRoaXMud2FybmluZ01lc3NhZ2UoKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGxvZ2luVXNpbmdHcmFudChcclxuICAgIGdyYW50VHlwZTogc3RyaW5nLFxyXG4gICAgcGFyYW1ldGVyczogb2JqZWN0LFxyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzLFxyXG4gICk6IFByb21pc2U8QWJwQXV0aFJlc3BvbnNlPiB7XHJcbiAgICBjb25zb2xlLmxvZyh7IGdyYW50VHlwZSwgcGFyYW1ldGVycywgaGVhZGVycyB9KTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpKTtcclxuICB9XHJcblxyXG4gIGdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbigpOiBudW1iZXIge1xyXG4gICAgdGhpcy53YXJuaW5nTWVzc2FnZSgpO1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG5cclxuICBnZXRSZWZyZXNoVG9rZW4oKTogc3RyaW5nIHtcclxuICAgIHRoaXMud2FybmluZ01lc3NhZ2UoKTtcclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGdldEFjY2Vzc1Rva2VuKCk6IHN0cmluZyB7XHJcbiAgICB0aGlzLndhcm5pbmdNZXNzYWdlKCk7XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVG9rZW4oKTogUHJvbWlzZTxBYnBBdXRoUmVzcG9uc2U+IHtcclxuICAgIHRoaXMud2FybmluZ01lc3NhZ2UoKTtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUF1dGhTZXJ2aWNlIHtcclxuICBvaWRjOiBib29sZWFuO1xyXG5cclxuICBnZXQgaXNJbnRlcm5hbEF1dGgoKTogYm9vbGVhbjtcclxuXHJcbiAgZ2V0IGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuO1xyXG5cclxuICBpbml0KCk6IFByb21pc2U8YW55PjtcclxuXHJcbiAgbG9nb3V0KHF1ZXJ5UGFyYW1zPzogUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICBuYXZpZ2F0ZVRvTG9naW4ocXVlcnlQYXJhbXM/OiBQYXJhbXMpOiB2b2lkO1xyXG5cclxuICBsb2dpbihwYXJhbXM6IExvZ2luUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICBsb2dpblVzaW5nR3JhbnQoXHJcbiAgICBncmFudFR5cGU6IHN0cmluZyxcclxuICAgIHBhcmFtZXRlcnM6IG9iamVjdCxcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyxcclxuICApOiBQcm9taXNlPEFicEF1dGhSZXNwb25zZT47XHJcblxyXG4gIGdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbigpOiBudW1iZXI7XHJcblxyXG4gIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmc7XHJcblxyXG4gIGdldEFjY2Vzc1Rva2VuKCk6IHN0cmluZztcclxuXHJcbiAgcmVmcmVzaFRva2VuKCk6IFByb21pc2U8QWJwQXV0aFJlc3BvbnNlPjtcclxufVxyXG4iXX0=","export class AbstractAuthErrorFilter {\n}\nexport class AuthErrorFilterService extends AbstractAuthErrorFilter {\n    warningMessage() {\n        console.error('You should add @abp/ng-oauth packages or create your own auth packages.');\n    }\n    get(id) {\n        this.warningMessage();\n        throw new Error('not implemented');\n    }\n    add(filter) {\n        this.warningMessage();\n    }\n    patch(item) {\n        this.warningMessage();\n    }\n    remove(id) {\n        this.warningMessage();\n    }\n    run(event) {\n        this.warningMessage();\n        throw new Error('not implemented');\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1lcnJvci1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvYWJzdHJhY3RzL2F1dGgtZXJyb3ItZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBZ0IsdUJBQXVCO0NBTTVDO0FBRUQsTUFBTSxPQUFPLHNCQUdYLFNBQVEsdUJBQTZCO0lBQzdCLGNBQWM7UUFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxHQUFHLENBQUMsRUFBVTtRQUNaLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELEdBQUcsQ0FBQyxNQUFTO1FBQ1gsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBZ0I7UUFDcEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBVTtRQUNmLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQVE7UUFDVixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhFcnJvckV2ZW50LCBBdXRoRXJyb3JGaWx0ZXIgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0QXV0aEVycm9yRmlsdGVyPFQsIEU+IHtcclxuICBhYnN0cmFjdCBnZXQoaWQ6IHN0cmluZyk6IFQ7XHJcbiAgYWJzdHJhY3QgYWRkKGZpbHRlcjogVCk6IHZvaWQ7XHJcbiAgYWJzdHJhY3QgcGF0Y2goaXRlbTogUGFydGlhbDxUPik6IHZvaWQ7XHJcbiAgYWJzdHJhY3QgcmVtb3ZlKGlkOiBzdHJpbmcpOiB2b2lkO1xyXG4gIGFic3RyYWN0IHJ1bihldmVudDogRSk6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoRXJyb3JGaWx0ZXJTZXJ2aWNlPFxyXG4gIFQgPSBBdXRoRXJyb3JGaWx0ZXIsXHJcbiAgRSA9IEF1dGhFcnJvckV2ZW50LFxyXG4+IGV4dGVuZHMgQWJzdHJhY3RBdXRoRXJyb3JGaWx0ZXI8VCwgRT4ge1xyXG4gIHByaXZhdGUgd2FybmluZ01lc3NhZ2UoKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdZb3Ugc2hvdWxkIGFkZCBAYWJwL25nLW9hdXRoIHBhY2thZ2VzIG9yIGNyZWF0ZSB5b3VyIG93biBhdXRoIHBhY2thZ2VzLicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0KGlkOiBzdHJpbmcpOiBUIHtcclxuICAgIHRoaXMud2FybmluZ01lc3NhZ2UoKTtcclxuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XHJcbiAgfVxyXG5cclxuICBhZGQoZmlsdGVyOiBUKTogdm9pZCB7XHJcbiAgICB0aGlzLndhcm5pbmdNZXNzYWdlKCk7XHJcbiAgfVxyXG5cclxuICBwYXRjaChpdGVtOiBQYXJ0aWFsPFQ+KTogdm9pZCB7XHJcbiAgICB0aGlzLndhcm5pbmdNZXNzYWdlKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy53YXJuaW5nTWVzc2FnZSgpO1xyXG4gIH1cclxuXHJcbiAgcnVuKGV2ZW50OiBFKTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLndhcm5pbmdNZXNzYWdlKCk7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { InjectionToken } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nexport const LOCALIZATIONS = new InjectionToken('LOCALIZATIONS');\nexport function localizationContributor(localizations) {\n    if (localizations) {\n        localizations$.next([...localizations$.value, ...localizations]);\n    }\n}\nexport const localizations$ = new BehaviorSubject([]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Rva2Vucy9sb2NhbGl6YXRpb24udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUVqRSxNQUFNLFVBQVUsdUJBQXVCLENBQUMsYUFBa0M7SUFDeEUsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUNsQixjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcblxyXG5leHBvcnQgY29uc3QgTE9DQUxJWkFUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignTE9DQUxJWkFUSU9OUycpO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvY2FsaXphdGlvbkNvbnRyaWJ1dG9yKGxvY2FsaXphdGlvbnM/OiBBQlAuTG9jYWxpemF0aW9uW10pIHtcclxuICBpZiAobG9jYWxpemF0aW9ucykge1xyXG4gICAgbG9jYWxpemF0aW9ucyQubmV4dChbLi4ubG9jYWxpemF0aW9ucyQudmFsdWUsIC4uLmxvY2FsaXphdGlvbnNdKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBsb2NhbGl6YXRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QUJQLkxvY2FsaXphdGlvbltdPihbXSk7XHJcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const CORE_OPTIONS = new InjectionToken('CORE_OPTIONS');\nexport function coreOptionsFactory({ ...options }) {\n    return {\n        ...options,\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi90b2tlbnMvb3B0aW9ucy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBVyxjQUFjLENBQUMsQ0FBQztBQUV6RSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBWTtJQUN6RCxPQUFPO1FBQ0wsR0FBRyxPQUFPO0tBQ0MsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcblxyXG5leHBvcnQgY29uc3QgQ09SRV9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPEFCUC5Sb290PignQ09SRV9PUFRJT05TJyk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29yZU9wdGlvbnNGYWN0b3J5KHsgLi4ub3B0aW9ucyB9OiBBQlAuUm9vdCkge1xyXG4gIHJldHVybiB7XHJcbiAgICAuLi5vcHRpb25zLFxyXG4gIH0gYXMgQUJQLlJvb3Q7XHJcbn1cclxuIl19","// This will not be necessary when only Angukar 9.1+ is supported\nexport function getLocaleDirection(locale) {\n    return /^(ar(-[A-Z]{2})?|ckb(-IR)?|fa(-AF)?|he|ks|lrc(-IQ)?|mzn|pa-Arab|ps(-PK)?|sd|ug|ur(-IN)?|uz-Arab|yi)$/.test(locale)\n        ? 'rtl'\n        : 'ltr';\n}\nexport function createLocalizer(localization) {\n    return (resourceName, key, defaultValue) => {\n        if (resourceName === '_')\n            return key;\n        const resource = localization?.values?.[resourceName];\n        if (!resource)\n            return defaultValue;\n        return resource[key] || defaultValue;\n    };\n}\nexport function createLocalizerWithFallback(localization) {\n    const findLocalization = createLocalizationFinder(localization);\n    return (resourceNames, keys, defaultValue) => {\n        const { localized } = findLocalization(resourceNames, keys);\n        return localized || defaultValue;\n    };\n}\nexport function createLocalizationPipeKeyGenerator(localization) {\n    const findLocalization = createLocalizationFinder(localization);\n    return (resourceNames, keys, defaultKey) => {\n        const { resourceName, key } = findLocalization(resourceNames, keys);\n        return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;\n    };\n}\nfunction createLocalizationFinder(localization) {\n    const localize = createLocalizer(localization);\n    return (resourceNames, keys) => {\n        resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);\n        const resourceCount = resourceNames.length;\n        const keyCount = keys.length;\n        for (let i = 0; i < resourceCount; i++) {\n            const resourceName = resourceNames[i];\n            for (let j = 0; j < keyCount; j++) {\n                const key = keys[j];\n                const localized = localize(resourceName, key, null);\n                if (localized)\n                    return { resourceName, key, localized };\n            }\n        }\n        return { resourceName: undefined, key: undefined, localized: undefined };\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2xvY2FsaXphdGlvbi11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxpRUFBaUU7QUFDakUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxzR0FBc0csQ0FBQyxJQUFJLENBQ2hILE1BQU0sQ0FDUDtRQUNDLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFlBQXFEO0lBQ25GLE9BQU8sQ0FBQyxZQUFvQixFQUFFLEdBQVcsRUFBRSxZQUEyQixFQUFFLEVBQUU7UUFDeEUsSUFBSSxZQUFZLEtBQUssR0FBRztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBRXJDLE1BQU0sUUFBUSxHQUFHLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sWUFBWSxDQUFDO1FBRW5DLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksQ0FBQztJQUN2QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFlBQXFEO0lBQy9GLE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEUsT0FBTyxDQUFDLGFBQXVCLEVBQUUsSUFBYyxFQUFFLFlBQW9CLEVBQUUsRUFBRTtRQUN2RSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sU0FBUyxJQUFJLFlBQVksQ0FBQztJQUNuQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGtDQUFrQyxDQUNoRCxZQUFxRDtJQUVyRCxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWhFLE9BQU8sQ0FBQyxhQUF1QixFQUFFLElBQWMsRUFBRSxVQUE4QixFQUFFLEVBQUU7UUFDakYsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQzdGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLFlBQXFEO0lBQ3JGLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUvQyxPQUFPLENBQUMsYUFBdUIsRUFBRSxJQUFjLEVBQUUsRUFBRTtRQUNqRCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTdGLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUU3QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdkMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXRDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxTQUFTO29CQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ3pELENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byB9IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvbW9kZWxzJztcclxuXHJcbi8vIFRoaXMgd2lsbCBub3QgYmUgbmVjZXNzYXJ5IHdoZW4gb25seSBBbmd1a2FyIDkuMSsgaXMgc3VwcG9ydGVkXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVEaXJlY3Rpb24obG9jYWxlOiBzdHJpbmcpOiAnbHRyJyB8ICdydGwnIHtcclxuICByZXR1cm4gL14oYXIoLVtBLVpdezJ9KT98Y2tiKC1JUik/fGZhKC1BRik/fGhlfGtzfGxyYygtSVEpP3xtem58cGEtQXJhYnxwcygtUEspP3xzZHx1Z3x1cigtSU4pP3x1ei1BcmFifHlpKSQvLnRlc3QoXHJcbiAgICBsb2NhbGUsXHJcbiAgKVxyXG4gICAgPyAncnRsJ1xyXG4gICAgOiAnbHRyJztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvY2FsaXplcihsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0bykge1xyXG4gIHJldHVybiAocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHtcclxuICAgIGlmIChyZXNvdXJjZU5hbWUgPT09ICdfJykgcmV0dXJuIGtleTtcclxuXHJcbiAgICBjb25zdCByZXNvdXJjZSA9IGxvY2FsaXphdGlvbj8udmFsdWVzPy5bcmVzb3VyY2VOYW1lXTtcclxuXHJcbiAgICBpZiAoIXJlc291cmNlKSByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG5cclxuICAgIHJldHVybiByZXNvdXJjZVtrZXldIHx8IGRlZmF1bHRWYWx1ZTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9jYWxpemVyV2l0aEZhbGxiYWNrKGxvY2FsaXphdGlvbjogQXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvKSB7XHJcbiAgY29uc3QgZmluZExvY2FsaXphdGlvbiA9IGNyZWF0ZUxvY2FsaXphdGlvbkZpbmRlcihsb2NhbGl6YXRpb24pO1xyXG5cclxuICByZXR1cm4gKHJlc291cmNlTmFtZXM6IHN0cmluZ1tdLCBrZXlzOiBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgIGNvbnN0IHsgbG9jYWxpemVkIH0gPSBmaW5kTG9jYWxpemF0aW9uKHJlc291cmNlTmFtZXMsIGtleXMpO1xyXG4gICAgcmV0dXJuIGxvY2FsaXplZCB8fCBkZWZhdWx0VmFsdWU7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IoXHJcbiAgbG9jYWxpemF0aW9uOiBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25EdG8sXHJcbikge1xyXG4gIGNvbnN0IGZpbmRMb2NhbGl6YXRpb24gPSBjcmVhdGVMb2NhbGl6YXRpb25GaW5kZXIobG9jYWxpemF0aW9uKTtcclxuXHJcbiAgcmV0dXJuIChyZXNvdXJjZU5hbWVzOiBzdHJpbmdbXSwga2V5czogc3RyaW5nW10sIGRlZmF1bHRLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gICAgY29uc3QgeyByZXNvdXJjZU5hbWUsIGtleSB9ID0gZmluZExvY2FsaXphdGlvbihyZXNvdXJjZU5hbWVzLCBrZXlzKTtcclxuICAgIHJldHVybiAhcmVzb3VyY2VOYW1lID8gZGVmYXVsdEtleSA6IHJlc291cmNlTmFtZSA9PT0gJ18nID8ga2V5IDogYCR7cmVzb3VyY2VOYW1lfTo6JHtrZXl9YDtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVMb2NhbGl6YXRpb25GaW5kZXIobG9jYWxpemF0aW9uOiBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25EdG8pIHtcclxuICBjb25zdCBsb2NhbGl6ZSA9IGNyZWF0ZUxvY2FsaXplcihsb2NhbGl6YXRpb24pO1xyXG5cclxuICByZXR1cm4gKHJlc291cmNlTmFtZXM6IHN0cmluZ1tdLCBrZXlzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgcmVzb3VyY2VOYW1lcyA9IHJlc291cmNlTmFtZXMuY29uY2F0KGxvY2FsaXphdGlvbi5kZWZhdWx0UmVzb3VyY2VOYW1lIHx8ICcnKS5maWx0ZXIoQm9vbGVhbik7XHJcblxyXG4gICAgY29uc3QgcmVzb3VyY2VDb3VudCA9IHJlc291cmNlTmFtZXMubGVuZ3RoO1xyXG4gICAgY29uc3Qga2V5Q291bnQgPSBrZXlzLmxlbmd0aDtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc291cmNlQ291bnQ7IGkrKykge1xyXG4gICAgICBjb25zdCByZXNvdXJjZU5hbWUgPSByZXNvdXJjZU5hbWVzW2ldO1xyXG5cclxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBrZXlDb3VudDsgaisrKSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5c1tqXTtcclxuICAgICAgICBjb25zdCBsb2NhbGl6ZWQgPSBsb2NhbGl6ZShyZXNvdXJjZU5hbWUsIGtleSwgbnVsbCk7XHJcbiAgICAgICAgaWYgKGxvY2FsaXplZCkgcmV0dXJuIHsgcmVzb3VyY2VOYW1lLCBrZXksIGxvY2FsaXplZCB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgcmVzb3VyY2VOYW1lOiB1bmRlZmluZWQsIGtleTogdW5kZWZpbmVkLCBsb2NhbGl6ZWQ6IHVuZGVmaW5lZCB9O1xyXG4gIH07XHJcbn1cclxuIl19","export function createTokenParser(format) {\n    return (str) => {\n        const tokens = [];\n        const regex = format.replace(/\\./g, '\\\\.').replace(/\\{\\s?([0-9a-zA-Z]+)\\s?\\}/g, (_, token) => {\n            tokens.push(token);\n            return '(.+)';\n        });\n        const matches = (str.match(regex) || []).slice(1);\n        return matches.reduce((acc, v, i) => {\n            const key = tokens[i];\n            acc[key] = [...(acc[key] || []), v].filter(Boolean);\n            return acc;\n        }, {});\n    };\n}\nexport function interpolate(text, params) {\n    return text\n        .replace(/(['\"])?\\{\\s*(\\d+)\\s*\\}\\1/g, (_, quote, digit) => (quote ? quote : '') + (params[digit] ?? `{${digit}}`) + (quote ? quote : ''))\n        .replace(/\\s+/g, ' ');\n}\nexport function escapeHtmlChars(value) {\n    return value && typeof value === 'string'\n        ? value\n            .replace(/&/g, '&amp;')\n            .replace(/</g, '&lt;')\n            .replace(/>/g, '&gt;')\n            .replace(/\"/g, '&quot;')\n        : value;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL3N0cmluZy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBYztJQUM5QyxPQUFPLENBQUMsR0FBVyxFQUFFLEVBQUU7UUFDckIsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMzRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUE4QixDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWSxFQUFFLE1BQWdCO0lBQ3pELE9BQU8sSUFBSTtTQUNQLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDeEQsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUM5RTtTQUNBLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBVTtJQUN4QyxPQUFPLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3ZDLENBQUMsQ0FBQyxLQUFLO2FBQ0YsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5QYXJzZXIoZm9ybWF0OiBzdHJpbmcpIHtcclxuICByZXR1cm4gKHN0cjogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB0b2tlbnM6IHN0cmluZ1tdID0gW107XHJcbiAgICBjb25zdCByZWdleCA9IGZvcm1hdC5yZXBsYWNlKC9cXC4vZywgJ1xcXFwuJykucmVwbGFjZSgvXFx7XFxzPyhbMC05YS16QS1aXSspXFxzP1xcfS9nLCAoXywgdG9rZW4pID0+IHtcclxuICAgICAgdG9rZW5zLnB1c2godG9rZW4pO1xyXG4gICAgICByZXR1cm4gJyguKyknO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgbWF0Y2hlcyA9IChzdHIubWF0Y2gocmVnZXgpIHx8IFtdKS5zbGljZSgxKTtcclxuXHJcbiAgICByZXR1cm4gbWF0Y2hlcy5yZWR1Y2UoKGFjYywgdiwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBrZXkgPSB0b2tlbnNbaV07XHJcbiAgICAgIGFjY1trZXldID0gWy4uLihhY2Nba2V5XSB8fCBbXSksIHZdLmZpbHRlcihCb29sZWFuKTtcclxuICAgICAgcmV0dXJuIGFjYztcclxuICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPik7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGludGVycG9sYXRlKHRleHQ6IHN0cmluZywgcGFyYW1zOiBzdHJpbmdbXSkge1xyXG4gcmV0dXJuIHRleHRcclxuICAgIC5yZXBsYWNlKC8oWydcIl0pP1xce1xccyooXFxkKylcXHMqXFx9XFwxL2csIChfLCBxdW90ZSwgZGlnaXQpID0+IFxyXG4gICAgICAocXVvdGUgPyBxdW90ZSA6ICcnKSArIChwYXJhbXNbZGlnaXRdID8/IGB7JHtkaWdpdH19YCkgKyAocXVvdGUgPyBxdW90ZSA6ICcnKVxyXG4gICAgKVxyXG4gICAgLnJlcGxhY2UoL1xccysvZywgJyAnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUh0bWxDaGFycyh2YWx1ZTogYW55KSB7XHJcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcclxuICAgID8gdmFsdWVcclxuICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcclxuICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXHJcbiAgICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxyXG4gICAgOiB2YWx1ZTtcclxufVxyXG4iXX0=","import { Injectable, Injector } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ContentProjectionService {\n    constructor(injector) {\n        this.injector = injector;\n    }\n    projectContent(projectionStrategy, injector = this.injector) {\n        return projectionStrategy.injectContent(injector);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ContentProjectionService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ContentProjectionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ContentProjectionService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wcm9qZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvY29udGVudC1wcm9qZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDOztBQUl4RSxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBRTFDLGNBQWMsQ0FDWixrQkFBeUMsRUFDekMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRO1FBRXhCLE9BQU8sa0JBQWtCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7OEdBUlUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FEWCxNQUFNOzsyRkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9qZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzL3Byb2plY3Rpb24uc3RyYXRlZ3knO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIENvbnRlbnRQcm9qZWN0aW9uU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHt9XHJcblxyXG4gIHByb2plY3RDb250ZW50PFQgZXh0ZW5kcyBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+PihcclxuICAgIHByb2plY3Rpb25TdHJhdGVneTogUHJvamVjdGlvblN0cmF0ZWd5PFQ+LFxyXG4gICAgaW5qZWN0b3IgPSB0aGlzLmluamVjdG9yLFxyXG4gICkge1xyXG4gICAgcmV0dXJuIHByb2plY3Rpb25TdHJhdGVneS5pbmplY3RDb250ZW50KGluamVjdG9yKTtcclxuICB9XHJcbn1cclxuIl19","export function pushValueTo(array) {\n    return (element) => {\n        array.push(element);\n        return array;\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvYXJyYXktdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFdBQVcsQ0FBSSxLQUFVO0lBQ3ZDLE9BQU8sQ0FBQyxPQUFVLEVBQUUsRUFBRTtRQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBwdXNoVmFsdWVUbzxUPihhcnJheTogVFtdKSB7XHJcbiAgcmV0dXJuIChlbGVtZW50OiBUKSA9PiB7XHJcbiAgICBhcnJheS5wdXNoKGVsZW1lbnQpO1xyXG4gICAgcmV0dXJuIGFycmF5O1xyXG4gIH07XHJcbn1cclxuIl19","export function noop() {\n    const fn = function () { };\n    return fn;\n}\nexport function isUndefinedOrEmptyString(value) {\n    return value === undefined || value === '';\n}\nexport function isNullOrUndefined(obj) {\n    return obj === null || obj === undefined;\n}\nexport function isNullOrEmpty(obj) {\n    return obj === null || obj === undefined || obj === '';\n}\nexport function exists(obj) {\n    return !isNullOrUndefined(obj);\n}\nexport function isObject(obj) {\n    return obj instanceof Object;\n}\nexport function isArray(obj) {\n    return Array.isArray(obj);\n}\nexport function isObjectAndNotArray(obj) {\n    return isObject(obj) && !isArray(obj);\n}\nexport function isNode(obj) {\n    return obj instanceof Node;\n}\nexport function isObjectAndNotArrayNotNode(obj) {\n    return isObjectAndNotArray(obj) && !isNode(obj);\n}\nexport function checkHasProp(object, key) {\n    return Object.prototype.hasOwnProperty.call(object, key);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2NvbW1vbi11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsSUFBSTtJQUNsQixNQUFNLEVBQUUsR0FBRyxjQUFhLENBQUMsQ0FBQztJQUMxQixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBYztJQUNyRCxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFJLEdBQU07SUFDekMsT0FBTyxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxTQUFTLENBQUM7QUFDM0MsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUksR0FBTTtJQUNyQyxPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFJLEdBQU07SUFDOUIsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFJLEdBQU07SUFDaEMsT0FBTyxHQUFHLFlBQVksTUFBTSxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFJLEdBQU07SUFDL0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUksR0FBTTtJQUMzQyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBSSxHQUFNO0lBQzlCLE9BQU8sR0FBRyxZQUFZLElBQUksQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFJLEdBQU07SUFDbEQsT0FBTyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBSSxNQUFTLEVBQUUsR0FBcUI7SUFDOUQsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbm9vcCgpIHtcclxuICBjb25zdCBmbiA9IGZ1bmN0aW9uICgpIHt9O1xyXG4gIHJldHVybiBmbjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkT3JFbXB0eVN0cmluZyh2YWx1ZTogdW5rbm93bik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yVW5kZWZpbmVkPFQ+KG9iajogVCkge1xyXG4gIHJldHVybiBvYmogPT09IG51bGwgfHwgb2JqID09PSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc051bGxPckVtcHR5PFQ+KG9iajogVCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBvYmogPT09IG51bGwgfHwgb2JqID09PSB1bmRlZmluZWQgfHwgb2JqID09PSAnJztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGV4aXN0czxUPihvYmo6IFQpOiBvYmogaXMgVCB7XHJcbiAgcmV0dXJuICFpc051bGxPclVuZGVmaW5lZChvYmopO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3Q8VD4ob2JqOiBUKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIG9iaiBpbnN0YW5jZW9mIE9iamVjdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXk8VD4ob2JqOiBUKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkob2JqKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0QW5kTm90QXJyYXk8VD4ob2JqOiBUKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIGlzT2JqZWN0KG9iaikgJiYgIWlzQXJyYXkob2JqKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZTxUPihvYmo6IFQpOiBib29sZWFuIHtcclxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgTm9kZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0QW5kTm90QXJyYXlOb3ROb2RlPFQ+KG9iajogVCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBpc09iamVjdEFuZE5vdEFycmF5KG9iaikgJiYgIWlzTm9kZShvYmopO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tIYXNQcm9wPFQ+KG9iamVjdDogVCwga2V5OiBzdHJpbmcgfCBrZXlvZiBUKToga2V5IGlzIGtleW9mIFQge1xyXG4gIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqZWN0LCBrZXkpO1xyXG59XHJcbiJdfQ==","export function getShortDateFormat(configStateService) {\n    const dateTimeFormat = configStateService.getDeep('localization.currentCulture.dateTimeFormat');\n    return dateTimeFormat.shortDatePattern;\n}\nexport function getShortTimeFormat(configStateService) {\n    const dateTimeFormat = configStateService.getDeep('localization.currentCulture.dateTimeFormat');\n    return dateTimeFormat?.shortTimePattern?.replace('tt', 'a');\n}\nexport function getShortDateShortTimeFormat(configStateService) {\n    const dateTimeFormat = configStateService.getDeep('localization.currentCulture.dateTimeFormat');\n    return `${dateTimeFormat.shortDatePattern} ${dateTimeFormat?.shortTimePattern?.replace('tt', 'a')}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9kYXRlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxrQkFBc0M7SUFDdkUsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUMvQyw0Q0FBNEMsQ0FDeEIsQ0FBQztJQUV2QixPQUFPLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLGtCQUFzQztJQUN2RSxNQUFNLGNBQWMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQy9DLDRDQUE0QyxDQUN4QixDQUFDO0lBQ3ZCLE9BQU8sY0FBYyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxrQkFBc0M7SUFDaEYsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUMvQyw0Q0FBNEMsQ0FDeEIsQ0FBQztJQUV2QixPQUFPLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixJQUFJLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDdEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVUaW1lRm9ybWF0RHRvIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hvcnREYXRlRm9ybWF0KGNvbmZpZ1N0YXRlU2VydmljZTogQ29uZmlnU3RhdGVTZXJ2aWNlKSB7XHJcbiAgY29uc3QgZGF0ZVRpbWVGb3JtYXQgPSBjb25maWdTdGF0ZVNlcnZpY2UuZ2V0RGVlcChcclxuICAgICdsb2NhbGl6YXRpb24uY3VycmVudEN1bHR1cmUuZGF0ZVRpbWVGb3JtYXQnLFxyXG4gICkgYXMgRGF0ZVRpbWVGb3JtYXREdG87XHJcblxyXG4gIHJldHVybiBkYXRlVGltZUZvcm1hdC5zaG9ydERhdGVQYXR0ZXJuO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2hvcnRUaW1lRm9ybWF0KGNvbmZpZ1N0YXRlU2VydmljZTogQ29uZmlnU3RhdGVTZXJ2aWNlKSB7XHJcbiAgY29uc3QgZGF0ZVRpbWVGb3JtYXQgPSBjb25maWdTdGF0ZVNlcnZpY2UuZ2V0RGVlcChcclxuICAgICdsb2NhbGl6YXRpb24uY3VycmVudEN1bHR1cmUuZGF0ZVRpbWVGb3JtYXQnLFxyXG4gICkgYXMgRGF0ZVRpbWVGb3JtYXREdG87XHJcbiAgcmV0dXJuIGRhdGVUaW1lRm9ybWF0Py5zaG9ydFRpbWVQYXR0ZXJuPy5yZXBsYWNlKCd0dCcsICdhJyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTaG9ydERhdGVTaG9ydFRpbWVGb3JtYXQoY29uZmlnU3RhdGVTZXJ2aWNlOiBDb25maWdTdGF0ZVNlcnZpY2UpIHtcclxuICBjb25zdCBkYXRlVGltZUZvcm1hdCA9IGNvbmZpZ1N0YXRlU2VydmljZS5nZXREZWVwKFxyXG4gICAgJ2xvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5kYXRlVGltZUZvcm1hdCcsXHJcbiAgKSBhcyBEYXRlVGltZUZvcm1hdER0bztcclxuXHJcbiAgcmV0dXJuIGAke2RhdGVUaW1lRm9ybWF0LnNob3J0RGF0ZVBhdHRlcm59ICR7ZGF0ZVRpbWVGb3JtYXQ/LnNob3J0VGltZVBhdHRlcm4/LnJlcGxhY2UoJ3R0JywgJ2EnKX1gO1xyXG59XHJcbiJdfQ==","import { exists, isArray, isNode, isNullOrUndefined, isObject, isObjectAndNotArrayNotNode, } from './common-utils';\nexport function deepMerge(target, source) {\n    if (isObjectAndNotArrayNotNode(target) && isObjectAndNotArrayNotNode(source)) {\n        return deepMergeRecursively(target, source);\n    }\n    else if (isNullOrUndefined(target) && isNullOrUndefined(source)) {\n        return {};\n    }\n    else {\n        return exists(source) ? source : target;\n    }\n}\nfunction deepMergeRecursively(target, source) {\n    const shouldNotRecurse = isNullOrUndefined(target) ||\n        isNullOrUndefined(source) || // at least one not defined\n        isArray(target) ||\n        isArray(source) || // at least one array\n        !isObject(target) ||\n        !isObject(source) || // at least one not an object\n        isNode(target) ||\n        isNode(source); // at least one node\n    /**\n     * if we will not recurse any further,\n     * we will prioritize source if it is a defined value.\n     */\n    if (shouldNotRecurse) {\n        return exists(source) ? source : target;\n    }\n    const keysOfTarget = Object.keys(target);\n    const keysOfSource = Object.keys(source);\n    const uniqueKeys = new Set(keysOfTarget.concat(keysOfSource));\n    return [...uniqueKeys].reduce((retVal, key) => {\n        retVal[key] = deepMergeRecursively(target[key], source[key]);\n        return retVal;\n    }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL29iamVjdC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUiwwQkFBMEIsR0FDM0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixNQUFNLFVBQVUsU0FBUyxDQUN2QixNQUEwQixFQUMxQixNQUEwQjtJQUUxQixJQUFJLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxJQUFJLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDN0UsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztTQUFNLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLEVBQU8sQ0FBQztJQUNqQixDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBRSxNQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQzNCLE1BQTBCLEVBQzFCLE1BQTBCO0lBRTFCLE1BQU0sZ0JBQWdCLEdBQ3BCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUN6QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSwyQkFBMkI7UUFDeEQsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxxQkFBcUI7UUFDeEMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2pCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLDZCQUE2QjtRQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0lBRXRDOzs7T0FHRztJQUNILElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNyQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUUsTUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakQsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBZ0MsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBZ0MsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM5RCxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDM0MsTUFBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLG9CQUFvQixDQUN4QyxNQUFpQyxDQUFDLEdBQUcsQ0FBQyxFQUN0QyxNQUFpQyxDQUFDLEdBQUcsQ0FBQyxDQUN4QyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxFQUFFLEVBQU8sQ0FBQyxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgZXhpc3RzLFxyXG4gIGlzQXJyYXksXHJcbiAgaXNOb2RlLFxyXG4gIGlzTnVsbE9yVW5kZWZpbmVkLFxyXG4gIGlzT2JqZWN0LFxyXG4gIGlzT2JqZWN0QW5kTm90QXJyYXlOb3ROb2RlLFxyXG59IGZyb20gJy4vY29tbW9uLXV0aWxzJztcclxuaW1wb3J0IHsgRGVlcFBhcnRpYWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZTxUPihcclxuICB0YXJnZXQ6IERlZXBQYXJ0aWFsPFQ+IHwgVCxcclxuICBzb3VyY2U6IERlZXBQYXJ0aWFsPFQ+IHwgVCxcclxuKTogRGVlcFBhcnRpYWw8VD4gfCBUIHtcclxuICBpZiAoaXNPYmplY3RBbmROb3RBcnJheU5vdE5vZGUodGFyZ2V0KSAmJiBpc09iamVjdEFuZE5vdEFycmF5Tm90Tm9kZShzb3VyY2UpKSB7XHJcbiAgICByZXR1cm4gZGVlcE1lcmdlUmVjdXJzaXZlbHkodGFyZ2V0LCBzb3VyY2UpO1xyXG4gIH0gZWxzZSBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGFyZ2V0KSAmJiBpc051bGxPclVuZGVmaW5lZChzb3VyY2UpKSB7XHJcbiAgICByZXR1cm4ge30gYXMgVDtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGV4aXN0cyhzb3VyY2UpID8gKHNvdXJjZSBhcyBUKSA6IHRhcmdldDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlZXBNZXJnZVJlY3Vyc2l2ZWx5PFQ+KFxyXG4gIHRhcmdldDogRGVlcFBhcnRpYWw8VD4gfCBULFxyXG4gIHNvdXJjZTogRGVlcFBhcnRpYWw8VD4gfCBULFxyXG4pOiBEZWVwUGFydGlhbDxUPiB8IFQge1xyXG4gIGNvbnN0IHNob3VsZE5vdFJlY3Vyc2UgPVxyXG4gICAgaXNOdWxsT3JVbmRlZmluZWQodGFyZ2V0KSB8fFxyXG4gICAgaXNOdWxsT3JVbmRlZmluZWQoc291cmNlKSB8fCAvLyBhdCBsZWFzdCBvbmUgbm90IGRlZmluZWRcclxuICAgIGlzQXJyYXkodGFyZ2V0KSB8fFxyXG4gICAgaXNBcnJheShzb3VyY2UpIHx8IC8vIGF0IGxlYXN0IG9uZSBhcnJheVxyXG4gICAgIWlzT2JqZWN0KHRhcmdldCkgfHxcclxuICAgICFpc09iamVjdChzb3VyY2UpIHx8IC8vIGF0IGxlYXN0IG9uZSBub3QgYW4gb2JqZWN0XHJcbiAgICBpc05vZGUodGFyZ2V0KSB8fFxyXG4gICAgaXNOb2RlKHNvdXJjZSk7IC8vIGF0IGxlYXN0IG9uZSBub2RlXHJcblxyXG4gIC8qKlxyXG4gICAqIGlmIHdlIHdpbGwgbm90IHJlY3Vyc2UgYW55IGZ1cnRoZXIsXHJcbiAgICogd2Ugd2lsbCBwcmlvcml0aXplIHNvdXJjZSBpZiBpdCBpcyBhIGRlZmluZWQgdmFsdWUuXHJcbiAgICovXHJcbiAgaWYgKHNob3VsZE5vdFJlY3Vyc2UpIHtcclxuICAgIHJldHVybiBleGlzdHMoc291cmNlKSA/IChzb3VyY2UgYXMgVCkgOiB0YXJnZXQ7XHJcbiAgfVxyXG5cclxuICBjb25zdCBrZXlzT2ZUYXJnZXQgPSBPYmplY3Qua2V5cyh0YXJnZXQgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSk7XHJcbiAgY29uc3Qga2V5c09mU291cmNlID0gT2JqZWN0LmtleXMoc291cmNlIGFzIHsgW2tleTogc3RyaW5nXTogYW55IH0pO1xyXG4gIGNvbnN0IHVuaXF1ZUtleXMgPSBuZXcgU2V0KGtleXNPZlRhcmdldC5jb25jYXQoa2V5c09mU291cmNlKSk7XHJcbiAgcmV0dXJuIFsuLi51bmlxdWVLZXlzXS5yZWR1Y2UoKHJldFZhbCwga2V5KSA9PiB7XHJcbiAgICAocmV0VmFsIGFzIGFueSlba2V5XSA9IGRlZXBNZXJnZVJlY3Vyc2l2ZWx5KFxyXG4gICAgICAodGFyZ2V0IGFzIHsgW2tleTogc3RyaW5nXTogYW55IH0pW2tleV0sXHJcbiAgICAgIChzb3VyY2UgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSlba2V5XSxcclxuICAgICk7XHJcbiAgICByZXR1cm4gcmV0VmFsO1xyXG4gIH0sIHt9IGFzIFQpO1xyXG59XHJcbiJdfQ==","import compare from 'just-compare';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { deepMerge } from './object-utils';\nexport class InternalStore {\n    get state() {\n        return this.state$.value;\n    }\n    constructor(initialState) {\n        this.initialState = initialState;\n        this.state$ = new BehaviorSubject(this.initialState);\n        this.update$ = new Subject();\n        this.sliceState = (selector, compareFn = compare) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));\n        this.sliceUpdate = (selector, filterFn = (x) => x !== undefined) => this.update$.pipe(map(selector), filter(filterFn));\n    }\n    patch(state) {\n        let patchedState = state;\n        if (typeof state === 'object' && !Array.isArray(state)) {\n            patchedState = { ...this.state, ...state };\n        }\n        this.state$.next(patchedState);\n        this.update$.next(patchedState);\n    }\n    deepPatch(state) {\n        // TODO: Strict improve deepMerge\n        this.state$.next(deepMerge(this.state, state));\n        this.update$.next(state);\n    }\n    set(state) {\n        this.state$.next(state);\n        this.update$.next(state);\n    }\n    reset() {\n        this.set(this.initialState);\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtc3RvcmUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxhQUFhO0lBS3hCLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQVlELFlBQW9CLFlBQW1CO1FBQW5CLGlCQUFZLEdBQVosWUFBWSxDQUFPO1FBbEIvQixXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXZELFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztRQU1wRCxlQUFVLEdBQUcsQ0FDWCxRQUFpQyxFQUNqQyxZQUErQyxPQUFPLEVBQ3RELEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUV0RSxnQkFBVyxHQUFHLENBQ1osUUFBOEMsRUFDOUMsV0FBVyxDQUFDLENBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFDeEMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVkLENBQUM7SUFFM0MsS0FBSyxDQUFDLEtBQXFCO1FBQ3pCLElBQUksWUFBWSxHQUFHLEtBQWMsQ0FBQztRQUVsQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxZQUFZLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUM3QyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBa0MsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxTQUFTLENBQUMsS0FBeUI7UUFDakMsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBVSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFZO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBMkIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGVlcFBhcnRpYWwgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICcuL29iamVjdC11dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTdG9yZTxTdGF0ZT4ge1xyXG4gIHByaXZhdGUgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdGF0ZT4odGhpcy5pbml0aWFsU3RhdGUpO1xyXG5cclxuICBwcml2YXRlIHVwZGF0ZSQgPSBuZXcgU3ViamVjdDxEZWVwUGFydGlhbDxTdGF0ZT4+KCk7XHJcblxyXG4gIGdldCBzdGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIHNsaWNlU3RhdGUgPSA8U2xpY2U+KFxyXG4gICAgc2VsZWN0b3I6IChzdGF0ZTogU3RhdGUpID0+IFNsaWNlLFxyXG4gICAgY29tcGFyZUZuOiAoczE6IFNsaWNlLCBzMjogU2xpY2UpID0+IGJvb2xlYW4gPSBjb21wYXJlLFxyXG4gICkgPT4gdGhpcy5zdGF0ZSQucGlwZShtYXAoc2VsZWN0b3IpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZChjb21wYXJlRm4pKTtcclxuXHJcbiAgc2xpY2VVcGRhdGUgPSA8U2xpY2U+KFxyXG4gICAgc2VsZWN0b3I6IChzdGF0ZTogRGVlcFBhcnRpYWw8U3RhdGU+KSA9PiBTbGljZSxcclxuICAgIGZpbHRlckZuID0gKHg6IFNsaWNlKSA9PiB4ICE9PSB1bmRlZmluZWQsXHJcbiAgKSA9PiB0aGlzLnVwZGF0ZSQucGlwZShtYXAoc2VsZWN0b3IpLCBmaWx0ZXIoZmlsdGVyRm4pKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbml0aWFsU3RhdGU6IFN0YXRlKSB7fVxyXG5cclxuICBwYXRjaChzdGF0ZTogUGFydGlhbDxTdGF0ZT4pIHtcclxuICAgIGxldCBwYXRjaGVkU3RhdGUgPSBzdGF0ZSBhcyBTdGF0ZTtcclxuXHJcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShzdGF0ZSkpIHtcclxuICAgICAgcGF0Y2hlZFN0YXRlID0geyAuLi50aGlzLnN0YXRlLCAuLi5zdGF0ZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RhdGUkLm5leHQocGF0Y2hlZFN0YXRlKTtcclxuICAgIHRoaXMudXBkYXRlJC5uZXh0KHBhdGNoZWRTdGF0ZSBhcyBEZWVwUGFydGlhbDxTdGF0ZT4pO1xyXG4gIH1cclxuXHJcbiAgZGVlcFBhdGNoKHN0YXRlOiBEZWVwUGFydGlhbDxTdGF0ZT4pIHtcclxuICAgIC8vIFRPRE86IFN0cmljdCBpbXByb3ZlIGRlZXBNZXJnZVxyXG4gICAgdGhpcy5zdGF0ZSQubmV4dChkZWVwTWVyZ2UodGhpcy5zdGF0ZSwgc3RhdGUpIGFzIFN0YXRlKTtcclxuICAgIHRoaXMudXBkYXRlJC5uZXh0KHN0YXRlKTtcclxuICB9XHJcblxyXG4gIHNldChzdGF0ZTogU3RhdGUpIHtcclxuICAgIHRoaXMuc3RhdGUkLm5leHQoc3RhdGUpO1xyXG4gICAgdGhpcy51cGRhdGUkLm5leHQoc3RhdGUgYXMgRGVlcFBhcnRpYWw8U3RhdGU+KTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5zZXQodGhpcy5pbml0aWFsU3RhdGUpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { InternalStore } from '../utils/internal-store-utils';\nimport * as i0 from \"@angular/core\";\nconst mapToApiUrl = (key) => (apis) => ((key && apis[key]) || apis.default).url || apis.default.url;\nconst mapToIssuer = (issuer) => {\n    if (!issuer) {\n        return issuer;\n    }\n    return issuer.endsWith('/') ? issuer : issuer + '/';\n};\nexport class EnvironmentService {\n    constructor() {\n        this.store = new InternalStore({});\n    }\n    get createOnUpdateStream() {\n        return this.store.sliceUpdate;\n    }\n    getEnvironment$() {\n        return this.store.sliceState(state => state);\n    }\n    getEnvironment() {\n        return this.store.state;\n    }\n    getApiUrl(key) {\n        return mapToApiUrl(key)(this.store.state?.apis);\n    }\n    getApiUrl$(key) {\n        return this.store.sliceState(state => state.apis).pipe(map(mapToApiUrl(key)));\n    }\n    setState(environment) {\n        this.store.set(environment);\n    }\n    getIssuer() {\n        const issuer = this.store.state?.oAuthConfig?.issuer;\n        return mapToIssuer(issuer);\n    }\n    getIssuer$() {\n        return this.store.sliceState(state => state?.oAuthConfig?.issuer).pipe(map(mapToIssuer));\n    }\n    getImpersonation() {\n        return this.store.state?.oAuthConfig?.impersonation || {};\n    }\n    getImpersonation$() {\n        return this.store.sliceState(state => state?.oAuthConfig?.impersonation || {});\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: EnvironmentService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: EnvironmentService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFOUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQzlELENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUUvRCxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQTBCLEVBQUUsRUFBRTtJQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVtQixVQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsRUFBaUIsQ0FBQyxDQUFDO0tBMkMvRDtJQXpDQyxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQXVCO1FBQy9CLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsUUFBUSxDQUFDLFdBQXdCO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQztRQUVyRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OEdBM0NVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7MkZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBcGlzLCBFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscy9lbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IEludGVybmFsU3RvcmUgfSBmcm9tICcuLi91dGlscy9pbnRlcm5hbC1zdG9yZS11dGlscyc7XHJcblxyXG5jb25zdCBtYXBUb0FwaVVybCA9IChrZXk6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gKGFwaXM6IEFwaXMpID0+XHJcbiAgKChrZXkgJiYgYXBpc1trZXldKSB8fCBhcGlzLmRlZmF1bHQpLnVybCB8fCBhcGlzLmRlZmF1bHQudXJsO1xyXG5cclxuY29uc3QgbWFwVG9Jc3N1ZXIgPSAoaXNzdWVyOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcclxuICBpZiAoIWlzc3Vlcikge1xyXG4gICAgcmV0dXJuIGlzc3VlcjtcclxuICB9XHJcbiAgcmV0dXJuIGlzc3Vlci5lbmRzV2l0aCgnLycpID8gaXNzdWVyIDogaXNzdWVyICsgJy8nO1xyXG59O1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50U2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IG5ldyBJbnRlcm5hbFN0b3JlKHt9IGFzIEVudmlyb25tZW50KTtcclxuXHJcbiAgZ2V0IGNyZWF0ZU9uVXBkYXRlU3RyZWFtKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VVcGRhdGU7XHJcbiAgfVxyXG5cclxuICBnZXRFbnZpcm9ubWVudCQoKTogT2JzZXJ2YWJsZTxFbnZpcm9ubWVudD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRFbnZpcm9ubWVudCgpOiBFbnZpcm9ubWVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZTtcclxuICB9XHJcblxyXG4gIGdldEFwaVVybChrZXk6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgcmV0dXJuIG1hcFRvQXBpVXJsKGtleSkodGhpcy5zdG9yZS5zdGF0ZT8uYXBpcyk7XHJcbiAgfVxyXG5cclxuICBnZXRBcGlVcmwkKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLmFwaXMpLnBpcGUobWFwKG1hcFRvQXBpVXJsKGtleSkpKTtcclxuICB9XHJcblxyXG4gIHNldFN0YXRlKGVudmlyb25tZW50OiBFbnZpcm9ubWVudCkge1xyXG4gICAgdGhpcy5zdG9yZS5zZXQoZW52aXJvbm1lbnQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXNzdWVyKCkge1xyXG4gICAgY29uc3QgaXNzdWVyID0gdGhpcy5zdG9yZS5zdGF0ZT8ub0F1dGhDb25maWc/Lmlzc3VlcjtcclxuXHJcbiAgICByZXR1cm4gbWFwVG9Jc3N1ZXIoaXNzdWVyKTtcclxuICB9XHJcblxyXG4gIGdldElzc3VlciQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlPy5vQXV0aENvbmZpZz8uaXNzdWVyKS5waXBlKG1hcChtYXBUb0lzc3VlcikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW1wZXJzb25hdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlPy5vQXV0aENvbmZpZz8uaW1wZXJzb25hdGlvbiB8fCB7fTtcclxuICB9XHJcblxyXG4gIGdldEltcGVyc29uYXRpb24kKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZT8ub0F1dGhDb25maWc/LmltcGVyc29uYXRpb24gfHwge30pO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class HttpErrorReporterService {\n    constructor() {\n        this._reporter$ = new Subject();\n        this._errors$ = new BehaviorSubject([]);\n    }\n    get reporter$() {\n        return this._reporter$.asObservable();\n    }\n    get errors$() {\n        return this._errors$.asObservable();\n    }\n    get errors() {\n        return this._errors$.value;\n    }\n    reportError(error) {\n        this._reporter$.next(error);\n        this._errors$.next([...this.errors, error]);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: HttpErrorReporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: HttpErrorReporterService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: HttpErrorReporterService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1yZXBvcnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAtZXJyb3ItcmVwb3J0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUdoRCxNQUFNLE9BQU8sd0JBQXdCO0lBRHJDO1FBRVUsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFxQixDQUFDO1FBQzlDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBc0IsRUFBRSxDQUFDLENBQUM7S0FrQmpFO0lBaEJDLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBd0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQW5CVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQURYLE1BQU07OzJGQUNuQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgSHR0cEVycm9yUmVwb3J0ZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9yZXBvcnRlciQgPSBuZXcgU3ViamVjdDxIdHRwRXJyb3JSZXNwb25zZT4oKTtcclxuICBwcml2YXRlIF9lcnJvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIdHRwRXJyb3JSZXNwb25zZVtdPihbXSk7XHJcblxyXG4gIGdldCByZXBvcnRlciQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVwb3J0ZXIkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVycm9ycyQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvcnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlcG9ydEVycm9yKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgdGhpcy5fcmVwb3J0ZXIkLm5leHQoZXJyb3IpO1xyXG4gICAgdGhpcy5fZXJyb3JzJC5uZXh0KFsuLi50aGlzLmVycm9ycywgZXJyb3JdKTtcclxuICB9XHJcbn1cclxuIl19","import { HttpClient } from '@angular/common/http';\nimport { of } from 'rxjs';\nimport { catchError, tap } from 'rxjs/operators';\nimport { EnvironmentService } from '../services/environment.service';\nimport { HttpErrorReporterService } from '../services/http-error-reporter.service';\nimport { deepMerge } from './object-utils';\nexport function getRemoteEnv(injector, environment) {\n    const environmentService = injector.get(EnvironmentService);\n    const { remoteEnv } = environment;\n    const { headers = {}, method = 'GET', url } = remoteEnv || {};\n    if (!url)\n        return Promise.resolve();\n    const http = injector.get(HttpClient);\n    const httpErrorReporter = injector.get(HttpErrorReporterService);\n    return http\n        .request(method, url, { headers })\n        .pipe(catchError(err => {\n        httpErrorReporter.reportError(err);\n        return of(null);\n    }), // TODO: Consider get handle function from a provider\n    tap(env => environmentService.setState(mergeEnvironments(environment, env || {}, remoteEnv))))\n        .toPromise();\n}\nfunction mergeEnvironments(local, remote, config) {\n    switch (config.mergeStrategy) {\n        case 'deepmerge':\n            return deepMerge(local, remote);\n        case 'overwrite':\n        case null:\n        case undefined:\n            return remote;\n        default:\n            return config.mergeStrategy(local, remote);\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvZW52aXJvbm1lbnQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsTUFBTSxVQUFVLFlBQVksQ0FBQyxRQUFrQixFQUFFLFdBQWlDO0lBQ2hGLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRTVELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFDbEMsTUFBTSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxTQUFTLElBQUssRUFBZ0IsQ0FBQztJQUM3RSxJQUFJLENBQUMsR0FBRztRQUFFLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRW5DLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFakUsT0FBTyxJQUFJO1NBQ1IsT0FBTyxDQUFjLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUM5QyxJQUFJLENBQ0gsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2YsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxFQUFFLHFEQUFxRDtJQUN6RCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDUixrQkFBa0IsQ0FBQyxRQUFRLENBQ3pCLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUssRUFBa0IsRUFBRSxTQUFzQixDQUFDLENBQ25GLENBQ0YsQ0FDRjtTQUNBLFNBQVMsRUFBRSxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUN4QixLQUEyQixFQUMzQixNQUFtQixFQUNuQixNQUFpQjtJQUVqQixRQUFRLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QixLQUFLLFdBQVc7WUFDZCxPQUFPLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFnQixDQUFDO1FBQ2pELEtBQUssV0FBVyxDQUFDO1FBQ2pCLEtBQUssSUFBSSxDQUFDO1FBQ1YsS0FBSyxTQUFTO1lBQ1osT0FBTyxNQUFNLENBQUM7UUFDaEI7WUFDRSxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCwgUmVtb3RlRW52IH0gZnJvbSAnLi4vbW9kZWxzL2Vudmlyb25tZW50JztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlcG9ydGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2h0dHAtZXJyb3ItcmVwb3J0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJy4vb2JqZWN0LXV0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRSZW1vdGVFbnYoaW5qZWN0b3I6IEluamVjdG9yLCBlbnZpcm9ubWVudDogUGFydGlhbDxFbnZpcm9ubWVudD4pIHtcclxuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuXHJcbiAgY29uc3QgeyByZW1vdGVFbnYgfSA9IGVudmlyb25tZW50O1xyXG4gIGNvbnN0IHsgaGVhZGVycyA9IHt9LCBtZXRob2QgPSAnR0VUJywgdXJsIH0gPSByZW1vdGVFbnYgfHwgKHt9IGFzIFJlbW90ZUVudik7XHJcbiAgaWYgKCF1cmwpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuXHJcbiAgY29uc3QgaHR0cCA9IGluamVjdG9yLmdldChIdHRwQ2xpZW50KTtcclxuICBjb25zdCBodHRwRXJyb3JSZXBvcnRlciA9IGluamVjdG9yLmdldChIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UpO1xyXG5cclxuICByZXR1cm4gaHR0cFxyXG4gICAgLnJlcXVlc3Q8RW52aXJvbm1lbnQ+KG1ldGhvZCwgdXJsLCB7IGhlYWRlcnMgfSlcclxuICAgIC5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XHJcbiAgICAgICAgaHR0cEVycm9yUmVwb3J0ZXIucmVwb3J0RXJyb3IoZXJyKTtcclxuICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgIH0pLCAvLyBUT0RPOiBDb25zaWRlciBnZXQgaGFuZGxlIGZ1bmN0aW9uIGZyb20gYSBwcm92aWRlclxyXG4gICAgICB0YXAoZW52ID0+XHJcbiAgICAgICAgZW52aXJvbm1lbnRTZXJ2aWNlLnNldFN0YXRlKFxyXG4gICAgICAgICAgbWVyZ2VFbnZpcm9ubWVudHMoZW52aXJvbm1lbnQsIGVudiB8fCAoe30gYXMgRW52aXJvbm1lbnQpLCByZW1vdGVFbnYgYXMgUmVtb3RlRW52KSxcclxuICAgICAgICApLFxyXG4gICAgICApLFxyXG4gICAgKVxyXG4gICAgLnRvUHJvbWlzZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZUVudmlyb25tZW50cyhcclxuICBsb2NhbDogUGFydGlhbDxFbnZpcm9ubWVudD4sXHJcbiAgcmVtb3RlOiBFbnZpcm9ubWVudCxcclxuICBjb25maWc6IFJlbW90ZUVudixcclxuKTogRW52aXJvbm1lbnQge1xyXG4gIHN3aXRjaCAoY29uZmlnLm1lcmdlU3RyYXRlZ3kpIHtcclxuICAgIGNhc2UgJ2RlZXBtZXJnZSc6XHJcbiAgICAgIHJldHVybiBkZWVwTWVyZ2UobG9jYWwsIHJlbW90ZSkgYXMgRW52aXJvbm1lbnQ7XHJcbiAgICBjYXNlICdvdmVyd3JpdGUnOlxyXG4gICAgY2FzZSBudWxsOlxyXG4gICAgY2FzZSB1bmRlZmluZWQ6XHJcbiAgICAgIHJldHVybiByZW1vdGU7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gY29uZmlnLm1lcmdlU3RyYXRlZ3kobG9jYWwsIHJlbW90ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { Compiler, Injector, NgModuleFactory, } from '@angular/core';\nimport { filter, map } from 'rxjs/operators';\nexport class LazyModuleFactory extends NgModuleFactory {\n    get moduleType() {\n        return this.moduleWithProviders.ngModule;\n    }\n    constructor(moduleWithProviders) {\n        super();\n        this.moduleWithProviders = moduleWithProviders;\n    }\n    create(parentInjector) {\n        const injector = Injector.create({\n            ...(parentInjector && { parent: parentInjector }),\n            providers: this.moduleWithProviders.providers,\n        });\n        const compiler = injector.get(Compiler);\n        const factory = compiler.compileModuleSync(this.moduleType);\n        return factory.create(injector);\n    }\n}\nexport function featuresFactory(configState, featureKeys, mapFn = features => features) {\n    return configState.getFeatures$(featureKeys).pipe(filter(Boolean), map(mapFn));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9mYWN0b3J5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsUUFBUSxFQUVSLGVBQWUsR0FJaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxNQUFNLE9BQU8saUJBQXFCLFNBQVEsZUFBa0I7SUFDMUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDO0lBQzNDLENBQUM7SUFFRCxZQUFvQixtQkFBMkM7UUFDN0QsS0FBSyxFQUFFLENBQUM7UUFEVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO0lBRS9ELENBQUM7SUFFRCxNQUFNLENBQUMsY0FBK0I7UUFDcEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQixHQUFHLENBQUMsY0FBYyxJQUFJLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxDQUFDO1lBQ2pELFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBNkI7U0FDbEUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUM3QixXQUErQixFQUMvQixXQUFxQixFQUNyQixRQUFzRCxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVE7SUFFMUUsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcGlsZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcclxuICBOZ01vZHVsZUZhY3RvcnksXHJcbiAgTmdNb2R1bGVSZWYsXHJcbiAgU3RhdGljUHJvdmlkZXIsXHJcbiAgVHlwZSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBMYXp5TW9kdWxlRmFjdG9yeTxUPiBleHRlbmRzIE5nTW9kdWxlRmFjdG9yeTxUPiB7XHJcbiAgZ2V0IG1vZHVsZVR5cGUoKTogVHlwZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5tb2R1bGVXaXRoUHJvdmlkZXJzLm5nTW9kdWxlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2R1bGVXaXRoUHJvdmlkZXJzOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFQ+KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKHBhcmVudEluamVjdG9yOiBJbmplY3RvciB8IG51bGwpOiBOZ01vZHVsZVJlZjxUPiB7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgIC4uLihwYXJlbnRJbmplY3RvciAmJiB7IHBhcmVudDogcGFyZW50SW5qZWN0b3IgfSksXHJcbiAgICAgIHByb3ZpZGVyczogdGhpcy5tb2R1bGVXaXRoUHJvdmlkZXJzLnByb3ZpZGVycyBhcyBTdGF0aWNQcm92aWRlcltdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgY29tcGlsZXIgPSBpbmplY3Rvci5nZXQoQ29tcGlsZXIpO1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IGNvbXBpbGVyLmNvbXBpbGVNb2R1bGVTeW5jKHRoaXMubW9kdWxlVHlwZSk7XHJcblxyXG4gICAgcmV0dXJuIGZhY3RvcnkuY3JlYXRlKGluamVjdG9yKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmZWF0dXJlc0ZhY3RvcnkoXHJcbiAgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICBmZWF0dXJlS2V5czogc3RyaW5nW10sXHJcbiAgbWFwRm46IChmZWF0dXJlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkgPT4gYW55ID0gZmVhdHVyZXMgPT4gZmVhdHVyZXMsXHJcbikge1xyXG4gIHJldHVybiBjb25maWdTdGF0ZS5nZXRGZWF0dXJlcyQoZmVhdHVyZUtleXMpLnBpcGUoZmlsdGVyKEJvb2xlYW4pLCBtYXAobWFwRm4pKTtcclxufVxyXG4iXX0=","/** @deprecated the method will change in v8.0 */\nexport function downloadBlob(blob, filename) {\n    const blobUrl = URL.createObjectURL(blob);\n    const link = document.createElement('a');\n    link.href = blobUrl;\n    link.download = filename;\n    document.body.appendChild(link);\n    link.dispatchEvent(new MouseEvent('click', {\n        bubbles: true,\n        cancelable: true,\n        view: window,\n    }));\n    document.body.removeChild(link);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9maWxlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlEQUFpRDtBQUNqRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVUsRUFBRSxRQUFnQjtJQUN2RCxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFekMsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7SUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFFekIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEMsSUFBSSxDQUFDLGFBQWEsQ0FDaEIsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1FBQ3RCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsVUFBVSxFQUFFLElBQUk7UUFDaEIsSUFBSSxFQUFFLE1BQU07S0FDYixDQUFDLENBQ0gsQ0FBQztJQUVGLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGRlcHJlY2F0ZWQgdGhlIG1ldGhvZCB3aWxsIGNoYW5nZSBpbiB2OC4wICovIFxyXG5leHBvcnQgZnVuY3Rpb24gZG93bmxvYWRCbG9iKGJsb2I6IEJsb2IsIGZpbGVuYW1lOiBzdHJpbmcpIHtcclxuICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuXHJcbiAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuXHJcbiAgbGluay5ocmVmID0gYmxvYlVybDtcclxuICBsaW5rLmRvd25sb2FkID0gZmlsZW5hbWU7XHJcblxyXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XHJcblxyXG4gIGxpbmsuZGlzcGF0Y2hFdmVudChcclxuICAgIG5ldyBNb3VzZUV2ZW50KCdjbGljaycsIHtcclxuICAgICAgYnViYmxlczogdHJ1ZSxcclxuICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcclxuICAgICAgdmlldzogd2luZG93LFxyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcclxufVxyXG4iXX0=","export function isNumber(value) {\n    return value == Number(value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL251bWJlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXNCO0lBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcclxuICByZXR1cm4gdmFsdWUgPT0gTnVtYmVyKHZhbHVlKTtcclxufVxyXG4iXX0=","import { isNumber } from './number-utils';\nexport function mapEnumToOptions(_enum) {\n    const options = [];\n    for (const member in _enum)\n        if (!isNumber(member))\n            options.push({\n                key: member,\n                value: _enum[member],\n            });\n    return options;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9mb3JtLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLFVBQVUsZ0JBQWdCLENBQUksS0FBUTtJQUMxQyxNQUFNLE9BQU8sR0FBb0IsRUFBRSxDQUFDO0lBRXBDLEtBQUssTUFBTSxNQUFNLElBQUksS0FBSztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLEdBQUcsRUFBRSxNQUFNO2dCQUNYLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO2FBQ3JCLENBQUMsQ0FBQztJQUVQLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMvY29tbW9uJztcclxuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuL251bWJlci11dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFwRW51bVRvT3B0aW9uczxUPihfZW51bTogVCk6IEFCUC5PcHRpb248VD5bXSB7XHJcbiAgY29uc3Qgb3B0aW9uczogQUJQLk9wdGlvbjxUPltdID0gW107XHJcblxyXG4gIGZvciAoY29uc3QgbWVtYmVyIGluIF9lbnVtKVxyXG4gICAgaWYgKCFpc051bWJlcihtZW1iZXIpKVxyXG4gICAgICBvcHRpb25zLnB1c2goe1xyXG4gICAgICAgIGtleTogbWVtYmVyLFxyXG4gICAgICAgIHZhbHVlOiBfZW51bVttZW1iZXJdLFxyXG4gICAgICB9KTtcclxuXHJcbiAgcmV0dXJuIG9wdGlvbnM7XHJcbn1cclxuIl19","import { ConfigStateService } from '../services';\nexport function uuid(a) {\n    return a\n        ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)\n        : ('' + 1e7 + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);\n}\nexport function generateHash(value) {\n    let hashed = 0;\n    let charCode;\n    for (let i = 0; i < value.length; i++) {\n        charCode = value.charCodeAt(i);\n        hashed = (hashed << 5) - hashed + charCode;\n        hashed |= 0;\n    }\n    return hashed;\n}\nexport function generatePassword(injector, length = 8) {\n    if (injector) {\n        length = getRequiredPasswordLength(injector);\n    }\n    length = Math.min(Math.max(4, length), 128);\n    const lowers = 'abcdefghjkmnpqrstuvwxyz';\n    const uppers = 'ABCDEFGHJKMNPQRSTUVWXYZ';\n    const numbers = '23456789';\n    const specials = '!*_#/+-.';\n    const all = lowers + uppers + numbers + specials;\n    const getRandom = (chrSet) => chrSet[Math.floor(Math.random() * chrSet.length)];\n    const password = Array({ length });\n    password[0] = getRandom(lowers);\n    password[1] = getRandom(uppers);\n    password[2] = getRandom(numbers);\n    password[3] = getRandom(specials);\n    for (let i = 4; i < length; i++) {\n        password[i] = getRandom(all);\n    }\n    return password.sort(() => 0.5 - Math.random()).join('');\n}\nfunction getRequiredPasswordLength(injector) {\n    const configState = injector.get(ConfigStateService);\n    const passwordRules = configState.getSettings('Identity.Password');\n    return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2dlbmVyYXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsTUFBTSxVQUFVLElBQUksQ0FBQyxDQUFPO0lBQzFCLE9BQU8sQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWE7SUFDeEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxRQUFnQixDQUFDO0lBRXJCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsTUFBTSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDM0MsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQW1CLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDOUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFNUMsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQzNCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM1QixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sR0FBRyxRQUFRLENBQUM7SUFFakQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUV4RixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLFFBQWtCO0lBQ25ELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyRCxNQUFNLGFBQWEsR0FBMkIsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNGLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXVpZChhPzogYW55KTogc3RyaW5nIHtcclxuICByZXR1cm4gYVxyXG4gICAgPyAoYSBeICgoTWF0aC5yYW5kb20oKSAqIDE2KSA+PiAoYSAvIDQpKSkudG9TdHJpbmcoMTYpXHJcbiAgICA6ICgnJyArIDFlNyArIC0xZTMgKyAtNGUzICsgLThlMyArIC0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLCB1dWlkKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSGFzaCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICBsZXQgaGFzaGVkID0gMDtcclxuICBsZXQgY2hhckNvZGU6IG51bWJlcjtcclxuXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgY2hhckNvZGUgPSB2YWx1ZS5jaGFyQ29kZUF0KGkpO1xyXG4gICAgaGFzaGVkID0gKGhhc2hlZCA8PCA1KSAtIGhhc2hlZCArIGNoYXJDb2RlO1xyXG4gICAgaGFzaGVkIHw9IDA7XHJcbiAgfVxyXG4gIHJldHVybiBoYXNoZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVBhc3N3b3JkKGluamVjdG9yPzogSW5qZWN0b3IsIGxlbmd0aCA9IDgpIHtcclxuICBpZiAoaW5qZWN0b3IpIHtcclxuICAgIGxlbmd0aCA9IGdldFJlcXVpcmVkUGFzc3dvcmRMZW5ndGgoaW5qZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgbGVuZ3RoID0gTWF0aC5taW4oTWF0aC5tYXgoNCwgbGVuZ3RoKSwgMTI4KTtcclxuXHJcbiAgY29uc3QgbG93ZXJzID0gJ2FiY2RlZmdoamttbnBxcnN0dXZ3eHl6JztcclxuICBjb25zdCB1cHBlcnMgPSAnQUJDREVGR0hKS01OUFFSU1RVVldYWVonO1xyXG4gIGNvbnN0IG51bWJlcnMgPSAnMjM0NTY3ODknO1xyXG4gIGNvbnN0IHNwZWNpYWxzID0gJyEqXyMvKy0uJztcclxuICBjb25zdCBhbGwgPSBsb3dlcnMgKyB1cHBlcnMgKyBudW1iZXJzICsgc3BlY2lhbHM7XHJcblxyXG4gIGNvbnN0IGdldFJhbmRvbSA9IChjaHJTZXQ6IHN0cmluZykgPT4gY2hyU2V0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoclNldC5sZW5ndGgpXTtcclxuXHJcbiAgY29uc3QgcGFzc3dvcmQgPSBBcnJheSh7IGxlbmd0aCB9KTtcclxuICBwYXNzd29yZFswXSA9IGdldFJhbmRvbShsb3dlcnMpO1xyXG4gIHBhc3N3b3JkWzFdID0gZ2V0UmFuZG9tKHVwcGVycyk7XHJcbiAgcGFzc3dvcmRbMl0gPSBnZXRSYW5kb20obnVtYmVycyk7XHJcbiAgcGFzc3dvcmRbM10gPSBnZXRSYW5kb20oc3BlY2lhbHMpO1xyXG5cclxuICBmb3IgKGxldCBpID0gNDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICBwYXNzd29yZFtpXSA9IGdldFJhbmRvbShhbGwpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHBhc3N3b3JkLnNvcnQoKCkgPT4gMC41IC0gTWF0aC5yYW5kb20oKSkuam9pbignJyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFJlcXVpcmVkUGFzc3dvcmRMZW5ndGgoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgY29uc3QgY29uZmlnU3RhdGUgPSBpbmplY3Rvci5nZXQoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICBjb25zdCBwYXNzd29yZFJ1bGVzOiBBQlAuRGljdGlvbmFyeTxzdHJpbmc+ID0gY29uZmlnU3RhdGUuZ2V0U2V0dGluZ3MoJ0lkZW50aXR5LlBhc3N3b3JkJyk7XHJcbiAgcmV0dXJuIE51bWJlcihwYXNzd29yZFJ1bGVzWydBYnAuSWRlbnRpdHkuUGFzc3dvcmQuUmVxdWlyZWRMZW5ndGgnXSkgfHwgODtcclxufVxyXG4iXX0=","export function getPathName(url) {\n    const { pathname } = new URL(url, window.location.origin);\n    return pathname;\n}\nexport class WebHttpUrlEncodingCodec {\n    encodeKey(k) {\n        return encodeURIComponent(k);\n    }\n    encodeValue(v) {\n        return encodeURIComponent(v);\n    }\n    decodeKey(k) {\n        return decodeURIComponent(k);\n    }\n    decodeValue(v) {\n        return decodeURIComponent(v);\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9odHRwLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBVztJQUNyQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsU0FBUyxDQUFDLENBQVM7UUFDakIsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLENBQVM7UUFDbkIsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsU0FBUyxDQUFDLENBQVM7UUFDakIsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVyxDQUFDLENBQVM7UUFDbkIsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1ldGVyQ29kZWMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGF0aE5hbWUodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IHsgcGF0aG5hbWUgfSA9IG5ldyBVUkwodXJsLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcclxuICByZXR1cm4gcGF0aG5hbWU7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBXZWJIdHRwVXJsRW5jb2RpbmdDb2RlYyBpbXBsZW1lbnRzIEh0dHBQYXJhbWV0ZXJDb2RlYyB7XHJcbiAgZW5jb2RlS2V5KGs6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGspO1xyXG4gIH1cclxuXHJcbiAgZW5jb2RlVmFsdWUodjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBlbmNvZGVVUklDb21wb25lbnQodik7XHJcbiAgfVxyXG5cclxuICBkZWNvZGVLZXkoazogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoayk7XHJcbiAgfVxyXG5cclxuICBkZWNvZGVWYWx1ZSh2OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQodik7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AbpLocalStorageService {\n    constructor() { }\n    get length() {\n        return localStorage.length;\n    }\n    clear() {\n        localStorage.clear();\n    }\n    getItem(key) {\n        return localStorage.getItem(key);\n    }\n    key(index) {\n        return localStorage.key(index);\n    }\n    removeItem(key) {\n        localStorage.removeItem(key);\n    }\n    setItem(key, value) {\n        localStorage.setItem(key, value);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpLocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpLocalStorageService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpLocalStorageService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLGdCQUFlLENBQUM7SUFFaEIsSUFBSSxNQUFNO1FBQ1IsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFRCxLQUFLO1FBQ0gsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBVztRQUNqQixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUNELEdBQUcsQ0FBQyxLQUFhO1FBQ2YsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBVztRQUNwQixZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDaEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs4R0FyQlUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBYnBMb2NhbFN0b3JhZ2VTZXJ2aWNlIGltcGxlbWVudHMgU3RvcmFnZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIFtuYW1lOiBzdHJpbmddOiBhbnk7XHJcbiAgZ2V0IGxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gIH1cclxuICBnZXRJdGVtKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xyXG4gIH1cclxuICBrZXkoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmtleShpbmRleCk7XHJcbiAgfVxyXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XHJcbiAgfVxyXG4gIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport compare from 'just-compare';\nimport { filter, take } from 'rxjs/operators';\nimport { InternalStore } from '../utils/internal-store-utils';\nimport { ConfigStateService } from './config-state.service';\nimport { AbpLocalStorageService } from './local-storage.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./config-state.service\";\nimport * as i2 from \"./local-storage.service\";\nexport class SessionStateService {\n    constructor(configState, localStorageService) {\n        this.configState = configState;\n        this.localStorageService = localStorageService;\n        this.store = new InternalStore({});\n        this.document = inject(DOCUMENT);\n        this.updateLocalStorage = () => {\n            this.localStorageService.setItem('abpSession', JSON.stringify(this.store.state));\n        };\n        this.init();\n        this.setInitialLanguage();\n    }\n    init() {\n        const session = this.localStorageService.getItem('abpSession');\n        if (session) {\n            this.store.set(JSON.parse(session));\n        }\n        this.store.sliceUpdate(state => state).subscribe(this.updateLocalStorage);\n    }\n    setInitialLanguage() {\n        const appLanguage = this.getLanguage();\n        this.configState\n            .getDeep$('localization.currentCulture.cultureName')\n            .pipe(filter(cultureName => !!cultureName), take(1))\n            .subscribe(lang => {\n            if (lang.includes(';')) {\n                lang = lang.split(';')[0];\n            }\n            this.setLanguage(lang);\n        });\n    }\n    onLanguageChange$() {\n        return this.store.sliceUpdate(state => state.language);\n    }\n    onTenantChange$() {\n        return this.store.sliceUpdate(state => state.tenant);\n    }\n    getLanguage() {\n        return this.store.state.language;\n    }\n    getLanguage$() {\n        return this.store.sliceState(state => state.language);\n    }\n    getTenant() {\n        return this.store.state.tenant;\n    }\n    getTenant$() {\n        return this.store.sliceState(state => state.tenant);\n    }\n    setTenant(tenant) {\n        if (compare(tenant, this.store.state.tenant))\n            return;\n        this.store.set({ ...this.store.state, tenant });\n    }\n    setLanguage(language) {\n        const currentLanguage = this.store.state.language;\n        if (language !== currentLanguage) {\n            this.store.patch({ language });\n        }\n        const currentAttribute = this.document.documentElement.getAttribute('lang');\n        if (language !== currentAttribute) {\n            this.document.documentElement.setAttribute('lang', language);\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SessionStateService, deps: [{ token: i1.ConfigStateService }, { token: i2.AbpLocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SessionStateService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SessionStateService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.ConfigStateService }, { type: i2.AbpLocalStorageService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3Nlc3Npb24tc3RhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7O0FBS2pFLE1BQU0sT0FBTyxtQkFBbUI7SUFROUIsWUFDVSxXQUErQixFQUMvQixtQkFBMkM7UUFEM0MsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFUcEMsVUFBSyxHQUFHLElBQUksYUFBYSxDQUFDLEVBQW1CLENBQUMsQ0FBQztRQUM3QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXZDLHVCQUFrQixHQUFHLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDLENBQUM7UUFNQSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FB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NUUsSUFBSSxRQUFRLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDOzhHQXBGVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi4vbW9kZWxzL3Nlc3Npb24nO1xyXG5pbXBvcnQgeyBDdXJyZW50VGVuYW50RHRvIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9tdWx0aS10ZW5hbmN5L21vZGVscyc7XHJcbmltcG9ydCB7IEludGVybmFsU3RvcmUgfSBmcm9tICcuLi91dGlscy9pbnRlcm5hbC1zdG9yZS11dGlscyc7XHJcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJy4vY29uZmlnLXN0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBYnBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlc3Npb25TdGF0ZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBuZXcgSW50ZXJuYWxTdG9yZSh7fSBhcyBTZXNzaW9uLlN0YXRlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG5cclxuICBwcml2YXRlIHVwZGF0ZUxvY2FsU3RvcmFnZSA9ICgpID0+IHtcclxuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKCdhYnBTZXNzaW9uJywgSlNPTi5zdHJpbmdpZnkodGhpcy5zdG9yZS5zdGF0ZSkpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBBYnBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgICB0aGlzLnNldEluaXRpYWxMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0KCkge1xyXG4gICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXRJdGVtKCdhYnBTZXNzaW9uJyk7XHJcbiAgICBpZiAoc2Vzc2lvbikge1xyXG4gICAgICB0aGlzLnN0b3JlLnNldChKU09OLnBhcnNlKHNlc3Npb24pKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0b3JlLnNsaWNlVXBkYXRlKHN0YXRlID0+IHN0YXRlKS5zdWJzY3JpYmUodGhpcy51cGRhdGVMb2NhbFN0b3JhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRJbml0aWFsTGFuZ3VhZ2UoKSB7XHJcbiAgICBjb25zdCBhcHBMYW5ndWFnZSA9IHRoaXMuZ2V0TGFuZ3VhZ2UoKTtcclxuXHJcbiAgICB0aGlzLmNvbmZpZ1N0YXRlXHJcbiAgICAgIC5nZXREZWVwJCgnbG9jYWxpemF0aW9uLmN1cnJlbnRDdWx0dXJlLmN1bHR1cmVOYW1lJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKGN1bHR1cmVOYW1lID0+ICEhY3VsdHVyZU5hbWUpLFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShsYW5nID0+IHtcclxuICAgICAgICBpZiAobGFuZy5pbmNsdWRlcygnOycpKSB7XHJcbiAgICAgICAgICBsYW5nID0gbGFuZy5zcGxpdCgnOycpWzBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgICB0aGlzLnNldExhbmd1YWdlKGxhbmcpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uTGFuZ3VhZ2VDaGFuZ2UkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VVcGRhdGUoc3RhdGUgPT4gc3RhdGUubGFuZ3VhZ2UpO1xyXG4gIH1cclxuXHJcbiAgb25UZW5hbnRDaGFuZ2UkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VVcGRhdGUoc3RhdGUgPT4gc3RhdGUudGVuYW50KTtcclxuICB9XHJcblxyXG4gIGdldExhbmd1YWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGUubGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuICBnZXRMYW5ndWFnZSQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLmxhbmd1YWdlKTtcclxuICB9XHJcblxyXG4gIGdldFRlbmFudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlLnRlbmFudDtcclxuICB9XHJcblxyXG4gIGdldFRlbmFudCQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLnRlbmFudCk7XHJcbiAgfVxyXG5cclxuICBzZXRUZW5hbnQodGVuYW50OiBDdXJyZW50VGVuYW50RHRvIHwgbnVsbCkge1xyXG4gICAgaWYgKGNvbXBhcmUodGVuYW50LCB0aGlzLnN0b3JlLnN0YXRlLnRlbmFudCkpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnN0b3JlLnNldCh7IC4uLnRoaXMuc3RvcmUuc3RhdGUsIHRlbmFudCB9KTtcclxuICB9XHJcblxyXG4gIHNldExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IHRoaXMuc3RvcmUuc3RhdGUubGFuZ3VhZ2U7XHJcblxyXG4gICAgaWYgKGxhbmd1YWdlICE9PSBjdXJyZW50TGFuZ3VhZ2UpIHtcclxuICAgICAgdGhpcy5zdG9yZS5wYXRjaCh7IGxhbmd1YWdlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRBdHRyaWJ1dGUgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2xhbmcnKTtcclxuICAgIGlmIChsYW5ndWFnZSAhPT0gY3VycmVudEF0dHJpYnV0ZSkge1xyXG4gICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2xhbmcnLCBsYW5ndWFnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const APP_INIT_ERROR_HANDLERS = new InjectionToken('APP_INIT_ERROR_HANDLERS');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNvbmZpZy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi90b2tlbnMvYXBwLWNvbmZpZy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUN2RCx5QkFBeUIsQ0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgdHlwZSBBcHBJbml0RXJyb3JGbiA9IChlcnJvcjogYW55KSA9PiB2b2lkO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQUF9JTklUX0VSUk9SX0hBTkRMRVJTID0gbmV3IEluamVjdGlvblRva2VuPEFwcEluaXRFcnJvckZuW10+KFxyXG4gICdBUFBfSU5JVF9FUlJPUl9IQU5ETEVSUycsXHJcbik7XHJcbiJdfQ==","import { RestService } from '../../../../services';\nimport { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../../../services\";\nexport class AbpTenantService {\n    constructor(restService) {\n        this.restService = restService;\n        this.apiName = 'abp';\n        this.findTenantById = (id, config) => this.restService.request({\n            method: 'GET',\n            url: `/api/abp/multi-tenancy/tenants/by-id/${id}`,\n        }, { apiName: this.apiName, ...config });\n        this.findTenantByName = (name, config) => this.restService.request({\n            method: 'GET',\n            url: `/api/abp/multi-tenancy/tenants/by-name/${name}`,\n        }, { apiName: this.apiName, ...config });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpTenantService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpTenantService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpTenantService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.RestService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLXRlbmFudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3h5L3BhZ2VzL2FicC9tdWx0aS10ZW5hbmN5L2FicC10ZW5hbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTTNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFtQjNCLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBbEI1QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLG1CQUFjLEdBQUcsQ0FBQyxFQUFVLEVBQUUsTUFBNkIsRUFBRSxFQUFFLENBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUEyQjtZQUNqRCxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSx3Q0FBd0MsRUFBRSxFQUFFO1NBQ2xELEVBQ0QsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFHdkMscUJBQWdCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsTUFBNkIsRUFBRSxFQUFFLENBQ2pFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUEyQjtZQUNqRCxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSwwQ0FBMEMsSUFBSSxFQUFFO1NBQ3RELEVBQ0QsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFUSxDQUFDOzhHQW5CckMsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFJlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgRmluZFRlbmFudFJlc3VsdER0byB9IGZyb20gJy4uLy4uLy4uL3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvbXVsdGktdGVuYW5jeS9tb2RlbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFicFRlbmFudFNlcnZpY2Uge1xyXG4gIGFwaU5hbWUgPSAnYWJwJztcclxuICBcclxuXHJcbiAgZmluZFRlbmFudEJ5SWQgPSAoaWQ6IHN0cmluZywgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBGaW5kVGVuYW50UmVzdWx0RHRvPih7XHJcbiAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgIHVybDogYC9hcGkvYWJwL211bHRpLXRlbmFuY3kvdGVuYW50cy9ieS1pZC8ke2lkfWAsXHJcbiAgICB9LFxyXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUsLi4uY29uZmlnIH0pO1xyXG4gIFxyXG5cclxuICBmaW5kVGVuYW50QnlOYW1lID0gKG5hbWU6IHN0cmluZywgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBGaW5kVGVuYW50UmVzdWx0RHRvPih7XHJcbiAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgIHVybDogYC9hcGkvYWJwL211bHRpLXRlbmFuY3kvdGVuYW50cy9ieS1uYW1lLyR7bmFtZX1gLFxyXG4gICAgfSxcclxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLC4uLmNvbmZpZyB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UpIHt9XHJcbn1cclxuIl19","import { InjectionToken } from '@angular/core';\nexport const TENANT_KEY = new InjectionToken('TENANT_KEY');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWtleS50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi90b2tlbnMvdGVuYW50LWtleS50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBUyxZQUFZLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY29uc3QgVEVOQU5UX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdURU5BTlRfS0VZJyk7XHJcbiJdfQ==","import { HttpContextToken } from '@angular/common/http';\nexport const IS_EXTERNAL_REQUEST = new HttpContextToken(() => false);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jb250ZXh0LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Rva2Vucy9odHRwLWNvbnRleHQudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDb250ZXh0VG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5leHBvcnQgY29uc3QgSVNfRVhURVJOQUxfUkVRVUVTVCA9IG5ldyBIdHRwQ29udGV4dFRva2VuPGJvb2xlYW4+KCgpID0+IGZhbHNlKTtcclxuIl19","import { HttpClient, HttpContext } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { IS_EXTERNAL_REQUEST } from '../tokens/http-context.token';\nimport * as i0 from \"@angular/core\";\n// source : https://github.com/armanozak/demo-angular-server-specific-interceptors\nexport class ExternalHttpClient extends HttpClient {\n    request(first, url, options = {}) {\n        if (typeof first === 'string') {\n            this.#setPlaceholderContext(options);\n            return super.request(first, url || '', options);\n        }\n        this.#setPlaceholderContext(first);\n        return super.request(first);\n    }\n    #setPlaceholderContext(optionsOrRequest) {\n        optionsOrRequest.context ??= new HttpContext();\n        optionsOrRequest.context.set(IS_EXTERNAL_REQUEST, true);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExternalHttpClient, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExternalHttpClient, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ExternalHttpClient, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY2xpZW50cy9odHRwLmNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBRW5FLGtGQUFrRjtBQUlsRixNQUFNLE9BQU8sa0JBQW1CLFNBQVEsVUFBVTtJQUN2QyxPQUFPLENBQ2QsS0FBZ0MsRUFDaEMsR0FBWSxFQUNaLFVBQTBCLEVBQUU7UUFFNUIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxzQkFBc0IsQ0FBQyxnQkFBMkM7UUFDaEUsZ0JBQWdCLENBQUMsT0FBTyxLQUFLLElBQUksV0FBVyxFQUFFLENBQUM7UUFDL0MsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDOzhHQWpCVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cENvbnRleHQsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSVNfRVhURVJOQUxfUkVRVUVTVCB9IGZyb20gJy4uL3Rva2Vucy9odHRwLWNvbnRleHQudG9rZW4nO1xyXG5cclxuLy8gc291cmNlIDogaHR0cHM6Ly9naXRodWIuY29tL2FybWFub3phay9kZW1vLWFuZ3VsYXItc2VydmVyLXNwZWNpZmljLWludGVyY2VwdG9yc1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxIdHRwQ2xpZW50IGV4dGVuZHMgSHR0cENsaWVudCB7XHJcbiAgb3ZlcnJpZGUgcmVxdWVzdChcclxuICAgIGZpcnN0OiBzdHJpbmcgfCBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgdXJsPzogc3RyaW5nLFxyXG4gICAgb3B0aW9uczogUmVxdWVzdE9wdGlvbnMgPSB7fSxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKHR5cGVvZiBmaXJzdCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy4jc2V0UGxhY2Vob2xkZXJDb250ZXh0KG9wdGlvbnMpO1xyXG4gICAgICByZXR1cm4gc3VwZXIucmVxdWVzdChmaXJzdCwgdXJsIHx8ICcnLCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLiNzZXRQbGFjZWhvbGRlckNvbnRleHQoZmlyc3QpO1xyXG4gICAgcmV0dXJuIHN1cGVyLnJlcXVlc3QoZmlyc3QpO1xyXG4gIH1cclxuICAjc2V0UGxhY2Vob2xkZXJDb250ZXh0KG9wdGlvbnNPclJlcXVlc3Q6IHsgY29udGV4dD86IEh0dHBDb250ZXh0IH0pIHtcclxuICAgIG9wdGlvbnNPclJlcXVlc3QuY29udGV4dCA/Pz0gbmV3IEh0dHBDb250ZXh0KCk7XHJcbiAgICBvcHRpb25zT3JSZXF1ZXN0LmNvbnRleHQuc2V0KElTX0VYVEVSTkFMX1JFUVVFU1QsIHRydWUpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBSZXF1ZXN0T3B0aW9ucyA9IFBhcmFtZXRlcnM8SHR0cENsaWVudFsncmVxdWVzdCddPlsyXTtcclxuIl19","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { ExternalHttpClient } from '../clients/http.client';\nimport { CORE_OPTIONS } from '../tokens/options.token';\nimport { isUndefinedOrEmptyString } from '../utils/common-utils';\nimport { EnvironmentService } from './environment.service';\nimport { HttpErrorReporterService } from './http-error-reporter.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"../clients/http.client\";\nimport * as i3 from \"./environment.service\";\nimport * as i4 from \"./http-error-reporter.service\";\nexport class RestService {\n    constructor(options, http, externalHttp, environment, httpErrorReporter) {\n        this.options = options;\n        this.http = http;\n        this.externalHttp = externalHttp;\n        this.environment = environment;\n        this.httpErrorReporter = httpErrorReporter;\n    }\n    getApiFromStore(apiName) {\n        return this.environment.getApiUrl(apiName);\n    }\n    handleError(err) {\n        this.httpErrorReporter.reportError(err);\n        return throwError(() => err);\n    }\n    request(request, config, api) {\n        config = config || {};\n        api = api || this.getApiFromStore(config.apiName);\n        const { method, params, ...options } = request;\n        const { observe = \"body\" /* Rest.Observe.Body */, skipHandleError } = config;\n        const url = this.removeDuplicateSlashes(api + request.url);\n        const httpClient = this.getHttpClient(config.skipAddingHeader);\n        return httpClient\n            .request(method, url, {\n            observe,\n            ...(params && {\n                params: this.getParams(params, config.httpParamEncoder),\n            }),\n            ...options,\n        })\n            .pipe(catchError(err => (skipHandleError ? throwError(() => err) : this.handleError(err))));\n    }\n    getHttpClient(isExternal) {\n        return isExternal ? this.externalHttp : this.http;\n    }\n    getParams(params, encoder) {\n        const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {\n            if (isUndefinedOrEmptyString(value))\n                return acc;\n            if (value === null && !this.options.sendNullsAsQueryParam)\n                return acc;\n            acc[key] = value;\n            return acc;\n        }, {});\n        return encoder\n            ? new HttpParams({ encoder, fromObject: filteredParams })\n            : new HttpParams({ fromObject: filteredParams });\n    }\n    removeDuplicateSlashes(url) {\n        return url.replace(/([^:]\\/)\\/+/g, '$1');\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RestService, deps: [{ token: CORE_OPTIONS }, { token: i1.HttpClient }, { token: i2.ExternalHttpClient }, { token: i3.EnvironmentService }, { token: i4.HttpErrorReporterService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RestService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RestService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: undefined, decorators: [{\n                    type: Inject,\n                    args: [CORE_OPTIONS]\n                }] }, { type: i1.HttpClient }, { type: i2.ExternalHttpClient }, { type: i3.EnvironmentService }, { type: i4.HttpErrorReporterService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3Jlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFzQixVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQUt6RSxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNrQyxPQUFpQixFQUN2QyxJQUFnQixFQUNoQixZQUFnQyxFQUNoQyxXQUErQixFQUMvQixpQkFBMkM7UUFKckIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUN2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtJQUNuRCxDQUFDO0lBRUssZUFBZSxDQUFDLE9BQTJCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJ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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1ldGVyQ29kZWMsIEh0dHBQYXJhbXMsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFeHRlcm5hbEh0dHBDbGllbnQgfSBmcm9tICcuLi9jbGllbnRzL2h0dHAuY2xpZW50JztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IFJlc3QgfSBmcm9tICcuLi9tb2RlbHMvcmVzdCc7XHJcbmltcG9ydCB7IENPUkVfT1BUSU9OUyB9IGZyb20gJy4uL3Rva2Vucy9vcHRpb25zLnRva2VuJztcclxuaW1wb3J0IHsgaXNVbmRlZmluZWRPckVtcHR5U3RyaW5nIH0gZnJvbSAnLi4vdXRpbHMvY29tbW9uLXV0aWxzJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVwb3J0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9odHRwLWVycm9yLXJlcG9ydGVyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc3RTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoQ09SRV9PUFRJT05TKSBwcm90ZWN0ZWQgb3B0aW9uczogQUJQLlJvb3QsXHJcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByb3RlY3RlZCBleHRlcm5hbEh0dHA6IEV4dGVybmFsSHR0cENsaWVudCxcclxuICAgIHByb3RlY3RlZCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGh0dHBFcnJvclJlcG9ydGVyOiBIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldEFwaUZyb21TdG9yZShhcGlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuZ2V0QXBpVXJsKGFwaU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXJyb3IoZXJyOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy5odHRwRXJyb3JSZXBvcnRlci5yZXBvcnRFcnJvcihlcnIpO1xyXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcclxuICB9XHJcblxyXG4gIHJlcXVlc3Q8VCwgUj4oXHJcbiAgICByZXF1ZXN0OiBIdHRwUmVxdWVzdDxUPiB8IFJlc3QuUmVxdWVzdDxUPixcclxuICAgIGNvbmZpZz86IFJlc3QuQ29uZmlnLFxyXG4gICAgYXBpPzogc3RyaW5nLFxyXG4gICk6IE9ic2VydmFibGU8Uj4ge1xyXG4gICAgY29uZmlnID0gY29uZmlnIHx8ICh7fSBhcyBSZXN0LkNvbmZpZyk7XHJcbiAgICBhcGkgPSBhcGkgfHwgdGhpcy5nZXRBcGlGcm9tU3RvcmUoY29uZmlnLmFwaU5hbWUpO1xyXG4gICAgY29uc3QgeyBtZXRob2QsIHBhcmFtcywgLi4ub3B0aW9ucyB9ID0gcmVxdWVzdDtcclxuICAgIGNvbnN0IHsgb2JzZXJ2ZSA9IFJlc3QuT2JzZXJ2ZS5Cb2R5LCBza2lwSGFuZGxlRXJyb3IgfSA9IGNvbmZpZztcclxuICAgIGNvbnN0IHVybCA9IHRoaXMucmVtb3ZlRHVwbGljYXRlU2xhc2hlcyhhcGkgKyByZXF1ZXN0LnVybCk7XHJcblxyXG4gICAgY29uc3QgaHR0cENsaWVudDogSHR0cENsaWVudCA9IHRoaXMuZ2V0SHR0cENsaWVudChjb25maWcuc2tpcEFkZGluZ0hlYWRlcik7XHJcbiAgICByZXR1cm4gaHR0cENsaWVudFxyXG4gICAgICAucmVxdWVzdDxSPihtZXRob2QsIHVybCwge1xyXG4gICAgICAgIG9ic2VydmUsXHJcbiAgICAgICAgLi4uKHBhcmFtcyAmJiB7XHJcbiAgICAgICAgICBwYXJhbXM6IHRoaXMuZ2V0UGFyYW1zKHBhcmFtcywgY29uZmlnLmh0dHBQYXJhbUVuY29kZXIpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIC4uLm9wdGlvbnMsXHJcbiAgICAgIH0gYXMgYW55KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKGVyciA9PiAoc2tpcEhhbmRsZUVycm9yID8gdGhyb3dFcnJvcigoKSA9PiBlcnIpIDogdGhpcy5oYW5kbGVFcnJvcihlcnIpKSkpO1xyXG4gIH1cclxuICBwcml2YXRlIGdldEh0dHBDbGllbnQoaXNFeHRlcm5hbDogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuIGlzRXh0ZXJuYWwgPyB0aGlzLmV4dGVybmFsSHR0cCA6IHRoaXMuaHR0cDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGFyYW1zKHBhcmFtczogUmVzdC5QYXJhbXMsIGVuY29kZXI/OiBIdHRwUGFyYW1ldGVyQ29kZWMpOiBIdHRwUGFyYW1zIHtcclxuICAgIGNvbnN0IGZpbHRlcmVkUGFyYW1zID0gT2JqZWN0LmVudHJpZXMocGFyYW1zKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgIGlmIChpc1VuZGVmaW5lZE9yRW1wdHlTdHJpbmcodmFsdWUpKSByZXR1cm4gYWNjO1xyXG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgIXRoaXMub3B0aW9ucy5zZW5kTnVsbHNBc1F1ZXJ5UGFyYW0pIHJldHVybiBhY2M7XHJcbiAgICAgIGFjY1trZXldID0gdmFsdWU7XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCB7fSBhcyBhbnkpO1xyXG4gICAgcmV0dXJuIGVuY29kZXJcclxuICAgICAgPyBuZXcgSHR0cFBhcmFtcyh7IGVuY29kZXIsIGZyb21PYmplY3Q6IGZpbHRlcmVkUGFyYW1zIH0pXHJcbiAgICAgIDogbmV3IEh0dHBQYXJhbXMoeyBmcm9tT2JqZWN0OiBmaWx0ZXJlZFBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlU2xhc2hlcyh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoLyhbXjpdXFwvKVxcLysvZywgJyQxJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { Inject, Injectable } from '@angular/core';\nimport { map, switchMap } from 'rxjs/operators';\nimport { AbpTenantService } from '../proxy/pages/abp/multi-tenancy';\nimport { TENANT_KEY } from '../tokens/tenant-key.token';\nimport { ConfigStateService } from './config-state.service';\nimport { RestService } from './rest.service';\nimport { SessionStateService } from './session-state.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./rest.service\";\nimport * as i2 from \"./session-state.service\";\nimport * as i3 from \"../proxy/pages/abp/multi-tenancy\";\nimport * as i4 from \"./config-state.service\";\nexport class MultiTenancyService {\n    constructor(restService, sessionState, tenantService, configStateService, tenantKey) {\n        this.restService = restService;\n        this.sessionState = sessionState;\n        this.tenantService = tenantService;\n        this.configStateService = configStateService;\n        this.tenantKey = tenantKey;\n        this.domainTenant = null;\n        this.isTenantBoxVisible = true;\n        this.apiName = 'abp';\n        this.setTenantToState = (tenant) => {\n            this.sessionState.setTenant({ id: tenant.tenantId, name: tenant.name, isAvailable: true });\n            return this.configStateService.refreshAppState().pipe(map(_ => tenant));\n        };\n    }\n    setTenantByName(tenantName) {\n        return this.tenantService\n            .findTenantByName(tenantName)\n            .pipe(switchMap(this.setTenantToState));\n    }\n    setTenantById(tenantId) {\n        return this.tenantService\n            .findTenantById(tenantId)\n            .pipe(switchMap(this.setTenantToState));\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: MultiTenancyService, deps: [{ token: i1.RestService }, { token: i2.SessionStateService }, { token: i3.AbpTenantService }, { token: i4.ConfigStateService }, { token: TENANT_KEY }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: MultiTenancyService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: MultiTenancyService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }], ctorParameters: () => [{ type: i1.RestService }, { type: i2.SessionStateService }, { type: i3.AbpTenantService }, { type: i4.ConfigStateService }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [TENANT_KEY]\n                }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGVuYW5jeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL211bHRpLXRlbmFuY3kuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBS3BFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7OztBQUc5RCxNQUFNLE9BQU8sbUJBQW1CO0lBWTlCLFlBQ1UsV0FBd0IsRUFDeEIsWUFBaUMsRUFDakMsYUFBK0IsRUFDL0Isa0JBQXNDLEVBQ25CLFNBQWlCO1FBSnBDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBaEI5QyxpQkFBWSxHQUE0QixJQUFJLENBQUM7UUFFN0MsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRTFCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFUixxQkFBZ0IsR0FBRyxDQUFDLE1BQTJCLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzFFLENBQUMsQ0FBQztJQVFFLENBQUM7SUFFTCxlQUFlLENBQUMsVUFBa0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsYUFBYTthQUN0QixnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7YUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsYUFBYTthQUN0QixjQUFjLENBQUMsUUFBUSxDQUFDO2FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDOzhHQTlCVSxtQkFBbUIsa0pBaUJwQixVQUFVO2tIQWpCVCxtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBa0I3QixNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFicFRlbmFudFNlcnZpY2UgfSBmcm9tICcuLi9wcm94eS9wYWdlcy9hYnAvbXVsdGktdGVuYW5jeSc7XHJcbmltcG9ydCB7XHJcbiAgQ3VycmVudFRlbmFudER0byxcclxuICBGaW5kVGVuYW50UmVzdWx0RHRvLFxyXG59IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvbXVsdGktdGVuYW5jeS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBURU5BTlRfS0VZIH0gZnJvbSAnLi4vdG9rZW5zL3RlbmFudC1rZXkudG9rZW4nO1xyXG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24tc3RhdGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlUZW5hbmN5U2VydmljZSB7XHJcbiAgZG9tYWluVGVuYW50OiBDdXJyZW50VGVuYW50RHRvIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGlzVGVuYW50Qm94VmlzaWJsZSA9IHRydWU7XHJcblxyXG4gIGFwaU5hbWUgPSAnYWJwJztcclxuXHJcbiAgcHJpdmF0ZSBzZXRUZW5hbnRUb1N0YXRlID0gKHRlbmFudDogRmluZFRlbmFudFJlc3VsdER0bykgPT4ge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RhdGUuc2V0VGVuYW50KHsgaWQ6IHRlbmFudC50ZW5hbnRJZCwgbmFtZTogdGVuYW50Lm5hbWUsIGlzQXZhaWxhYmxlOiB0cnVlIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU3RhdGVTZXJ2aWNlLnJlZnJlc2hBcHBTdGF0ZSgpLnBpcGUobWFwKF8gPT4gdGVuYW50KSk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgc2Vzc2lvblN0YXRlOiBTZXNzaW9uU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlOiBBYnBUZW5hbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZVNlcnZpY2U6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICAgIEBJbmplY3QoVEVOQU5UX0tFWSkgcHVibGljIHRlbmFudEtleTogc3RyaW5nLFxyXG4gICkgeyB9XHJcblxyXG4gIHNldFRlbmFudEJ5TmFtZSh0ZW5hbnROYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRlbmFudFNlcnZpY2VcclxuICAgICAgLmZpbmRUZW5hbnRCeU5hbWUodGVuYW50TmFtZSlcclxuICAgICAgLnBpcGUoc3dpdGNoTWFwKHRoaXMuc2V0VGVuYW50VG9TdGF0ZSkpO1xyXG4gIH1cclxuXHJcbiAgc2V0VGVuYW50QnlJZCh0ZW5hbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRTZXJ2aWNlXHJcbiAgICAgIC5maW5kVGVuYW50QnlJZCh0ZW5hbnRJZClcclxuICAgICAgLnBpcGUoc3dpdGNoTWFwKHRoaXMuc2V0VGVuYW50VG9TdGF0ZSkpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const TENANT_NOT_FOUND_BY_NAME = new InjectionToken('TENANT_NOT_FOUND_BY_NAME');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW5vdC1mb3VuZC1ieS1uYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Rva2Vucy90ZW5hbnQtbm90LWZvdW5kLWJ5LW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FFeEQsMEJBQTBCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRFTkFOVF9OT1RfRk9VTkRfQllfTkFNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcclxuICAoSHR0cEVycm9yUmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkXHJcbj4oJ1RFTkFOVF9OT1RfRk9VTkRfQllfTkFNRScpO1xyXG4iXX0=","import clone from 'just-clone';\nimport { EnvironmentService } from '../services/environment.service';\nimport { MultiTenancyService } from '../services/multi-tenancy.service';\nimport { createTokenParser } from './string-utils';\nimport { firstValueFrom } from 'rxjs';\nimport { TENANT_NOT_FOUND_BY_NAME } from '../tokens/tenant-not-found-by-name';\nimport { HttpErrorResponse } from '@angular/common/http';\nconst tenancyPlaceholder = '{0}';\nfunction getCurrentTenancyName(appBaseUrl) {\n    if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/')\n        appBaseUrl += '/';\n    const parseTokens = createTokenParser(appBaseUrl);\n    const token = tenancyPlaceholder.replace(/[}{]/g, '');\n    return parseTokens(window.location.href)[token]?.[0];\n}\nfunction getCurrentTenancyNameFromUrl(tenantKey) {\n    const urlParams = new URLSearchParams(window.location.search);\n    return urlParams.get(tenantKey);\n}\nexport async function parseTenantFromUrl(injector) {\n    const environmentService = injector.get(EnvironmentService);\n    const multiTenancyService = injector.get(MultiTenancyService);\n    const tenantNotFoundHandler = injector.get(TENANT_NOT_FOUND_BY_NAME, null);\n    const baseUrl = environmentService.getEnvironment()?.application?.baseUrl || '';\n    const tenancyName = getCurrentTenancyName(baseUrl);\n    const hideTenantBox = () => {\n        multiTenancyService.isTenantBoxVisible = false;\n    };\n    const setDomainTenant = (tenant) => {\n        multiTenancyService.domainTenant = {\n            id: tenant.tenantId,\n            name: tenant.name,\n            isAvailable: true,\n        };\n    };\n    const setEnvironmentWithDomainTenant = (tenant) => {\n        hideTenantBox();\n        setDomainTenant(tenant);\n    };\n    if (tenancyName) {\n        /**\n         * We have to replace tenant name within the urls from environment,\n         * because the code below will make a http request to find information about the domain tenant.\n         * Before this request takes place, we need to replace placeholders aka \"{0}\".\n         */\n        replaceTenantNameWithinEnvironment(injector, tenancyName);\n        const tenant$ = multiTenancyService.setTenantByName(tenancyName);\n        try {\n            const result = await firstValueFrom(tenant$);\n            setEnvironmentWithDomainTenant(result);\n            return Promise.resolve(result);\n        }\n        catch (httpError) {\n            if (httpError instanceof HttpErrorResponse &&\n                httpError.status === 404 &&\n                tenantNotFoundHandler) {\n                tenantNotFoundHandler(httpError);\n            }\n            return Promise.reject();\n        }\n    }\n    /**\n     * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.\n     */\n    replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');\n    const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);\n    if (tenantIdFromQueryParams) {\n        const tenantById$ = multiTenancyService.setTenantById(tenantIdFromQueryParams);\n        return firstValueFrom(tenantById$);\n    }\n    return Promise.resolve();\n}\nfunction replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder = tenancyPlaceholder) {\n    const environmentService = injector.get(EnvironmentService);\n    const environment = clone(environmentService.getEnvironment());\n    if (environment.application.baseUrl) {\n        environment.application.baseUrl = environment.application.baseUrl.replace(placeholder, tenancyName);\n    }\n    if (environment.oAuthConfig?.redirectUri) {\n        environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(placeholder, tenancyName);\n    }\n    if (!environment.oAuthConfig) {\n        environment.oAuthConfig = {};\n    }\n    environment.oAuthConfig.issuer = (environment.oAuthConfig.issuer || '').replace(placeholder, tenancyName);\n    Object.keys(environment.apis).forEach(api => {\n        Object.keys(environment.apis[api]).forEach(key => {\n            environment.apis[api][key] = (environment.apis[api][key] || '').replace(placeholder, tenancyName);\n        });\n    });\n    return environmentService.setState(environment);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGVuYW5jeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9tdWx0aS10ZW5hbmN5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUkvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBRWpDLFNBQVMscUJBQXFCLENBQUMsVUFBa0I7SUFDL0MsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRztRQUFFLFVBQVUsSUFBSSxHQUFHLENBQUM7SUFFeEUsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELFNBQVMsNEJBQTRCLENBQUMsU0FBaUI7SUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxlQUFlLENB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QUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscy9lbnZpcm9ubWVudCc7XHJcblxyXG5pbXBvcnQgeyBGaW5kVGVuYW50UmVzdWx0RHRvIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9tdWx0aS10ZW5hbmN5L21vZGVscyc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aVRlbmFuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbXVsdGktdGVuYW5jeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY3JlYXRlVG9rZW5QYXJzZXIgfSBmcm9tICcuL3N0cmluZy11dGlscyc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRFTkFOVF9OT1RfRk9VTkRfQllfTkFNRSB9IGZyb20gJy4uL3Rva2Vucy90ZW5hbnQtbm90LWZvdW5kLWJ5LW5hbWUnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmNvbnN0IHRlbmFuY3lQbGFjZWhvbGRlciA9ICd7MH0nO1xyXG5cclxuZnVuY3Rpb24gZ2V0Q3VycmVudFRlbmFuY3lOYW1lKGFwcEJhc2VVcmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgaWYgKGFwcEJhc2VVcmwuY2hhckF0KGFwcEJhc2VVcmwubGVuZ3RoIC0gMSkgIT09ICcvJykgYXBwQmFzZVVybCArPSAnLyc7XHJcblxyXG4gIGNvbnN0IHBhcnNlVG9rZW5zID0gY3JlYXRlVG9rZW5QYXJzZXIoYXBwQmFzZVVybCk7XHJcbiAgY29uc3QgdG9rZW4gPSB0ZW5hbmN5UGxhY2Vob2xkZXIucmVwbGFjZSgvW317XS9nLCAnJyk7XHJcbiAgcmV0dXJuIHBhcnNlVG9rZW5zKHdpbmRvdy5sb2NhdGlvbi5ocmVmKVt0b2tlbl0/LlswXTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q3VycmVudFRlbmFuY3lOYW1lRnJvbVVybCh0ZW5hbnRLZXk6IHN0cmluZykge1xyXG4gIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgcmV0dXJuIHVybFBhcmFtcy5nZXQodGVuYW50S2V5KTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlVGVuYW50RnJvbVVybChpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuICBjb25zdCBtdWx0aVRlbmFuY3lTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE11bHRpVGVuYW5jeVNlcnZpY2UpO1xyXG4gIGNvbnN0IHRlbmFudE5vdEZvdW5kSGFuZGxlciA9IGluamVjdG9yLmdldChURU5BTlRfTk9UX0ZPVU5EX0JZX05BTUUsIG51bGwpO1xyXG5cclxuICBjb25zdCBiYXNlVXJsID0gZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCk/LmFwcGxpY2F0aW9uPy5iYXNlVXJsIHx8ICcnO1xyXG4gIGNvbnN0IHRlbmFuY3lOYW1lID0gZ2V0Q3VycmVudFRlbmFuY3lOYW1lKGJhc2VVcmwpO1xyXG5cclxuICBjb25zdCBoaWRlVGVuYW50Qm94ID0gKCkgPT4ge1xyXG4gICAgbXVsdGlUZW5hbmN5U2VydmljZS5pc1RlbmFudEJveFZpc2libGUgPSBmYWxzZTtcclxuICB9O1xyXG5cclxuICBjb25zdCBzZXREb21haW5UZW5hbnQgPSAodGVuYW50OiBGaW5kVGVuYW50UmVzdWx0RHRvKSA9PiB7XHJcbiAgICBtdWx0aVRlbmFuY3lTZXJ2aWNlLmRvbWFpblRlbmFudCA9IHtcclxuICAgICAgaWQ6IHRlbmFudC50ZW5hbnRJZCxcclxuICAgICAgbmFtZTogdGVuYW50Lm5hbWUsXHJcbiAgICAgIGlzQXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICBjb25zdCBzZXRFbnZpcm9ubWVudFdpdGhEb21haW5UZW5hbnQgPSAodGVuYW50OiBGaW5kVGVuYW50UmVzdWx0RHRvKSA9PiB7XHJcbiAgICBoaWRlVGVuYW50Qm94KCk7XHJcbiAgICBzZXREb21haW5UZW5hbnQodGVuYW50KTtcclxuICB9O1xyXG5cclxuICBpZiAodGVuYW5jeU5hbWUpIHtcclxuICAgIC8qKlxyXG4gICAgICogV2UgaGF2ZSB0byByZXBsYWNlIHRlbmFudCBuYW1lIHdpdGhpbiB0aGUgdXJscyBmcm9tIGVudmlyb25tZW50LFxyXG4gICAgICogYmVjYXVzZSB0aGUgY29kZSBiZWxvdyB3aWxsIG1ha2UgYSBodHRwIHJlcXVlc3QgdG8gZmluZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZG9tYWluIHRlbmFudC5cclxuICAgICAqIEJlZm9yZSB0aGlzIHJlcXVlc3QgdGFrZXMgcGxhY2UsIHdlIG5lZWQgdG8gcmVwbGFjZSBwbGFjZWhvbGRlcnMgYWthIFwiezB9XCIuXHJcbiAgICAgKi9cclxuICAgIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoaW5qZWN0b3IsIHRlbmFuY3lOYW1lKTtcclxuXHJcbiAgICBjb25zdCB0ZW5hbnQkID0gbXVsdGlUZW5hbmN5U2VydmljZS5zZXRUZW5hbnRCeU5hbWUodGVuYW5jeU5hbWUpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGVuYW50JCk7XHJcbiAgICAgIHNldEVudmlyb25tZW50V2l0aERvbWFpblRlbmFudChyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICB9IGNhdGNoIChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBodHRwRXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSAmJlxyXG4gICAgICAgIGh0dHBFcnJvci5zdGF0dXMgPT09IDQwNCAmJlxyXG4gICAgICAgIHRlbmFudE5vdEZvdW5kSGFuZGxlclxyXG4gICAgICApIHtcclxuICAgICAgICB0ZW5hbnROb3RGb3VuZEhhbmRsZXIoaHR0cEVycm9yKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogSWYgdGhlcmUgaXMgbm8gdGVuYW50LCB3ZSBzdGlsbCBoYXZlIHRvIGNsZWFuIHVwIHswfS4gZnJvbSBiYXNlVXJsIHRvIGF2b2lkIGluY29ycmVjdCBodHRwIHJlcXVlc3RzLlxyXG4gICAqL1xyXG4gIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoaW5qZWN0b3IsICcnLCB0ZW5hbmN5UGxhY2Vob2xkZXIgKyAnLicpO1xyXG5cclxuICBjb25zdCB0ZW5hbnRJZEZyb21RdWVyeVBhcmFtcyA9IGdldEN1cnJlbnRUZW5hbmN5TmFtZUZyb21VcmwobXVsdGlUZW5hbmN5U2VydmljZS50ZW5hbnRLZXkpO1xyXG4gIGlmICh0ZW5hbnRJZEZyb21RdWVyeVBhcmFtcykge1xyXG4gICAgY29uc3QgdGVuYW50QnlJZCQgPSBtdWx0aVRlbmFuY3lTZXJ2aWNlLnNldFRlbmFudEJ5SWQodGVuYW50SWRGcm9tUXVlcnlQYXJhbXMpO1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRlbmFudEJ5SWQkKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gcmVwbGFjZVRlbmFudE5hbWVXaXRoaW5FbnZpcm9ubWVudChcclxuICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgdGVuYW5jeU5hbWU6IHN0cmluZyxcclxuICBwbGFjZWhvbGRlciA9IHRlbmFuY3lQbGFjZWhvbGRlcixcclxuKSB7XHJcbiAgY29uc3QgZW52aXJvbm1lbnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEVudmlyb25tZW50U2VydmljZSk7XHJcblxyXG4gIGNvbnN0IGVudmlyb25tZW50ID0gY2xvbmUoZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCkpIGFzIEVudmlyb25tZW50O1xyXG5cclxuICBpZiAoZW52aXJvbm1lbnQuYXBwbGljYXRpb24uYmFzZVVybCkge1xyXG4gICAgZW52aXJvbm1lbnQuYXBwbGljYXRpb24uYmFzZVVybCA9IGVudmlyb25tZW50LmFwcGxpY2F0aW9uLmJhc2VVcmwucmVwbGFjZShcclxuICAgICAgcGxhY2Vob2xkZXIsXHJcbiAgICAgIHRlbmFuY3lOYW1lLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlmIChlbnZpcm9ubWVudC5vQXV0aENvbmZpZz8ucmVkaXJlY3RVcmkpIHtcclxuICAgIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLnJlZGlyZWN0VXJpID0gZW52aXJvbm1lbnQub0F1dGhDb25maWcucmVkaXJlY3RVcmkucmVwbGFjZShcclxuICAgICAgcGxhY2Vob2xkZXIsXHJcbiAgICAgIHRlbmFuY3lOYW1lLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlmICghZW52aXJvbm1lbnQub0F1dGhDb25maWcpIHtcclxuICAgIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnID0ge307XHJcbiAgfVxyXG4gIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLmlzc3VlciA9IChlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIgfHwgJycpLnJlcGxhY2UoXHJcbiAgICBwbGFjZWhvbGRlcixcclxuICAgIHRlbmFuY3lOYW1lLFxyXG4gICk7XHJcblxyXG4gIE9iamVjdC5rZXlzKGVudmlyb25tZW50LmFwaXMpLmZvckVhY2goYXBpID0+IHtcclxuICAgIE9iamVjdC5rZXlzKGVudmlyb25tZW50LmFwaXNbYXBpXSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBlbnZpcm9ubWVudC5hcGlzW2FwaV1ba2V5XSA9IChlbnZpcm9ubWVudC5hcGlzW2FwaV1ba2V5XSB8fCAnJykucmVwbGFjZShcclxuICAgICAgICBwbGFjZWhvbGRlcixcclxuICAgICAgICB0ZW5hbmN5TmFtZSxcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gZW52aXJvbm1lbnRTZXJ2aWNlLnNldFN0YXRlKGVudmlyb25tZW50KTtcclxufVxyXG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const CHECK_AUTHENTICATION_STATE_FN_KEY = new InjectionToken('CHECK_AUTHENTICATION_STATE_FN_KEY');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYXV0aGVudGljYXRpb24tc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdG9rZW5zL2NoZWNrLWF1dGhlbnRpY2F0aW9uLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxjQUFjLENBQ2pFLG1DQUFtQyxDQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2hlY2tBdXRoZW50aWNhdGlvblN0YXRlRm4gfSBmcm9tICcuLi9tb2RlbHMvYXV0aCc7XHJcblxyXG5leHBvcnQgY29uc3QgQ0hFQ0tfQVVUSEVOVElDQVRJT05fU1RBVEVfRk5fS0VZID0gbmV3IEluamVjdGlvblRva2VuPENoZWNrQXV0aGVudGljYXRpb25TdGF0ZUZuPihcclxuICAnQ0hFQ0tfQVVUSEVOVElDQVRJT05fU1RBVEVfRk5fS0VZJyxcclxuKTtcclxuIl19","import { registerLocaleData } from '@angular/common';\nimport { inject, Injector } from '@angular/core';\nimport { tap, catchError } from 'rxjs/operators';\nimport { lastValueFrom, throwError } from 'rxjs';\nimport { ConfigStateService } from '../services/config-state.service';\nimport { EnvironmentService } from '../services/environment.service';\nimport { SessionStateService } from '../services/session-state.service';\nimport { CORE_OPTIONS } from '../tokens/options.token';\nimport { APP_INIT_ERROR_HANDLERS } from '../tokens/app-config.token';\nimport { getRemoteEnv } from './environment-utils';\nimport { parseTenantFromUrl } from './multi-tenancy-utils';\nimport { AuthService } from '../abstracts';\nimport { CHECK_AUTHENTICATION_STATE_FN_KEY } from '../tokens/check-authentication-state';\nimport { noop } from './common-utils';\nexport async function getInitialData() {\n    const injector = inject(Injector);\n    const environmentService = injector.get(EnvironmentService);\n    const configState = injector.get(ConfigStateService);\n    const options = injector.get(CORE_OPTIONS);\n    environmentService.setState(options.environment);\n    await getRemoteEnv(injector, options.environment);\n    await parseTenantFromUrl(injector);\n    const authService = injector.get(AuthService, undefined, { optional: true });\n    const checkAuthenticationState = injector.get(CHECK_AUTHENTICATION_STATE_FN_KEY, noop, {\n        optional: true,\n    });\n    if (!options.skipInitAuthService && authService) {\n        await authService.init();\n    }\n    if (options.skipGetAppConfiguration)\n        return;\n    const result$ = configState.refreshAppState().pipe(tap(() => checkAuthenticationState(injector)), tap(() => {\n        const currentTenant = configState.getOne('currentTenant');\n        injector.get(SessionStateService).setTenant(currentTenant);\n    }), catchError(error => {\n        const appInitErrorHandlers = injector.get(APP_INIT_ERROR_HANDLERS, null);\n        if (appInitErrorHandlers && appInitErrorHandlers.length) {\n            appInitErrorHandlers.forEach(func => func(error));\n        }\n        return throwError(() => error);\n    }));\n    await lastValueFrom(result$);\n    await localeInitializer(injector);\n}\nexport function localeInitializer(injector) {\n    const currentInjector = injector || inject(Injector);\n    const sessionState = currentInjector.get(SessionStateService);\n    const { registerLocaleFn } = currentInjector.get(CORE_OPTIONS);\n    const lang = sessionState.getLanguage() || 'en';\n    return new Promise((resolve, reject) => {\n        registerLocaleFn(lang).then(module => {\n            if (module?.default)\n                registerLocaleData(module.default);\n            return resolve('resolved');\n        }, reject);\n    });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9pbml0aWFsLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWM7SUFDbEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxD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LEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRhcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMvY29tbW9uJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9tb2RlbHMvZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBDdXJyZW50VGVuYW50RHRvIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9tdWx0aS10ZW5hbmN5L21vZGVscyc7XHJcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZXNzaW9uLXN0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDT1JFX09QVElPTlMgfSBmcm9tICcuLi90b2tlbnMvb3B0aW9ucy50b2tlbic7XHJcbmltcG9ydCB7IEFQUF9JTklUX0VSUk9SX0hBTkRMRVJTIH0gZnJvbSAnLi4vdG9rZW5zL2FwcC1jb25maWcudG9rZW4nO1xyXG5pbXBvcnQgeyBnZXRSZW1vdGVFbnYgfSBmcm9tICcuL2Vudmlyb25tZW50LXV0aWxzJztcclxuaW1wb3J0IHsgcGFyc2VUZW5hbnRGcm9tVXJsIH0gZnJvbSAnLi9tdWx0aS10ZW5hbmN5LXV0aWxzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hYnN0cmFjdHMnO1xyXG5pbXBvcnQgeyBDSEVDS19BVVRIRU5USUNBVElPTl9TVEFURV9GTl9LRVkgfSBmcm9tICcuLi90b2tlbnMvY2hlY2stYXV0aGVudGljYXRpb24tc3RhdGUnO1xyXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi9jb21tb24tdXRpbHMnO1xyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEluaXRpYWxEYXRhKCkge1xyXG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuICBjb25zdCBjb25maWdTdGF0ZSA9IGluamVjdG9yLmdldChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gIGNvbnN0IG9wdGlvbnMgPSBpbmplY3Rvci5nZXQoQ09SRV9PUFRJT05TKSBhcyBBQlAuUm9vdDtcclxuXHJcbiAgZW52aXJvbm1lbnRTZXJ2aWNlLnNldFN0YXRlKG9wdGlvbnMuZW52aXJvbm1lbnQgYXMgRW52aXJvbm1lbnQpO1xyXG4gIGF3YWl0IGdldFJlbW90ZUVudihpbmplY3Rvciwgb3B0aW9ucy5lbnZpcm9ubWVudCk7XHJcbiAgYXdhaXQgcGFyc2VUZW5hbnRGcm9tVXJsKGluamVjdG9yKTtcclxuICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdG9yLmdldChBdXRoU2VydmljZSwgdW5kZWZpbmVkLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xyXG4gIGNvbnN0IGNoZWNrQXV0aGVudGljYXRpb25TdGF0ZSA9IGluamVjdG9yLmdldChDSEVDS19BVVRIRU5USUNBVElPTl9TVEFURV9GTl9LRVksIG5vb3AsIHtcclxuICAgIG9wdGlvbmFsOiB0cnVlLFxyXG4gIH0pO1xyXG4gIGlmICghb3B0aW9ucy5za2lwSW5pdEF1dGhTZXJ2aWNlICYmIGF1dGhTZXJ2aWNlKSB7XHJcbiAgICBhd2FpdCBhdXRoU2VydmljZS5pbml0KCk7XHJcbiAgfVxyXG4gIGlmIChvcHRpb25zLnNraXBHZXRBcHBDb25maWd1cmF0aW9uKSByZXR1cm47XHJcblxyXG4gIGNvbnN0IHJlc3VsdCQgPSBjb25maWdTdGF0ZS5yZWZyZXNoQXBwU3RhdGUoKS5waXBlKFxyXG4gICAgdGFwKCgpID0+IGNoZWNrQXV0aGVudGljYXRpb25TdGF0ZShpbmplY3RvcikpLFxyXG4gICAgdGFwKCgpID0+IHtcclxuICAgICAgY29uc3QgY3VycmVudFRlbmFudCA9IGNvbmZpZ1N0YXRlLmdldE9uZSgnY3VycmVudFRlbmFudCcpIGFzIEN1cnJlbnRUZW5hbnREdG87XHJcbiAgICAgIGluamVjdG9yLmdldChTZXNzaW9uU3RhdGVTZXJ2aWNlKS5zZXRUZW5hbnQoY3VycmVudFRlbmFudCk7XHJcbiAgICB9KSxcclxuICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xyXG4gICAgICBjb25zdCBhcHBJbml0RXJyb3JIYW5kbGVycyA9IGluamVjdG9yLmdldChBUFBfSU5JVF9FUlJPUl9IQU5ETEVSUywgbnVsbCk7XHJcbiAgICAgIGlmIChhcHBJbml0RXJyb3JIYW5kbGVycyAmJiBhcHBJbml0RXJyb3JIYW5kbGVycy5sZW5ndGgpIHtcclxuICAgICAgICBhcHBJbml0RXJyb3JIYW5kbGVycy5mb3JFYWNoKGZ1bmMgPT4gZnVuYyhlcnJvcikpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIGF3YWl0IGxhc3RWYWx1ZUZyb20ocmVzdWx0JCk7XHJcbiAgYXdhaXQgbG9jYWxlSW5pdGlhbGl6ZXIoaW5qZWN0b3IpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9jYWxlSW5pdGlhbGl6ZXIoaW5qZWN0b3I/OiBJbmplY3Rvcikge1xyXG4gIGNvbnN0IGN1cnJlbnRJbmplY3RvciA9IGluamVjdG9yIHx8IGluamVjdChJbmplY3Rvcik7XHJcbiAgY29uc3Qgc2Vzc2lvblN0YXRlID0gY3VycmVudEluamVjdG9yLmdldChTZXNzaW9uU3RhdGVTZXJ2aWNlKTtcclxuICBjb25zdCB7IHJlZ2lzdGVyTG9jYWxlRm4gfTogQUJQLlJvb3QgPSBjdXJyZW50SW5qZWN0b3IuZ2V0KENPUkVfT1BUSU9OUyk7XHJcblxyXG4gIGNvbnN0IGxhbmcgPSBzZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UoKSB8fCAnZW4nO1xyXG5cclxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgcmVnaXN0ZXJMb2NhbGVGbihsYW5nKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgIGlmIChtb2R1bGU/LmRlZmF1bHQpIHJlZ2lzdGVyTG9jYWxlRGF0YShtb2R1bGUuZGVmYXVsdCk7XHJcblxyXG4gICAgICByZXR1cm4gcmVzb2x2ZSgncmVzb2x2ZWQnKTtcclxuICAgIH0sIHJlamVjdCk7XHJcbiAgfSk7XHJcbn1cclxuIl19","export class CrossOriginStrategy {\n    constructor(crossorigin, integrity) {\n        this.crossorigin = crossorigin;\n        this.integrity = integrity;\n    }\n    setCrossOrigin(element) {\n        if (this.integrity)\n            element.setAttribute('integrity', this.integrity);\n        if (this.crossorigin) {\n            element.setAttribute('crossorigin', this.crossorigin);\n        }\n    }\n}\nexport class NoCrossOriginStrategy extends CrossOriginStrategy {\n    setCrossOrigin() { }\n}\nexport const CROSS_ORIGIN_STRATEGY = {\n    Anonymous(integrity) {\n        return new CrossOriginStrategy('anonymous', integrity);\n    },\n    UseCredentials(integrity) {\n        return new CrossOriginStrategy('use-credentials', integrity);\n    },\n    None() {\n        return new NoCrossOriginStrategy(null);\n    },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3Mtb3JpZ2luLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3N0cmF0ZWdpZXMvY3Jvc3Mtb3JpZ2luLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDUyxXQUFtRCxFQUNuRCxTQUFrQjtRQURsQixnQkFBVyxHQUFYLFdBQVcsQ0FBd0M7UUFDbkQsY0FBUyxHQUFULFNBQVMsQ0FBUztJQUN4QixDQUFDO0lBRUosY0FBYyxDQUF3QixPQUFVO1FBQzlDLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBQzVELGNBQWMsS0FBSSxDQUFDO0NBQ3BCO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsU0FBUyxDQUFDLFNBQWtCO1FBQzFCLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELGNBQWMsQ0FBQyxTQUFrQjtRQUMvQixPQUFPLElBQUksbUJBQW1CLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQUk7UUFDRixPQUFPLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQ3Jvc3NPcmlnaW5TdHJhdGVneSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY3Jvc3NvcmlnaW46ICdhbm9ueW1vdXMnIHwgJ3VzZS1jcmVkZW50aWFscycgfCBudWxsLFxyXG4gICAgcHVibGljIGludGVncml0eT86IHN0cmluZyxcclxuICApIHt9XHJcblxyXG4gIHNldENyb3NzT3JpZ2luPFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oZWxlbWVudDogVCkge1xyXG4gICAgaWYgKHRoaXMuaW50ZWdyaXR5KSBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaW50ZWdyaXR5JywgdGhpcy5pbnRlZ3JpdHkpO1xyXG4gICAgaWYgKHRoaXMuY3Jvc3NvcmlnaW4pIHtcclxuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Nyb3Nzb3JpZ2luJywgdGhpcy5jcm9zc29yaWdpbik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTm9Dcm9zc09yaWdpblN0cmF0ZWd5IGV4dGVuZHMgQ3Jvc3NPcmlnaW5TdHJhdGVneSB7XHJcbiAgc2V0Q3Jvc3NPcmlnaW4oKSB7fVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ1JPU1NfT1JJR0lOX1NUUkFURUdZID0ge1xyXG4gIEFub255bW91cyhpbnRlZ3JpdHk/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBuZXcgQ3Jvc3NPcmlnaW5TdHJhdGVneSgnYW5vbnltb3VzJywgaW50ZWdyaXR5KTtcclxuICB9LFxyXG4gIFVzZUNyZWRlbnRpYWxzKGludGVncml0eT86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBDcm9zc09yaWdpblN0cmF0ZWd5KCd1c2UtY3JlZGVudGlhbHMnLCBpbnRlZ3JpdHkpO1xyXG4gIH0sXHJcbiAgTm9uZSgpIHtcclxuICAgIHJldHVybiBuZXcgTm9Dcm9zc09yaWdpblN0cmF0ZWd5KG51bGwpO1xyXG4gIH0sXHJcbn07XHJcbiJdfQ==","export class DomStrategy {\n    constructor(target = document.head, position = 'beforeend') {\n        this.target = target;\n        this.position = position;\n    }\n    insertElement(element) {\n        this.target.insertAdjacentElement(this.position, element);\n    }\n}\nexport const DOM_STRATEGY = {\n    AfterElement(element) {\n        return new DomStrategy(element, 'afterend');\n    },\n    AppendToBody() {\n        return new DomStrategy(document.body, 'beforeend');\n    },\n    AppendToHead() {\n        return new DomStrategy(document.head, 'beforeend');\n    },\n    BeforeElement(element) {\n        return new DomStrategy(element, 'beforebegin');\n    },\n    PrependToHead() {\n        return new DomStrategy(document.head, 'afterbegin');\n    },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3N0cmF0ZWdpZXMvZG9tLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ1MsU0FBc0IsUUFBUSxDQUFDLElBQUksRUFDbkMsV0FBMkIsV0FBVztRQUR0QyxXQUFNLEdBQU4sTUFBTSxDQUE2QjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUE4QjtJQUM1QyxDQUFDO0lBRUosYUFBYSxDQUF3QixPQUFVO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsWUFBWSxDQUFDLE9BQW9CO1FBQy9CLE9BQU8sSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRCxhQUFhLENBQUMsT0FBb0I7UUFDaEMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELGFBQWE7UUFDWCxPQUFPLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRG9tU3RyYXRlZ3kge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRhcmdldDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5oZWFkLFxyXG4gICAgcHVibGljIHBvc2l0aW9uOiBJbnNlcnRQb3NpdGlvbiA9ICdiZWZvcmVlbmQnLFxyXG4gICkge31cclxuXHJcbiAgaW5zZXJ0RWxlbWVudDxUIGV4dGVuZHMgSFRNTEVsZW1lbnQ+KGVsZW1lbnQ6IFQpIHtcclxuICAgIHRoaXMudGFyZ2V0Lmluc2VydEFkamFjZW50RWxlbWVudCh0aGlzLnBvc2l0aW9uLCBlbGVtZW50KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBET01fU1RSQVRFR1kgPSB7XHJcbiAgQWZ0ZXJFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgICByZXR1cm4gbmV3IERvbVN0cmF0ZWd5KGVsZW1lbnQsICdhZnRlcmVuZCcpO1xyXG4gIH0sXHJcbiAgQXBwZW5kVG9Cb2R5KCkge1xyXG4gICAgcmV0dXJuIG5ldyBEb21TdHJhdGVneShkb2N1bWVudC5ib2R5LCAnYmVmb3JlZW5kJyk7XHJcbiAgfSxcclxuICBBcHBlbmRUb0hlYWQoKSB7XHJcbiAgICByZXR1cm4gbmV3IERvbVN0cmF0ZWd5KGRvY3VtZW50LmhlYWQsICdiZWZvcmVlbmQnKTtcclxuICB9LFxyXG4gIEJlZm9yZUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICAgIHJldHVybiBuZXcgRG9tU3RyYXRlZ3koZWxlbWVudCwgJ2JlZm9yZWJlZ2luJyk7XHJcbiAgfSxcclxuICBQcmVwZW5kVG9IZWFkKCkge1xyXG4gICAgcmV0dXJuIG5ldyBEb21TdHJhdGVneShkb2N1bWVudC5oZWFkLCAnYWZ0ZXJiZWdpbicpO1xyXG4gIH0sXHJcbn07XHJcbiJdfQ==","import { Observable } from 'rxjs';\nimport { CROSS_ORIGIN_STRATEGY } from '../strategies/cross-origin.strategy';\nimport { DOM_STRATEGY } from '../strategies/dom.strategy';\nexport function fromLazyLoad(element, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {\n    crossOriginStrategy.setCrossOrigin(element);\n    domStrategy.insertElement(element);\n    return new Observable((observer) => {\n        element.onload = (event) => {\n            clearCallbacks(element);\n            observer.next(event);\n            observer.complete();\n        };\n        const handleError = createErrorHandler(observer, element);\n        element.onerror = handleError;\n        element.onabort = handleError;\n        element.onemptied = handleError;\n        element.onstalled = handleError;\n        element.onsuspend = handleError;\n        return () => {\n            clearCallbacks(element);\n            observer.complete();\n        };\n    });\n}\nfunction createErrorHandler(observer, element) {\n    return function (event) {\n        clearCallbacks(element);\n        element.parentNode?.removeChild(element);\n        observer.error(event);\n    };\n}\nfunction clearCallbacks(element) {\n    element.onload = null;\n    element.onerror = null;\n    element.onabort = null;\n    element.onemptied = null;\n    element.onstalled = null;\n    element.onsuspend = null;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2xhenktbG9hZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBdUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFlLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsT0FBNEMsRUFDNUMsY0FBMkIsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUN0RCxzQkFBMkMscUJBQXFCLENBQUMsU0FBUyxFQUFFO0lBRTVFLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5DLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7UUFDOUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ2hDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQVUsQ0FBQyxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFMUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7UUFDOUIsT0FBTyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7UUFDOUIsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFFaEMsT0FBTyxHQUFHLEVBQUU7WUFDVixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQTBCLFFBQXFCLEVBQUUsT0FBb0I7SUFDOUYsT0FBTyxVQUFVLEtBQXFCO1FBQ3BDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixPQUFPLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxPQUFvQjtJQUMxQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN0QixPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN2QixPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN2QixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN6QixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN6QixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ1JPU1NfT1JJR0lOX1NUUkFURUdZLCBDcm9zc09yaWdpblN0cmF0ZWd5IH0gZnJvbSAnLi4vc3RyYXRlZ2llcy9jcm9zcy1vcmlnaW4uc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBET01fU1RSQVRFR1ksIERvbVN0cmF0ZWd5IH0gZnJvbSAnLi4vc3RyYXRlZ2llcy9kb20uc3RyYXRlZ3knO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZyb21MYXp5TG9hZDxUIGV4dGVuZHMgRXZlbnQ+KFxyXG4gIGVsZW1lbnQ6IEhUTUxTY3JpcHRFbGVtZW50IHwgSFRNTExpbmtFbGVtZW50LFxyXG4gIGRvbVN0cmF0ZWd5OiBEb21TdHJhdGVneSA9IERPTV9TVFJBVEVHWS5BcHBlbmRUb0hlYWQoKSxcclxuICBjcm9zc09yaWdpblN0cmF0ZWd5OiBDcm9zc09yaWdpblN0cmF0ZWd5ID0gQ1JPU1NfT1JJR0lOX1NUUkFURUdZLkFub255bW91cygpLFxyXG4pOiBPYnNlcnZhYmxlPFQ+IHtcclxuICBjcm9zc09yaWdpblN0cmF0ZWd5LnNldENyb3NzT3JpZ2luKGVsZW1lbnQpO1xyXG4gIGRvbVN0cmF0ZWd5Lmluc2VydEVsZW1lbnQoZWxlbWVudCk7XHJcblxyXG4gIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPFQ+KSA9PiB7XHJcbiAgICBlbGVtZW50Lm9ubG9hZCA9IChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgY2xlYXJDYWxsYmFja3MoZWxlbWVudCk7XHJcbiAgICAgIG9ic2VydmVyLm5leHQoZXZlbnQgYXMgVCk7XHJcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGhhbmRsZUVycm9yID0gY3JlYXRlRXJyb3JIYW5kbGVyKG9ic2VydmVyLCBlbGVtZW50KTtcclxuXHJcbiAgICBlbGVtZW50Lm9uZXJyb3IgPSBoYW5kbGVFcnJvcjtcclxuICAgIGVsZW1lbnQub25hYm9ydCA9IGhhbmRsZUVycm9yO1xyXG4gICAgZWxlbWVudC5vbmVtcHRpZWQgPSBoYW5kbGVFcnJvcjtcclxuICAgIGVsZW1lbnQub25zdGFsbGVkID0gaGFuZGxlRXJyb3I7XHJcbiAgICBlbGVtZW50Lm9uc3VzcGVuZCA9IGhhbmRsZUVycm9yO1xyXG5cclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIGNsZWFyQ2FsbGJhY2tzKGVsZW1lbnQpO1xyXG4gICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xyXG4gICAgfTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlRXJyb3JIYW5kbGVyPFQgZXh0ZW5kcyBFdmVudCA9IEV2ZW50PihvYnNlcnZlcjogT2JzZXJ2ZXI8VD4sIGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIChldmVudDogRXZlbnQgfCBzdHJpbmcpIHtcclxuICAgIGNsZWFyQ2FsbGJhY2tzKGVsZW1lbnQpO1xyXG4gICAgZWxlbWVudC5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZChlbGVtZW50KTtcclxuICAgIG9ic2VydmVyLmVycm9yKGV2ZW50KTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBjbGVhckNhbGxiYWNrcyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gIGVsZW1lbnQub25sb2FkID0gbnVsbDtcclxuICBlbGVtZW50Lm9uZXJyb3IgPSBudWxsO1xyXG4gIGVsZW1lbnQub25hYm9ydCA9IG51bGw7XHJcbiAgZWxlbWVudC5vbmVtcHRpZWQgPSBudWxsO1xyXG4gIGVsZW1lbnQub25zdGFsbGVkID0gbnVsbDtcclxuICBlbGVtZW50Lm9uc3VzcGVuZCA9IG51bGw7XHJcbn1cclxuIl19","export class DefaultQueueManager {\n    constructor() {\n        this.queue = [];\n        this.isRunning = false;\n        this.stack = 0;\n        this.interval = 0;\n        this.stackSize = 100;\n    }\n    init(interval, stackSize) {\n        this.interval = interval;\n        this.stackSize = stackSize;\n    }\n    add(fn) {\n        this.queue.push(fn);\n        this.run();\n    }\n    run() {\n        if (this.isRunning)\n            return;\n        this.stack++;\n        this.isRunning = true;\n        const fn = this.queue.shift();\n        if (!fn) {\n            this.isRunning = false;\n            return;\n        }\n        fn();\n        if (this.stack > this.stackSize) {\n            setTimeout(() => {\n                this.isRunning = false;\n                this.run();\n                this.stack = 0;\n            }, this.interval);\n        }\n        else {\n            this.isRunning = false;\n            this.run();\n        }\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNVLFVBQUssR0FBc0IsRUFBRSxDQUFDO1FBQzlCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixjQUFTLEdBQUcsR0FBRyxDQUFDO0lBcUMxQixDQUFDO0lBbkNRLElBQUksQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFTSxHQUFHLENBQUMsRUFBYztRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDYixDQUFDO0lBRU8sR0FBRztRQUNULElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzNCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTztRQUNULENBQUM7UUFFRCxFQUFFLEVBQUUsQ0FBQztRQUNMLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDYixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBRdWV1ZU1hbmFnZXIge1xyXG4gIGFkZChmbjogKCkgPT4gdm9pZCk6IHZvaWQ7XHJcbiAgaW5pdChpbnRlcnZhbDogbnVtYmVyLCBzdGFja1NpemU6IG51bWJlcik6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UXVldWVNYW5hZ2VyIGltcGxlbWVudHMgUXVldWVNYW5hZ2VyIHtcclxuICBwcml2YXRlIHF1ZXVlOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xyXG4gIHByaXZhdGUgaXNSdW5uaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdGFjayA9IDA7XHJcbiAgcHJpdmF0ZSBpbnRlcnZhbCA9IDA7XHJcbiAgcHJpdmF0ZSBzdGFja1NpemUgPSAxMDA7XHJcblxyXG4gIHB1YmxpYyBpbml0KGludGVydmFsOiBudW1iZXIsIHN0YWNrU2l6ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmludGVydmFsID0gaW50ZXJ2YWw7XHJcbiAgICB0aGlzLnN0YWNrU2l6ZSA9IHN0YWNrU2l6ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGQoZm46ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMucXVldWUucHVzaChmbik7XHJcbiAgICB0aGlzLnJ1bigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBydW4oKSB7XHJcbiAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHJldHVybjtcclxuICAgIHRoaXMuc3RhY2srKztcclxuXHJcbiAgICB0aGlzLmlzUnVubmluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgZm4gPSB0aGlzLnF1ZXVlLnNoaWZ0KCk7XHJcblxyXG4gICAgaWYgKCFmbikge1xyXG4gICAgICB0aGlzLmlzUnVubmluZyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm4oKTtcclxuICAgIGlmICh0aGlzLnN0YWNrID4gdGhpcy5zdGFja1NpemUpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJ1bigpO1xyXG4gICAgICAgIHRoaXMuc3RhY2sgPSAwO1xyXG4gICAgICB9LCB0aGlzLmludGVydmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSdW5uaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucnVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { PRIMARY_OUTLET } from \"@angular/router\";\nimport { noop } from './common-utils';\nexport function findRoute(routesService, path) {\n    const node = routesService.find(route => route.path === path);\n    return node || path === '/'\n        ? node\n        : findRoute(routesService, path.split('/').slice(0, -1).join('/') || '/');\n}\nexport function getRoutePath(router, url = router.url) {\n    const emptyGroup = { segments: [] };\n    const primaryGroup = router.parseUrl(url).root.children[PRIMARY_OUTLET];\n    return '/' + (primaryGroup || emptyGroup).segments.map(({ path }) => path).join('/');\n}\nexport function reloadRoute(router, ngZone) {\n    const { shouldReuseRoute } = router.routeReuseStrategy;\n    const setRouteReuse = (reuse) => {\n        router.routeReuseStrategy.shouldReuseRoute = reuse;\n    };\n    setRouteReuse(() => false);\n    router.navigated = false;\n    ngZone.run(async () => {\n        await router.navigateByUrl(router.url).catch(noop);\n        setRouteReuse(shouldReuseRoute);\n    });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvcm91dGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBdUMsTUFBTSxpQkFBaUIsQ0FBQztBQUd0RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxhQUE0QixFQUFFLElBQVk7SUFDbEUsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFFOUQsT0FBTyxJQUFJLElBQUksSUFBSSxLQUFLLEdBQUc7UUFDekIsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBYyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRztJQUMzRCxNQUFNLFVBQVUsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFrQixFQUFxQixDQUFDO0lBQ3ZFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV4RSxPQUFPLEdBQUcsR0FBRyxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZGLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQ3hELE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztJQUN2RCxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQThCLEVBQUUsRUFBRTtRQUN2RCxNQUFNLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUVGLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUV6QixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3BCLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQUklNQVJZX09VVExFVCwgUm91dGVyLCBVcmxTZWdtZW50LCBVcmxTZWdtZW50R3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcm91dGVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi9jb21tb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4vdHJlZS11dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZmluZFJvdXRlKHJvdXRlc1NlcnZpY2U6IFJvdXRlc1NlcnZpY2UsIHBhdGg6IHN0cmluZyk6IFRyZWVOb2RlPEFCUC5Sb3V0ZT4gfCBudWxsIHtcclxuICBjb25zdCBub2RlID0gcm91dGVzU2VydmljZS5maW5kKHJvdXRlID0+IHJvdXRlLnBhdGggPT09IHBhdGgpO1xyXG5cclxuICByZXR1cm4gbm9kZSB8fCBwYXRoID09PSAnLydcclxuICAgID8gbm9kZVxyXG4gICAgOiBmaW5kUm91dGUocm91dGVzU2VydmljZSwgcGF0aC5zcGxpdCgnLycpLnNsaWNlKDAsIC0xKS5qb2luKCcvJykgfHwgJy8nKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlUGF0aChyb3V0ZXI6IFJvdXRlciwgdXJsID0gcm91dGVyLnVybCkge1xyXG4gIGNvbnN0IGVtcHR5R3JvdXAgPSB7IHNlZ21lbnRzOiBbXSBhcyBVcmxTZWdtZW50W10gfSBhcyBVcmxTZWdtZW50R3JvdXA7XHJcbiAgY29uc3QgcHJpbWFyeUdyb3VwID0gcm91dGVyLnBhcnNlVXJsKHVybCkucm9vdC5jaGlsZHJlbltQUklNQVJZX09VVExFVF07XHJcblxyXG4gIHJldHVybiAnLycgKyAocHJpbWFyeUdyb3VwIHx8IGVtcHR5R3JvdXApLnNlZ21lbnRzLm1hcCgoeyBwYXRoIH0pID0+IHBhdGgpLmpvaW4oJy8nKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbG9hZFJvdXRlKHJvdXRlcjogUm91dGVyLCBuZ1pvbmU6IE5nWm9uZSkge1xyXG4gIGNvbnN0IHsgc2hvdWxkUmV1c2VSb3V0ZSB9ID0gcm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneTtcclxuICBjb25zdCBzZXRSb3V0ZVJldXNlID0gKHJldXNlOiB0eXBlb2Ygc2hvdWxkUmV1c2VSb3V0ZSkgPT4ge1xyXG4gICAgcm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGRSZXVzZVJvdXRlID0gcmV1c2U7XHJcbiAgfTtcclxuXHJcbiAgc2V0Um91dGVSZXVzZSgoKSA9PiBmYWxzZSk7XHJcbiAgcm91dGVyLm5hdmlnYXRlZCA9IGZhbHNlO1xyXG5cclxuICBuZ1pvbmUucnVuKGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlci51cmwpLmNhdGNoKG5vb3ApO1xyXG4gICAgc2V0Um91dGVSZXVzZShzaG91bGRSZXVzZVJvdXRlKTtcclxuICB9KTtcclxufVxyXG4iXX0=","import { isArray } from './common-utils';\n/* eslint-disable @typescript-eslint/ban-types */\nexport class BaseTreeNode {\n    constructor(props) {\n        this.children = [];\n        this.isLeaf = true;\n        Object.assign(this, props);\n    }\n    static create(props) {\n        return new BaseTreeNode(props);\n    }\n}\nexport function createTreeFromList(list, keySelector, parentKeySelector, valueMapper) {\n    const map = createMapFromList(list, keySelector, valueMapper);\n    const tree = [];\n    list.forEach(row => {\n        const id = keySelector(row);\n        const parentId = parentKeySelector(row);\n        const node = map.get(id);\n        if (!node)\n            return;\n        if (parentId) {\n            const parent = map.get(parentId);\n            if (!parent)\n                return;\n            parent.children.push(node);\n            parent.isLeaf = false;\n            node.parent = parent;\n        }\n        else {\n            tree.push(node);\n        }\n    });\n    return tree;\n}\nexport function createMapFromList(list, keySelector, valueMapper) {\n    const map = new Map();\n    list.forEach(row => map.set(keySelector(row), valueMapper(row)));\n    return map;\n}\nexport function createTreeNodeFilterCreator(key, mapperFn) {\n    return (search) => {\n        const regex = new RegExp('.*' + search + '.*', 'i');\n        return function collectNodes(nodes, matches = []) {\n            for (const node of nodes) {\n                if (regex.test(mapperFn(node[key])))\n                    matches.push(node);\n                if (node.children.length)\n                    collectNodes(node.children, matches);\n            }\n            return matches;\n        };\n    };\n}\nexport function createGroupMap(list, othersGroupKey) {\n    if (!isArray(list) || !list.some(node => Boolean(node.group)))\n        return undefined;\n    const mapGroup = new Map();\n    for (const node of list) {\n        const group = node?.group || othersGroupKey;\n        if (typeof group !== 'string') {\n            throw new Error(`Invalid group: ${group}`);\n        }\n        const items = mapGroup.get(group) || [];\n        items.push(node);\n        mapGroup.set(group, items);\n    }\n    return mapGroup;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy90cmVlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxpREFBaUQ7QUFDakQsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFBWSxLQUFRO1FBSnBCLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFJWixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBbUIsS0FBUTtRQUN0QyxPQUFPLElBQUksWUFBWSxDQUFJLEtBQUssQ0FBZ0IsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLElBQVMsRUFDVCxXQUFpQyxFQUNqQyxpQkFBcUMsRUFDckMsV0FBMkI7SUFFM0IsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5RCxNQUFNLElBQUksR0FBdUMsRUFBRSxDQUFDO0lBRXBELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDakIsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFDbkIsTUFBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsTUFBYyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBWSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBUyxFQUNULFdBQWlDLEVBQ2pDLFdBQTJCO0lBSTNCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFjLENBQUM7SUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUN6QyxHQUFZLEVBQ1osUUFBZ0M7SUFFaEMsT0FBTyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksR0FBRyxNQUFNLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXBELE9BQU8sU0FBUyxZQUFZLENBQUMsS0FBb0IsRUFBRSxVQUF5QixFQUFFO1lBQzVFLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFeEQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07b0JBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDakUsQ0FBQztZQUVELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUFtQixFQUNuQixjQUFzQjtJQUV0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVoRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUVsRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFHLElBQUksRUFBRSxLQUFLLElBQUksY0FBYyxDQUFDO1FBQzVDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQXJyYXkgfSBmcm9tICcuL2NvbW1vbi11dGlscyc7XHJcblxyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXHJcbmV4cG9ydCBjbGFzcyBCYXNlVHJlZU5vZGU8VCBleHRlbmRzIG9iamVjdD4ge1xyXG4gIGNoaWxkcmVuOiBUcmVlTm9kZTxUPltdID0gW107XHJcbiAgaXNMZWFmID0gdHJ1ZTtcclxuICBwYXJlbnQ/OiBUcmVlTm9kZTxUPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvcHM6IFQpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcywgcHJvcHMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNyZWF0ZTxUIGV4dGVuZHMgb2JqZWN0Pihwcm9wczogVCkge1xyXG4gICAgcmV0dXJuIG5ldyBCYXNlVHJlZU5vZGU8VD4ocHJvcHMpIGFzIFRyZWVOb2RlPFQ+O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyZWVGcm9tTGlzdDxUIGV4dGVuZHMgb2JqZWN0LCBSPihcclxuICBsaXN0OiBUW10sXHJcbiAga2V5U2VsZWN0b3I6IChpdGVtOiBUKSA9PiBOb2RlS2V5LFxyXG4gIHBhcmVudEtleVNlbGVjdG9yOiB0eXBlb2Yga2V5U2VsZWN0b3IsXHJcbiAgdmFsdWVNYXBwZXI6IChpdGVtOiBUKSA9PiBSLFxyXG4pIHtcclxuICBjb25zdCBtYXAgPSBjcmVhdGVNYXBGcm9tTGlzdChsaXN0LCBrZXlTZWxlY3RvciwgdmFsdWVNYXBwZXIpO1xyXG4gIGNvbnN0IHRyZWU6IE5vZGVWYWx1ZTxULCB0eXBlb2YgdmFsdWVNYXBwZXI+W10gPSBbXTtcclxuXHJcbiAgbGlzdC5mb3JFYWNoKHJvdyA9PiB7XHJcbiAgICBjb25zdCBpZCA9IGtleVNlbGVjdG9yKHJvdyk7XHJcbiAgICBjb25zdCBwYXJlbnRJZCA9IHBhcmVudEtleVNlbGVjdG9yKHJvdyk7XHJcbiAgICBjb25zdCBub2RlID0gbWFwLmdldChpZCk7XHJcblxyXG4gICAgaWYgKCFub2RlKSByZXR1cm47XHJcblxyXG4gICAgaWYgKHBhcmVudElkKSB7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IG1hcC5nZXQocGFyZW50SWQpO1xyXG4gICAgICBpZiAoIXBhcmVudCkgcmV0dXJuO1xyXG4gICAgICAocGFyZW50IGFzIGFueSkuY2hpbGRyZW4ucHVzaChub2RlKTtcclxuICAgICAgKHBhcmVudCBhcyBhbnkpLmlzTGVhZiA9IGZhbHNlO1xyXG4gICAgICAobm9kZSBhcyBhbnkpLnBhcmVudCA9IHBhcmVudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRyZWUucHVzaChub2RlKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHRyZWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNYXBGcm9tTGlzdDxUIGV4dGVuZHMgb2JqZWN0LCBSPihcclxuICBsaXN0OiBUW10sXHJcbiAga2V5U2VsZWN0b3I6IChpdGVtOiBUKSA9PiBOb2RlS2V5LFxyXG4gIHZhbHVlTWFwcGVyOiAoaXRlbTogVCkgPT4gUixcclxuKSB7XHJcbiAgdHlwZSBLZXkgPSBSZXR1cm5UeXBlPHR5cGVvZiBrZXlTZWxlY3Rvcj47XHJcbiAgdHlwZSBWYWx1ZSA9IE5vZGVWYWx1ZTxULCB0eXBlb2YgdmFsdWVNYXBwZXI+O1xyXG4gIGNvbnN0IG1hcCA9IG5ldyBNYXA8S2V5LCBWYWx1ZT4oKTtcclxuICBsaXN0LmZvckVhY2gocm93ID0+IG1hcC5zZXQoa2V5U2VsZWN0b3Iocm93KSwgdmFsdWVNYXBwZXIocm93KSkpO1xyXG4gIHJldHVybiBtYXA7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmVlTm9kZUZpbHRlckNyZWF0b3I8VCBleHRlbmRzIG9iamVjdD4oXHJcbiAga2V5OiBrZXlvZiBULFxyXG4gIG1hcHBlckZuOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nLFxyXG4pIHtcclxuICByZXR1cm4gKHNlYXJjaDogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoJy4qJyArIHNlYXJjaCArICcuKicsICdpJyk7XHJcblxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNvbGxlY3ROb2Rlcyhub2RlczogVHJlZU5vZGU8VD5bXSwgbWF0Y2hlczogVHJlZU5vZGU8VD5bXSA9IFtdKSB7XHJcbiAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xyXG4gICAgICAgIGlmIChyZWdleC50ZXN0KG1hcHBlckZuKG5vZGVba2V5XSkpKSBtYXRjaGVzLnB1c2gobm9kZSk7XHJcblxyXG4gICAgICAgIGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCkgY29sbGVjdE5vZGVzKG5vZGUuY2hpbGRyZW4sIG1hdGNoZXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gbWF0Y2hlcztcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdyb3VwTWFwPFQgZXh0ZW5kcyB7IGdyb3VwPzogc3RyaW5nIH0+KFxyXG4gIGxpc3Q6IFRyZWVOb2RlPFQ+W10sXHJcbiAgb3RoZXJzR3JvdXBLZXk6IHN0cmluZyxcclxuKSB7XHJcbiAgaWYgKCFpc0FycmF5KGxpc3QpIHx8ICFsaXN0LnNvbWUobm9kZSA9PiBCb29sZWFuKG5vZGUuZ3JvdXApKSkgcmV0dXJuIHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3QgbWFwR3JvdXAgPSBuZXcgTWFwPHN0cmluZywgVHJlZU5vZGU8VD5bXT4oKTtcclxuXHJcbiAgZm9yIChjb25zdCBub2RlIG9mIGxpc3QpIHtcclxuICAgIGNvbnN0IGdyb3VwID0gbm9kZT8uZ3JvdXAgfHwgb3RoZXJzR3JvdXBLZXk7XHJcbiAgICBpZiAodHlwZW9mIGdyb3VwICE9PSAnc3RyaW5nJykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZ3JvdXA6ICR7Z3JvdXB9YCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXRlbXMgPSBtYXBHcm91cC5nZXQoZ3JvdXApIHx8IFtdO1xyXG4gICAgaXRlbXMucHVzaChub2RlKTtcclxuICAgIG1hcEdyb3VwLnNldChncm91cCwgaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG1hcEdyb3VwO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUcmVlTm9kZTxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcclxuICBbSyBpbiBrZXlvZiBUXTogVFtLXTtcclxufSAmIHtcclxuICBjaGlsZHJlbjogVHJlZU5vZGU8VD5bXTtcclxuICBpc0xlYWY6IGJvb2xlYW47XHJcbiAgcGFyZW50PzogVHJlZU5vZGU8VD47XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBSb3V0ZUdyb3VwPFQgZXh0ZW5kcyBvYmplY3Q+ID0ge1xyXG4gIHJlYWRvbmx5IGdyb3VwOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgaXRlbXM6IFRyZWVOb2RlPFQ+W107XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBOb2RlS2V5ID0gbnVtYmVyIHwgc3RyaW5nIHwgc3ltYm9sIHwgdW5kZWZpbmVkIHwgbnVsbDtcclxuXHJcbmV4cG9ydCB0eXBlIE5vZGVWYWx1ZTxUIGV4dGVuZHMgb2JqZWN0LCBGIGV4dGVuZHMgKC4uLmFyZ3M6IGFueSkgPT4gYW55PiA9IEYgZXh0ZW5kcyB1bmRlZmluZWRcclxuICA/IFRyZWVOb2RlPFQ+XHJcbiAgOiBSZXR1cm5UeXBlPEY+O1xyXG4iXX0=","import { Injectable } from '@angular/core';\nimport { generateHash } from '../utils';\nimport * as i0 from \"@angular/core\";\nexport class DomInsertionService {\n    constructor() {\n        this.inserted = new Set();\n    }\n    insertContent(contentStrategy) {\n        const hash = generateHash(contentStrategy.content);\n        if (this.inserted.has(hash))\n            return;\n        const element = contentStrategy.insertElement();\n        this.inserted.add(hash);\n        return element;\n    }\n    removeContent(element) {\n        if (element.textContent) {\n            const hash = generateHash(element.textContent);\n            this.inserted.delete(hash);\n            element.parentNode?.removeChild(element);\n        }\n    }\n    has(content) {\n        const hash = generateHash(content);\n        return this.inserted.has(hash);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: DomInsertionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: DomInsertionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: DomInsertionService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLWluc2VydGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2RvbS1pbnNlcnRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR3hDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFbUIsYUFBUSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7S0E0Qi9DO0lBMUJDLGFBQWEsQ0FDWCxlQUFtQztRQUVuQyxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTztRQUVwQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEIsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUE2QztRQUN6RCxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLE9BQWU7UUFDakIsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQzs4R0E1QlUsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udGVudFN0cmF0ZWd5IH0gZnJvbSAnLi4vc3RyYXRlZ2llcy9jb250ZW50LnN0cmF0ZWd5JztcclxuaW1wb3J0IHsgZ2VuZXJhdGVIYXNoIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIERvbUluc2VydGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5zZXJ0ZWQgPSBuZXcgU2V0PG51bWJlcj4oKTtcclxuXHJcbiAgaW5zZXJ0Q29udGVudDxUIGV4dGVuZHMgSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MU3R5bGVFbGVtZW50PihcclxuICAgIGNvbnRlbnRTdHJhdGVneTogQ29udGVudFN0cmF0ZWd5PFQ+LFxyXG4gICk6IFQgfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgaGFzaCA9IGdlbmVyYXRlSGFzaChjb250ZW50U3RyYXRlZ3kuY29udGVudCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5zZXJ0ZWQuaGFzKGhhc2gpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZWxlbWVudCA9IGNvbnRlbnRTdHJhdGVneS5pbnNlcnRFbGVtZW50KCk7XHJcbiAgICB0aGlzLmluc2VydGVkLmFkZChoYXNoKTtcclxuXHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNvbnRlbnQoZWxlbWVudDogSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MU3R5bGVFbGVtZW50KSB7XHJcbiAgICBpZiAoZWxlbWVudC50ZXh0Q29udGVudCkge1xyXG4gICAgICBjb25zdCBoYXNoID0gZ2VuZXJhdGVIYXNoKGVsZW1lbnQudGV4dENvbnRlbnQpO1xyXG4gICAgICB0aGlzLmluc2VydGVkLmRlbGV0ZShoYXNoKTtcclxuICAgICAgZWxlbWVudC5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZChlbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhcyhjb250ZW50OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGhhc2ggPSBnZW5lcmF0ZUhhc2goY29udGVudCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaW5zZXJ0ZWQuaGFzKGhhc2gpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const LOADER_DELAY = new InjectionToken('LOADER_DELAY');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9kYWVyLWRlbGF5LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Rva2Vucy9sb2RhZXItZGVsYXkudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVMsY0FBYyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IExPQURFUl9ERUxBWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KCdMT0FERVJfREVMQVknKTtcclxuIl19","import { Injectable, Injector } from '@angular/core';\nimport { InternalStore } from '../utils/internal-store-utils';\nimport { getPathName } from '../utils/http-utils';\nimport { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { of, Subject, timer } from 'rxjs';\nimport { LOADER_DELAY } from '../tokens/lodaer-delay.token';\nimport * as i0 from \"@angular/core\";\nexport class HttpWaitService {\n    constructor(injector) {\n        this.store = new InternalStore({\n            requests: [],\n            filteredRequests: [],\n        });\n        this.destroy$ = new Subject();\n        this.delay = injector.get(LOADER_DELAY, 500);\n    }\n    getLoading() {\n        return !!this.applyFilter(this.store.state.requests).length;\n    }\n    getLoading$() {\n        return this.store\n            .sliceState(({ requests }) => requests)\n            .pipe(map(requests => !!this.applyFilter(requests).length), switchMap(condition => condition\n            ? this.delay === 0\n                ? of(true)\n                : timer(this.delay).pipe(mapTo(true), takeUntil(this.destroy$))\n            : of(false)), tap(() => this.destroy$.next()));\n    }\n    updateLoading$() {\n        return this.store.sliceUpdate(({ requests }) => !!this.applyFilter(requests).length);\n    }\n    clearLoading() {\n        this.store.patch({ requests: [] });\n    }\n    addRequest(request) {\n        this.store.patch({ requests: [...this.store.state.requests, request] });\n    }\n    deleteRequest(request) {\n        const requests = this.store.state.requests.filter(r => r !== request);\n        this.store.patch({ requests });\n    }\n    addFilter(request) {\n        const requests = Array.isArray(request) ? request : [request];\n        const filteredRequests = [\n            ...this.store.state.filteredRequests.filter(f => !requests.some(r => this.isSameRequest(f, r))),\n            ...requests,\n        ];\n        this.store.patch({ filteredRequests });\n    }\n    removeFilter(request) {\n        const requests = Array.isArray(request) ? request : [request];\n        const filteredRequests = this.store.state.filteredRequests.filter(f => !requests.some(r => this.isSameRequest(f, r)));\n        this.store.patch({ filteredRequests });\n    }\n    applyFilter(requests) {\n        if (!requests) {\n            return [];\n        }\n        const { filteredRequests } = this.store.state;\n        return requests.filter(({ method, url }) => !filteredRequests.find(filteredRequest => this.isSameRequest(filteredRequest, { method, endpoint: getPathName(url) })));\n    }\n    isSameRequest(filteredRequest, request) {\n        const { method, endpoint } = filteredRequest;\n        return endpoint === request.endpoint && method === request.method;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: HttpWaitService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: HttpWaitService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: HttpWaitService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC13YWl0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC13YWl0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBYTVELE1BQU0sT0FBTyxlQUFlO0lBUzFCLFlBQVksUUFBa0I7UUFScEIsVUFBSyxHQUFHLElBQUksYUFBYSxDQUFnQjtZQUNqRCxRQUFRLEVBQUUsRUFBRTtZQUNaLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQyxDQUFDO1FBR0ssYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHckMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzlELENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLFVBQVUsQ0FB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Q0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ25ELENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sV0FBVyxDQUFDLFFBQXdDO1FBQzFELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzlDLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FDcEIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQ2xCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUM1RSxDQUNKLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLGVBQWdDLEVBQUUsT0FBd0I7UUFDOUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFDN0MsT0FBTyxRQUFRLEtBQUssT0FBTyxDQUFDLFFBQVEsSUFBSSxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNwRSxDQUFDOzhHQXJGVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMnO1xyXG5pbXBvcnQgeyBnZXRQYXRoTmFtZSB9IGZyb20gJy4uL3V0aWxzL2h0dHAtdXRpbHMnO1xyXG5pbXBvcnQgeyBtYXAsIG1hcFRvLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBvZiwgU3ViamVjdCwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTE9BREVSX0RFTEFZIH0gZnJvbSAnLi4vdG9rZW5zL2xvZGFlci1kZWxheS50b2tlbic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBXYWl0U3RhdGUge1xyXG4gIHJlcXVlc3RzOiBIdHRwUmVxdWVzdDxhbnk+W107XHJcbiAgZmlsdGVyZWRSZXF1ZXN0czogQXJyYXk8SHR0cFJlcXVlc3RJbmZvPjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXF1ZXN0SW5mbyB7XHJcbiAgbWV0aG9kOiBzdHJpbmc7XHJcbiAgZW5kcG9pbnQ6IHN0cmluZztcclxufVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSHR0cFdhaXRTZXJ2aWNlIHtcclxuICBwcm90ZWN0ZWQgc3RvcmUgPSBuZXcgSW50ZXJuYWxTdG9yZTxIdHRwV2FpdFN0YXRlPih7XHJcbiAgICByZXF1ZXN0czogW10sXHJcbiAgICBmaWx0ZXJlZFJlcXVlc3RzOiBbXSxcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSBkZWxheTogbnVtYmVyO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHRoaXMuZGVsYXkgPSBpbmplY3Rvci5nZXQoTE9BREVSX0RFTEFZLCA1MDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9hZGluZygpIHtcclxuICAgIHJldHVybiAhIXRoaXMuYXBwbHlGaWx0ZXIodGhpcy5zdG9yZS5zdGF0ZS5yZXF1ZXN0cykubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9hZGluZyQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZVxyXG4gICAgICAuc2xpY2VTdGF0ZSgoeyByZXF1ZXN0cyB9KSA9PiByZXF1ZXN0cylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlcXVlc3RzID0+ICEhdGhpcy5hcHBseUZpbHRlcihyZXF1ZXN0cykubGVuZ3RoKSxcclxuICAgICAgICBzd2l0Y2hNYXAoY29uZGl0aW9uID0+XHJcbiAgICAgICAgICBjb25kaXRpb25cclxuICAgICAgICAgICAgPyB0aGlzLmRlbGF5ID09PSAwXHJcbiAgICAgICAgICAgICAgPyBvZih0cnVlKVxyXG4gICAgICAgICAgICAgIDogdGltZXIodGhpcy5kZWxheSkucGlwZShtYXBUbyh0cnVlKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICA6IG9mKGZhbHNlKSxcclxuICAgICAgICApLFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmRlc3Ryb3kkLm5leHQoKSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMb2FkaW5nJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlVXBkYXRlKCh7IHJlcXVlc3RzIH0pID0+ICEhdGhpcy5hcHBseUZpbHRlcihyZXF1ZXN0cykubGVuZ3RoKTtcclxuICB9XHJcblxyXG4gIGNsZWFyTG9hZGluZygpIHtcclxuICAgIHRoaXMuc3RvcmUucGF0Y2goeyByZXF1ZXN0czogW10gfSk7XHJcbiAgfVxyXG5cclxuICBhZGRSZXF1ZXN0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pIHtcclxuICAgIHRoaXMuc3RvcmUucGF0Y2goeyByZXF1ZXN0czogWy4uLnRoaXMuc3RvcmUuc3RhdGUucmVxdWVzdHMsIHJlcXVlc3RdIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSB7XHJcbiAgICBjb25zdCByZXF1ZXN0cyA9IHRoaXMuc3RvcmUuc3RhdGUucmVxdWVzdHMuZmlsdGVyKHIgPT4gciAhPT0gcmVxdWVzdCk7XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgcmVxdWVzdHMgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRGaWx0ZXIocmVxdWVzdDogSHR0cFJlcXVlc3RJbmZvIHwgSHR0cFJlcXVlc3RJbmZvW10pIHtcclxuICAgIGNvbnN0IHJlcXVlc3RzID0gQXJyYXkuaXNBcnJheShyZXF1ZXN0KSA/IHJlcXVlc3QgOiBbcmVxdWVzdF07XHJcbiAgICBjb25zdCBmaWx0ZXJlZFJlcXVlc3RzID0gW1xyXG4gICAgICAuLi50aGlzLnN0b3JlLnN0YXRlLmZpbHRlcmVkUmVxdWVzdHMuZmlsdGVyKFxyXG4gICAgICAgIGYgPT4gIXJlcXVlc3RzLnNvbWUociA9PiB0aGlzLmlzU2FtZVJlcXVlc3QoZiwgcikpLFxyXG4gICAgICApLFxyXG4gICAgICAuLi5yZXF1ZXN0cyxcclxuICAgIF07XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgZmlsdGVyZWRSZXF1ZXN0cyB9KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUZpbHRlcihyZXF1ZXN0OiBIdHRwUmVxdWVzdEluZm8gfCBIdHRwUmVxdWVzdEluZm9bXSkge1xyXG4gICAgY29uc3QgcmVxdWVzdHMgPSBBcnJheS5pc0FycmF5KHJlcXVlc3QpID8gcmVxdWVzdCA6IFtyZXF1ZXN0XTtcclxuICAgIGNvbnN0IGZpbHRlcmVkUmVxdWVzdHMgPSB0aGlzLnN0b3JlLnN0YXRlLmZpbHRlcmVkUmVxdWVzdHMuZmlsdGVyKFxyXG4gICAgICBmID0+ICFyZXF1ZXN0cy5zb21lKHIgPT4gdGhpcy5pc1NhbWVSZXF1ZXN0KGYsIHIpKSxcclxuICAgICk7XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgZmlsdGVyZWRSZXF1ZXN0cyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXIocmVxdWVzdHM6IEh0dHBSZXF1ZXN0PGFueT5bXSB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKCFyZXF1ZXN0cykge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGZpbHRlcmVkUmVxdWVzdHMgfSA9IHRoaXMuc3RvcmUuc3RhdGU7XHJcbiAgICByZXR1cm4gcmVxdWVzdHMuZmlsdGVyKFxyXG4gICAgICAoeyBtZXRob2QsIHVybCB9KSA9PlxyXG4gICAgICAgICFmaWx0ZXJlZFJlcXVlc3RzLmZpbmQoZmlsdGVyZWRSZXF1ZXN0ID0+XHJcbiAgICAgICAgICB0aGlzLmlzU2FtZVJlcXVlc3QoZmlsdGVyZWRSZXF1ZXN0LCB7IG1ldGhvZCwgZW5kcG9pbnQ6IGdldFBhdGhOYW1lKHVybCkgfSksXHJcbiAgICAgICAgKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzU2FtZVJlcXVlc3QoZmlsdGVyZWRSZXF1ZXN0OiBIdHRwUmVxdWVzdEluZm8sIHJlcXVlc3Q6IEh0dHBSZXF1ZXN0SW5mbykge1xyXG4gICAgY29uc3QgeyBtZXRob2QsIGVuZHBvaW50IH0gPSBmaWx0ZXJlZFJlcXVlc3Q7XHJcbiAgICByZXR1cm4gZW5kcG9pbnQgPT09IHJlcXVlc3QuZW5kcG9pbnQgJiYgbWV0aG9kID09PSByZXF1ZXN0Lm1ldGhvZDtcclxuICB9XHJcbn1cclxuIl19","import { Injectable } from '@angular/core';\nimport { InternalStore } from '../utils/internal-store-utils';\nimport * as i0 from \"@angular/core\";\nexport class ResourceWaitService {\n    constructor() {\n        this.store = new InternalStore({ resources: new Set() });\n    }\n    getLoading() {\n        return !!this.store.state.resources.size;\n    }\n    getLoading$() {\n        return this.store.sliceState(({ resources }) => !!resources.size);\n    }\n    updateLoading$() {\n        return this.store.sliceUpdate(({ resources }) => !!resources?.size);\n    }\n    clearLoading() {\n        this.store.patch({ resources: new Set() });\n    }\n    addResource(resource) {\n        const resources = this.store.state.resources;\n        resources.add(resource);\n        this.store.patch({ resources });\n    }\n    deleteResource(resource) {\n        const resources = this.store.state.resources;\n        resources.delete(resource);\n        this.store.patch({ resources });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ResourceWaitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ResourceWaitService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ResourceWaitService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2Utd2FpdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3Jlc291cmNlLXdhaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFTOUQsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUlVLFVBQUssR0FBRyxJQUFJLGFBQWEsQ0FBb0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7S0E2QmhGO0lBM0JDLFVBQVU7UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBZ0I7UUFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQzdDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBZ0I7UUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQzdDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OEdBN0JVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEludGVybmFsU3RvcmUgfSBmcm9tICcuLi91dGlscy9pbnRlcm5hbC1zdG9yZS11dGlscyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlV2FpdFN0YXRlIHtcclxuICByZXNvdXJjZXM6IFNldDxzdHJpbmc+O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VXYWl0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzdG9yZSA9IG5ldyBJbnRlcm5hbFN0b3JlPFJlc291cmNlV2FpdFN0YXRlPih7IHJlc291cmNlczogbmV3IFNldCgpIH0pO1xyXG5cclxuICBnZXRMb2FkaW5nKCkge1xyXG4gICAgcmV0dXJuICEhdGhpcy5zdG9yZS5zdGF0ZS5yZXNvdXJjZXMuc2l6ZTtcclxuICB9XHJcblxyXG4gIGdldExvYWRpbmckKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZSgoeyByZXNvdXJjZXMgfSkgPT4gISFyZXNvdXJjZXMuc2l6ZSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMb2FkaW5nJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlVXBkYXRlKCh7IHJlc291cmNlcyB9KSA9PiAhIXJlc291cmNlcz8uc2l6ZSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckxvYWRpbmcoKSB7XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgcmVzb3VyY2VzOiBuZXcgU2V0KCkgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRSZXNvdXJjZShyZXNvdXJjZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCByZXNvdXJjZXMgPSB0aGlzLnN0b3JlLnN0YXRlLnJlc291cmNlcztcclxuICAgIHJlc291cmNlcy5hZGQocmVzb3VyY2UpO1xyXG4gICAgdGhpcy5zdG9yZS5wYXRjaCh7IHJlc291cmNlcyB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVJlc291cmNlKHJlc291cmNlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHJlc291cmNlcyA9IHRoaXMuc3RvcmUuc3RhdGUucmVzb3VyY2VzO1xyXG4gICAgcmVzb3VyY2VzLmRlbGV0ZShyZXNvdXJjZSk7XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgcmVzb3VyY2VzIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Injectable } from '@angular/core';\nimport { concat, of, pipe, throwError } from 'rxjs';\nimport { delay, retryWhen, shareReplay, take, tap } from 'rxjs/operators';\nimport { ResourceWaitService } from './resource-wait.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./resource-wait.service\";\nexport class LazyLoadService {\n    constructor(resourceWaitService) {\n        this.resourceWaitService = resourceWaitService;\n        this.loaded = new Map();\n    }\n    load(strategy, retryTimes, retryDelay) {\n        if (this.loaded.has(strategy.path))\n            return of(new CustomEvent('load'));\n        this.resourceWaitService.addResource(strategy.path);\n        const delayOperator = retryDelay ? pipe(delay(retryDelay)) : pipe();\n        const takeOp = retryTimes ? pipe(take(retryTimes)) : pipe();\n        return strategy.createStream().pipe(retryWhen(error$ => concat(error$.pipe(delayOperator, takeOp), throwError(() => new CustomEvent('error')))), tap(() => {\n            this.loaded.set(strategy.path, strategy.element);\n            this.resourceWaitService.deleteResource(strategy.path);\n        }), delay(100), shareReplay({ bufferSize: 1, refCount: true }));\n    }\n    remove(path) {\n        const element = this.loaded.get(path);\n        if (!element)\n            return false;\n        element.parentNode?.removeChild(element);\n        this.loaded.delete(path);\n        return true;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LazyLoadService, deps: [{ token: i1.ResourceWaitService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LazyLoadService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LazyLoadService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.ResourceWaitService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvbGF6eS1sb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUs5RCxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFvQixtQkFBd0M7UUFBeEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUZuRCxXQUFNLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7SUFFakIsQ0FBQztJQUVoRSxJQUFJLENBQUMsUUFBeUIsRUFBRSxVQUFtQixFQUFFLFVBQW1CO1FBQ3RFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1RCxPQUFPLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQ2pDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUNqQixNQUFNLENBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLEVBQ2xDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUMzQyxDQUNGLEVBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFDVixXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFZO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFM0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQWxDVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgY29uY2F0LCBPYnNlcnZhYmxlLCBvZiwgcGlwZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgcmV0cnlXaGVuLCBzaGFyZVJlcGxheSwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBMb2FkaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzJztcclxuaW1wb3J0IHsgUmVzb3VyY2VXYWl0U2VydmljZSB9IGZyb20gJy4vcmVzb3VyY2Utd2FpdC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXp5TG9hZFNlcnZpY2Uge1xyXG4gIHJlYWRvbmx5IGxvYWRlZCA9IG5ldyBNYXA8c3RyaW5nLCBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxMaW5rRWxlbWVudCB8IG51bGw+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzb3VyY2VXYWl0U2VydmljZTogUmVzb3VyY2VXYWl0U2VydmljZSkge31cclxuXHJcbiAgbG9hZChzdHJhdGVneTogTG9hZGluZ1N0cmF0ZWd5LCByZXRyeVRpbWVzPzogbnVtYmVyLCByZXRyeURlbGF5PzogbnVtYmVyKTogT2JzZXJ2YWJsZTxFdmVudD4ge1xyXG4gICAgaWYgKHRoaXMubG9hZGVkLmhhcyhzdHJhdGVneS5wYXRoKSkgcmV0dXJuIG9mKG5ldyBDdXN0b21FdmVudCgnbG9hZCcpKTtcclxuICAgIHRoaXMucmVzb3VyY2VXYWl0U2VydmljZS5hZGRSZXNvdXJjZShzdHJhdGVneS5wYXRoKTtcclxuICAgIGNvbnN0IGRlbGF5T3BlcmF0b3IgPSByZXRyeURlbGF5ID8gcGlwZShkZWxheShyZXRyeURlbGF5KSkgOiBwaXBlKCk7XHJcbiAgICBjb25zdCB0YWtlT3AgPSByZXRyeVRpbWVzID8gcGlwZSh0YWtlKHJldHJ5VGltZXMpKSA6IHBpcGUoKTtcclxuICAgIHJldHVybiBzdHJhdGVneS5jcmVhdGVTdHJlYW0oKS5waXBlKFxyXG4gICAgICByZXRyeVdoZW4oZXJyb3IkID0+XHJcbiAgICAgICAgY29uY2F0KFxyXG4gICAgICAgICAgZXJyb3IkLnBpcGUoZGVsYXlPcGVyYXRvciwgdGFrZU9wKSxcclxuICAgICAgICAgIHRocm93RXJyb3IoKCkgPT4gbmV3IEN1c3RvbUV2ZW50KCdlcnJvcicpKSxcclxuICAgICAgICApLFxyXG4gICAgICApLFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGVkLnNldChzdHJhdGVneS5wYXRoLCBzdHJhdGVneS5lbGVtZW50KTtcclxuICAgICAgICB0aGlzLnJlc291cmNlV2FpdFNlcnZpY2UuZGVsZXRlUmVzb3VyY2Uoc3RyYXRlZ3kucGF0aCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBkZWxheSgxMDApLFxyXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZShwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmxvYWRlZC5nZXQocGF0aCk7XHJcblxyXG4gICAgaWYgKCFlbGVtZW50KSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgZWxlbWVudC5wYXJlbnROb2RlPy5yZW1vdmVDaGlsZChlbGVtZW50KTtcclxuICAgIHRoaXMubG9hZGVkLmRlbGV0ZShwYXRoKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const LIST_QUERY_DEBOUNCE_TIME = new InjectionToken('LIST_QUERY_DEBOUNCE_TIME');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi90b2tlbnMvbGlzdC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFTLDBCQUEwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxudW1iZXI+KCdMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUnKTtcclxuIl19","import { Injectable, Injector } from '@angular/core';\nimport { EMPTY, BehaviorSubject, ReplaySubject, Subject, } from 'rxjs';\nimport { catchError, debounceTime, filter, finalize, shareReplay, switchMap, takeUntil, tap, } from 'rxjs/operators';\nimport { LIST_QUERY_DEBOUNCE_TIME } from '../tokens/list.token';\nimport * as i0 from \"@angular/core\";\nexport class ListService {\n    set filter(value) {\n        this._filter = value;\n        this.get();\n    }\n    get filter() {\n        return this._filter;\n    }\n    set maxResultCount(value) {\n        this._maxResultCount = value;\n        this.get();\n    }\n    get maxResultCount() {\n        return this._maxResultCount;\n    }\n    set page(value) {\n        if (value === this._page)\n            return;\n        this._page = value;\n        this.get();\n    }\n    get page() {\n        return this._page;\n    }\n    set totalCount(value) {\n        if (value === this._totalCount)\n            return;\n        this._totalCount = value;\n        this.get();\n    }\n    get totalCount() {\n        return this._totalCount;\n    }\n    set sortKey(value) {\n        this._sortKey = value;\n        this.get();\n    }\n    get sortKey() {\n        return this._sortKey;\n    }\n    set sortOrder(value) {\n        this._sortOrder = value;\n        this.get();\n    }\n    get sortOrder() {\n        return this._sortOrder;\n    }\n    get query$() {\n        return this._query$\n            .asObservable()\n            .pipe(this.delay, shareReplay({ bufferSize: 1, refCount: true }));\n    }\n    /**\n     * @deprecated Use `requestStatus$` instead.\n     */\n    get isLoading$() {\n        return this._isLoading$.asObservable().pipe(takeUntil(this.destroy$));\n    }\n    get requestStatus$() {\n        return this._requestStatus.asObservable().pipe(takeUntil(this.destroy$));\n    }\n    constructor(injector) {\n        this._filter = '';\n        this._maxResultCount = 10;\n        this._page = 0;\n        this._totalCount = 0;\n        this._sortKey = '';\n        this._sortOrder = '';\n        this._query$ = new ReplaySubject(1);\n        this._isLoading$ = new BehaviorSubject(false);\n        this._requestStatus = new BehaviorSubject('idle');\n        this.destroy$ = new Subject();\n        this.get = () => {\n            this.resetPageWhenUnchanged();\n            this.next();\n        };\n        this.getWithoutPageReset = () => {\n            this.next();\n        };\n        const delay = injector.get(LIST_QUERY_DEBOUNCE_TIME, 300);\n        this.delay = delay ? debounceTime(delay) : tap();\n        this.get();\n    }\n    hookToQuery(streamCreatorCallback) {\n        return this.query$.pipe(tap(() => this._isLoading$.next(true)), tap(() => this._requestStatus.next('loading')), switchMap(query => streamCreatorCallback(query).pipe(catchError(() => {\n            this._requestStatus.next('error');\n            return EMPTY;\n        }), tap(() => this._requestStatus.next('success')), finalize(() => {\n            this._isLoading$.next(false);\n            this._requestStatus.next('idle');\n        }))), filter(Boolean), shareReplay({ bufferSize: 1, refCount: true }), takeUntil(this.destroy$));\n    }\n    ngOnDestroy() {\n        this.destroy$.next();\n    }\n    resetPageWhenUnchanged() {\n        const maxPage = Number(Number(this.totalCount / this._maxResultCount).toFixed());\n        const skipCount = this._page * this._maxResultCount;\n        if (skipCount !== this._totalCount) {\n            return;\n        }\n        if (this.page === maxPage && this.page > 0) {\n            this.page = this.page - 1;\n        }\n    }\n    next() {\n        this._query$.next({\n            filter: this._filter || undefined,\n            maxResultCount: this._maxResultCount,\n            skipCount: this._page * this._maxResultCount,\n            sorting: this._sortOrder ? `${this._sortKey} ${this._sortOrder}` : undefined,\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ListService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ListService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ListService, decorators: [{\n            type: Injectable\n        }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2xpc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsS0FBSyxFQUNMLGVBQWUsRUFHZixhQUFhLEVBQ2IsT0FBTyxHQUNSLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUNMLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFLaEUsTUFBTSxPQUFPLFdBQVc7SUFFdEIsSUFBSSxNQUFNLENBQUMsS0FBYTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDYixDQUFDO0lBQ0QsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFHRCxJQUFJLGNBQWMsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFDRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFHRCxJQUFJLElBQUksQ0FBQyxLQUFhO1FBQ3BCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUVqQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsR0FB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QUM7UUFDakYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBRXBELElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRU8sSUFBSTtRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVM7WUFDakMsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlO1lBQzVDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ25ELENBQUMsQ0FBQztJQUMvQixDQUFDOzhHQXJKVSxXQUFXO2tIQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRU1QVFksXHJcbiAgQmVoYXZpb3JTdWJqZWN0LFxyXG4gIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbixcclxuICBPYnNlcnZhYmxlLFxyXG4gIFJlcGxheVN1YmplY3QsXHJcbiAgU3ViamVjdCxcclxufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBjYXRjaEVycm9yLFxyXG4gIGRlYm91bmNlVGltZSxcclxuICBmaWx0ZXIsXHJcbiAgZmluYWxpemUsXHJcbiAgc2hhcmVSZXBsYXksXHJcbiAgc3dpdGNoTWFwLFxyXG4gIHRha2VVbnRpbCxcclxuICB0YXAsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMvY29tbW9uJztcclxuaW1wb3J0IHsgUGFnZWRSZXN1bHREdG8gfSBmcm9tICcuLi9tb2RlbHMvZHRvcyc7XHJcbmltcG9ydCB7IExJU1RfUVVFUllfREVCT1VOQ0VfVElNRSB9IGZyb20gJy4uL3Rva2Vucy9saXN0LnRva2VuJztcclxuXHJcbmV4cG9ydCB0eXBlIFJlcXVlc3RTdGF0dXMgPSAnaWRsZScgfCAnbG9hZGluZycgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTGlzdFNlcnZpY2U8UXVlcnlQYXJhbXNUeXBlID0gQUJQLlBhZ2VRdWVyeVBhcmFtcyB8IGFueT4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2ZpbHRlciA9ICcnO1xyXG4gIHNldCBmaWx0ZXIodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZmlsdGVyID0gdmFsdWU7XHJcbiAgICB0aGlzLmdldCgpO1xyXG4gIH1cclxuICBnZXQgZmlsdGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbWF4UmVzdWx0Q291bnQgPSAxMDtcclxuICBzZXQgbWF4UmVzdWx0Q291bnQodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fbWF4UmVzdWx0Q291bnQgPSB2YWx1ZTtcclxuICAgIHRoaXMuZ2V0KCk7XHJcbiAgfVxyXG4gIGdldCBtYXhSZXN1bHRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heFJlc3VsdENvdW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcGFnZSA9IDA7XHJcbiAgc2V0IHBhZ2UodmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHZhbHVlID09PSB0aGlzLl9wYWdlKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fcGFnZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5nZXQoKTtcclxuICB9XHJcbiAgZ2V0IHBhZ2UoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9wYWdlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdG90YWxDb3VudCA9IDA7XHJcbiAgc2V0IHRvdGFsQ291bnQodmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHZhbHVlID09PSB0aGlzLl90b3RhbENvdW50KSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fdG90YWxDb3VudCA9IHZhbHVlO1xyXG4gICAgdGhpcy5nZXQoKTtcclxuICB9XHJcbiAgZ2V0IHRvdGFsQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl90b3RhbENvdW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc29ydEtleTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XHJcbiAgc2V0IHNvcnRLZXkodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgdGhpcy5fc29ydEtleSA9IHZhbHVlO1xyXG4gICAgdGhpcy5nZXQoKTtcclxuICB9XHJcbiAgZ2V0IHNvcnRLZXkoKTogc3RyaW5nIHwgbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9zb3J0S2V5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc29ydE9yZGVyID0gJyc7XHJcbiAgc2V0IHNvcnRPcmRlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zb3J0T3JkZXIgPSB2YWx1ZTtcclxuICAgIHRoaXMuZ2V0KCk7XHJcbiAgfVxyXG4gIGdldCBzb3J0T3JkZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zb3J0T3JkZXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9xdWVyeSQgPSBuZXcgUmVwbGF5U3ViamVjdDxRdWVyeVBhcmFtc1R5cGU+KDEpO1xyXG5cclxuICBnZXQgcXVlcnkkKCk6IE9ic2VydmFibGU8UXVlcnlQYXJhbXNUeXBlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcXVlcnkkXHJcbiAgICAgIC5hc09ic2VydmFibGUoKVxyXG4gICAgICAucGlwZSh0aGlzLmRlbGF5LCBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgcHJpdmF0ZSBfcmVxdWVzdFN0YXR1cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVxdWVzdFN0YXR1cz4oJ2lkbGUnKTtcclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgZGVsYXk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxRdWVyeVBhcmFtc1R5cGU+O1xyXG5cclxuICAvKipcclxuICAgKiBAZGVwcmVjYXRlZCBVc2UgYHJlcXVlc3RTdGF0dXMkYCBpbnN0ZWFkLlxyXG4gICAqL1xyXG4gIGdldCBpc0xvYWRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzTG9hZGluZyQuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlcXVlc3RTdGF0dXMkKCk6IE9ic2VydmFibGU8UmVxdWVzdFN0YXR1cz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVlc3RTdGF0dXMuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5yZXNldFBhZ2VXaGVuVW5jaGFuZ2VkKCk7XHJcbiAgICB0aGlzLm5leHQoKTtcclxuICB9O1xyXG5cclxuICBnZXRXaXRob3V0UGFnZVJlc2V0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5uZXh0KCk7XHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBjb25zdCBkZWxheSA9IGluamVjdG9yLmdldChMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsIDMwMCk7XHJcbiAgICB0aGlzLmRlbGF5ID0gZGVsYXkgPyBkZWJvdW5jZVRpbWUoZGVsYXkpIDogdGFwKCk7XHJcbiAgICB0aGlzLmdldCgpO1xyXG4gIH1cclxuXHJcbiAgaG9va1RvUXVlcnk8VD4oXHJcbiAgICBzdHJlYW1DcmVhdG9yQ2FsbGJhY2s6IFF1ZXJ5U3RyZWFtQ3JlYXRvckNhbGxiYWNrPFQsIFF1ZXJ5UGFyYW1zVHlwZT4sXHJcbiAgKTogT2JzZXJ2YWJsZTxQYWdlZFJlc3VsdER0bzxUPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucXVlcnkkLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB0aGlzLl9pc0xvYWRpbmckLm5leHQodHJ1ZSkpLFxyXG4gICAgICB0YXAoKCkgPT4gdGhpcy5fcmVxdWVzdFN0YXR1cy5uZXh0KCdsb2FkaW5nJykpLFxyXG4gICAgICBzd2l0Y2hNYXAocXVlcnkgPT5cclxuICAgICAgICBzdHJlYW1DcmVhdG9yQ2FsbGJhY2socXVlcnkpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fcmVxdWVzdFN0YXR1cy5uZXh0KCdlcnJvcicpO1xyXG4gICAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLl9yZXF1ZXN0U3RhdHVzLm5leHQoJ3N1Y2Nlc3MnKSksXHJcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2lzTG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlcXVlc3RTdGF0dXMubmV4dCgnaWRsZScpO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgKSxcclxuICAgICAgKSxcclxuICAgICAgZmlsdGVyKEJvb2xlYW4pLFxyXG4gICAgICBzaGFyZVJlcGxheTxhbnk+KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIHJlc2V0UGFnZVdoZW5VbmNoYW5nZWQoKSB7XHJcbiAgICBjb25zdCBtYXhQYWdlID0gTnVtYmVyKE51bWJlcih0aGlzLnRvdGFsQ291bnQgLyB0aGlzLl9tYXhSZXN1bHRDb3VudCkudG9GaXhlZCgpKTtcclxuICAgIGNvbnN0IHNraXBDb3VudCA9IHRoaXMuX3BhZ2UgKiB0aGlzLl9tYXhSZXN1bHRDb3VudDtcclxuXHJcbiAgICBpZiAoc2tpcENvdW50ICE9PSB0aGlzLl90b3RhbENvdW50KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wYWdlID09PSBtYXhQYWdlICYmIHRoaXMucGFnZSA+IDApIHtcclxuICAgICAgdGhpcy5wYWdlID0gdGhpcy5wYWdlIC0gMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbmV4dCgpIHtcclxuICAgIHRoaXMuX3F1ZXJ5JC5uZXh0KHtcclxuICAgICAgZmlsdGVyOiB0aGlzLl9maWx0ZXIgfHwgdW5kZWZpbmVkLFxyXG4gICAgICBtYXhSZXN1bHRDb3VudDogdGhpcy5fbWF4UmVzdWx0Q291bnQsXHJcbiAgICAgIHNraXBDb3VudDogdGhpcy5fcGFnZSAqIHRoaXMuX21heFJlc3VsdENvdW50LFxyXG4gICAgICBzb3J0aW5nOiB0aGlzLl9zb3J0T3JkZXIgPyBgJHt0aGlzLl9zb3J0S2V5fSAke3RoaXMuX3NvcnRPcmRlcn1gIDogdW5kZWZpbmVkLFxyXG4gICAgfSBhcyBhbnkgYXMgUXVlcnlQYXJhbXNUeXBlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFF1ZXJ5U3RyZWFtQ3JlYXRvckNhbGxiYWNrPFQsIFF1ZXJ5UGFyYW1zVHlwZSA9IEFCUC5QYWdlUXVlcnlQYXJhbXM+ID0gKFxyXG4gIHF1ZXJ5OiBRdWVyeVBhcmFtc1R5cGUsXHJcbikgPT4gT2JzZXJ2YWJsZTxQYWdlZFJlc3VsdER0bzxUPj47XHJcbiJdfQ==","import { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { ConfigStateService } from './config-state.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./config-state.service\";\nexport class PermissionService {\n    constructor(configState) {\n        this.configState = configState;\n    }\n    getGrantedPolicy$(key) {\n        return this.getStream().pipe(map(grantedPolicies => this.isPolicyGranted(key, grantedPolicies)));\n    }\n    getGrantedPolicy(key) {\n        const policies = this.getSnapshot();\n        return this.isPolicyGranted(key, policies);\n    }\n    filterItemsByPolicy(items) {\n        const policies = this.getSnapshot();\n        return items.filter(item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies));\n    }\n    filterItemsByPolicy$(items) {\n        return this.getStream().pipe(map(policies => items.filter(item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies))));\n    }\n    isPolicyGranted(key, grantedPolicies) {\n        if (!key)\n            return true;\n        const orRegexp = /\\|\\|/g;\n        const andRegexp = /&&/g;\n        // TODO: Allow combination of ANDs & ORs\n        if (orRegexp.test(key)) {\n            const keys = key.split('||').filter(Boolean);\n            if (keys.length < 2)\n                return false;\n            return keys.some(k => this.getPolicy(k.trim(), grantedPolicies));\n        }\n        else if (andRegexp.test(key)) {\n            const keys = key.split('&&').filter(Boolean);\n            if (keys.length < 2)\n                return false;\n            return keys.every(k => this.getPolicy(k.trim(), grantedPolicies));\n        }\n        return this.getPolicy(key, grantedPolicies);\n    }\n    getStream() {\n        return this.configState.getAll$().pipe(map(this.mapToPolicies));\n    }\n    getSnapshot() {\n        return this.mapToPolicies(this.configState.getAll());\n    }\n    mapToPolicies(applicationConfiguration) {\n        return applicationConfiguration?.auth?.grantedPolicies || {};\n    }\n    getPolicy(key, grantedPolicies) {\n        return grantedPolicies[key] || false;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PermissionService, deps: [{ token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PermissionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PermissionService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }], ctorParameters: () => [{ type: i1.ConfigStateService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3Blcm1pc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBRzVELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBc0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBQUcsQ0FBQztJQUV6RCxpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUF1QjtRQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsbUJBQW1CLENBQTBCLEtBQWU7UUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FDakIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUNwRixDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQixDQUEwQixLQUFlO1FBQzNELE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ2IsS0FBSyxDQUFDLE1BQU0sQ0FDVixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQ3BGLENBQ0YsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVTLGVBQWUsQ0FBQyxHQUF1QixFQUFFLGVBQXdDO1FBQ3pGLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFdEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV4Qix3Q0FBd0M7UUFDeEMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDO2FBQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFN0MsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsU0FBUztRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRVMsV0FBVztRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFUyxhQUFhLENBQUMsd0JBQXFEO1FBQzNFLE9BQU8sd0JBQXdCLEVBQUUsSUFBSSxFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVTLFNBQVMsQ0FBQyxHQUFXLEVBQUUsZUFBd0M7UUFDdkUsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3ZDLENBQUM7OEdBckVVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBREosTUFBTTs7MkZBQ25CLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byB9IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvbW9kZWxzJztcclxuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWctc3RhdGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICBnZXRHcmFudGVkUG9saWN5JChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RyZWFtKCkucGlwZShcclxuICAgICAgbWFwKGdyYW50ZWRQb2xpY2llcyA9PiB0aGlzLmlzUG9saWN5R3JhbnRlZChrZXksIGdyYW50ZWRQb2xpY2llcykpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEdyYW50ZWRQb2xpY3koa2V5OiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIGNvbnN0IHBvbGljaWVzID0gdGhpcy5nZXRTbmFwc2hvdCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuaXNQb2xpY3lHcmFudGVkKGtleSwgcG9saWNpZXMpO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVySXRlbXNCeVBvbGljeTxUIGV4dGVuZHMgQUJQLkhhc1BvbGljeT4oaXRlbXM6IEFycmF5PFQ+KSB7XHJcbiAgICBjb25zdCBwb2xpY2llcyA9IHRoaXMuZ2V0U25hcHNob3QoKTtcclxuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoXHJcbiAgICAgIGl0ZW0gPT4gIWl0ZW0ucmVxdWlyZWRQb2xpY3kgfHwgdGhpcy5pc1BvbGljeUdyYW50ZWQoaXRlbS5yZXF1aXJlZFBvbGljeSwgcG9saWNpZXMpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZpbHRlckl0ZW1zQnlQb2xpY3kkPFQgZXh0ZW5kcyBBQlAuSGFzUG9saWN5PihpdGVtczogQXJyYXk8VD4pIHtcclxuICAgIHJldHVybiB0aGlzLmdldFN0cmVhbSgpLnBpcGUoXHJcbiAgICAgIG1hcChwb2xpY2llcyA9PlxyXG4gICAgICAgIGl0ZW1zLmZpbHRlcihcclxuICAgICAgICAgIGl0ZW0gPT4gIWl0ZW0ucmVxdWlyZWRQb2xpY3kgfHwgdGhpcy5pc1BvbGljeUdyYW50ZWQoaXRlbS5yZXF1aXJlZFBvbGljeSwgcG9saWNpZXMpLFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGlzUG9saWN5R3JhbnRlZChrZXk6IHN0cmluZyB8IHVuZGVmaW5lZCwgZ3JhbnRlZFBvbGljaWVzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPikge1xyXG4gICAgaWYgKCFrZXkpIHJldHVybiB0cnVlO1xyXG5cclxuICAgIGNvbnN0IG9yUmVnZXhwID0gL1xcfFxcfC9nO1xyXG4gICAgY29uc3QgYW5kUmVnZXhwID0gLyYmL2c7XHJcblxyXG4gICAgLy8gVE9ETzogQWxsb3cgY29tYmluYXRpb24gb2YgQU5EcyAmIE9Sc1xyXG4gICAgaWYgKG9yUmVnZXhwLnRlc3Qoa2V5KSkge1xyXG4gICAgICBjb25zdCBrZXlzID0ga2V5LnNwbGl0KCd8fCcpLmZpbHRlcihCb29sZWFuKTtcclxuXHJcbiAgICAgIGlmIChrZXlzLmxlbmd0aCA8IDIpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICAgIHJldHVybiBrZXlzLnNvbWUoayA9PiB0aGlzLmdldFBvbGljeShrLnRyaW0oKSwgZ3JhbnRlZFBvbGljaWVzKSk7XHJcbiAgICB9IGVsc2UgaWYgKGFuZFJlZ2V4cC50ZXN0KGtleSkpIHtcclxuICAgICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdCgnJiYnKS5maWx0ZXIoQm9vbGVhbik7XHJcblxyXG4gICAgICBpZiAoa2V5cy5sZW5ndGggPCAyKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgICByZXR1cm4ga2V5cy5ldmVyeShrID0+IHRoaXMuZ2V0UG9saWN5KGsudHJpbSgpLCBncmFudGVkUG9saWNpZXMpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5nZXRQb2xpY3koa2V5LCBncmFudGVkUG9saWNpZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFN0cmVhbSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N0YXRlLmdldEFsbCQoKS5waXBlKG1hcCh0aGlzLm1hcFRvUG9saWNpZXMpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBnZXRTbmFwc2hvdCgpIHtcclxuICAgIHJldHVybiB0aGlzLm1hcFRvUG9saWNpZXModGhpcy5jb25maWdTdGF0ZS5nZXRBbGwoKSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbWFwVG9Qb2xpY2llcyhhcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bykge1xyXG4gICAgcmV0dXJuIGFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbj8uYXV0aD8uZ3JhbnRlZFBvbGljaWVzIHx8IHt9O1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGdldFBvbGljeShrZXk6IHN0cmluZywgZ3JhbnRlZFBvbGljaWVzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPikge1xyXG4gICAgcmV0dXJuIGdyYW50ZWRQb2xpY2llc1trZXldIHx8IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Injectable, NgZone } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { map } from 'rxjs/operators';\nimport { InternalStore } from '../utils/internal-store-utils';\nimport { reloadRoute } from '../utils/route-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class ReplaceableComponentsService {\n    get replaceableComponents$() {\n        return this.store.sliceState(state => state);\n    }\n    get replaceableComponents() {\n        return this.store.state;\n    }\n    get onUpdate$() {\n        return this.store.sliceUpdate(state => state);\n    }\n    constructor(ngZone, router) {\n        this.ngZone = ngZone;\n        this.router = router;\n        this.store = new InternalStore([]);\n    }\n    add(replaceableComponent, reload) {\n        const replaceableComponents = [...this.store.state];\n        const index = replaceableComponents.findIndex(component => component.key === replaceableComponent.key);\n        if (index > -1) {\n            replaceableComponents[index] = replaceableComponent;\n        }\n        else {\n            replaceableComponents.push(replaceableComponent);\n        }\n        this.store.set(replaceableComponents);\n        if (reload)\n            reloadRoute(this.router, this.ngZone);\n    }\n    get(replaceableComponentKey) {\n        return this.replaceableComponents.find(component => component.key === replaceableComponentKey);\n    }\n    get$(replaceableComponentKey) {\n        return this.replaceableComponents$.pipe(map(components => components.find(component => component.key === replaceableComponentKey)));\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ReplaceableComponentsService, deps: [{ token: i0.NgZone }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ReplaceableComponentsService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ReplaceableComponentsService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.Router }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZWFibGUtY29tcG9uZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3JlcGxhY2VhYmxlLWNvbXBvbmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUduRCxNQUFNLE9BQU8sNEJBQTRCO0lBR3ZDLElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxZQUFvQixNQUFjLEVBQVUsTUFBYztRQUF0QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN4RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksYUFBYSxDQUFDLEVBQWtELENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsR0FBRyxDQUFDLG9CQUFnRSxFQUFFLE1BQWdCO1FBQ3BGLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEQsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUMzQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssb0JBQW9CLENBQUMsR0FBRyxDQUN4RCxDQUFDO1FBRUYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNmLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxHQUFHLG9CQUFvQixDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04scUJBQXFCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFdEMsSUFBSSxNQUFNO1lBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxHQUFHLENBQUMsdUJBQStCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssdUJBQXVCLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsSUFBSSxDQUFDLHVCQUErQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQ3JDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLHVCQUF1QixDQUFDLENBQUMsQ0FDM0YsQ0FBQztJQUNKLENBQUM7OEdBN0NVLDRCQUE0QjtrSEFBNUIsNEJBQTRCLGNBRGYsTUFBTTs7MkZBQ25CLDRCQUE0QjtrQkFEeEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlQ29tcG9uZW50cyB9IGZyb20gJy4uL21vZGVscy9yZXBsYWNlYWJsZS1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgSW50ZXJuYWxTdG9yZSB9IGZyb20gJy4uL3V0aWxzL2ludGVybmFsLXN0b3JlLXV0aWxzJztcclxuaW1wb3J0IHsgcmVsb2FkUm91dGUgfSBmcm9tICcuLi91dGlscy9yb3V0ZS11dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgUmVwbGFjZWFibGVDb21wb25lbnRzU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdG9yZTogSW50ZXJuYWxTdG9yZTxSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnRbXT47XHJcblxyXG4gIGdldCByZXBsYWNlYWJsZUNvbXBvbmVudHMkKCk6IE9ic2VydmFibGU8UmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50W10+IHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlcGxhY2VhYmxlQ29tcG9uZW50cygpOiBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZTtcclxuICB9XHJcblxyXG4gIGdldCBvblVwZGF0ZSQoKTogT2JzZXJ2YWJsZTxSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VVcGRhdGUoc3RhdGUgPT4gc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgdGhpcy5zdG9yZSA9IG5ldyBJbnRlcm5hbFN0b3JlKFtdIGFzIFJlcGxhY2VhYmxlQ29tcG9uZW50cy5SZXBsYWNlYWJsZUNvbXBvbmVudFtdKTtcclxuICB9XHJcblxyXG4gIGFkZChyZXBsYWNlYWJsZUNvbXBvbmVudDogUmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50LCByZWxvYWQ/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCByZXBsYWNlYWJsZUNvbXBvbmVudHMgPSBbLi4udGhpcy5zdG9yZS5zdGF0ZV07XHJcblxyXG4gICAgY29uc3QgaW5kZXggPSByZXBsYWNlYWJsZUNvbXBvbmVudHMuZmluZEluZGV4KFxyXG4gICAgICBjb21wb25lbnQgPT4gY29tcG9uZW50LmtleSA9PT0gcmVwbGFjZWFibGVDb21wb25lbnQua2V5LFxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICByZXBsYWNlYWJsZUNvbXBvbmVudHNbaW5kZXhdID0gcmVwbGFjZWFibGVDb21wb25lbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXBsYWNlYWJsZUNvbXBvbmVudHMucHVzaChyZXBsYWNlYWJsZUNvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdG9yZS5zZXQocmVwbGFjZWFibGVDb21wb25lbnRzKTtcclxuXHJcbiAgICBpZiAocmVsb2FkKSByZWxvYWRSb3V0ZSh0aGlzLnJvdXRlciwgdGhpcy5uZ1pvbmUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0KHJlcGxhY2VhYmxlQ29tcG9uZW50S2V5OiBzdHJpbmcpOiBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnQgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMucmVwbGFjZWFibGVDb21wb25lbnRzLmZpbmQoY29tcG9uZW50ID0+IGNvbXBvbmVudC5rZXkgPT09IHJlcGxhY2VhYmxlQ29tcG9uZW50S2V5KTtcclxuICB9XHJcblxyXG4gIGdldCQocmVwbGFjZWFibGVDb21wb25lbnRLZXk6IHN0cmluZyk6IE9ic2VydmFibGU8UmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50IHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlYWJsZUNvbXBvbmVudHMkLnBpcGUoXHJcbiAgICAgIG1hcChjb21wb25lbnRzID0+IGNvbXBvbmVudHMuZmluZChjb21wb25lbnQgPT4gY29tcG9uZW50LmtleSA9PT0gcmVwbGFjZWFibGVDb21wb25lbnRLZXkpKSxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { Injectable, inject, signal } from '@angular/core';\nimport { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport const NavigationEvent = {\n    Cancel: NavigationCancel,\n    End: NavigationEnd,\n    Error: NavigationError,\n    Start: NavigationStart,\n};\nexport class RouterEvents {\n    #previousNavigation;\n    #currentNavigation;\n    constructor() {\n        this.router = inject(Router);\n        this.#previousNavigation = signal(undefined);\n        this.previousNavigation = this.#previousNavigation.asReadonly();\n        this.#currentNavigation = signal(undefined);\n        this.currentNavigation = this.#currentNavigation.asReadonly();\n        this.listenToNavigation();\n    }\n    listenToNavigation() {\n        const routerEvent$ = this.router.events.pipe(filter(e => e instanceof NavigationEvent.End && !e.url.includes('error')));\n        routerEvent$.subscribe(event => {\n            this.#previousNavigation.set(this.currentNavigation());\n            this.#currentNavigation.set(event.url);\n        });\n    }\n    getEvents(...eventTypes) {\n        const filterRouterEvents = (event) => eventTypes.some(type => event instanceof type);\n        return this.router.events.pipe(filter(filterRouterEvents));\n    }\n    getNavigationEvents(...navigationEventKeys) {\n        const filterNavigationEvents = (event) => navigationEventKeys.some(key => event instanceof NavigationEvent[key]);\n        return this.router.events.pipe(filter(filterNavigationEvents));\n    }\n    getAllEvents() {\n        return this.router.events;\n    }\n    getAllNavigationEvents() {\n        const keys = Object.keys(NavigationEvent);\n        return this.getNavigationEvents(...keys);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RouterEvents, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RouterEvents, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RouterEvents, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci1ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixNQUFNLEdBSVAsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hCLEdBQUcsRUFBRSxhQUFhO0lBQ2xCLEtBQUssRUFBRSxlQUFlO0lBQ3RCLEtBQUssRUFBRSxlQUFlO0NBQ3ZCLENBQUM7QUFHRixNQUFNLE9BQU8sWUFBWTtJQUdkLG1CQUFtQixDQUF5QztJQUc1RCxrQkFBa0IsQ0FBeUM7SUFHcEU7UUFSbUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsQyx3QkFBbUIsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLHVCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsRCx1QkFBa0IsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLHNCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUd2RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVMsa0JBQWtCO1FBQzFCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDMUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUM3QyxDQUFDO1FBRS9CLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBb0MsR0FBRyxVQUFhO1FBQzNELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUM7UUFFNUYsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsbUJBQW1CLENBQWdDLEdBQUcsbUJBQXNCO1FBTzFFLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFZLEVBQW9DLEVBQUUsQ0FDaEYsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXpFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzVCLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQXdCLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDOzhHQWxEVSxZQUFZO2tIQUFaLFlBQVksY0FEQyxNQUFNOzsyRkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE5hdmlnYXRpb25DYW5jZWwsXHJcbiAgTmF2aWdhdGlvbkVuZCxcclxuICBOYXZpZ2F0aW9uRXJyb3IsXHJcbiAgTmF2aWdhdGlvblN0YXJ0LFxyXG4gIFJvdXRlcixcclxuICBSb3V0ZXJFdmVudCxcclxuICBFdmVudCxcclxuICBSb3V0ZXJTdGF0ZSxcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBjb25zdCBOYXZpZ2F0aW9uRXZlbnQgPSB7XHJcbiAgQ2FuY2VsOiBOYXZpZ2F0aW9uQ2FuY2VsLFxyXG4gIEVuZDogTmF2aWdhdGlvbkVuZCxcclxuICBFcnJvcjogTmF2aWdhdGlvbkVycm9yLFxyXG4gIFN0YXJ0OiBOYXZpZ2F0aW9uU3RhcnQsXHJcbn07XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgUm91dGVyRXZlbnRzIHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblxyXG4gIHJlYWRvbmx5ICNwcmV2aW91c05hdmlnYXRpb24gPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHByZXZpb3VzTmF2aWdhdGlvbiA9IHRoaXMuI3ByZXZpb3VzTmF2aWdhdGlvbi5hc1JlYWRvbmx5KCk7XHJcblxyXG4gIHJlYWRvbmx5ICNjdXJyZW50TmF2aWdhdGlvbiA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgY3VycmVudE5hdmlnYXRpb24gPSB0aGlzLiNjdXJyZW50TmF2aWdhdGlvbi5hc1JlYWRvbmx5KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5saXN0ZW5Ub05hdmlnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBsaXN0ZW5Ub05hdmlnYXRpb24oKTogdm9pZCB7XHJcbiAgICBjb25zdCByb3V0ZXJFdmVudCQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcclxuICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FdmVudC5FbmQgJiYgIWUudXJsLmluY2x1ZGVzKCdlcnJvcicpKVxyXG4gICAgKSBhcyBPYnNlcnZhYmxlPE5hdmlnYXRpb25FbmQ+O1xyXG4gICAgXHJcbiAgICByb3V0ZXJFdmVudCQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgdGhpcy4jcHJldmlvdXNOYXZpZ2F0aW9uLnNldCh0aGlzLmN1cnJlbnROYXZpZ2F0aW9uKCkpO1xyXG4gICAgICB0aGlzLiNjdXJyZW50TmF2aWdhdGlvbi5zZXQoZXZlbnQudXJsKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXZlbnRzPFQgZXh0ZW5kcyBSb3V0ZXJFdmVudENvbnN0cnVjdG9ycz4oLi4uZXZlbnRUeXBlczogVCkge1xyXG4gICAgY29uc3QgZmlsdGVyUm91dGVyRXZlbnRzID0gKGV2ZW50OiBFdmVudCkgPT4gZXZlbnRUeXBlcy5zb21lKHR5cGUgPT4gZXZlbnQgaW5zdGFuY2VvZiB0eXBlKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGZpbHRlclJvdXRlckV2ZW50cykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TmF2aWdhdGlvbkV2ZW50czxUIGV4dGVuZHMgTmF2aWdhdGlvbkV2ZW50S2V5cz4oLi4ubmF2aWdhdGlvbkV2ZW50S2V5czogVCkge1xyXG4gICAgdHlwZSBGaWx0ZXJlZE5hdmlnYXRpb25FdmVudCA9IFQgZXh0ZW5kcyAoaW5mZXIgS2V5KVtdXHJcbiAgICAgID8gS2V5IGV4dGVuZHMgTmF2aWdhdGlvbkV2ZW50S2V5XHJcbiAgICAgICAgPyBJbnN0YW5jZVR5cGU8TmF2aWdhdGlvbkV2ZW50VHlwZVtLZXldPlxyXG4gICAgICAgIDogbmV2ZXJcclxuICAgICAgOiBuZXZlcjtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJOYXZpZ2F0aW9uRXZlbnRzID0gKGV2ZW50OiBFdmVudCk6IGV2ZW50IGlzIEZpbHRlcmVkTmF2aWdhdGlvbkV2ZW50ID0+XHJcbiAgICAgIG5hdmlnYXRpb25FdmVudEtleXMuc29tZShrZXkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXZlbnRba2V5XSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihmaWx0ZXJOYXZpZ2F0aW9uRXZlbnRzKSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxFdmVudHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsTmF2aWdhdGlvbkV2ZW50cygpIHtcclxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhOYXZpZ2F0aW9uRXZlbnQpIGFzIE5hdmlnYXRpb25FdmVudEtleXM7XHJcbiAgICByZXR1cm4gdGhpcy5nZXROYXZpZ2F0aW9uRXZlbnRzKC4uLmtleXMpO1xyXG4gIH1cclxufVxyXG5cclxudHlwZSBSb3V0ZXJFdmVudENvbnN0cnVjdG9ycyA9IFtUeXBlPFJvdXRlckV2ZW50PiwgLi4uVHlwZTxSb3V0ZXJFdmVudD5bXV07XHJcblxyXG50eXBlIE5hdmlnYXRpb25FdmVudEtleXMgPSBbTmF2aWdhdGlvbkV2ZW50S2V5LCAuLi5OYXZpZ2F0aW9uRXZlbnRLZXlbXV07XHJcblxyXG50eXBlIE5hdmlnYXRpb25FdmVudFR5cGUgPSB0eXBlb2YgTmF2aWdhdGlvbkV2ZW50O1xyXG5cclxuZXhwb3J0IHR5cGUgTmF2aWdhdGlvbkV2ZW50S2V5ID0ga2V5b2YgTmF2aWdhdGlvbkV2ZW50VHlwZTtcclxuIl19","import { Injectable, Injector } from '@angular/core';\nimport { NavigationStart } from '@angular/router';\nimport { of, Subject, timer } from 'rxjs';\nimport { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { LOADER_DELAY } from '../tokens/lodaer-delay.token';\nimport { InternalStore } from '../utils/internal-store-utils';\nimport { RouterEvents } from './router-events.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./router-events.service\";\nexport class RouterWaitService {\n    constructor(routerEvents, injector) {\n        this.routerEvents = routerEvents;\n        this.store = new InternalStore({ loading: false });\n        this.destroy$ = new Subject();\n        this.delay = injector.get(LOADER_DELAY, 500);\n        this.updateLoadingStatusOnNavigationEvents();\n    }\n    updateLoadingStatusOnNavigationEvents() {\n        this.routerEvents\n            .getAllNavigationEvents()\n            .pipe(map(event => event instanceof NavigationStart), switchMap(condition => condition\n            ? this.delay === 0\n                ? of(true)\n                : timer(this.delay || 0).pipe(mapTo(true), takeUntil(this.destroy$))\n            : of(false)), tap(() => this.destroy$.next()))\n            .subscribe(status => {\n            this.setLoading(status);\n        });\n    }\n    getLoading() {\n        return this.store.state.loading;\n    }\n    getLoading$() {\n        return this.store.sliceState(({ loading }) => loading);\n    }\n    updateLoading$() {\n        return this.store.sliceUpdate(({ loading }) => loading);\n    }\n    setLoading(loading) {\n        this.store.patch({ loading });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RouterWaitService, deps: [{ token: i1.RouterEvents }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RouterWaitService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RouterWaitService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.RouterEvents }, { type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXdhaXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9yb3V0ZXItd2FpdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBU3ZELE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFBb0IsWUFBMEIsRUFBRSxRQUFrQjtRQUE5QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUh0QyxVQUFLLEdBQUcsSUFBSSxhQUFhLENBQWtCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0QsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHckMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMscUNBQXFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU8scUNBQXFDO1FBQzNDLElBQUksQ0FBQyxZQUFZO2FBQ2Qsc0JBQXNCLEVBQUU7YUFDeEIsSUFBSSxDQUNILEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsRUFDOUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQ3BCLFNBQVM7WUFDUCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDO2dCQUNoQixDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDVixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQ2QsRUFDRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUNoQzthQUNBLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQWdCO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDOzhHQTFDVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgb2YsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgbWFwVG8sIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IExPQURFUl9ERUxBWSB9IGZyb20gJy4uL3Rva2Vucy9sb2RhZXItZGVsYXkudG9rZW4nO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJFdmVudHMgfSBmcm9tICcuL3JvdXRlci1ldmVudHMuc2VydmljZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlcldhaXRTdGF0ZSB7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvdXRlcldhaXRTZXJ2aWNlIHtcclxuICBwcml2YXRlIHN0b3JlID0gbmV3IEludGVybmFsU3RvcmU8Um91dGVyV2FpdFN0YXRlPih7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgZGVsYXk6IG51bWJlcjtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlckV2ZW50czogUm91dGVyRXZlbnRzLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHRoaXMuZGVsYXkgPSBpbmplY3Rvci5nZXQoTE9BREVSX0RFTEFZLCA1MDApO1xyXG4gICAgdGhpcy51cGRhdGVMb2FkaW5nU3RhdHVzT25OYXZpZ2F0aW9uRXZlbnRzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUxvYWRpbmdTdGF0dXNPbk5hdmlnYXRpb25FdmVudHMoKSB7XHJcbiAgICB0aGlzLnJvdXRlckV2ZW50c1xyXG4gICAgICAuZ2V0QWxsTmF2aWdhdGlvbkV2ZW50cygpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCksXHJcbiAgICAgICAgc3dpdGNoTWFwKGNvbmRpdGlvbiA9PlxyXG4gICAgICAgICAgY29uZGl0aW9uXHJcbiAgICAgICAgICAgID8gdGhpcy5kZWxheSA9PT0gMFxyXG4gICAgICAgICAgICAgID8gb2YodHJ1ZSlcclxuICAgICAgICAgICAgICA6IHRpbWVyKHRoaXMuZGVsYXkgfHwgMCkucGlwZShtYXBUbyh0cnVlKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICA6IG9mKGZhbHNlKSxcclxuICAgICAgICApLFxyXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmRlc3Ryb3kkLm5leHQoKSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShzdGF0dXMgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0TG9hZGluZyhzdGF0dXMpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldExvYWRpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZS5sb2FkaW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9hZGluZyQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKCh7IGxvYWRpbmcgfSkgPT4gbG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVMb2FkaW5nJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlVXBkYXRlKCh7IGxvYWRpbmcgfSkgPT4gbG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc3RvcmUucGF0Y2goeyBsb2FkaW5nIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const COOKIE_LANGUAGE_KEY = new InjectionToken('COOKIE_LANGUAGE_KEY', {\n    factory: () => '.AspNetCore.Culture',\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLWxhbmd1YWdlLWtleS50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi90b2tlbnMvY29va2llLWxhbmd1YWdlLWtleS50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFTLHFCQUFxQixFQUFFO0lBQ25GLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUI7Q0FDckMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDT09LSUVfTEFOR1VBR0VfS0VZID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0NPT0tJRV9MQU5HVUFHRV9LRVknLCB7XHJcbiAgZmFjdG9yeTogKCkgPT4gJy5Bc3BOZXRDb3JlLkN1bHR1cmUnLFxyXG59KTtcclxuIl19","import { InjectionToken } from '@angular/core';\nexport const NAVIGATE_TO_MANAGE_PROFILE = new InjectionToken('NAVIGATE_TO_MANAGE_PROFILE');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXByb2ZpbGUudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdG9rZW5zL21hbmFnZS1wcm9maWxlLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxjQUFjLENBQzFELDRCQUE0QixDQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBOQVZJR0FURV9UT19NQU5BR0VfUFJPRklMRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjwoKSA9PiB2b2lkPihcclxuICAnTkFWSUdBVEVfVE9fTUFOQUdFX1BST0ZJTEUnLFxyXG4pO1xyXG4iXX0=","import { InjectionToken } from \"@angular/core\";\nexport const QUEUE_MANAGER = new InjectionToken(\"QUEUE_MANAGER\");\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdG9rZW5zL3F1ZXVlLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFlLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVldWVNYW5hZ2VyIH0gZnJvbSBcIi4uL3V0aWxzL3F1ZXVlXCI7XHJcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBRVUVVRV9NQU5BR0VSID0gbmV3IEluamVjdGlvblRva2VuPFF1ZXVlTWFuYWdlcj4oXCJRVUVVRV9NQU5BR0VSXCIpO1xyXG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const INCUDE_LOCALIZATION_RESOURCES_TOKEN = new InjectionToken('INCUDE_LOCALIZATION_RESOURCES_TOKEN');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZS1sb2NhbGl6YXRpb24tcmVzb3VyY2VzLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Rva2Vucy9pbmNsdWRlLWxvY2FsaXphdGlvbi1yZXNvdXJjZXMudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxJQUFJLGNBQWMsQ0FDbkUscUNBQXFDLENBQ3RDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IElOQ1VERV9MT0NBTElaQVRJT05fUkVTT1VSQ0VTX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KFxyXG4gICdJTkNVREVfTE9DQUxJWkFUSU9OX1JFU09VUkNFU19UT0tFTicsXHJcbik7XHJcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const PIPE_TO_LOGIN_FN_KEY = new InjectionToken('PIPE_TO_LOGIN_FN_KEY');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS10by1sb2dpbi50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi90b2tlbnMvcGlwZS10by1sb2dpbi50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUFnQixzQkFBc0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGlwZVRvTG9naW5GbiB9IGZyb20gJy4uL21vZGVscy9hdXRoJztcclxuXHJcbmV4cG9ydCBjb25zdCBQSVBFX1RPX0xPR0lOX0ZOX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQaXBlVG9Mb2dpbkZuPignUElQRV9UT19MT0dJTl9GTl9LRVknKTtcclxuIl19","import { InjectionToken } from '@angular/core';\n/**\n * @deprecated The token should not be used anymore.\n */\nexport const SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY = new InjectionToken('SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXRva2VuLXJlc3BvbnNlLXRvLXN0b3JhZ2UudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdG9rZW5zL3NldC10b2tlbi1yZXNwb25zZS10by1zdG9yYWdlLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxJQUFJLGNBQWMsQ0FDcEUsc0NBQXNDLENBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTZXRUb2tlblJlc3BvbnNlVG9TdG9yYWdlRm4gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIFRoZSB0b2tlbiBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZS4gXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgU0VUX1RPS0VOX1JFU1BPTlNFX1RPX1NUT1JBR0VfRk5fS0VZID0gbmV3IEluamVjdGlvblRva2VuPFNldFRva2VuUmVzcG9uc2VUb1N0b3JhZ2VGbj4oXHJcbiAgJ1NFVF9UT0tFTl9SRVNQT05TRV9UT19TVE9SQUdFX0ZOX0tFWScsXHJcbik7XHJcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const OTHERS_GROUP = new InjectionToken('OTHERS_GROUP');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RoZXJzLWdyb3VwLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Rva2Vucy9vdGhlcnMtZ3JvdXAudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQVMsY0FBYyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9USEVSU19HUk9VUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdPVEhFUlNfR1JPVVAnKTtcclxuIl19","import { InjectionToken, inject } from '@angular/core';\nimport { LocalizationService } from '../services';\nexport const SORT_COMPARE_FUNC = new InjectionToken('SORT_COMPARE_FUNC');\nexport function compareFuncFactory() {\n    const localizationService = inject(LocalizationService);\n    const fn = (a, b) => {\n        const aNumber = a.order;\n        const bNumber = b.order;\n        if (aNumber > bNumber)\n            return 1;\n        if (aNumber < bNumber)\n            return -1;\n        if (a.id > b.id)\n            return 1;\n        if (a.id < b.id)\n            return -1;\n        if (!Number.isInteger(aNumber))\n            return 1;\n        if (!Number.isInteger(bNumber))\n            return -1;\n        const aName = localizationService.instant(a.name);\n        const bName = localizationService.instant(b.name);\n        if (aName > bName)\n            return 1;\n        if (aName < bName)\n            return -1;\n        return 0;\n    };\n    return fn;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS1mdW5jLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Rva2Vucy9jb21wYXJlLWZ1bmMudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUNqRCxtQkFBbUIsQ0FDcEIsQ0FBQztBQUVGLE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN4RCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQWUsRUFBRSxDQUFlLEVBQUUsRUFBRTtRQUM5QyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFeEIsSUFBSSxPQUFPLEdBQUcsT0FBTztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLElBQUksT0FBTyxHQUFHLE9BQU87WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUUxQyxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQsSUFBSSxLQUFLLEdBQUcsS0FBSztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxHQUFHLEtBQUs7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRTdCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDO0lBRUYsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgdHlwZSB7IFNvcnRhYmxlSXRlbSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5leHBvcnQgY29uc3QgU09SVF9DT01QQVJFX0ZVTkMgPSBuZXcgSW5qZWN0aW9uVG9rZW48KGE6IFNvcnRhYmxlSXRlbSwgYjogU29ydGFibGVJdGVtKSA9PiBudW1iZXI+KFxyXG4gICdTT1JUX0NPTVBBUkVfRlVOQycsXHJcbik7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZUZ1bmNGYWN0b3J5KCkge1xyXG4gIGNvbnN0IGxvY2FsaXphdGlvblNlcnZpY2UgPSBpbmplY3QoTG9jYWxpemF0aW9uU2VydmljZSk7XHJcbiAgY29uc3QgZm4gPSAoYTogU29ydGFibGVJdGVtLCBiOiBTb3J0YWJsZUl0ZW0pID0+IHtcclxuICAgIGNvbnN0IGFOdW1iZXIgPSBhLm9yZGVyO1xyXG4gICAgY29uc3QgYk51bWJlciA9IGIub3JkZXI7XHJcblxyXG4gICAgaWYgKGFOdW1iZXIgPiBiTnVtYmVyKSByZXR1cm4gMTtcclxuICAgIGlmIChhTnVtYmVyIDwgYk51bWJlcikgcmV0dXJuIC0xO1xyXG5cclxuICAgIGlmIChhLmlkID4gYi5pZCkgcmV0dXJuIDE7XHJcbiAgICBpZiAoYS5pZCA8IGIuaWQpIHJldHVybiAtMTtcclxuXHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoYU51bWJlcikpIHJldHVybiAxO1xyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGJOdW1iZXIpKSByZXR1cm4gLTE7XHJcblxyXG4gICAgY29uc3QgYU5hbWUgPSBsb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYS5uYW1lKTtcclxuICAgIGNvbnN0IGJOYW1lID0gbG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGIubmFtZSk7XHJcblxyXG4gICAgaWYgKGFOYW1lID4gYk5hbWUpIHJldHVybiAxO1xyXG4gICAgaWYgKGFOYW1lIDwgYk5hbWUpIHJldHVybiAtMTtcclxuXHJcbiAgICByZXR1cm4gMDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZm47XHJcbn1cclxuIl19","import { InjectionToken } from \"@angular/core\";\nexport const DYNAMIC_LAYOUTS_TOKEN = new InjectionToken('DYNAMIC_LAYOUTS');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sYXlvdXQudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdG9rZW5zL2R5bmFtaWMtbGF5b3V0LnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXNCLGlCQUFpQixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuIGV4cG9ydCBjb25zdCBEWU5BTUlDX0xBWU9VVFNfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48TWFwPHN0cmluZywgc3RyaW5nPj4oJ0RZTkFNSUNfTEFZT1VUUycpXHJcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const DISABLE_PROJECT_NAME = new InjectionToken('DISABLE_APP_NAME');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtc3RyYXRlZ3ktZGlzYWJsZS1wcm9qZWN0LW5hbWUudG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdG9rZW5zL3RpdGxlLXN0cmF0ZWd5LWRpc2FibGUtcHJvamVjdC1uYW1lLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQVUsa0JBQWtCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY29uc3QgRElTQUJMRV9QUk9KRUNUX05BTUUgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oJ0RJU0FCTEVfQVBQX05BTUUnKTtcclxuIl19","import { Injectable, Injector } from '@angular/core';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { OTHERS_GROUP } from '../tokens';\nimport { pushValueTo } from '../utils/array-utils';\nimport { BaseTreeNode, createTreeFromList, createGroupMap, } from '../utils/tree-utils';\nimport { ConfigStateService } from './config-state.service';\nimport { PermissionService } from './permission.service';\nimport { SORT_COMPARE_FUNC } from '../tokens/compare-func.token';\nimport * as i0 from \"@angular/core\";\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport class AbstractTreeService {\n    constructor() {\n        this._flat$ = new BehaviorSubject([]);\n        this._tree$ = new BehaviorSubject([]);\n        this._visible$ = new BehaviorSubject([]);\n        this.shouldSingularizeRoutes = true;\n    }\n    get flat() {\n        return this._flat$.value;\n    }\n    get flat$() {\n        return this._flat$.asObservable();\n    }\n    get tree() {\n        return this._tree$.value;\n    }\n    get tree$() {\n        return this._tree$.asObservable();\n    }\n    get visible() {\n        return this._visible$.value;\n    }\n    get visible$() {\n        return this._visible$.asObservable();\n    }\n    filterWith(setOrMap) {\n        return this._flat$.value.filter(item => !setOrMap.has(item[this.id]));\n    }\n    findItemsToRemove(set) {\n        return this._flat$.value.reduce((acc, item) => {\n            if (!acc.has(item[this.parentId])) {\n                return acc;\n            }\n            const childSet = new Set([item[this.id]]);\n            const children = this.findItemsToRemove(childSet);\n            return new Set([...acc, ...children]);\n        }, set);\n    }\n    publish(flatItems) {\n        this._flat$.next(flatItems);\n        this._tree$.next(this.createTree(flatItems));\n        this._visible$.next(this.createTree(flatItems.filter(item => !this.hide(item))));\n        return flatItems;\n    }\n    createTree(items) {\n        return createTreeFromList(items, item => item[this.id], item => item[this.parentId], item => BaseTreeNode.create(item));\n    }\n    createGroupedTree(list) {\n        const map = createGroupMap(list, this.othersGroup);\n        if (!map) {\n            return undefined;\n        }\n        return Array.from(map, ([key, items]) => ({ group: key, items }));\n    }\n    add(items) {\n        let flatItems = [];\n        if (!this.shouldSingularizeRoutes) {\n            flatItems = [...this.flat, ...items];\n        }\n        if (this.shouldSingularizeRoutes) {\n            const map = new Map();\n            items.forEach(item => map.set(item[this.id], item));\n            flatItems = this.filterWith(map);\n            map.forEach(pushValueTo(flatItems));\n        }\n        flatItems.sort(this.sort);\n        return this.publish(flatItems);\n    }\n    find(predicate, tree = this.tree) {\n        return tree.reduce((acc, node) => {\n            if (acc) {\n                return acc;\n            }\n            if (predicate(node)) {\n                return node;\n            }\n            return this.find(predicate, node.children);\n        }, null);\n    }\n    patch(identifier, props) {\n        const flatItems = this._flat$.value;\n        const index = flatItems.findIndex(item => item[this.id] === identifier);\n        if (index < 0) {\n            return false;\n        }\n        flatItems[index] = { ...flatItems[index], ...props };\n        flatItems.sort(this.sort);\n        return this.publish(flatItems);\n    }\n    refresh() {\n        return this.add([]);\n    }\n    remove(identifiers) {\n        const set = new Set();\n        identifiers.forEach(id => set.add(id));\n        const setToRemove = this.findItemsToRemove(set);\n        const flatItems = this.filterWith(setToRemove);\n        return this.publish(flatItems);\n    }\n    removeByParam(params) {\n        if (!params) {\n            return null;\n        }\n        const keys = Object.keys(params);\n        if (keys.length === 0) {\n            return null;\n        }\n        const excludedList = this.flat.filter(item => keys.every(key => item[key] === params[key]));\n        if (!excludedList?.length) {\n            return null;\n        }\n        for (const item of excludedList) {\n            this.removeByParam({ [this.parentId]: item[this.id] });\n        }\n        const flatItems = this.flat.filter(item => !excludedList.includes(item));\n        return this.publish(flatItems);\n    }\n    search(params, tree = this.tree) {\n        const searchKeys = Object.keys(params);\n        return tree.reduce((acc, node) => {\n            if (acc) {\n                return acc;\n            }\n            if (searchKeys.every(key => node[key] === params[key])) {\n                return node;\n            }\n            return this.search(params, node.children);\n        }, null);\n    }\n    setSingularizeStatus(singularize = true) {\n        this.shouldSingularizeRoutes = singularize;\n    }\n}\nexport class AbstractNavTreeService extends AbstractTreeService {\n    constructor(injector) {\n        super();\n        this.injector = injector;\n        this.id = 'name';\n        this.parentId = 'parentName';\n        this.hide = (item) => item.invisible || !this.isGranted(item);\n        this.sort = (a, b) => {\n            return this.compareFunc(a, b);\n        };\n        const configState = this.injector.get(ConfigStateService);\n        this.subscription = configState\n            .createOnUpdateStream(state => state)\n            .subscribe(() => this.refresh());\n        this.permissionService = injector.get(PermissionService);\n        this.othersGroup = injector.get(OTHERS_GROUP);\n        this.compareFunc = injector.get(SORT_COMPARE_FUNC);\n    }\n    isGranted({ requiredPolicy }) {\n        return this.permissionService.getGrantedPolicy(requiredPolicy);\n    }\n    hasChildren(identifier) {\n        const node = this.find(item => item[this.id] === identifier);\n        return Boolean(node?.children?.length);\n    }\n    hasInvisibleChild(identifier) {\n        const node = this.find(item => item[this.id] === identifier);\n        return node?.children?.some(child => child.invisible) || false;\n    }\n    /* istanbul ignore next */\n    ngOnDestroy() {\n        this.subscription.unsubscribe();\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbstractNavTreeService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbstractNavTreeService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbstractNavTreeService, decorators: [{\n            type: Injectable\n        }], ctorParameters: () => [{ type: i0.Injector }] });\nexport class RoutesService extends AbstractNavTreeService {\n    hasPathOrChild(item) {\n        return Boolean(item.path) || this.hasChildren(item.name);\n    }\n    get groupedVisible() {\n        return this.createGroupedTree(this.visible.filter(item => this.hasPathOrChild(item)));\n    }\n    get groupedVisible$() {\n        return this.visible$.pipe(map(items => items.filter(item => this.hasPathOrChild(item))), map(visible => this.createGroupedTree(visible)));\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RoutesService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RoutesService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RoutesService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvcm91dGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBNEIsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxZQUFZLEVBQ1osa0JBQWtCLEVBR2xCLGNBQWMsR0FDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUVqRSx3REFBd0Q7QUFDeEQsTUFBTSxPQUFnQixtQkFBbUI7SUFBekM7UUFNVSxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDdEMsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUNoRCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBR2pELDRCQUF1QixHQUFHLElBQUksQ0FBQztJQXdLM0MsQ0FBQztJQXRLQyxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFD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QUFDO0lBQ2xDLENBQUM7OEdBMUNtQixzQkFBc0I7a0hBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEM0MsVUFBVTs7QUErQ1gsTUFBTSxPQUFPLGFBQWMsU0FBUSxzQkFBaUM7SUFDMUQsY0FBYyxDQUFDLElBQXlCO1FBQzlDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN2QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQzdELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQzs4R0FkVSxhQUFhO2tIQUFiLGFBQWEsY0FEQSxNQUFNOzsyRkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBtYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IE9USEVSU19HUk9VUCB9IGZyb20gJy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IHB1c2hWYWx1ZVRvIH0gZnJvbSAnLi4vdXRpbHMvYXJyYXktdXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VUcmVlTm9kZSxcclxuICBjcmVhdGVUcmVlRnJvbUxpc3QsXHJcbiAgVHJlZU5vZGUsXHJcbiAgUm91dGVHcm91cCxcclxuICBjcmVhdGVHcm91cE1hcCxcclxufSBmcm9tICcuLi91dGlscy90cmVlLXV0aWxzJztcclxuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWctc3RhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTT1JUX0NPTVBBUkVfRlVOQyB9IGZyb20gJy4uL3Rva2Vucy9jb21wYXJlLWZ1bmMudG9rZW4nO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHJlZVNlcnZpY2U8VCBleHRlbmRzIHsgW2tleTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sXTogYW55IH0+IHtcclxuICBhYnN0cmFjdCBpZDogc3RyaW5nO1xyXG4gIGFic3RyYWN0IHBhcmVudElkOiBzdHJpbmc7XHJcbiAgYWJzdHJhY3QgaGlkZTogKGl0ZW06IFQpID0+IGJvb2xlYW47XHJcbiAgYWJzdHJhY3Qgc29ydDogKGE6IFQsIGI6IFQpID0+IG51bWJlcjtcclxuXHJcbiAgcHJpdmF0ZSBfZmxhdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xyXG4gIHByaXZhdGUgX3RyZWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUcmVlTm9kZTxUPltdPihbXSk7XHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyZWVOb2RlPFQ+W10+KFtdKTtcclxuXHJcbiAgcHJvdGVjdGVkIG90aGVyc0dyb3VwOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIHNob3VsZFNpbmd1bGFyaXplUm91dGVzID0gdHJ1ZTtcclxuXHJcbiAgZ2V0IGZsYXQoKTogVFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9mbGF0JC52YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBmbGF0JCgpOiBPYnNlcnZhYmxlPFRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZsYXQkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRyZWUoKTogVHJlZU5vZGU8VD5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZSQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdHJlZSQoKTogT2JzZXJ2YWJsZTxUcmVlTm9kZTxUPltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZSQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmlzaWJsZSgpOiBUcmVlTm9kZTxUPltdIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCB2aXNpYmxlJCgpOiBPYnNlcnZhYmxlPFRyZWVOb2RlPFQ+W10+IHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVyV2l0aChzZXRPck1hcDogU2V0PHN0cmluZz4gfCBNYXA8c3RyaW5nLCBUPik6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxhdCQudmFsdWUuZmlsdGVyKGl0ZW0gPT4gIXNldE9yTWFwLmhhcyhpdGVtW3RoaXMuaWRdKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRJdGVtc1RvUmVtb3ZlKHNldDogU2V0PHN0cmluZz4pOiBTZXQ8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxhdCQudmFsdWUucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcclxuICAgICAgaWYgKCFhY2MuaGFzKGl0ZW1bdGhpcy5wYXJlbnRJZF0pKSB7XHJcbiAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgY2hpbGRTZXQgPSBuZXcgU2V0KFtpdGVtW3RoaXMuaWRdXSk7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5maW5kSXRlbXNUb1JlbW92ZShjaGlsZFNldCk7XHJcbiAgICAgIHJldHVybiBuZXcgU2V0KFsuLi5hY2MsIC4uLmNoaWxkcmVuXSk7XHJcbiAgICB9LCBzZXQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwdWJsaXNoKGZsYXRJdGVtczogVFtdKTogVFtdIHtcclxuICAgIHRoaXMuX2ZsYXQkLm5leHQoZmxhdEl0ZW1zKTtcclxuICAgIHRoaXMuX3RyZWUkLm5leHQodGhpcy5jcmVhdGVUcmVlKGZsYXRJdGVtcykpO1xyXG4gICAgdGhpcy5fdmlzaWJsZSQubmV4dCh0aGlzLmNyZWF0ZVRyZWUoZmxhdEl0ZW1zLmZpbHRlcihpdGVtID0+ICF0aGlzLmhpZGUoaXRlbSkpKSk7XHJcbiAgICByZXR1cm4gZmxhdEl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZVRyZWUoaXRlbXM6IFRbXSk6IFRyZWVOb2RlPFQ+W10ge1xyXG4gICAgcmV0dXJuIGNyZWF0ZVRyZWVGcm9tTGlzdDxULCBUcmVlTm9kZTxUPj4oXHJcbiAgICAgIGl0ZW1zLFxyXG4gICAgICBpdGVtID0+IGl0ZW1bdGhpcy5pZF0sXHJcbiAgICAgIGl0ZW0gPT4gaXRlbVt0aGlzLnBhcmVudElkXSxcclxuICAgICAgaXRlbSA9PiBCYXNlVHJlZU5vZGUuY3JlYXRlKGl0ZW0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVHcm91cGVkVHJlZShsaXN0OiBUcmVlTm9kZTxUPltdKTogUm91dGVHcm91cDxUPltdIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IG1hcCA9IGNyZWF0ZUdyb3VwTWFwPFQ+KGxpc3QsIHRoaXMub3RoZXJzR3JvdXApO1xyXG4gICAgaWYgKCFtYXApIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbShtYXAsIChba2V5LCBpdGVtc10pID0+ICh7IGdyb3VwOiBrZXksIGl0ZW1zIH0pKTtcclxuICB9XHJcblxyXG4gIGFkZChpdGVtczogVFtdKTogVFtdIHtcclxuICAgIGxldCBmbGF0SXRlbXM6IFRbXSA9IFtdO1xyXG5cclxuICAgIGlmICghdGhpcy5zaG91bGRTaW5ndWxhcml6ZVJvdXRlcykge1xyXG4gICAgICBmbGF0SXRlbXMgPSBbLi4udGhpcy5mbGF0LCAuLi5pdGVtc107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvdWxkU2luZ3VsYXJpemVSb3V0ZXMpIHtcclxuICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFQ+KCk7XHJcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiBtYXAuc2V0KGl0ZW1bdGhpcy5pZF0sIGl0ZW0pKTtcclxuICAgICAgZmxhdEl0ZW1zID0gdGhpcy5maWx0ZXJXaXRoKG1hcCk7XHJcbiAgICAgIG1hcC5mb3JFYWNoKHB1c2hWYWx1ZVRvKGZsYXRJdGVtcykpO1xyXG4gICAgfVxyXG5cclxuICAgIGZsYXRJdGVtcy5zb3J0KHRoaXMuc29ydCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucHVibGlzaChmbGF0SXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZmluZChwcmVkaWNhdGU6IChpdGVtOiBUcmVlTm9kZTxUPikgPT4gYm9vbGVhbiwgdHJlZSA9IHRoaXMudHJlZSk6IFRyZWVOb2RlPFQ+IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdHJlZS5yZWR1Y2U8VHJlZU5vZGU8VD4gfCBudWxsPigoYWNjLCBub2RlKSA9PiB7XHJcbiAgICAgIGlmIChhY2MpIHtcclxuICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocHJlZGljYXRlKG5vZGUpKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmZpbmQocHJlZGljYXRlLCBub2RlLmNoaWxkcmVuKTtcclxuICAgIH0sIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcGF0Y2goaWRlbnRpZmllcjogc3RyaW5nLCBwcm9wczogUGFydGlhbDxUPik6IFRbXSB8IGZhbHNlIHtcclxuICAgIGNvbnN0IGZsYXRJdGVtcyA9IHRoaXMuX2ZsYXQkLnZhbHVlO1xyXG4gICAgY29uc3QgaW5kZXggPSBmbGF0SXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbVt0aGlzLmlkXSA9PT0gaWRlbnRpZmllcik7XHJcbiAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBmbGF0SXRlbXNbaW5kZXhdID0geyAuLi5mbGF0SXRlbXNbaW5kZXhdLCAuLi5wcm9wcyB9O1xyXG5cclxuICAgIGZsYXRJdGVtcy5zb3J0KHRoaXMuc29ydCk7XHJcbiAgICByZXR1cm4gdGhpcy5wdWJsaXNoKGZsYXRJdGVtcyk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCk6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGQoW10pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGlkZW50aWZpZXJzOiBzdHJpbmdbXSk6IFRbXSB7XHJcbiAgICBjb25zdCBzZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgIGlkZW50aWZpZXJzLmZvckVhY2goaWQgPT4gc2V0LmFkZChpZCkpO1xyXG5cclxuICAgIGNvbnN0IHNldFRvUmVtb3ZlID0gdGhpcy5maW5kSXRlbXNUb1JlbW92ZShzZXQpO1xyXG4gICAgY29uc3QgZmxhdEl0ZW1zID0gdGhpcy5maWx0ZXJXaXRoKHNldFRvUmVtb3ZlKTtcclxuICAgIHJldHVybiB0aGlzLnB1Ymxpc2goZmxhdEl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUJ5UGFyYW0ocGFyYW1zOiBQYXJ0aWFsPFQ+KTogVFtdIHwgbnVsbCB7XHJcbiAgICBpZiAoIXBhcmFtcykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocGFyYW1zKSBhcyBBcnJheTxrZXlvZiBQYXJ0aWFsPFQ+PjtcclxuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBleGNsdWRlZExpc3QgPSB0aGlzLmZsYXQuZmlsdGVyKGl0ZW0gPT4ga2V5cy5ldmVyeShrZXkgPT4gaXRlbVtrZXldID09PSBwYXJhbXNba2V5XSkpO1xyXG4gICAgaWYgKCFleGNsdWRlZExpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZXhjbHVkZWRMaXN0KSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlQnlQYXJhbSh7IFt0aGlzLnBhcmVudElkXTogaXRlbVt0aGlzLmlkXSB9IGFzIFBhcnRpYWw8VD4pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZsYXRJdGVtcyA9IHRoaXMuZmxhdC5maWx0ZXIoaXRlbSA9PiAhZXhjbHVkZWRMaXN0LmluY2x1ZGVzKGl0ZW0pKTtcclxuICAgIHJldHVybiB0aGlzLnB1Ymxpc2goZmxhdEl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaChwYXJhbXM6IFBhcnRpYWw8VD4sIHRyZWUgPSB0aGlzLnRyZWUpOiBUcmVlTm9kZTxUPiB8IG51bGwge1xyXG4gICAgY29uc3Qgc2VhcmNoS2V5cyA9IE9iamVjdC5rZXlzKHBhcmFtcykgYXMgQXJyYXk8a2V5b2YgUGFydGlhbDxUPj47XHJcblxyXG4gICAgcmV0dXJuIHRyZWUucmVkdWNlPFRyZWVOb2RlPFQ+IHwgbnVsbD4oKGFjYywgbm9kZSkgPT4ge1xyXG4gICAgICBpZiAoYWNjKSB7XHJcbiAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHNlYXJjaEtleXMuZXZlcnkoa2V5ID0+IG5vZGVba2V5XSA9PT0gcGFyYW1zW2tleV0pKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aGlzLnNlYXJjaChwYXJhbXMsIG5vZGUuY2hpbGRyZW4pO1xyXG4gICAgfSwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBzZXRTaW5ndWxhcml6ZVN0YXR1cyhzaW5ndWxhcml6ZSA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvdWxkU2luZ3VsYXJpemVSb3V0ZXMgPSBzaW5ndWxhcml6ZTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TmF2VHJlZVNlcnZpY2U8VCBleHRlbmRzIEFCUC5OYXY+XHJcbiAgZXh0ZW5kcyBBYnN0cmFjdFRyZWVTZXJ2aWNlPFQ+XHJcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3lcclxue1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2U7XHJcbiAgcHJpdmF0ZSBjb21wYXJlRnVuYztcclxuICByZWFkb25seSBpZCA9ICduYW1lJztcclxuICByZWFkb25seSBwYXJlbnRJZCA9ICdwYXJlbnROYW1lJztcclxuICByZWFkb25seSBoaWRlID0gKGl0ZW06IFQpID0+IGl0ZW0uaW52aXNpYmxlIHx8ICF0aGlzLmlzR3JhbnRlZChpdGVtKTtcclxuICByZWFkb25seSBzb3J0ID0gKGE6IFQsIGI6IFQpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhcmVGdW5jKGEsIGIpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBjb25zdCBjb25maWdTdGF0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGNvbmZpZ1N0YXRlXHJcbiAgICAgIC5jcmVhdGVPblVwZGF0ZVN0cmVhbShzdGF0ZSA9PiBzdGF0ZSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2goKSk7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuICAgIHRoaXMub3RoZXJzR3JvdXAgPSBpbmplY3Rvci5nZXQoT1RIRVJTX0dST1VQKTtcclxuICAgIHRoaXMuY29tcGFyZUZ1bmMgPSBpbmplY3Rvci5nZXQoU09SVF9DT01QQVJFX0ZVTkMpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGlzR3JhbnRlZCh7IHJlcXVpcmVkUG9saWN5IH06IFQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3kocmVxdWlyZWRQb2xpY3kpO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGRyZW4oaWRlbnRpZmllcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub2RlID0gdGhpcy5maW5kKGl0ZW0gPT4gaXRlbVt0aGlzLmlkXSA9PT0gaWRlbnRpZmllcik7XHJcbiAgICByZXR1cm4gQm9vbGVhbihub2RlPy5jaGlsZHJlbj8ubGVuZ3RoKTtcclxuICB9XHJcblxyXG4gIGhhc0ludmlzaWJsZUNoaWxkKGlkZW50aWZpZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZmluZChpdGVtID0+IGl0ZW1bdGhpcy5pZF0gPT09IGlkZW50aWZpZXIpO1xyXG4gICAgcmV0dXJuIG5vZGU/LmNoaWxkcmVuPy5zb21lKGNoaWxkID0+IGNoaWxkLmludmlzaWJsZSkgfHwgZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXNTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3ROYXZUcmVlU2VydmljZTxBQlAuUm91dGU+IHtcclxuICBwcml2YXRlIGhhc1BhdGhPckNoaWxkKGl0ZW06IFRyZWVOb2RlPEFCUC5Sb3V0ZT4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBCb29sZWFuKGl0ZW0ucGF0aCkgfHwgdGhpcy5oYXNDaGlsZHJlbihpdGVtLm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdyb3VwZWRWaXNpYmxlKCk6IFJvdXRlR3JvdXA8QUJQLlJvdXRlPltdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUdyb3VwZWRUcmVlKHRoaXMudmlzaWJsZS5maWx0ZXIoaXRlbSA9PiB0aGlzLmhhc1BhdGhPckNoaWxkKGl0ZW0pKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZ3JvdXBlZFZpc2libGUkKCk6IE9ic2VydmFibGU8Um91dGVHcm91cDxBQlAuUm91dGU+W10gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnZpc2libGUkLnBpcGUoXHJcbiAgICAgIG1hcChpdGVtcyA9PiBpdGVtcy5maWx0ZXIoaXRlbSA9PiB0aGlzLmhhc1BhdGhPckNoaWxkKGl0ZW0pKSksXHJcbiAgICAgIG1hcCh2aXNpYmxlID0+IHRoaXMuY3JlYXRlR3JvdXBlZFRyZWUodmlzaWJsZSkpLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19","import { Injectable } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class SubscriptionService {\n    constructor() {\n        this.subscription = new Subscription();\n    }\n    get isClosed() {\n        return this.subscription.closed;\n    }\n    addOne(source$, nextOrObserver, error) {\n        const subscription = source$.subscribe(nextOrObserver, error);\n        this.subscription.add(subscription);\n        return subscription;\n    }\n    closeAll() {\n        this.subscription.unsubscribe();\n    }\n    closeOne(subscription) {\n        this.removeOne(subscription);\n        if (subscription) {\n            subscription.unsubscribe();\n        }\n    }\n    ngOnDestroy() {\n        this.subscription.unsubscribe();\n    }\n    removeOne(subscription) {\n        if (!subscription)\n            return;\n        this.subscription.remove(subscription);\n    }\n    reset() {\n        this.subscription.unsubscribe();\n        this.subscription = new Subscription();\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SubscriptionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SubscriptionService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SubscriptionService, decorators: [{\n            type: Injectable\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvc3Vic2NyaXB0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUdwQyxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBRVUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBOEMzQztJQTVDQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFRRCxNQUFNLENBQ0osT0FBc0IsRUFDdEIsY0FBNkMsRUFDN0MsS0FBNEI7UUFFNUIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUSxDQUFDLFlBQTZDO1FBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxDQUFDLFlBQTZDO1FBQ3JELElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7OEdBOUNVLG1CQUFtQjtrSEFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUsIFBhcnRpYWxPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvblNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICBnZXQgaXNDbG9zZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb24uY2xvc2VkO1xyXG4gIH1cclxuXHJcbiAgYWRkT25lPFQ+KFxyXG4gICAgc291cmNlJDogT2JzZXJ2YWJsZTxUPixcclxuICAgIG5leHQ/OiAodmFsdWU6IFQpID0+IHZvaWQsXHJcbiAgICBlcnJvcj86IChlcnJvcjogYW55KSA9PiB2b2lkLFxyXG4gICk6IFN1YnNjcmlwdGlvbjtcclxuICBhZGRPbmU8VD4oc291cmNlJDogT2JzZXJ2YWJsZTxUPiwgb2JzZXJ2ZXI/OiBQYXJ0aWFsT2JzZXJ2ZXI8VD4pOiBTdWJzY3JpcHRpb247XHJcbiAgYWRkT25lPFQ+KFxyXG4gICAgc291cmNlJDogT2JzZXJ2YWJsZTxUPixcclxuICAgIG5leHRPck9ic2VydmVyPzogUGFydGlhbE9ic2VydmVyPFQ+IHwgTmV4dDxUPixcclxuICAgIGVycm9yPzogKGVycm9yOiBhbnkpID0+IHZvaWQsXHJcbiAgKTogU3Vic2NyaXB0aW9uIHtcclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHNvdXJjZSQuc3Vic2NyaWJlKG5leHRPck9ic2VydmVyIGFzIE5leHQ8VD4sIGVycm9yKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChzdWJzY3JpcHRpb24pO1xyXG4gICAgcmV0dXJuIHN1YnNjcmlwdGlvbjtcclxuICB9XHJcblxyXG4gIGNsb3NlQWxsKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlT25lKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xyXG4gICAgdGhpcy5yZW1vdmVPbmUoc3Vic2NyaXB0aW9uKTtcclxuICAgIGlmIChzdWJzY3JpcHRpb24pIHtcclxuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVPbmUoc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQgfCBudWxsKSB7XHJcbiAgICBpZiAoIXN1YnNjcmlwdGlvbikgcmV0dXJuO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24ucmVtb3ZlKHN1YnNjcmlwdGlvbik7XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgTmV4dDxUPiA9ICh2YWx1ZTogVCkgPT4gdm9pZDtcclxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const trackBy = (key) => (_, item) => item[key];\nexport const trackByDeep = (\n// eslint-disable-next-line @typescript-eslint/ban-types\n...keys) => (_, item) => keys.reduce((acc, key) => acc[key], item);\nexport class TrackByService {\n    constructor() {\n        this.by = trackBy;\n        this.byDeep = trackByDeep;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TrackByService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TrackByService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TrackByService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stYnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90cmFjay1ieS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQW1CLE1BQU0sZUFBZSxDQUFDOztBQUc1RCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQ2xCLENBQVUsR0FBWSxFQUFzQixFQUFFLENBQzlDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRWQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUN0QjtBQUNFLHdEQUF3RDtBQUN4RCxHQUFHLElBQTJDLEVBQzFCLEVBQUUsQ0FDeEIsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FDVixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBSzlDLE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBSUUsT0FBRSxHQUFHLE9BQU8sQ0FBQztRQUViLFdBQU0sR0FBRyxXQUFXLENBQUM7S0FDdEI7OEdBSlksY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBUcmFja0J5RnVuY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTyB9IGZyb20gJ3RzLXRvb2xiZWx0JztcclxuXHJcbmV4cG9ydCBjb25zdCB0cmFja0J5ID1cclxuICA8VCA9IGFueT4oa2V5OiBrZXlvZiBUKTogVHJhY2tCeUZ1bmN0aW9uPFQ+ID0+XHJcbiAgKF8sIGl0ZW0pID0+XHJcbiAgICBpdGVtW2tleV07XHJcblxyXG5leHBvcnQgY29uc3QgdHJhY2tCeURlZXAgPVxyXG4gIDxUID0gYW55PihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXHJcbiAgICAuLi5rZXlzOiBUIGV4dGVuZHMgb2JqZWN0ID8gTy5QYXRoczxUPiA6IG5ldmVyXHJcbiAgKTogVHJhY2tCeUZ1bmN0aW9uPFQ+ID0+XHJcbiAgKF8sIGl0ZW0pID0+XHJcbiAgICBrZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IGFjY1trZXldLCBpdGVtKTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFja0J5U2VydmljZTxJdGVtVHlwZSA9IGFueT4ge1xyXG4gIGJ5ID0gdHJhY2tCeTtcclxuXHJcbiAgYnlEZWVwID0gdHJhY2tCeURlZXA7XHJcbn1cclxuIl19","import { Injectable, inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class AbpWindowService {\n    constructor() {\n        this.document = inject(DOCUMENT);\n        this.window = this.document.defaultView;\n        this.navigator = this.window.navigator;\n    }\n    copyToClipboard(text) {\n        return this.navigator.clipboard.writeText(text);\n    }\n    open(url, target, features) {\n        return this.window.open(url, target, features);\n    }\n    reloadPage() {\n        this.window.location.reload();\n    }\n    downloadBlob(blob, fileName) {\n        const blobUrl = this.window.URL.createObjectURL(blob);\n        const a = this.document.createElement('a');\n        a.style.display = 'none';\n        a.href = blobUrl;\n        a.download = fileName;\n        this.document.body.appendChild(a);\n        a.dispatchEvent(new MouseEvent('click', {\n            bubbles: true,\n            cancelable: true,\n            view: this.window,\n        }));\n        this.window.URL.revokeObjectURL(blobUrl);\n        this.document.body.removeChild(a);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpWindowService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpWindowService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpWindowService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvd2luZG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUczQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRWtCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsV0FBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ25DLGNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztLQThCbkQ7SUE1QkMsZUFBZSxDQUFDLElBQVk7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksQ0FBQyxHQUFrQixFQUFFLE1BQWUsRUFBRSxRQUFpQjtRQUN6RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsWUFBWSxDQUFDLElBQVUsRUFBRSxRQUFnQjtRQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsYUFBYSxDQUNiLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUN0QixPQUFPLEVBQUUsSUFBSTtZQUNiLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNsQixDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0FoQ1UsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FESCxNQUFNOzsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQWJwV2luZG93U2VydmljZSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgd2luZG93ID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldztcclxuICBwdWJsaWMgcmVhZG9ubHkgbmF2aWdhdG9yID0gdGhpcy53aW5kb3cubmF2aWdhdG9yO1xyXG5cclxuICBjb3B5VG9DbGlwYm9hcmQodGV4dDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5uYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIG9wZW4odXJsPzogc3RyaW5nIHwgVVJMLCB0YXJnZXQ/OiBzdHJpbmcsIGZlYXR1cmVzPzogc3RyaW5nKTogV2luZG93IHtcclxuICAgIHJldHVybiB0aGlzLndpbmRvdy5vcGVuKHVybCwgdGFyZ2V0LCBmZWF0dXJlcyk7XHJcbiAgfVxyXG5cclxuICByZWxvYWRQYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy53aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XHJcbiAgfVxyXG4gIGRvd25sb2FkQmxvYihibG9iOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBibG9iVXJsID0gdGhpcy53aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgIGNvbnN0IGEgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGEuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgIGEuaHJlZiA9IGJsb2JVcmw7XHJcbiAgICBhLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcbiAgICBhLmRpc3BhdGNoRXZlbnQoXHJcbiAgICAgIG5ldyBNb3VzZUV2ZW50KCdjbGljaycsIHtcclxuICAgICAgICBidWJibGVzOiB0cnVlLFxyXG4gICAgICAgIGNhbmNlbGFibGU6IHRydWUsXHJcbiAgICAgICAgdmlldzogdGhpcy53aW5kb3csXHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICAgIHRoaXMud2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoYmxvYlVybCk7XHJcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { DOCUMENT } from '@angular/common';\nimport { Injectable, computed, inject, signal } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class InternetConnectionService {\n    constructor() {\n        this.document = inject(DOCUMENT);\n        this.window = this.document.defaultView;\n        this.navigator = this.window.navigator;\n        this.status$ = new BehaviorSubject(this.navigator.onLine);\n        this.status = signal(this.navigator.onLine);\n        this.networkStatus = computed(() => this.status());\n        this.window.addEventListener('offline', () => this.setStatus(false));\n        this.window.addEventListener('online', () => this.setStatus(true));\n    }\n    setStatus(val) {\n        this.status.set(val);\n        this.status$.next(val);\n    }\n    get networkStatus$() {\n        return this.status$.asObservable();\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: InternetConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: InternetConnectionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: InternetConnectionService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuZXQtY29ubmVjdGlvbi1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2ludGVybmV0LWNvbm5lY3Rpb24tc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUt2QyxNQUFNLE9BQU8seUJBQXlCO0lBV3BDO1FBVlMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixXQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBRW5DLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlELFdBQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUc1QyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBWTtRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzhHQXZCVSx5QkFBeUI7a0hBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzsyRkFFUCx5QkFBeUI7a0JBSHJDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW50ZXJuZXRDb25uZWN0aW9uU2VydmljZSB7XHJcbiAgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xyXG4gIHJlYWRvbmx5IHdpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XHJcbiAgcmVhZG9ubHkgbmF2aWdhdG9yID0gdGhpcy53aW5kb3cubmF2aWdhdG9yO1xyXG5cclxuICBwcml2YXRlIHN0YXR1cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMubmF2aWdhdG9yLm9uTGluZSk7XHJcblxyXG4gIHByaXZhdGUgc3RhdHVzID0gc2lnbmFsKHRoaXMubmF2aWdhdG9yLm9uTGluZSk7XHJcblxyXG4gIG5ldHdvcmtTdGF0dXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXR1cygpKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgKCkgPT4gdGhpcy5zZXRTdGF0dXMoZmFsc2UpKTtcclxuICAgIHRoaXMud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsICgpID0+IHRoaXMuc2V0U3RhdHVzKHRydWUpKTtcclxuICB9XHJcblxyXG4gIHNldFN0YXR1cyh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc3RhdHVzLnNldCh2YWwpO1xyXG4gICAgdGhpcy5zdGF0dXMkLm5leHQodmFsKTtcclxuICB9XHJcblxyXG4gIGdldCBuZXR3b3JrU3RhdHVzJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXR1cyQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { DOCUMENT } from '@angular/common';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class LocalStorageListenerService {\n    constructor() {\n        this.window = inject(DOCUMENT).defaultView;\n        this.window.addEventListener('storage', event => {\n            if (event.key === 'access_token') {\n                const tokenRemoved = event.newValue === null;\n                const tokenAdded = event.oldValue === null && event.newValue !== null;\n                if (tokenRemoved || tokenAdded) {\n                    this.window.location.assign('/');\n                }\n            }\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalStorageListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalStorageListenerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalStorageListenerService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS1saXN0ZW5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2UtbGlzdGVuZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSW5ELE1BQU0sT0FBTywyQkFBMkI7SUFHdEM7UUFGbUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFHdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLGNBQWMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQztnQkFDN0MsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7Z0JBRXRFLElBQUksWUFBWSxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWRVLDJCQUEyQjtrSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlTGlzdGVuZXJTZXJ2aWNlIHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgd2luZG93ID0gaW5qZWN0KERPQ1VNRU5UKS5kZWZhdWx0VmlldztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9yYWdlJywgZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnYWNjZXNzX3Rva2VuJykge1xyXG4gICAgICAgIGNvbnN0IHRva2VuUmVtb3ZlZCA9IGV2ZW50Lm5ld1ZhbHVlID09PSBudWxsO1xyXG4gICAgICAgIGNvbnN0IHRva2VuQWRkZWQgPSBldmVudC5vbGRWYWx1ZSA9PT0gbnVsbCAmJiBldmVudC5uZXdWYWx1ZSAhPT0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYgKHRva2VuUmVtb3ZlZCB8fCB0b2tlbkFkZGVkKSB7XHJcbiAgICAgICAgICB0aGlzLndpbmRvdy5sb2NhdGlvbi5hc3NpZ24oJy8nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Injectable, effect, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { TitleStrategy } from '@angular/router';\nimport { Title } from '@angular/platform-browser';\nimport { LocalizationService } from './localization.service';\nimport { DISABLE_PROJECT_NAME } from '../tokens';\nimport * as i0 from \"@angular/core\";\nexport class AbpTitleStrategy extends TitleStrategy {\n    constructor() {\n        super();\n        this.title = inject(Title);\n        this.localizationService = inject(LocalizationService);\n        this.disableProjectName = inject(DISABLE_PROJECT_NAME, { optional: true });\n        this.langugageChange = toSignal(this.localizationService.languageChange$);\n        effect(() => {\n            if (this.langugageChange()) {\n                this.updateTitle(this.routerState);\n            }\n        });\n    }\n    updateTitle(routerState) {\n        this.routerState = routerState;\n        const title = this.buildTitle(routerState);\n        const projectName = this.localizationService.instant({\n            key: '::AppName',\n            defaultValue: 'MyProjectName',\n        });\n        if (!title) {\n            return this.title.setTitle(projectName);\n        }\n        let localizedText = this.localizationService.instant({ key: title, defaultValue: title });\n        if (!this.disableProjectName) {\n            localizedText += ` | ${projectName}`;\n        }\n        this.title.setTitle(localizedText);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpTitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpTitleStrategy, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpTitleStrategy, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGl0bGUtc3RyYXRlZ3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90aXRsZS1zdHJhdGVneS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUtqRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsYUFBYTtJQVFqRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBUlMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0Qix3QkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsRCx1QkFBa0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUd6RixvQkFBZSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFJbkUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUSxXQUFXLENBQUMsV0FBZ0M7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDO1lBQ25ELEdBQUcsRUFBRSxXQUFXO1lBQ2hCLFlBQVksRUFBRSxlQUFlO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QixhQUFhLElBQUksTUFBTSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQzs4R0FwQ1UsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IFRpdGxlU3RyYXRlZ3ksIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERJU0FCTEVfUFJPSkVDVF9OQU1FIH0gZnJvbSAnLi4vdG9rZW5zJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBYnBUaXRsZVN0cmF0ZWd5IGV4dGVuZHMgVGl0bGVTdHJhdGVneSB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpdGxlID0gaW5qZWN0KFRpdGxlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZGlzYWJsZVByb2plY3ROYW1lID0gaW5qZWN0KERJU0FCTEVfUFJPSkVDVF9OQU1FLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xyXG4gIHByb3RlY3RlZCByb3V0ZXJTdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdDtcclxuXHJcbiAgbGFuZ3VnYWdlQ2hhbmdlID0gdG9TaWduYWwodGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmxhbmd1YWdlQ2hhbmdlJCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmxhbmd1Z2FnZUNoYW5nZSgpKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVUaXRsZSh0aGlzLnJvdXRlclN0YXRlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB1cGRhdGVUaXRsZShyb3V0ZXJTdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xyXG4gICAgdGhpcy5yb3V0ZXJTdGF0ZSA9IHJvdXRlclN0YXRlO1xyXG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLmJ1aWxkVGl0bGUocm91dGVyU3RhdGUpO1xyXG5cclxuICAgIGNvbnN0IHByb2plY3ROYW1lID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoe1xyXG4gICAgICBrZXk6ICc6OkFwcE5hbWUnLFxyXG4gICAgICBkZWZhdWx0VmFsdWU6ICdNeVByb2plY3ROYW1lJyxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghdGl0bGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudGl0bGUuc2V0VGl0bGUocHJvamVjdE5hbWUpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBsZXQgbG9jYWxpemVkVGV4dCA9IHRoaXMubG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KHsga2V5OiB0aXRsZSwgZGVmYXVsdFZhbHVlOiB0aXRsZSB9KTtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlUHJvamVjdE5hbWUpIHtcclxuICAgICAgbG9jYWxpemVkVGV4dCArPSBgIHwgJHtwcm9qZWN0TmFtZX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUobG9jYWxpemVkVGV4dCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ConfigStateService } from './config-state.service';\nimport * as i0 from \"@angular/core\";\nexport class TimezoneService {\n    constructor() {\n        this.configState = inject(ConfigStateService);\n        this.document = inject(DOCUMENT);\n        this.cookieKey = '__timezone';\n        this.configState.getOne$('setting').subscribe(settings => {\n            this.timeZoneNameFromSettings = settings?.values?.['Abp.Timing.TimeZone'];\n        });\n        this.configState.getOne$('clock').subscribe(clock => {\n            this.isUtcClockEnabled = clock?.kind === 'Utc';\n        });\n    }\n    /**\n     * Returns the effective timezone to be used across the application.\n     *\n     * This value is determined based on the clock kind setting in the configuration:\n     * - If clock kind is not equal to Utc, the browser's local timezone is returned.\n     * - If clock kind is equal to Utc, the configured timezone (`timeZoneNameFromSettings`) is returned if available;\n     *   otherwise, the browser's timezone is used as a fallback.\n     *\n     * @returns The IANA timezone name (e.g., 'Europe/Istanbul', 'America/New_York').\n     */\n    get timezone() {\n        if (!this.isUtcClockEnabled) {\n            return this.getBrowserTimezone();\n        }\n        return this.timeZoneNameFromSettings || this.getBrowserTimezone();\n    }\n    /**\n     * Retrieves the browser's local timezone based on the user's system settings.\n     *\n     * @returns The IANA timezone name (e.g., 'Europe/Istanbul', 'America/New_York').\n     */\n    getBrowserTimezone() {\n        return Intl.DateTimeFormat().resolvedOptions().timeZone;\n    }\n    /**\n     * Sets the application's timezone in a cookie to persist the user's selected timezone.\n     *\n     * This method sets the cookie only if the clock kind setting is set to UTC.\n     * The cookie is stored using the key defined by `this.cookieKey` and applied to the root path (`/`).\n     *\n     * @param timezone - The IANA timezone name to be stored (e.g., 'Europe/Istanbul').\n     */\n    setTimezone(timezone) {\n        if (this.isUtcClockEnabled) {\n            this.document.cookie = `${this.cookieKey}=${timezone}; path=/`;\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TimezoneService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TimezoneService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TimezoneService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXpvbmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy90aW1lem9uZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLGVBQWU7SUFPMUI7UUFObUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN6QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxZQUFZLENBQUM7UUFLeEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxFQUFFLElBQUksS0FBSyxLQUFLLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLHdCQUF3QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxRQUFRLFVBQVUsQ0FBQztRQUNqRSxDQUFDO0lBQ0gsQ0FBQzs4R0F0RFUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaW1lem9uZVNlcnZpY2Uge1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWdTdGF0ZSA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBjb29raWVLZXkgPSAnX190aW1lem9uZSc7XHJcbiAgcHJpdmF0ZSB0aW1lWm9uZU5hbWVGcm9tU2V0dGluZ3M6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGlzVXRjQ2xvY2tFbmFibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuY29uZmlnU3RhdGUuZ2V0T25lJCgnc2V0dGluZycpLnN1YnNjcmliZShzZXR0aW5ncyA9PiB7XHJcbiAgICAgIHRoaXMudGltZVpvbmVOYW1lRnJvbVNldHRpbmdzID0gc2V0dGluZ3M/LnZhbHVlcz8uWydBYnAuVGltaW5nLlRpbWVab25lJ107XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY29uZmlnU3RhdGUuZ2V0T25lJCgnY2xvY2snKS5zdWJzY3JpYmUoY2xvY2sgPT4ge1xyXG4gICAgICB0aGlzLmlzVXRjQ2xvY2tFbmFibGVkID0gY2xvY2s/LmtpbmQgPT09ICdVdGMnO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBlZmZlY3RpdmUgdGltZXpvbmUgdG8gYmUgdXNlZCBhY3Jvc3MgdGhlIGFwcGxpY2F0aW9uLlxyXG4gICAqXHJcbiAgICogVGhpcyB2YWx1ZSBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIHRoZSBjbG9jayBraW5kIHNldHRpbmcgaW4gdGhlIGNvbmZpZ3VyYXRpb246XHJcbiAgICogLSBJZiBjbG9jayBraW5kIGlzIG5vdCBlcXVhbCB0byBVdGMsIHRoZSBicm93c2VyJ3MgbG9jYWwgdGltZXpvbmUgaXMgcmV0dXJuZWQuXHJcbiAgICogLSBJZiBjbG9jayBraW5kIGlzIGVxdWFsIHRvIFV0YywgdGhlIGNvbmZpZ3VyZWQgdGltZXpvbmUgKGB0aW1lWm9uZU5hbWVGcm9tU2V0dGluZ3NgKSBpcyByZXR1cm5lZCBpZiBhdmFpbGFibGU7XHJcbiAgICogICBvdGhlcndpc2UsIHRoZSBicm93c2VyJ3MgdGltZXpvbmUgaXMgdXNlZCBhcyBhIGZhbGxiYWNrLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgVGhlIElBTkEgdGltZXpvbmUgbmFtZSAoZS5nLiwgJ0V1cm9wZS9Jc3RhbmJ1bCcsICdBbWVyaWNhL05ld19Zb3JrJykuXHJcbiAgICovXHJcbiAgZ2V0IHRpbWV6b25lKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuaXNVdGNDbG9ja0VuYWJsZWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0QnJvd3NlclRpbWV6b25lKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy50aW1lWm9uZU5hbWVGcm9tU2V0dGluZ3MgfHwgdGhpcy5nZXRCcm93c2VyVGltZXpvbmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgYnJvd3NlcidzIGxvY2FsIHRpbWV6b25lIGJhc2VkIG9uIHRoZSB1c2VyJ3Mgc3lzdGVtIHNldHRpbmdzLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgVGhlIElBTkEgdGltZXpvbmUgbmFtZSAoZS5nLiwgJ0V1cm9wZS9Jc3RhbmJ1bCcsICdBbWVyaWNhL05ld19Zb3JrJykuXHJcbiAgICovXHJcbiAgZ2V0QnJvd3NlclRpbWV6b25lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgYXBwbGljYXRpb24ncyB0aW1lem9uZSBpbiBhIGNvb2tpZSB0byBwZXJzaXN0IHRoZSB1c2VyJ3Mgc2VsZWN0ZWQgdGltZXpvbmUuXHJcbiAgICpcclxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSBjb29raWUgb25seSBpZiB0aGUgY2xvY2sga2luZCBzZXR0aW5nIGlzIHNldCB0byBVVEMuXHJcbiAgICogVGhlIGNvb2tpZSBpcyBzdG9yZWQgdXNpbmcgdGhlIGtleSBkZWZpbmVkIGJ5IGB0aGlzLmNvb2tpZUtleWAgYW5kIGFwcGxpZWQgdG8gdGhlIHJvb3QgcGF0aCAoYC9gKS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB0aW1lem9uZSAtIFRoZSBJQU5BIHRpbWV6b25lIG5hbWUgdG8gYmUgc3RvcmVkIChlLmcuLCAnRXVyb3BlL0lzdGFuYnVsJykuXHJcbiAgICovXHJcbiAgc2V0VGltZXpvbmUodGltZXpvbmU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaXNVdGNDbG9ja0VuYWJsZWQpIHtcclxuICAgICAgdGhpcy5kb2N1bWVudC5jb29raWUgPSBgJHt0aGlzLmNvb2tpZUtleX09JHt0aW1lem9uZX07IHBhdGg9L2A7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { DateTime } from 'luxon';\nimport * as i0 from \"@angular/core\";\nexport class TimeService {\n    constructor() {\n        this.locale = inject(LOCALE_ID);\n    }\n    /**\n     * Returns the current date and time in the specified timezone.\n     *\n     * @param zone - An IANA timezone name (e.g., 'Europe/Istanbul', 'UTC'); defaults to the system's local timezone.\n     * @returns A Luxon DateTime instance representing the current time in the given timezone.\n     */\n    now(zone = 'local') {\n        return DateTime.now().setZone(zone);\n    }\n    /**\n     * Converts the input date to the specified timezone, applying any timezone and daylight saving time (DST) adjustments.\n     *\n     * This method:\n     * 1. Parses the input value into a Luxon DateTime object.\n     * 2. Applies the specified IANA timezone, including any DST shifts based on the given date.\n     *\n     * @param value - The ISO string or Date object to convert.\n     * @param zone - An IANA timezone name (e.g., 'America/New_York').\n     * @returns A Luxon DateTime instance adjusted to the specified timezone and DST rules.\n     */\n    toZone(value, zone) {\n        return DateTime.fromISO(value instanceof Date ? value.toISOString() : value, {\n            zone,\n        });\n    }\n    /**\n     * Formats the input date by applying timezone and daylight saving time (DST) adjustments.\n     *\n     * This method:\n     * 1. Converts the input date to the specified timezone.\n     * 2. Formats the result using the given format and locale, reflecting any timezone or DST shifts.\n     *\n     * @param value - The ISO string or Date object to format.\n     * @param format - The format string (default: 'ff').\n     * @param zone - Optional IANA timezone name (e.g., 'America/New_York'); defaults to the system's local timezone.\n     * @returns A formatted date string adjusted for the given timezone and DST rules.\n     */\n    format(value, format = 'ff', zone = 'local') {\n        return this.toZone(value, zone).setLocale(this.locale).toFormat(format);\n    }\n    /**\n     * Formats a date using the standard time offset (ignoring daylight saving time) for the specified timezone.\n     *\n     * This method:\n     * 1. Converts the input date to UTC.\n     * 2. Calculates the standard UTC offset for the given timezone (based on January 1st to avoid DST).\n     * 3. Applies the standard offset manually to the UTC time.\n     * 4. Formats the result using the specified format and locale, without applying additional timezone shifts.\n     *\n     * @param value - The ISO string or Date object to format.\n     * @param format - The Luxon format string (default: 'ff').\n     * @param zone - Optional IANA timezone name (e.g., 'America/New_York'); if omitted, system local timezone is used.\n     * @returns A formatted date string adjusted by standard time (non-DST).\n     */\n    formatDateWithStandardOffset(value, format = 'ff', zone) {\n        const utcDate = typeof value === 'string'\n            ? DateTime.fromISO(value, { zone: 'UTC' })\n            : DateTime.fromJSDate(value, { zone: 'UTC' });\n        if (!utcDate.isValid)\n            return '';\n        const targetZone = zone ?? DateTime.local().zoneName;\n        const januaryDate = DateTime.fromObject({ year: utcDate.year, month: 1, day: 1 }, { zone: targetZone });\n        const standardOffset = januaryDate.offset;\n        const dateWithStandardOffset = utcDate.plus({ minutes: standardOffset });\n        return dateWithStandardOffset.setZone('UTC').setLocale(this.locale).toFormat(format);\n    }\n    /**\n     * Formats the input date using its original clock time, without converting based on timezone or DST\n     *\n     * This method:\n     * 1. Converts the input date to ISO string.\n     * 2. Calculates the date time in UTC, keeping the local time.\n     * 3. Formats the result using the specified format and locale, without shifting timezones.\n     *\n     * @param value - The ISO string or Date object to format.\n     * @param format - The format string (default: 'ff').\n     * @returns A formatted date string without applying timezone.\n     */\n    formatWithoutTimeZone(value, format = 'ff') {\n        const isoString = value instanceof Date ? value.toISOString() : value;\n        const dateTime = DateTime.fromISO(isoString)\n            .setZone('utc', { keepLocalTime: true })\n            .setLocale(this.locale);\n        return dateTime.toFormat(format);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TimeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TimeService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TimeService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3RpbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFLakMsTUFBTSxPQUFPLFdBQVc7SUFIeEI7UUFJVSxXQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBbUdwQztJQWpHQzs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTztRQUNoQixPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxNQUFNLENBQUMsS0FBb0IsRUFBRSxJQUFZO1FBQ3ZDLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRTtZQUMzRSxJQUFJO1NBQ0wsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsTUFBTSxDQUFDLEtBQW9CLEVBQUUsTUFBTSxHQUFHLElBQUksRUFBRSxJQUFJLEdBQUcsT0FBTztRQUN4RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0gsNEJBQTRCLENBQUMsS0FBb0IsRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUFFLElBQWE7UUFDN0UsTUFBTSxPQUFPLEdBQ1gsT0FBTyxLQUFLLEtBQUssUUFBUTtZQUN2QixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDMUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFaEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUM7UUFFckQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FDckMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFDeEMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQ3JCLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQzFDLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLE9BQU8sc0JBQXNCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILHFCQUFxQixDQUFDLEtBQW9CLEVBQUUsTUFBTSxHQUFHLElBQUk7UUFDdkQsTUFBTSxTQUFTLEdBQUcsS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFdEUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7YUFDekMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUN2QyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQW5HVSxXQUFXO2tIQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgTE9DQUxFX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWVTZXJ2aWNlIHtcclxuICBwcml2YXRlIGxvY2FsZSA9IGluamVjdChMT0NBTEVfSUQpO1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUgaW4gdGhlIHNwZWNpZmllZCB0aW1lem9uZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB6b25lIC0gQW4gSUFOQSB0aW1lem9uZSBuYW1lIChlLmcuLCAnRXVyb3BlL0lzdGFuYnVsJywgJ1VUQycpOyBkZWZhdWx0cyB0byB0aGUgc3lzdGVtJ3MgbG9jYWwgdGltZXpvbmUuXHJcbiAgICogQHJldHVybnMgQSBMdXhvbiBEYXRlVGltZSBpbnN0YW5jZSByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgdGltZSBpbiB0aGUgZ2l2ZW4gdGltZXpvbmUuXHJcbiAgICovXHJcbiAgbm93KHpvbmUgPSAnbG9jYWwnKTogRGF0ZVRpbWUge1xyXG4gICAgcmV0dXJuIERhdGVUaW1lLm5vdygpLnNldFpvbmUoem9uZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyB0aGUgaW5wdXQgZGF0ZSB0byB0aGUgc3BlY2lmaWVkIHRpbWV6b25lLCBhcHBseWluZyBhbnkgdGltZXpvbmUgYW5kIGRheWxpZ2h0IHNhdmluZyB0aW1lIChEU1QpIGFkanVzdG1lbnRzLlxyXG4gICAqXHJcbiAgICogVGhpcyBtZXRob2Q6XHJcbiAgICogMS4gUGFyc2VzIHRoZSBpbnB1dCB2YWx1ZSBpbnRvIGEgTHV4b24gRGF0ZVRpbWUgb2JqZWN0LlxyXG4gICAqIDIuIEFwcGxpZXMgdGhlIHNwZWNpZmllZCBJQU5BIHRpbWV6b25lLCBpbmNsdWRpbmcgYW55IERTVCBzaGlmdHMgYmFzZWQgb24gdGhlIGdpdmVuIGRhdGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgSVNPIHN0cmluZyBvciBEYXRlIG9iamVjdCB0byBjb252ZXJ0LlxyXG4gICAqIEBwYXJhbSB6b25lIC0gQW4gSUFOQSB0aW1lem9uZSBuYW1lIChlLmcuLCAnQW1lcmljYS9OZXdfWW9yaycpLlxyXG4gICAqIEByZXR1cm5zIEEgTHV4b24gRGF0ZVRpbWUgaW5zdGFuY2UgYWRqdXN0ZWQgdG8gdGhlIHNwZWNpZmllZCB0aW1lem9uZSBhbmQgRFNUIHJ1bGVzLlxyXG4gICAqL1xyXG4gIHRvWm9uZSh2YWx1ZTogc3RyaW5nIHwgRGF0ZSwgem9uZTogc3RyaW5nKTogRGF0ZVRpbWUge1xyXG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21JU08odmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gdmFsdWUudG9JU09TdHJpbmcoKSA6IHZhbHVlLCB7XHJcbiAgICAgIHpvbmUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdHMgdGhlIGlucHV0IGRhdGUgYnkgYXBwbHlpbmcgdGltZXpvbmUgYW5kIGRheWxpZ2h0IHNhdmluZyB0aW1lIChEU1QpIGFkanVzdG1lbnRzLlxyXG4gICAqXHJcbiAgICogVGhpcyBtZXRob2Q6XHJcbiAgICogMS4gQ29udmVydHMgdGhlIGlucHV0IGRhdGUgdG8gdGhlIHNwZWNpZmllZCB0aW1lem9uZS5cclxuICAgKiAyLiBGb3JtYXRzIHRoZSByZXN1bHQgdXNpbmcgdGhlIGdpdmVuIGZvcm1hdCBhbmQgbG9jYWxlLCByZWZsZWN0aW5nIGFueSB0aW1lem9uZSBvciBEU1Qgc2hpZnRzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIElTTyBzdHJpbmcgb3IgRGF0ZSBvYmplY3QgdG8gZm9ybWF0LlxyXG4gICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgZm9ybWF0IHN0cmluZyAoZGVmYXVsdDogJ2ZmJykuXHJcbiAgICogQHBhcmFtIHpvbmUgLSBPcHRpb25hbCBJQU5BIHRpbWV6b25lIG5hbWUgKGUuZy4sICdBbWVyaWNhL05ld19Zb3JrJyk7IGRlZmF1bHRzIHRvIHRoZSBzeXN0ZW0ncyBsb2NhbCB0aW1lem9uZS5cclxuICAgKiBAcmV0dXJucyBBIGZvcm1hdHRlZCBkYXRlIHN0cmluZyBhZGp1c3RlZCBmb3IgdGhlIGdpdmVuIHRpbWV6b25lIGFuZCBEU1QgcnVsZXMuXHJcbiAgICovXHJcbiAgZm9ybWF0KHZhbHVlOiBzdHJpbmcgfCBEYXRlLCBmb3JtYXQgPSAnZmYnLCB6b25lID0gJ2xvY2FsJyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b1pvbmUodmFsdWUsIHpvbmUpLnNldExvY2FsZSh0aGlzLmxvY2FsZSkudG9Gb3JtYXQoZm9ybWF0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdHMgYSBkYXRlIHVzaW5nIHRoZSBzdGFuZGFyZCB0aW1lIG9mZnNldCAoaWdub3JpbmcgZGF5bGlnaHQgc2F2aW5nIHRpbWUpIGZvciB0aGUgc3BlY2lmaWVkIHRpbWV6b25lLlxyXG4gICAqXHJcbiAgICogVGhpcyBtZXRob2Q6XHJcbiAgICogMS4gQ29udmVydHMgdGhlIGlucHV0IGRhdGUgdG8gVVRDLlxyXG4gICAqIDIuIENhbGN1bGF0ZXMgdGhlIHN0YW5kYXJkIFVUQyBvZmZzZXQgZm9yIHRoZSBnaXZlbiB0aW1lem9uZSAoYmFzZWQgb24gSmFudWFyeSAxc3QgdG8gYXZvaWQgRFNUKS5cclxuICAgKiAzLiBBcHBsaWVzIHRoZSBzdGFuZGFyZCBvZmZzZXQgbWFudWFsbHkgdG8gdGhlIFVUQyB0aW1lLlxyXG4gICAqIDQuIEZvcm1hdHMgdGhlIHJlc3VsdCB1c2luZyB0aGUgc3BlY2lmaWVkIGZvcm1hdCBhbmQgbG9jYWxlLCB3aXRob3V0IGFwcGx5aW5nIGFkZGl0aW9uYWwgdGltZXpvbmUgc2hpZnRzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIElTTyBzdHJpbmcgb3IgRGF0ZSBvYmplY3QgdG8gZm9ybWF0LlxyXG4gICAqIEBwYXJhbSBmb3JtYXQgLSBUaGUgTHV4b24gZm9ybWF0IHN0cmluZyAoZGVmYXVsdDogJ2ZmJykuXHJcbiAgICogQHBhcmFtIHpvbmUgLSBPcHRpb25hbCBJQU5BIHRpbWV6b25lIG5hbWUgKGUuZy4sICdBbWVyaWNhL05ld19Zb3JrJyk7IGlmIG9taXR0ZWQsIHN5c3RlbSBsb2NhbCB0aW1lem9uZSBpcyB1c2VkLlxyXG4gICAqIEByZXR1cm5zIEEgZm9ybWF0dGVkIGRhdGUgc3RyaW5nIGFkanVzdGVkIGJ5IHN0YW5kYXJkIHRpbWUgKG5vbi1EU1QpLlxyXG4gICAqL1xyXG4gIGZvcm1hdERhdGVXaXRoU3RhbmRhcmRPZmZzZXQodmFsdWU6IHN0cmluZyB8IERhdGUsIGZvcm1hdCA9ICdmZicsIHpvbmU/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdXRjRGF0ZSA9XHJcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcclxuICAgICAgICA/IERhdGVUaW1lLmZyb21JU08odmFsdWUsIHsgem9uZTogJ1VUQycgfSlcclxuICAgICAgICA6IERhdGVUaW1lLmZyb21KU0RhdGUodmFsdWUsIHsgem9uZTogJ1VUQycgfSk7XHJcblxyXG4gICAgaWYgKCF1dGNEYXRlLmlzVmFsaWQpIHJldHVybiAnJztcclxuXHJcbiAgICBjb25zdCB0YXJnZXRab25lID0gem9uZSA/PyBEYXRlVGltZS5sb2NhbCgpLnpvbmVOYW1lO1xyXG5cclxuICAgIGNvbnN0IGphbnVhcnlEYXRlID0gRGF0ZVRpbWUuZnJvbU9iamVjdChcclxuICAgICAgeyB5ZWFyOiB1dGNEYXRlLnllYXIsIG1vbnRoOiAxLCBkYXk6IDEgfSxcclxuICAgICAgeyB6b25lOiB0YXJnZXRab25lIH0sXHJcbiAgICApO1xyXG4gICAgY29uc3Qgc3RhbmRhcmRPZmZzZXQgPSBqYW51YXJ5RGF0ZS5vZmZzZXQ7XHJcbiAgICBjb25zdCBkYXRlV2l0aFN0YW5kYXJkT2Zmc2V0ID0gdXRjRGF0ZS5wbHVzKHsgbWludXRlczogc3RhbmRhcmRPZmZzZXQgfSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGVXaXRoU3RhbmRhcmRPZmZzZXQuc2V0Wm9uZSgnVVRDJykuc2V0TG9jYWxlKHRoaXMubG9jYWxlKS50b0Zvcm1hdChmb3JtYXQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0cyB0aGUgaW5wdXQgZGF0ZSB1c2luZyBpdHMgb3JpZ2luYWwgY2xvY2sgdGltZSwgd2l0aG91dCBjb252ZXJ0aW5nIGJhc2VkIG9uIHRpbWV6b25lIG9yIERTVFxyXG4gICAqXHJcbiAgICogVGhpcyBtZXRob2Q6XHJcbiAgICogMS4gQ29udmVydHMgdGhlIGlucHV0IGRhdGUgdG8gSVNPIHN0cmluZy5cclxuICAgKiAyLiBDYWxjdWxhdGVzIHRoZSBkYXRlIHRpbWUgaW4gVVRDLCBrZWVwaW5nIHRoZSBsb2NhbCB0aW1lLlxyXG4gICAqIDMuIEZvcm1hdHMgdGhlIHJlc3VsdCB1c2luZyB0aGUgc3BlY2lmaWVkIGZvcm1hdCBhbmQgbG9jYWxlLCB3aXRob3V0IHNoaWZ0aW5nIHRpbWV6b25lcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBJU08gc3RyaW5nIG9yIERhdGUgb2JqZWN0IHRvIGZvcm1hdC5cclxuICAgKiBAcGFyYW0gZm9ybWF0IC0gVGhlIGZvcm1hdCBzdHJpbmcgKGRlZmF1bHQ6ICdmZicpLlxyXG4gICAqIEByZXR1cm5zIEEgZm9ybWF0dGVkIGRhdGUgc3RyaW5nIHdpdGhvdXQgYXBwbHlpbmcgdGltZXpvbmUuXHJcbiAgICovXHJcbiAgZm9ybWF0V2l0aG91dFRpbWVab25lKHZhbHVlOiBzdHJpbmcgfCBEYXRlLCBmb3JtYXQgPSAnZmYnKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGlzb1N0cmluZyA9IHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IHZhbHVlLnRvSVNPU3RyaW5nKCkgOiB2YWx1ZTtcclxuXHJcbiAgICBjb25zdCBkYXRlVGltZSA9IERhdGVUaW1lLmZyb21JU08oaXNvU3RyaW5nKVxyXG4gICAgICAuc2V0Wm9uZSgndXRjJywgeyBrZWVwTG9jYWxUaW1lOiB0cnVlIH0pXHJcbiAgICAgIC5zZXRMb2NhbGUodGhpcy5sb2NhbGUpO1xyXG4gICAgcmV0dXJuIGRhdGVUaW1lLnRvRm9ybWF0KGZvcm1hdCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { RestService } from '../../../../../../services';\nimport { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../../../../../services\";\nexport class AbpApplicationConfigurationService {\n    constructor(restService) {\n        this.restService = restService;\n        this.apiName = 'abp';\n        this.get = (options, config) => this.restService.request({\n            method: 'GET',\n            url: '/api/abp/application-configuration',\n            params: { includeLocalizationResources: options.includeLocalizationResources },\n        }, { apiName: this.apiName, ...config });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpApplicationConfigurationService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpApplicationConfigurationService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpApplicationConfigurationService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.RestService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLWFwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb25zL2FicC1hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUszQyxNQUFNLE9BQU8sa0NBQWtDO0lBWTdDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBWDVDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHaEIsUUFBRyxHQUFHLENBQUMsT0FBK0MsRUFBRSxNQUE2QixFQUFFLEVBQUUsQ0FDdkYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQW1DO1lBQ3pELE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLG9DQUFvQztZQUN6QyxNQUFNLEVBQUUsRUFBRSw0QkFBNEIsRUFBRSxPQUFPLENBQUMsNEJBQTRCLEVBQUU7U0FDL0UsRUFDQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVNLENBQUM7OEdBWnRDLGtDQUFrQztrSEFBbEMsa0NBQWtDLGNBRmpDLE1BQU07OzJGQUVQLGtDQUFrQztrQkFIOUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bywgQXBwbGljYXRpb25Db25maWd1cmF0aW9uUmVxdWVzdE9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFicEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2Uge1xyXG4gIGFwaU5hbWUgPSAnYWJwJztcclxuXHJcblxyXG4gIGdldCA9IChvcHRpb25zOiBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25SZXF1ZXN0T3B0aW9ucywgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8+KHtcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgdXJsOiAnL2FwaS9hYnAvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbicsXHJcbiAgICAgIHBhcmFtczogeyBpbmNsdWRlTG9jYWxpemF0aW9uUmVzb3VyY2VzOiBvcHRpb25zLmluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXMgfSxcclxuICAgIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLCAuLi5jb25maWcgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlKSB7IH1cclxufVxyXG4iXX0=","import { RestService } from '../../../../../../services';\nimport { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../../../../../services\";\nexport class AbpApplicationLocalizationService {\n    constructor(restService) {\n        this.restService = restService;\n        this.apiName = 'abp';\n        this.get = (input, config) => this.restService.request({\n            method: 'GET',\n            url: '/api/abp/application-localization',\n            params: { cultureName: input.cultureName, onlyDynamics: input.onlyDynamics },\n        }, { apiName: this.apiName, ...config });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpApplicationLocalizationService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpApplicationLocalizationService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpApplicationLocalizationService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.RestService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLWFwcGxpY2F0aW9uLWxvY2FsaXphdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvYWJwLWFwcGxpY2F0aW9uLWxvY2FsaXphdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGlDQUFpQztJQVk1QyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVg1QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLFFBQUcsR0FBRyxDQUFDLEtBQXdDLEVBQUUsTUFBNkIsRUFBRSxFQUFFLENBQ2hGLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFrQztZQUN4RCxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxtQ0FBbUM7WUFDeEMsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUU7U0FDN0UsRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVRLENBQUM7OEdBWnJDLGlDQUFpQztrSEFBakMsaUNBQWlDLGNBRmhDLE1BQU07OzJGQUVQLGlDQUFpQztrQkFIN0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uRHRvLCBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblJlcXVlc3REdG8gfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBSZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFicEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uU2VydmljZSB7XHJcbiAgYXBpTmFtZSA9ICdhYnAnO1xyXG4gIFxyXG5cclxuICBnZXQgPSAoaW5wdXQ6IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uUmVxdWVzdER0bywgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkR0bz4oe1xyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICB1cmw6ICcvYXBpL2FicC9hcHBsaWNhdGlvbi1sb2NhbGl6YXRpb24nLFxyXG4gICAgICBwYXJhbXM6IHsgY3VsdHVyZU5hbWU6IGlucHV0LmN1bHR1cmVOYW1lLCBvbmx5RHluYW1pY3M6IGlucHV0Lm9ubHlEeW5hbWljcyB9LFxyXG4gICAgfSxcclxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lLC4uLmNvbmZpZyB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UpIHt9XHJcbn1cclxuIl19","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { map, switchMap, take, tap } from 'rxjs/operators';\nimport { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';\nimport { AbpApplicationLocalizationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service';\nimport { INCUDE_LOCALIZATION_RESOURCES_TOKEN } from '../tokens/include-localization-resources.token';\nimport { InternalStore } from '../utils/internal-store-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service\";\nimport * as i2 from \"../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service\";\nexport class ConfigStateService {\n    setState(config) {\n        this.store.set(config);\n    }\n    get createOnUpdateStream() {\n        return this.store.sliceUpdate;\n    }\n    constructor(abpConfigService, abpApplicationLocalizationService, includeLocalizationResources) {\n        this.abpConfigService = abpConfigService;\n        this.abpApplicationLocalizationService = abpApplicationLocalizationService;\n        this.includeLocalizationResources = includeLocalizationResources;\n        this.updateSubject = new Subject();\n        this.store = new InternalStore({});\n        this.initUpdateStream();\n    }\n    initUpdateStream() {\n        this.updateSubject\n            .pipe(switchMap(() => this.abpConfigService.get({\n            includeLocalizationResources: !!this.includeLocalizationResources,\n        })))\n            .pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))\n            .subscribe(res => this.store.set(res));\n    }\n    getLocalizationAndCombineWithAppState(appState) {\n        if (!appState.localization.currentCulture.cultureName) {\n            throw new Error('culture name should defined');\n        }\n        const cultureName = this.uiCultureFromAuthCodeFlow ?? appState.localization.currentCulture.cultureName;\n        return this.getlocalizationResource(cultureName).pipe(map(result => ({ ...appState, localization: { ...appState.localization, ...result } })), tap(() => (this.uiCultureFromAuthCodeFlow = undefined)));\n    }\n    getlocalizationResource(cultureName) {\n        return this.abpApplicationLocalizationService.get({\n            cultureName: cultureName,\n            onlyDynamics: false,\n        });\n    }\n    refreshAppState() {\n        this.updateSubject.next();\n        return this.createOnUpdateStream(state => state).pipe(take(1));\n    }\n    refreshLocalization(lang) {\n        if (this.includeLocalizationResources) {\n            return this.refreshAppState().pipe(map(() => null));\n        }\n        return this.getlocalizationResource(lang)\n            .pipe(tap(result => this.store.patch({ localization: { ...this.store.state.localization, ...result } })))\n            .pipe(map(() => null));\n    }\n    getOne$(key) {\n        return this.store.sliceState(state => state[key]);\n    }\n    getOne(key) {\n        return this.store.state[key];\n    }\n    getAll$() {\n        return this.store.sliceState(state => state);\n    }\n    getAll() {\n        return this.store.state;\n    }\n    getDeep$(keys) {\n        keys = splitKeys(keys);\n        return this.store\n            .sliceState(state => state)\n            .pipe(map(state => {\n            return keys.reduce((acc, val) => {\n                if (acc) {\n                    return acc[val];\n                }\n                return undefined;\n            }, state);\n        }));\n    }\n    getDeep(keys) {\n        keys = splitKeys(keys);\n        return keys.reduce((acc, val) => {\n            if (acc) {\n                return acc[val];\n            }\n            return undefined;\n        }, this.store.state);\n    }\n    getFeature(key) {\n        return this.store.state.features?.values?.[key];\n    }\n    getFeature$(key) {\n        return this.store.sliceState(state => state.features?.values?.[key]);\n    }\n    getFeatures(keys) {\n        const { features } = this.store.state;\n        if (!features)\n            return;\n        return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});\n    }\n    getFeatures$(keys) {\n        return this.store.sliceState(({ features }) => {\n            if (!features?.values)\n                return;\n            return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});\n        });\n    }\n    isFeatureEnabled(key, features) {\n        return features.values[key] === 'true';\n    }\n    getFeatureIsEnabled(key) {\n        return this.isFeatureEnabled(key, this.store.state.features);\n    }\n    getFeatureIsEnabled$(key) {\n        return this.store.sliceState(state => this.isFeatureEnabled(key, state.features));\n    }\n    getSetting(key) {\n        return this.store.state.setting?.values?.[key];\n    }\n    getSetting$(key) {\n        return this.store.sliceState(state => state.setting?.values?.[key]);\n    }\n    getSettings(keyword) {\n        const settings = this.store.state.setting?.values || {};\n        if (!keyword)\n            return settings;\n        const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);\n        return keysFound.reduce((acc, key) => {\n            acc[key] = settings[key];\n            return acc;\n        }, {});\n    }\n    getSettings$(keyword) {\n        return this.store\n            .sliceState(state => state.setting?.values)\n            .pipe(map((settings = {}) => {\n            if (!keyword)\n                return settings;\n            const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);\n            return keysFound.reduce((acc, key) => {\n                acc[key] = settings[key];\n                return acc;\n            }, {});\n        }));\n    }\n    getGlobalFeatures() {\n        return this.store.state.globalFeatures;\n    }\n    getGlobalFeatures$() {\n        return this.store.sliceState(state => state.globalFeatures);\n    }\n    isGlobalFeatureEnabled(key, globalFeatures) {\n        const features = globalFeatures.enabledFeatures || [];\n        return features.some(f => key === f);\n    }\n    getGlobalFeatureIsEnabled(key) {\n        return this.isGlobalFeatureEnabled(key, this.store.state.globalFeatures);\n    }\n    getGlobalFeatureIsEnabled$(key) {\n        return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ConfigStateService, deps: [{ token: i1.AbpApplicationConfigurationService }, { token: i2.AbpApplicationLocalizationService }, { token: INCUDE_LOCALIZATION_RESOURCES_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ConfigStateService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ConfigStateService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.AbpApplicationConfigurationService }, { type: i2.AbpApplicationLocalizationService }, { type: undefined, decorators: [{\n                    type: Optional\n                }, {\n                    type: Inject,\n                    args: [INCUDE_LOCALIZATION_RESOURCES_TOKEN]\n                }] }] });\nfunction splitKeys(keys) {\n    if (typeof keys === 'string') {\n        keys = keys.split('.');\n    }\n    if (!Array.isArray(keys)) {\n        throw new Error('The argument must be a dot string or an string array.');\n    }\n    return keys;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvY29uZmlnLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHFHQUFxRyxDQUFDO0FBQ3pKLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG9HQUFvRyxDQUFDO0FBTXZKLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUs5RCxNQUFNLE9BQU8sa0JBQWtCO0lBTTdCLFFBQVEsQ0FBQyxNQUFtQztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsWUFDVSxnQkFBb0QsRUFDcEQsaUNBQW9FLEVBRzNELDRCQUE0QztRQUpyRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW9DO1FBQ3BELHNDQUFpQyxHQUFqQyxpQ0FBaUMsQ0FBbUM7UUFHM0QsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUFnQjtRQWpCdkQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNCLFVBQUssR0FBRyxJQUFJ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LE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBYnBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9hYnAtYXBwbGljYXRpb24tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9hYnAtYXBwbGljYXRpb24tbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBBcHBsaWNhdGlvbkZlYXR1cmVDb25maWd1cmF0aW9uRHRvLFxyXG4gIEFwcGxpY2F0aW9uR2xvYmFsRmVhdHVyZUNvbmZpZ3VyYXRpb25EdG8sXHJcbn0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJTkNVREVfTE9DQUxJWkFUSU9OX1JFU09VUkNFU19UT0tFTiB9IGZyb20gJy4uL3Rva2Vucy9pbmNsdWRlLWxvY2FsaXphdGlvbi1yZXNvdXJjZXMudG9rZW4nO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpZ1N0YXRlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB1cGRhdGVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gbmV3IEludGVybmFsU3RvcmUoe30gYXMgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvKTtcclxuXHJcbiAgcHVibGljIHVpQ3VsdHVyZUZyb21BdXRoQ29kZUZsb3c6IHN0cmluZztcclxuXHJcbiAgc2V0U3RhdGUoY29uZmlnOiBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8pIHtcclxuICAgIHRoaXMuc3RvcmUuc2V0KGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBnZXQgY3JlYXRlT25VcGRhdGVTdHJlYW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVVwZGF0ZTtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFicENvbmZpZ1NlcnZpY2U6IEFicEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFicEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uU2VydmljZTogQWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoSU5DVURFX0xPQ0FMSVpBVElPTl9SRVNPVVJDRVNfVE9LRU4pXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXM6IGJvb2xlYW4gfCBudWxsLFxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0VXBkYXRlU3RyZWFtKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRVcGRhdGVTdHJlYW0oKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN1YmplY3RcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XHJcbiAgICAgICAgICB0aGlzLmFicENvbmZpZ1NlcnZpY2UuZ2V0KHtcclxuICAgICAgICAgICAgaW5jbHVkZUxvY2FsaXphdGlvblJlc291cmNlczogISF0aGlzLmluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXMsXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHN3aXRjaE1hcChhcHBTdGF0ZSA9PiB0aGlzLmdldExvY2FsaXphdGlvbkFuZENvbWJpbmVXaXRoQXBwU3RhdGUoYXBwU3RhdGUpKSlcclxuICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5zdG9yZS5zZXQocmVzKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExvY2FsaXphdGlvbkFuZENvbWJpbmVXaXRoQXBwU3RhdGUoXHJcbiAgICBhcHBTdGF0ZTogQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvLFxyXG4gICk6IE9ic2VydmFibGU8QXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvPiB7XHJcbiAgICBpZiAoIWFwcFN0YXRlLmxvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2N1bHR1cmUgbmFtZSBzaG91bGQgZGVmaW5lZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1bHR1cmVOYW1lID1cclxuICAgICAgdGhpcy51aUN1bHR1cmVGcm9tQXV0aENvZGVGbG93ID8/IGFwcFN0YXRlLmxvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5nZXRsb2NhbGl6YXRpb25SZXNvdXJjZShjdWx0dXJlTmFtZSkucGlwZShcclxuICAgICAgbWFwKHJlc3VsdCA9PiAoeyAuLi5hcHBTdGF0ZSwgbG9jYWxpemF0aW9uOiB7IC4uLmFwcFN0YXRlLmxvY2FsaXphdGlvbiwgLi4ucmVzdWx0IH0gfSkpLFxyXG4gICAgICB0YXAoKCkgPT4gKHRoaXMudWlDdWx0dXJlRnJvbUF1dGhDb2RlRmxvdyA9IHVuZGVmaW5lZCkpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0bG9jYWxpemF0aW9uUmVzb3VyY2UoY3VsdHVyZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuYWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlLmdldCh7XHJcbiAgICAgIGN1bHR1cmVOYW1lOiBjdWx0dXJlTmFtZSxcclxuICAgICAgb25seUR5bmFtaWNzOiBmYWxzZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaEFwcFN0YXRlKCkge1xyXG4gICAgdGhpcy51cGRhdGVTdWJqZWN0Lm5leHQoKTtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uVXBkYXRlU3RyZWFtKHN0YXRlID0+IHN0YXRlKS5waXBlKHRha2UoMSkpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaExvY2FsaXphdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bGw+IHtcclxuICAgIGlmICh0aGlzLmluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaEFwcFN0YXRlKCkucGlwZShtYXAoKCkgPT4gbnVsbCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmdldGxvY2FsaXphdGlvblJlc291cmNlKGxhbmcpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRhcChyZXN1bHQgPT5cclxuICAgICAgICAgIHRoaXMuc3RvcmUucGF0Y2goeyBsb2NhbGl6YXRpb246IHsgLi4udGhpcy5zdG9yZS5zdGF0ZS5sb2NhbGl6YXRpb24sIC4uLnJlc3VsdCB9IH0pLFxyXG4gICAgICAgICksXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUobWFwKCgpID0+IG51bGwpKTtcclxuICB9XHJcblxyXG4gIGdldE9uZSQ8SyBleHRlbmRzIGtleW9mIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bz4oa2V5OiBLKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0T25lPEsgZXh0ZW5kcyBrZXlvZiBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8+KGtleTogSykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGVba2V5XTtcclxuICB9XHJcblxyXG4gIGdldEFsbCQoKTogT2JzZXJ2YWJsZTxBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8+IHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsKCk6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZTtcclxuICB9XHJcblxyXG4gIGdldERlZXAkKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGtleXMgPSBzcGxpdEtleXMoa2V5cyk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcclxuICAgICAgLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChzdGF0ZSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKGtleXMgYXMgc3RyaW5nW10pLnJlZHVjZSgoYWNjOiBhbnksIHZhbCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoYWNjKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGFjY1t2YWxdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgfSwgc3RhdGUpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVlcChrZXlzOiBzdHJpbmdbXSB8IHN0cmluZyk6IGFueSB7XHJcbiAgICBrZXlzID0gc3BsaXRLZXlzKGtleXMpO1xyXG5cclxuICAgIHJldHVybiAoa2V5cyBhcyBzdHJpbmdbXSkucmVkdWNlKChhY2M6IGFueSwgdmFsKSA9PiB7XHJcbiAgICAgIGlmIChhY2MpIHtcclxuICAgICAgICByZXR1cm4gYWNjW3ZhbF07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9LCB0aGlzLnN0b3JlLnN0YXRlKTtcclxuICB9XHJcblxyXG4gIGdldEZlYXR1cmUoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlLmZlYXR1cmVzPy52YWx1ZXM/LltrZXldO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZSQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUuZmVhdHVyZXM/LnZhbHVlcz8uW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmVhdHVyZXMoa2V5czogc3RyaW5nW10pIHtcclxuICAgIGNvbnN0IHsgZmVhdHVyZXMgfSA9IHRoaXMuc3RvcmUuc3RhdGU7XHJcbiAgICBpZiAoIWZlYXR1cmVzKSByZXR1cm47XHJcblxyXG4gICAgcmV0dXJuIGtleXMucmVkdWNlKChhY2MsIGtleSkgPT4gKHsgLi4uYWNjLCBba2V5XTogZmVhdHVyZXMudmFsdWVzW2tleV0gfSksIHt9KTtcclxuICB9XHJcblxyXG4gIGdldEZlYXR1cmVzJChrZXlzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZSgoeyBmZWF0dXJlcyB9KSA9PiB7XHJcbiAgICAgIGlmICghZmVhdHVyZXM/LnZhbHVlcykgcmV0dXJuO1xyXG5cclxuICAgICAgcmV0dXJuIGtleXMucmVkdWNlKChhY2MsIGtleSkgPT4gKHsgLi4uYWNjLCBba2V5XTogZmVhdHVyZXMudmFsdWVzW2tleV0gfSksIHt9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0ZlYXR1cmVFbmFibGVkKGtleTogc3RyaW5nLCBmZWF0dXJlczogQXBwbGljYXRpb25GZWF0dXJlQ29uZmlndXJhdGlvbkR0bykge1xyXG4gICAgcmV0dXJuIGZlYXR1cmVzLnZhbHVlc1trZXldID09PSAndHJ1ZSc7XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlSXNFbmFibGVkKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0ZlYXR1cmVFbmFibGVkKGtleSwgdGhpcy5zdG9yZS5zdGF0ZS5mZWF0dXJlcyk7XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlSXNFbmFibGVkJChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiB0aGlzLmlzRmVhdHVyZUVuYWJsZWQoa2V5LCBzdGF0ZS5mZWF0dXJlcykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZyhrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGUuc2V0dGluZz8udmFsdWVzPy5ba2V5XTtcclxuICB9XHJcblxyXG4gIGdldFNldHRpbmckKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLnNldHRpbmc/LnZhbHVlcz8uW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZ3Moa2V5d29yZD86IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLnN0b3JlLnN0YXRlLnNldHRpbmc/LnZhbHVlcyB8fCB7fTtcclxuXHJcbiAgICBpZiAoIWtleXdvcmQpIHJldHVybiBzZXR0aW5ncztcclxuXHJcbiAgICBjb25zdCBrZXlzRm91bmQgPSBPYmplY3Qua2V5cyhzZXR0aW5ncykuZmlsdGVyKGtleSA9PiBrZXkuaW5kZXhPZihrZXl3b3JkKSA+IC0xKTtcclxuXHJcbiAgICByZXR1cm4ga2V5c0ZvdW5kLnJlZHVjZShcclxuICAgICAgKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgYWNjW2tleV0gPSBzZXR0aW5nc1trZXldO1xyXG4gICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgIH0sXHJcbiAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZ3MkKGtleXdvcmQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlXHJcbiAgICAgIC5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLnNldHRpbmc/LnZhbHVlcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChzZXR0aW5ncyA9IHt9KSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWtleXdvcmQpIHJldHVybiBzZXR0aW5ncztcclxuXHJcbiAgICAgICAgICBjb25zdCBrZXlzRm91bmQgPSBPYmplY3Qua2V5cyhzZXR0aW5ncykuZmlsdGVyKGtleSA9PiBrZXkuaW5kZXhPZihrZXl3b3JkKSA+IC0xKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4ga2V5c0ZvdW5kLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgYWNjW2tleV0gPSBzZXR0aW5nc1trZXldO1xyXG4gICAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZS5nbG9iYWxGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIGdldEdsb2JhbEZlYXR1cmVzJCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUuZ2xvYmFsRmVhdHVyZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0dsb2JhbEZlYXR1cmVFbmFibGVkKFxyXG4gICAga2V5OiBzdHJpbmcsXHJcbiAgICBnbG9iYWxGZWF0dXJlczogQXBwbGljYXRpb25HbG9iYWxGZWF0dXJlQ29uZmlndXJhdGlvbkR0byxcclxuICApIHtcclxuICAgIGNvbnN0IGZlYXR1cmVzID0gZ2xvYmFsRmVhdHVyZXMuZW5hYmxlZEZlYXR1cmVzIHx8IFtdO1xyXG4gICAgcmV0dXJuIGZlYXR1cmVzLnNvbWUoZiA9PiBrZXkgPT09IGYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZUlzRW5hYmxlZChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNHbG9iYWxGZWF0dXJlRW5hYmxlZChrZXksIHRoaXMuc3RvcmUuc3RhdGUuZ2xvYmFsRmVhdHVyZXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZUlzRW5hYmxlZCQoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gdGhpcy5pc0dsb2JhbEZlYXR1cmVFbmFibGVkKGtleSwgc3RhdGUuZ2xvYmFsRmVhdHVyZXMpKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNwbGl0S2V5cyhrZXlzOiBzdHJpbmdbXSB8IHN0cmluZyk6IHN0cmluZ1tdIHtcclxuICBpZiAodHlwZW9mIGtleXMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICBrZXlzID0ga2V5cy5zcGxpdCgnLicpO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFBcnJheS5pc0FycmF5KGtleXMpKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmd1bWVudCBtdXN0IGJlIGEgZG90IHN0cmluZyBvciBhbiBzdHJpbmcgYXJyYXkuJyk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4ga2V5cztcclxufVxyXG4iXX0=","import { registerLocaleData } from '@angular/common';\nimport { Injectable, Injector, isDevMode, Optional, SkipSelf } from '@angular/core';\nimport { BehaviorSubject, combineLatest, from, Subject } from 'rxjs';\nimport { filter, map, switchMap } from 'rxjs/operators';\nimport { localizations$ } from '../tokens/localization.token';\nimport { CORE_OPTIONS } from '../tokens/options.token';\nimport { createLocalizer, createLocalizerWithFallback } from '../utils/localization-utils';\nimport { interpolate } from '../utils/string-utils';\nimport { ConfigStateService } from './config-state.service';\nimport { SessionStateService } from './session-state.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./session-state.service\";\nimport * as i2 from \"./config-state.service\";\nexport class LocalizationService {\n    /**\n     * Returns currently selected language\n     * Even though this looks like it's redundant to return the same value as `getLanguage()`,\n     * it's actually not. This could be invoked any time, and the latestLang could be different from the\n     * sessionState.getLanguage() value.\n     */\n    get currentLang() {\n        return this.latestLang || this.sessionState.getLanguage();\n    }\n    get currentLang$() {\n        return this.sessionState.getLanguage$();\n    }\n    get languageChange$() {\n        return this._languageChange$.asObservable();\n    }\n    constructor(sessionState, injector, otherInstance, configState) {\n        this.sessionState = sessionState;\n        this.injector = injector;\n        this.configState = configState;\n        this.latestLang = this.sessionState.getLanguage();\n        this._languageChange$ = new Subject();\n        this.uiLocalizations$ = new BehaviorSubject(new Map());\n        this.localizations$ = new BehaviorSubject(new Map());\n        if (otherInstance)\n            throw new Error('LocalizationService should have only one instance.');\n        this.listenToSetLanguage();\n        this.initLocalizationValues();\n    }\n    initLocalizationValues() {\n        localizations$.subscribe(val => this.addLocalization(val));\n        const legacyResources$ = this.configState.getDeep$('localization.values');\n        const remoteLocalizations$ = this.configState.getDeep$('localization.resources');\n        const currentLanguage$ = this.sessionState.getLanguage$();\n        const uiLocalizations$ = combineLatest([currentLanguage$, this.uiLocalizations$]).pipe(map(([currentLang, localizations]) => localizations.get(currentLang)));\n        combineLatest([legacyResources$, remoteLocalizations$, uiLocalizations$])\n            .pipe(map(([legacy, resource, local]) => {\n            if (!resource) {\n                return;\n            }\n            const remote = combineLegacyandNewResources(legacy || {}, resource);\n            if (remote) {\n                if (!local) {\n                    local = new Map();\n                }\n                Object.entries(remote).forEach(entry => {\n                    const resourceName = entry[0];\n                    const remoteTexts = entry[1];\n                    let resource = local?.get(resourceName) || {};\n                    resource = { ...resource, ...remoteTexts };\n                    local?.set(resourceName, resource);\n                });\n            }\n            return local;\n        }), filter(Boolean))\n            .subscribe(val => this.localizations$.next(val));\n    }\n    addLocalization(localizations) {\n        if (!localizations)\n            return;\n        const localizationMap = this.uiLocalizations$.value;\n        localizations.forEach(loc => {\n            const cultureMap = localizationMap.get(loc.culture) || new Map();\n            loc.resources.forEach(res => {\n                let resource = cultureMap.get(res.resourceName) || {};\n                resource = { ...resource, ...res.texts };\n                cultureMap.set(res.resourceName, resource);\n            });\n            localizationMap.set(loc.culture, cultureMap);\n        });\n        this.uiLocalizations$.next(localizationMap);\n    }\n    listenToSetLanguage() {\n        this.sessionState\n            .onLanguageChange$()\n            .pipe(filter(lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang), switchMap(lang => this.configState.refreshLocalization(lang).pipe(map(() => lang))), filter(Boolean), switchMap(lang => from(this.registerLocale(lang).then(() => lang))))\n            .subscribe(lang => this._languageChange$.next(lang));\n    }\n    registerLocale(locale) {\n        const { registerLocaleFn } = this.injector.get(CORE_OPTIONS);\n        return registerLocaleFn(locale).then(module => {\n            if (module?.default)\n                registerLocaleData(module.default);\n            this.latestLang = locale;\n        });\n    }\n    /**\n     * Returns an observable localized text with the given interpolation parameters in current language.\n     * @param key Localizaton key to replace with localized text\n     * @param interpolateParams Values to interpolate\n     */\n    get(key, ...interpolateParams) {\n        return this.configState\n            .getAll$()\n            .pipe(map(state => this.getLocalization(state, key, ...interpolateParams)));\n    }\n    getResource(resourceName) {\n        return this.localizations$.value.get(resourceName);\n    }\n    getResource$(resourceName) {\n        return this.localizations$.pipe(map(res => res.get(resourceName)));\n    }\n    /**\n     * Returns localized text with the given interpolation parameters in current language.\n     * @param key Localization key to replace with localized text\n     * @param interpolateParams Values to intepolate.\n     */\n    instant(key, ...interpolateParams) {\n        return this.getLocalization(this.configState.getAll(), key, ...interpolateParams);\n    }\n    localize(resourceName, key, defaultValue) {\n        return this.configState.getOne$('localization').pipe(map(createLocalizer), map(localize => localize(resourceName, key, defaultValue)));\n    }\n    localizeSync(resourceName, key, defaultValue) {\n        const localization = this.configState.getOne('localization');\n        return createLocalizer(localization)(resourceName, key, defaultValue);\n    }\n    localizeWithFallback(resourceNames, keys, defaultValue) {\n        return this.configState.getOne$('localization').pipe(map(createLocalizerWithFallback), map(localizeWithFallback => localizeWithFallback(resourceNames, keys, defaultValue)));\n    }\n    localizeWithFallbackSync(resourceNames, keys, defaultValue) {\n        const localization = this.configState.getOne('localization');\n        return createLocalizerWithFallback(localization)(resourceNames, keys, defaultValue);\n    }\n    getLocalization(state, key, ...interpolateParams) {\n        let defaultValue = '';\n        if (!key) {\n            return defaultValue;\n        }\n        if (typeof key !== 'string') {\n            defaultValue = key.defaultValue;\n            key = key.key;\n        }\n        const keys = key.split('::');\n        const warn = (message) => {\n            if (isDevMode())\n                console.warn(message);\n        };\n        if (keys.length < 2) {\n            warn('The localization source separator (::) not found.');\n            return defaultValue || key;\n        }\n        if (!state.localization)\n            return defaultValue || keys[1];\n        const sourceName = keys[0] || state.localization.defaultResourceName;\n        const sourceKey = keys[1];\n        if (sourceName === '_') {\n            return defaultValue || sourceKey;\n        }\n        if (!sourceName) {\n            warn('Localization source name is not specified and the defaultResourceName was not defined!');\n            return defaultValue || sourceKey;\n        }\n        const source = this.localizations$.value.get(sourceName);\n        if (!source) {\n            warn('Could not find localization source: ' + sourceName);\n            return defaultValue || sourceKey;\n        }\n        let localization = source[sourceKey];\n        if (typeof localization === 'undefined') {\n            return defaultValue || sourceKey;\n        }\n        interpolateParams = interpolateParams.filter(params => params != null);\n        if (localization)\n            localization = interpolate(localization, interpolateParams);\n        if (typeof localization !== 'string')\n            localization = '';\n        return localization || defaultValue || key;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationService, deps: [{ token: i1.SessionStateService }, { token: i0.Injector }, { token: LocalizationService, optional: true, skipSelf: true }, { token: i2.ConfigStateService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }], ctorParameters: () => [{ type: i1.SessionStateService }, { type: i0.Injector }, { type: LocalizationService, decorators: [{\n                    type: Optional\n                }, {\n                    type: SkipSelf\n                }] }, { type: i2.ConfigStateService }] });\nfunction recursivelyMergeBaseResources(baseResourceName, source) {\n    const item = source[baseResourceName];\n    if (item.baseResources.length === 0) {\n        return item;\n    }\n    return item.baseResources.reduce((acc, baseResource) => {\n        const baseItem = recursivelyMergeBaseResources(baseResource, source);\n        const texts = { ...baseItem.texts, ...item.texts };\n        return { ...acc, texts };\n    }, item);\n}\nfunction mergeResourcesWithBaseResource(resource) {\n    const entities = Object.keys(resource).map(key => {\n        const newValue = recursivelyMergeBaseResources(key, resource);\n        return [key, newValue];\n    });\n    return entities.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\n}\nfunction combineLegacyandNewResources(legacy, resource) {\n    const mergedResource = mergeResourcesWithBaseResource(resource);\n    return Object.entries(mergedResource).reduce((acc, [key, value]) => {\n        return { ...acc, [key]: value.texts };\n    }, legacy);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU94RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFHOUQsTUFBTSxPQUFPLG1CQUFtQjtJQVU5Qjs7Ozs7T0FLRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFD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Q0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUNGLENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVELFNBQVMsNEJBQTRCLENBQ25DLE1BQXlCLEVBQ3pCLFFBQXFCO0lBRXJCLE1BQU0sY0FBYyxHQUFHLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWhFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNqRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBpc0Rldk1vZGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZyb20sIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbldpdGhEZWZhdWx0IH0gZnJvbSAnLi4vbW9kZWxzL2xvY2FsaXphdGlvbic7XHJcbmltcG9ydCB7XHJcbiAgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvLFxyXG4gIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uUmVzb3VyY2VEdG8sXHJcbn0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBsb2NhbGl6YXRpb25zJCB9IGZyb20gJy4uL3Rva2Vucy9sb2NhbGl6YXRpb24udG9rZW4nO1xyXG5pbXBvcnQgeyBDT1JFX09QVElPTlMgfSBmcm9tICcuLi90b2tlbnMvb3B0aW9ucy50b2tlbic7XHJcbmltcG9ydCB7IGNyZWF0ZUxvY2FsaXplciwgY3JlYXRlTG9jYWxpemVyV2l0aEZhbGxiYWNrIH0gZnJvbSAnLi4vdXRpbHMvbG9jYWxpemF0aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgaW50ZXJwb2xhdGUgfSBmcm9tICcuLi91dGlscy9zdHJpbmctdXRpbHMnO1xyXG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblN0YXRlU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi1zdGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIGxhdGVzdExhbmcgPSB0aGlzLnNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSgpO1xyXG4gIHByaXZhdGUgX2xhbmd1YWdlQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuXHJcbiAgcHJpdmF0ZSB1aUxvY2FsaXphdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgIG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4oKSxcclxuICApO1xyXG5cclxuICBwcml2YXRlIGxvY2FsaXphdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChuZXcgTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgY3VycmVudGx5IHNlbGVjdGVkIGxhbmd1YWdlXHJcbiAgICogRXZlbiB0aG91Z2ggdGhpcyBsb29rcyBsaWtlIGl0J3MgcmVkdW5kYW50IHRvIHJldHVybiB0aGUgc2FtZSB2YWx1ZSBhcyBgZ2V0TGFuZ3VhZ2UoKWAsXHJcbiAgICogaXQncyBhY3R1YWxseSBub3QuIFRoaXMgY291bGQgYmUgaW52b2tlZCBhbnkgdGltZSwgYW5kIHRoZSBsYXRlc3RMYW5nIGNvdWxkIGJlIGRpZmZlcmVudCBmcm9tIHRoZVxyXG4gICAqIHNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSgpIHZhbHVlLlxyXG4gICAqL1xyXG4gIGdldCBjdXJyZW50TGFuZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubGF0ZXN0TGFuZyB8fCB0aGlzLnNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRMYW5nJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvblN0YXRlLmdldExhbmd1YWdlJCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhbmd1YWdlQ2hhbmdlJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uU3RhdGU6IFNlc3Npb25TdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBAU2tpcFNlbGYoKVxyXG4gICAgb3RoZXJJbnN0YW5jZTogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICApIHtcclxuICAgIGlmIChvdGhlckluc3RhbmNlKSB0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsaXphdGlvblNlcnZpY2Ugc2hvdWxkIGhhdmUgb25seSBvbmUgaW5zdGFuY2UuJyk7XHJcblxyXG4gICAgdGhpcy5saXN0ZW5Ub1NldExhbmd1YWdlKCk7XHJcbiAgICB0aGlzLmluaXRMb2NhbGl6YXRpb25WYWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdExvY2FsaXphdGlvblZhbHVlcygpIHtcclxuICAgIGxvY2FsaXphdGlvbnMkLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5hZGRMb2NhbGl6YXRpb24odmFsKSk7XHJcblxyXG4gICAgY29uc3QgbGVnYWN5UmVzb3VyY2VzJCA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCQoJ2xvY2FsaXphdGlvbi52YWx1ZXMnKSBhcyBPYnNlcnZhYmxlPFxyXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PlxyXG4gICAgPjtcclxuXHJcbiAgICBjb25zdCByZW1vdGVMb2NhbGl6YXRpb25zJCA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCQoJ2xvY2FsaXphdGlvbi5yZXNvdXJjZXMnKSBhcyBPYnNlcnZhYmxlPFxyXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblJlc291cmNlRHRvPlxyXG4gICAgPjtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50TGFuZ3VhZ2UkID0gdGhpcy5zZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UkKCk7XHJcblxyXG4gICAgY29uc3QgdWlMb2NhbGl6YXRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW2N1cnJlbnRMYW5ndWFnZSQsIHRoaXMudWlMb2NhbGl6YXRpb25zJF0pLnBpcGUoXHJcbiAgICAgIG1hcCgoW2N1cnJlbnRMYW5nLCBsb2NhbGl6YXRpb25zXSkgPT4gbG9jYWxpemF0aW9ucy5nZXQoY3VycmVudExhbmcpKSxcclxuICAgICk7XHJcblxyXG4gICAgY29tYmluZUxhdGVzdChbbGVnYWN5UmVzb3VyY2VzJCwgcmVtb3RlTG9jYWxpemF0aW9ucyQsIHVpTG9jYWxpemF0aW9ucyRdKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKFtsZWdhY3ksIHJlc291cmNlLCBsb2NhbF0pID0+IHtcclxuICAgICAgICAgIGlmICghcmVzb3VyY2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgcmVtb3RlID0gY29tYmluZUxlZ2FjeWFuZE5ld1Jlc291cmNlcyhsZWdhY3kgfHwge30sIHJlc291cmNlKTtcclxuICAgICAgICAgIGlmIChyZW1vdGUpIHtcclxuICAgICAgICAgICAgaWYgKCFsb2NhbCkge1xyXG4gICAgICAgICAgICAgIGxvY2FsID0gbmV3IE1hcCgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhyZW1vdGUpLmZvckVhY2goZW50cnkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IGVudHJ5WzBdO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlbW90ZVRleHRzID0gZW50cnlbMV07XHJcbiAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbG9jYWw/LmdldChyZXNvdXJjZU5hbWUpIHx8IHt9O1xyXG4gICAgICAgICAgICAgIHJlc291cmNlID0geyAuLi5yZXNvdXJjZSwgLi4ucmVtb3RlVGV4dHMgfTtcclxuXHJcbiAgICAgICAgICAgICAgbG9jYWw/LnNldChyZXNvdXJjZU5hbWUsIHJlc291cmNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIGxvY2FsO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGZpbHRlcihCb29sZWFuKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLmxvY2FsaXphdGlvbnMkLm5leHQodmFsKSk7XHJcbiAgfVxyXG5cclxuICBhZGRMb2NhbGl6YXRpb24obG9jYWxpemF0aW9ucz86IEFCUC5Mb2NhbGl6YXRpb25bXSkge1xyXG4gICAgaWYgKCFsb2NhbGl6YXRpb25zKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgbG9jYWxpemF0aW9uTWFwID0gdGhpcy51aUxvY2FsaXphdGlvbnMkLnZhbHVlO1xyXG5cclxuICAgIGxvY2FsaXphdGlvbnMuZm9yRWFjaChsb2MgPT4ge1xyXG4gICAgICBjb25zdCBjdWx0dXJlTWFwID1cclxuICAgICAgICBsb2NhbGl6YXRpb25NYXAuZ2V0KGxvYy5jdWx0dXJlKSB8fCBuZXcgTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKTtcclxuXHJcbiAgICAgIGxvYy5yZXNvdXJjZXMuZm9yRWFjaChyZXMgPT4ge1xyXG4gICAgICAgIGxldCByZXNvdXJjZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IGN1bHR1cmVNYXAuZ2V0KHJlcy5yZXNvdXJjZU5hbWUpIHx8IHt9O1xyXG5cclxuICAgICAgICByZXNvdXJjZSA9IHsgLi4ucmVzb3VyY2UsIC4uLnJlcy50ZXh0cyB9O1xyXG5cclxuICAgICAgICBjdWx0dXJlTWFwLnNldChyZXMucmVzb3VyY2VOYW1lLCByZXNvdXJjZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbG9jYWxpemF0aW9uTWFwLnNldChsb2MuY3VsdHVyZSwgY3VsdHVyZU1hcCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnVpTG9jYWxpemF0aW9ucyQubmV4dChsb2NhbGl6YXRpb25NYXApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaXN0ZW5Ub1NldExhbmd1YWdlKCkge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RhdGVcclxuICAgICAgLm9uTGFuZ3VhZ2VDaGFuZ2UkKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgbGFuZyA9PiB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAoJ2xvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZScpICE9PSBsYW5nLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgc3dpdGNoTWFwKGxhbmcgPT4gdGhpcy5jb25maWdTdGF0ZS5yZWZyZXNoTG9jYWxpemF0aW9uKGxhbmcpLnBpcGUobWFwKCgpID0+IGxhbmcpKSksXHJcbiAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxyXG4gICAgICAgIHN3aXRjaE1hcChsYW5nID0+IGZyb20odGhpcy5yZWdpc3RlckxvY2FsZShsYW5nKS50aGVuKCgpID0+IGxhbmcpKSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShsYW5nID0+IHRoaXMuX2xhbmd1YWdlQ2hhbmdlJC5uZXh0KGxhbmcpKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyTG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IHJlZ2lzdGVyTG9jYWxlRm4gfTogQUJQLlJvb3QgPSB0aGlzLmluamVjdG9yLmdldChDT1JFX09QVElPTlMpO1xyXG5cclxuICAgIHJldHVybiByZWdpc3RlckxvY2FsZUZuKGxvY2FsZSkudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICBpZiAobW9kdWxlPy5kZWZhdWx0KSByZWdpc3RlckxvY2FsZURhdGEobW9kdWxlLmRlZmF1bHQpO1xyXG4gICAgICB0aGlzLmxhdGVzdExhbmcgPSBsb2NhbGU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBsb2NhbGl6ZWQgdGV4dCB3aXRoIHRoZSBnaXZlbiBpbnRlcnBvbGF0aW9uIHBhcmFtZXRlcnMgaW4gY3VycmVudCBsYW5ndWFnZS5cclxuICAgKiBAcGFyYW0ga2V5IExvY2FsaXphdG9uIGtleSB0byByZXBsYWNlIHdpdGggbG9jYWxpemVkIHRleHRcclxuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGVQYXJhbXMgVmFsdWVzIHRvIGludGVycG9sYXRlXHJcbiAgICovXHJcbiAgZ2V0KGtleTogc3RyaW5nIHwgTG9jYWxpemF0aW9uV2l0aERlZmF1bHQsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTdGF0ZVxyXG4gICAgICAuZ2V0QWxsJCgpXHJcbiAgICAgIC5waXBlKG1hcChzdGF0ZSA9PiB0aGlzLmdldExvY2FsaXphdGlvbihzdGF0ZSwga2V5LCAuLi5pbnRlcnBvbGF0ZVBhcmFtcykpKTtcclxuICB9XHJcblxyXG4gIGdldFJlc291cmNlKHJlc291cmNlTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25zJC52YWx1ZS5nZXQocmVzb3VyY2VOYW1lKTtcclxuICB9XHJcblxyXG4gIGdldFJlc291cmNlJChyZXNvdXJjZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMubG9jYWxpemF0aW9ucyQucGlwZShtYXAocmVzID0+IHJlcy5nZXQocmVzb3VyY2VOYW1lKSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBsb2NhbGl6ZWQgdGV4dCB3aXRoIHRoZSBnaXZlbiBpbnRlcnBvbGF0aW9uIHBhcmFtZXRlcnMgaW4gY3VycmVudCBsYW5ndWFnZS5cclxuICAgKiBAcGFyYW0ga2V5IExvY2FsaXphdGlvbiBrZXkgdG8gcmVwbGFjZSB3aXRoIGxvY2FsaXplZCB0ZXh0XHJcbiAgICogQHBhcmFtIGludGVycG9sYXRlUGFyYW1zIFZhbHVlcyB0byBpbnRlcG9sYXRlLlxyXG4gICAqL1xyXG4gIGluc3RhbnQoa2V5OiBzdHJpbmcgfCBMb2NhbGl6YXRpb25XaXRoRGVmYXVsdCwgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphdGlvbih0aGlzLmNvbmZpZ1N0YXRlLmdldEFsbCgpLCBrZXksIC4uLmludGVycG9sYXRlUGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGxvY2FsaXplKHJlc291cmNlTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N0YXRlLmdldE9uZSQoJ2xvY2FsaXphdGlvbicpLnBpcGUoXHJcbiAgICAgIG1hcChjcmVhdGVMb2NhbGl6ZXIpLFxyXG4gICAgICBtYXAobG9jYWxpemUgPT4gbG9jYWxpemUocmVzb3VyY2VOYW1lLCBrZXksIGRlZmF1bHRWYWx1ZSkpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvY2FsaXplU3luYyhyZXNvdXJjZU5hbWU6IHN0cmluZywga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBjb25zdCBsb2NhbGl6YXRpb24gPSB0aGlzLmNvbmZpZ1N0YXRlLmdldE9uZSgnbG9jYWxpemF0aW9uJyk7XHJcbiAgICByZXR1cm4gY3JlYXRlTG9jYWxpemVyKGxvY2FsaXphdGlvbikocmVzb3VyY2VOYW1lLCBrZXksIGRlZmF1bHRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBsb2NhbGl6ZVdpdGhGYWxsYmFjayhcclxuICAgIHJlc291cmNlTmFtZXM6IHN0cmluZ1tdLFxyXG4gICAga2V5czogc3RyaW5nW10sXHJcbiAgICBkZWZhdWx0VmFsdWU6IHN0cmluZyxcclxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU3RhdGUuZ2V0T25lJCgnbG9jYWxpemF0aW9uJykucGlwZShcclxuICAgICAgbWFwKGNyZWF0ZUxvY2FsaXplcldpdGhGYWxsYmFjayksXHJcbiAgICAgIG1hcChsb2NhbGl6ZVdpdGhGYWxsYmFjayA9PiBsb2NhbGl6ZVdpdGhGYWxsYmFjayhyZXNvdXJjZU5hbWVzLCBrZXlzLCBkZWZhdWx0VmFsdWUpKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2NhbGl6ZVdpdGhGYWxsYmFja1N5bmMocmVzb3VyY2VOYW1lczogc3RyaW5nW10sIGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsb2NhbGl6YXRpb24gPSB0aGlzLmNvbmZpZ1N0YXRlLmdldE9uZSgnbG9jYWxpemF0aW9uJyk7XHJcbiAgICByZXR1cm4gY3JlYXRlTG9jYWxpemVyV2l0aEZhbGxiYWNrKGxvY2FsaXphdGlvbikocmVzb3VyY2VOYW1lcywga2V5cywgZGVmYXVsdFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TG9jYWxpemF0aW9uKFxyXG4gICAgc3RhdGU6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICAgIGtleTogc3RyaW5nIHwgTG9jYWxpemF0aW9uV2l0aERlZmF1bHQsXHJcbiAgICAuLi5pbnRlcnBvbGF0ZVBhcmFtczogc3RyaW5nW11cclxuICApIHtcclxuICAgIGxldCBkZWZhdWx0VmFsdWUgPSAnJztcclxuXHJcbiAgICBpZiAoIWtleSkge1xyXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykge1xyXG4gICAgICBkZWZhdWx0VmFsdWUgPSBrZXkuZGVmYXVsdFZhbHVlO1xyXG4gICAgICBrZXkgPSBrZXkua2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJzo6JykgYXMgc3RyaW5nW107XHJcbiAgICBjb25zdCB3YXJuID0gKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIGNvbnNvbGUud2FybihtZXNzYWdlKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGtleXMubGVuZ3RoIDwgMikge1xyXG4gICAgICB3YXJuKCdUaGUgbG9jYWxpemF0aW9uIHNvdXJjZSBzZXBhcmF0b3IgKDo6KSBub3QgZm91bmQuJyk7XHJcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWUgfHwgKGtleSBhcyBzdHJpbmcpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFzdGF0ZS5sb2NhbGl6YXRpb24pIHJldHVybiBkZWZhdWx0VmFsdWUgfHwga2V5c1sxXTtcclxuXHJcbiAgICBjb25zdCBzb3VyY2VOYW1lID0ga2V5c1swXSB8fCBzdGF0ZS5sb2NhbGl6YXRpb24uZGVmYXVsdFJlc291cmNlTmFtZTtcclxuICAgIGNvbnN0IHNvdXJjZUtleSA9IGtleXNbMV07XHJcblxyXG4gICAgaWYgKHNvdXJjZU5hbWUgPT09ICdfJykge1xyXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlIHx8IHNvdXJjZUtleTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXNvdXJjZU5hbWUpIHtcclxuICAgICAgd2FybihcclxuICAgICAgICAnTG9jYWxpemF0aW9uIHNvdXJjZSBuYW1lIGlzIG5vdCBzcGVjaWZpZWQgYW5kIHRoZSBkZWZhdWx0UmVzb3VyY2VOYW1lIHdhcyBub3QgZGVmaW5lZCEnLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZSB8fCBzb3VyY2VLZXk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5sb2NhbGl6YXRpb25zJC52YWx1ZS5nZXQoc291cmNlTmFtZSk7XHJcbiAgICBpZiAoIXNvdXJjZSkge1xyXG4gICAgICB3YXJuKCdDb3VsZCBub3QgZmluZCBsb2NhbGl6YXRpb24gc291cmNlOiAnICsgc291cmNlTmFtZSk7XHJcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWUgfHwgc291cmNlS2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBsb2NhbGl6YXRpb24gPSBzb3VyY2Vbc291cmNlS2V5XTtcclxuICAgIGlmICh0eXBlb2YgbG9jYWxpemF0aW9uID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlIHx8IHNvdXJjZUtleTtcclxuICAgIH1cclxuXHJcbiAgICBpbnRlcnBvbGF0ZVBhcmFtcyA9IGludGVycG9sYXRlUGFyYW1zLmZpbHRlcihwYXJhbXMgPT4gcGFyYW1zICE9IG51bGwpO1xyXG4gICAgaWYgKGxvY2FsaXphdGlvbikgbG9jYWxpemF0aW9uID0gaW50ZXJwb2xhdGUobG9jYWxpemF0aW9uLCBpbnRlcnBvbGF0ZVBhcmFtcyk7XHJcblxyXG4gICAgaWYgKHR5cGVvZiBsb2NhbGl6YXRpb24gIT09ICdzdHJpbmcnKSBsb2NhbGl6YXRpb24gPSAnJztcclxuXHJcbiAgICByZXR1cm4gbG9jYWxpemF0aW9uIHx8IGRlZmF1bHRWYWx1ZSB8fCAoa2V5IGFzIHN0cmluZyk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByZWN1cnNpdmVseU1lcmdlQmFzZVJlc291cmNlcyhcclxuICBiYXNlUmVzb3VyY2VOYW1lOiBzdHJpbmcsXHJcbiAgc291cmNlOiBSZXNvdXJjZUR0byxcclxuKTogQXBwbGljYXRpb25Mb2NhbGl6YXRpb25SZXNvdXJjZUR0byB7XHJcbiAgY29uc3QgaXRlbSA9IHNvdXJjZVtiYXNlUmVzb3VyY2VOYW1lXTtcclxuXHJcbiAgaWYgKGl0ZW0uYmFzZVJlc291cmNlcy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGl0ZW0uYmFzZVJlc291cmNlcy5yZWR1Y2UoKGFjYywgYmFzZVJlc291cmNlKSA9PiB7XHJcbiAgICBjb25zdCBiYXNlSXRlbSA9IHJlY3Vyc2l2ZWx5TWVyZ2VCYXNlUmVzb3VyY2VzKGJhc2VSZXNvdXJjZSwgc291cmNlKTtcclxuICAgIGNvbnN0IHRleHRzID0geyAuLi5iYXNlSXRlbS50ZXh0cywgLi4uaXRlbS50ZXh0cyB9O1xyXG4gICAgcmV0dXJuIHsgLi4uYWNjLCB0ZXh0cyB9O1xyXG4gIH0sIGl0ZW0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZVJlc291cmNlc1dpdGhCYXNlUmVzb3VyY2UocmVzb3VyY2U6IFJlc291cmNlRHRvKTogUmVzb3VyY2VEdG8ge1xyXG4gIGNvbnN0IGVudGl0aWVzOiBBcnJheTxbc3RyaW5nLCBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblJlc291cmNlRHRvXT4gPSBPYmplY3Qua2V5cyhyZXNvdXJjZSkubWFwKFxyXG4gICAga2V5ID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSByZWN1cnNpdmVseU1lcmdlQmFzZVJlc291cmNlcyhrZXksIHJlc291cmNlKTtcclxuICAgICAgcmV0dXJuIFtrZXksIG5ld1ZhbHVlXTtcclxuICAgIH0sXHJcbiAgKTtcclxuICByZXR1cm4gZW50aXRpZXMucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfSksIHt9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gY29tYmluZUxlZ2FjeWFuZE5ld1Jlc291cmNlcyhcclxuICBsZWdhY3k6IExlZ2FjeUxhbmd1YWdlRHRvLFxyXG4gIHJlc291cmNlOiBSZXNvdXJjZUR0byxcclxuKTogTGVnYWN5TGFuZ3VhZ2VEdG8ge1xyXG4gIGNvbnN0IG1lcmdlZFJlc291cmNlID0gbWVyZ2VSZXNvdXJjZXNXaXRoQmFzZVJlc291cmNlKHJlc291cmNlKTtcclxuXHJcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1lcmdlZFJlc291cmNlKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiB2YWx1ZS50ZXh0cyB9O1xyXG4gIH0sIGxlZ2FjeSk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIExlZ2FjeUxhbmd1YWdlRHRvID0gUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XHJcbmV4cG9ydCB0eXBlIFJlc291cmNlRHRvID0gUmVjb3JkPHN0cmluZywgQXBwbGljYXRpb25Mb2NhbGl6YXRpb25SZXNvdXJjZUR0bz47XHJcbiJdfQ==","import { Component, inject, isDevMode, Optional, SkipSelf } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { LocalizationService } from '../services/localization.service';\nimport { ReplaceableComponentsService } from '../services/replaceable-components.service';\nimport { RouterEvents } from '../services/router-events.service';\nimport { RoutesService } from '../services/routes.service';\nimport { SubscriptionService } from '../services/subscription.service';\nimport { findRoute, getRoutePath } from '../utils/route-utils';\nimport { DYNAMIC_LAYOUTS_TOKEN } from '../tokens/dynamic-layout.token';\nimport { EnvironmentService } from '../services';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nexport class DynamicLayoutComponent {\n    constructor(dynamicLayoutComponent) {\n        this.layouts = inject(DYNAMIC_LAYOUTS_TOKEN);\n        this.isLayoutVisible = true;\n        this.router = inject(Router);\n        this.route = inject(ActivatedRoute);\n        this.routes = inject(RoutesService);\n        this.localizationService = inject(LocalizationService);\n        this.replaceableComponents = inject(ReplaceableComponentsService);\n        this.subscription = inject(SubscriptionService);\n        this.routerEvents = inject(RouterEvents);\n        this.environment = inject(EnvironmentService);\n        if (dynamicLayoutComponent) {\n            if (isDevMode())\n                console.warn('DynamicLayoutComponent must be used only in AppComponent.');\n            return;\n        }\n        this.checkLayoutOnNavigationEnd();\n        this.listenToLanguageChange();\n    }\n    ngOnInit() {\n        if (this.layout) {\n            return;\n        }\n        const { oAuthConfig } = this.environment.getEnvironment();\n        if (oAuthConfig.responseType === 'code') {\n            this.getLayout();\n        }\n    }\n    checkLayoutOnNavigationEnd() {\n        const navigationEnd$ = this.routerEvents.getNavigationEvents('End');\n        this.subscription.addOne(navigationEnd$, () => this.getLayout());\n    }\n    getLayout() {\n        let expectedLayout = this.getExtractedLayout();\n        if (!expectedLayout)\n            expectedLayout = \"empty\" /* eLayoutType.empty */;\n        if (this.layoutKey === expectedLayout)\n            return;\n        const key = this.layouts.get(expectedLayout);\n        if (key) {\n            this.layout = this.getComponent(key)?.component;\n            this.layoutKey = expectedLayout;\n        }\n        if (!this.layout) {\n            this.showLayoutNotFoundError(expectedLayout);\n        }\n    }\n    getExtractedLayout() {\n        const routeData = this.route.snapshot.data || {};\n        let expectedLayout = routeData['layout'];\n        let node = findRoute(this.routes, getRoutePath(this.router));\n        node = { parent: node };\n        while (node.parent) {\n            node = node.parent;\n            if (node.layout) {\n                expectedLayout = node.layout;\n                break;\n            }\n        }\n        return expectedLayout;\n    }\n    showLayoutNotFoundError(layoutName) {\n        let message = `Layout ${layoutName} not found.`;\n        if (layoutName === 'account') {\n            message =\n                'Account layout not found. Please check your configuration. If you are using LeptonX, please make sure you have added \"AccountLayoutModule.forRoot()\" to your app.module configuration.';\n        }\n        console.warn(message);\n    }\n    listenToLanguageChange() {\n        this.subscription.addOne(this.localizationService.languageChange$, () => {\n            this.isLayoutVisible = false;\n            setTimeout(() => (this.isLayoutVisible = true), 0);\n        });\n    }\n    getComponent(key) {\n        return this.replaceableComponents.get(key);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: DynamicLayoutComponent, deps: [{ token: DynamicLayoutComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", type: DynamicLayoutComponent, isStandalone: true, selector: \"abp-dynamic-layout\", providers: [SubscriptionService], ngImport: i0, template: `\r\n    @if (isLayoutVisible) {\r\n      <ng-container [ngComponentOutlet]=\"layout\"></ng-container>\r\n    }\r\n  `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: DynamicLayoutComponent, decorators: [{\n            type: Component,\n            args: [{\n                    selector: 'abp-dynamic-layout',\n                    template: `\r\n    @if (isLayoutVisible) {\r\n      <ng-container [ngComponentOutlet]=\"layout\"></ng-container>\r\n    }\r\n  `,\n                    providers: [SubscriptionService],\n                    imports: [CommonModule],\n                }]\n        }], ctorParameters: () => [{ type: DynamicLayoutComponent, decorators: [{\n                    type: Optional\n                }, {\n                    type: SkipSelf\n                }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBVSxRQUFRLEVBQUUsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVkvQyxNQUFNLE9BQU8sc0JBQXNCO0lBZWpDLFlBQW9DLHNCQUE4QztRQVp6RSxZQUFPLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDakQsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFSixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLFVBQUssR0FBRyxNQUFNLENBQUMs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SUFDeEIsQ0FBQztJQUVELHVCQUF1QixDQUFDLFVBQWtCO1FBQ3hDLElBQUksT0FBTyxHQUFHLFVBQVUsVUFBVSxhQUFhLENBQUM7UUFDaEQsSUFBSSxVQUFVLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0IsT0FBTztnQkFDTCx3TEFBd0wsQ0FBQztRQUM3TCxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQ3RFLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQzdCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUFDLEdBQVc7UUFDOUIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OEdBN0ZVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlFQUh0QixDQUFDLG1CQUFtQixDQUFDLDBCQUx0Qjs7OztHQUlULDJEQUVTLFlBQVk7OzJGQUVYLHNCQUFzQjtrQkFWbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4Qjs7MEJBZ0JjLFFBQVE7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgaXNEZXZNb2RlLCBPbkluaXQsIE9wdGlvbmFsLCBTa2lwU2VsZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZUxheW91dFR5cGUgfSBmcm9tICcuLi9lbnVtcy9jb21tb24nO1xyXG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBSZXBsYWNlYWJsZUNvbXBvbmVudHMgfSBmcm9tICcuLi9tb2RlbHMvcmVwbGFjZWFibGUtY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlQ29tcG9uZW50c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXBsYWNlYWJsZS1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXJFdmVudHMgfSBmcm9tICcuLi9zZXJ2aWNlcy9yb3V0ZXItZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcm91dGVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmaW5kUm91dGUsIGdldFJvdXRlUGF0aCB9IGZyb20gJy4uL3V0aWxzL3JvdXRlLXV0aWxzJztcclxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuLi91dGlscy90cmVlLXV0aWxzJztcclxuaW1wb3J0IHsgRFlOQU1JQ19MQVlPVVRTX1RPS0VOIH0gZnJvbSAnLi4vdG9rZW5zL2R5bmFtaWMtbGF5b3V0LnRva2VuJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtZHluYW1pYy1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICBAaWYgKGlzTGF5b3V0VmlzaWJsZSkge1xyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ0NvbXBvbmVudE91dGxldF09XCJsYXlvdXRcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0xheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbGF5b3V0PzogVHlwZTxhbnk+O1xyXG4gIGxheW91dEtleT86IGVMYXlvdXRUeXBlO1xyXG4gIHJlYWRvbmx5IGxheW91dHMgPSBpbmplY3QoRFlOQU1JQ19MQVlPVVRTX1RPS0VOKTtcclxuICBpc0xheW91dFZpc2libGUgPSB0cnVlO1xyXG5cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVzID0gaW5qZWN0KFJvdXRlc1NlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBsb2NhbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSByZXBsYWNlYWJsZUNvbXBvbmVudHMgPSBpbmplY3QoUmVwbGFjZWFibGVDb21wb25lbnRzU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IGluamVjdChTdWJzY3JpcHRpb25TZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyRXZlbnRzID0gaW5qZWN0KFJvdXRlckV2ZW50cyk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudmlyb25tZW50ID0gaW5qZWN0KEVudmlyb25tZW50U2VydmljZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGR5bmFtaWNMYXlvdXRDb21wb25lbnQ6IER5bmFtaWNMYXlvdXRDb21wb25lbnQpIHtcclxuICAgIGlmIChkeW5hbWljTGF5b3V0Q29tcG9uZW50KSB7XHJcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkgY29uc29sZS53YXJuKCdEeW5hbWljTGF5b3V0Q29tcG9uZW50IG11c3QgYmUgdXNlZCBvbmx5IGluIEFwcENvbXBvbmVudC4nKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja0xheW91dE9uTmF2aWdhdGlvbkVuZCgpO1xyXG4gICAgdGhpcy5saXN0ZW5Ub0xhbmd1YWdlQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmxheW91dCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgeyBvQXV0aENvbmZpZyB9ID0gdGhpcy5lbnZpcm9ubWVudC5nZXRFbnZpcm9ubWVudCgpO1xyXG4gICAgaWYgKG9BdXRoQ29uZmlnLnJlc3BvbnNlVHlwZSA9PT0gJ2NvZGUnKSB7XHJcbiAgICAgIHRoaXMuZ2V0TGF5b3V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrTGF5b3V0T25OYXZpZ2F0aW9uRW5kKCkge1xyXG4gICAgY29uc3QgbmF2aWdhdGlvbkVuZCQgPSB0aGlzLnJvdXRlckV2ZW50cy5nZXROYXZpZ2F0aW9uRXZlbnRzKCdFbmQnKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZE9uZShuYXZpZ2F0aW9uRW5kJCwgKCkgPT4gdGhpcy5nZXRMYXlvdXQoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExheW91dCgpIHtcclxuICAgIGxldCBleHBlY3RlZExheW91dCA9IHRoaXMuZ2V0RXh0cmFjdGVkTGF5b3V0KCk7XHJcblxyXG4gICAgaWYgKCFleHBlY3RlZExheW91dCkgZXhwZWN0ZWRMYXlvdXQgPSBlTGF5b3V0VHlwZS5lbXB0eTtcclxuXHJcbiAgICBpZiAodGhpcy5sYXlvdXRLZXkgPT09IGV4cGVjdGVkTGF5b3V0KSByZXR1cm47XHJcblxyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5sYXlvdXRzLmdldChleHBlY3RlZExheW91dCk7XHJcbiAgICBpZiAoa2V5KSB7XHJcbiAgICAgIHRoaXMubGF5b3V0ID0gdGhpcy5nZXRDb21wb25lbnQoa2V5KT8uY29tcG9uZW50O1xyXG4gICAgICB0aGlzLmxheW91dEtleSA9IGV4cGVjdGVkTGF5b3V0O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmxheW91dCkge1xyXG4gICAgICB0aGlzLnNob3dMYXlvdXROb3RGb3VuZEVycm9yKGV4cGVjdGVkTGF5b3V0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXh0cmFjdGVkTGF5b3V0KCkge1xyXG4gICAgY29uc3Qgcm91dGVEYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhIHx8IHt9O1xyXG4gICAgbGV0IGV4cGVjdGVkTGF5b3V0ID0gcm91dGVEYXRhWydsYXlvdXQnXSBhcyBlTGF5b3V0VHlwZTtcclxuXHJcbiAgICBsZXQgbm9kZSA9IGZpbmRSb3V0ZSh0aGlzLnJvdXRlcywgZ2V0Um91dGVQYXRoKHRoaXMucm91dGVyKSk7XHJcbiAgICBub2RlID0geyBwYXJlbnQ6IG5vZGUgfSBhcyBUcmVlTm9kZTxBQlAuUm91dGU+O1xyXG5cclxuICAgIHdoaWxlIChub2RlLnBhcmVudCkge1xyXG4gICAgICBub2RlID0gbm9kZS5wYXJlbnQ7XHJcblxyXG4gICAgICBpZiAobm9kZS5sYXlvdXQpIHtcclxuICAgICAgICBleHBlY3RlZExheW91dCA9IG5vZGUubGF5b3V0O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXhwZWN0ZWRMYXlvdXQ7XHJcbiAgfVxyXG5cclxuICBzaG93TGF5b3V0Tm90Rm91bmRFcnJvcihsYXlvdXROYW1lOiBzdHJpbmcpIHtcclxuICAgIGxldCBtZXNzYWdlID0gYExheW91dCAke2xheW91dE5hbWV9IG5vdCBmb3VuZC5gO1xyXG4gICAgaWYgKGxheW91dE5hbWUgPT09ICdhY2NvdW50Jykge1xyXG4gICAgICBtZXNzYWdlID1cclxuICAgICAgICAnQWNjb3VudCBsYXlvdXQgbm90IGZvdW5kLiBQbGVhc2UgY2hlY2sgeW91ciBjb25maWd1cmF0aW9uLiBJZiB5b3UgYXJlIHVzaW5nIExlcHRvblgsIHBsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgYWRkZWQgXCJBY2NvdW50TGF5b3V0TW9kdWxlLmZvclJvb3QoKVwiIHRvIHlvdXIgYXBwLm1vZHVsZSBjb25maWd1cmF0aW9uLic7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxpc3RlblRvTGFuZ3VhZ2VDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGRPbmUodGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmxhbmd1YWdlQ2hhbmdlJCwgKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzTGF5b3V0VmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLmlzTGF5b3V0VmlzaWJsZSA9IHRydWUpLCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb21wb25lbnQoa2V5OiBzdHJpbmcpOiBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnQgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMucmVwbGFjZWFibGVDb21wb25lbnRzLmdldChrZXkpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { ReplaceableComponentsService } from '../services/replaceable-components.service';\nimport { SubscriptionService } from '../services/subscription.service';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"../services/replaceable-components.service\";\nimport * as i3 from \"../services/subscription.service\";\nimport * as i4 from \"@angular/common\";\nexport class ReplaceableRouteContainerComponent {\n    constructor(route, replaceableComponents, subscription) {\n        this.route = route;\n        this.replaceableComponents = replaceableComponents;\n        this.subscription = subscription;\n    }\n    ngOnInit() {\n        this.defaultComponent = this.route.snapshot.data.replaceableComponent.defaultComponent;\n        this.componentKey = this.route.snapshot.data.replaceableComponent.key;\n        const component$ = this.replaceableComponents\n            .get$(this.componentKey)\n            .pipe(distinctUntilChanged());\n        this.subscription.addOne(component$, (res = {}) => {\n            this.externalComponent = res.component;\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ReplaceableRouteContainerComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.ReplaceableComponentsService }, { token: i3.SubscriptionService }], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.7\", type: ReplaceableRouteContainerComponent, isStandalone: true, selector: \"abp-replaceable-route-container\", providers: [SubscriptionService], ngImport: i0, template: `\r\n    <ng-container *ngComponentOutlet=\"externalComponent || defaultComponent\"></ng-container>\r\n  `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i4.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ReplaceableRouteContainerComponent, decorators: [{\n            type: Component,\n            args: [{\n                    selector: 'abp-replaceable-route-container',\n                    template: `\r\n    <ng-container *ngComponentOutlet=\"externalComponent || defaultComponent\"></ng-container>\r\n  `,\n                    providers: [SubscriptionService],\n                    imports: [CommonModule],\n                }]\n        }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i2.ReplaceableComponentsService }, { type: i3.SubscriptionService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZWFibGUtcm91dGUtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9jb21wb25lbnRzL3JlcGxhY2VhYmxlLXJvdXRlLWNvbnRhaW5lci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBVS9DLE1BQU0sT0FBTyxrQ0FBa0M7SUFPN0MsWUFDVSxLQUFxQixFQUNyQixxQkFBbUQsRUFDbkQsWUFBaUM7UUFGakMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUE4QjtRQUNuRCxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7SUFDeEMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDO1FBQ3ZGLElBQUksQ0FBQyxZQUFZLEdBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUMxQixDQUFDLEdBQUcsQ0FBQztRQUVOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxxQkFBcUI7YUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDdEIsVUFBVSxFQUNWLENBQUMsTUFBTSxFQUFnRCxFQUFFLEVBQUU7WUFDekQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDekMsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOzhHQTdCVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyw4RUFIbEMsQ0FBQyxtQkFBbUIsQ0FBQywwQkFIdEI7O0dBRVQsMkRBRVMsWUFBWTs7MkZBRVgsa0NBQWtDO2tCQVI5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlQ29tcG9uZW50cyB9IGZyb20gJy4uL21vZGVscy9yZXBsYWNlYWJsZS1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgUmVwbGFjZWFibGVDb21wb25lbnRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JlcGxhY2VhYmxlLWNvbXBvbmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1yZXBsYWNlYWJsZS1yb3V0ZS1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImV4dGVybmFsQ29tcG9uZW50IHx8IGRlZmF1bHRDb21wb25lbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZGVmYXVsdENvbXBvbmVudCE6IFR5cGU8YW55PjtcclxuXHJcbiAgY29tcG9uZW50S2V5ITogc3RyaW5nO1xyXG5cclxuICBleHRlcm5hbENvbXBvbmVudD86IFR5cGU8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVwbGFjZWFibGVDb21wb25lbnRzOiBSZXBsYWNlYWJsZUNvbXBvbmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZGVmYXVsdENvbXBvbmVudCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5yZXBsYWNlYWJsZUNvbXBvbmVudC5kZWZhdWx0Q29tcG9uZW50O1xyXG4gICAgdGhpcy5jb21wb25lbnRLZXkgPSAoXHJcbiAgICAgIHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5yZXBsYWNlYWJsZUNvbXBvbmVudCBhcyBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUm91dGVEYXRhXHJcbiAgICApLmtleTtcclxuXHJcbiAgICBjb25zdCBjb21wb25lbnQkID0gdGhpcy5yZXBsYWNlYWJsZUNvbXBvbmVudHNcclxuICAgICAgLmdldCQodGhpcy5jb21wb25lbnRLZXkpXHJcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZE9uZShcclxuICAgICAgY29tcG9uZW50JCxcclxuICAgICAgKHJlcyA9IHt9IGFzIFJlcGxhY2VhYmxlQ29tcG9uZW50cy5SZXBsYWNlYWJsZUNvbXBvbmVudCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDb21wb25lbnQgPSByZXMuY29tcG9uZW50O1xyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19","import { Component } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class RouterOutletComponent {\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RouterOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.7\", type: RouterOutletComponent, isStandalone: true, selector: \"abp-router-outlet\", ngImport: i0, template: ` <router-outlet></router-outlet> `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i1.RouterOutlet, selector: \"router-outlet\", inputs: [\"name\", \"routerOutletData\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RouterOutletComponent, decorators: [{\n            type: Component,\n            args: [{\n                    selector: 'abp-router-outlet',\n                    template: ` <router-outlet></router-outlet> `,\n                    imports: [RouterModule],\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLW91dGxldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29tcG9uZW50cy9yb3V0ZXItb3V0bGV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBTy9DLE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjtrR0FBckIscUJBQXFCLDZFQUh0QixtQ0FBbUMsMkRBQ25DLFlBQVk7OzJGQUVYLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1yb3V0ZXItb3V0bGV0JyxcclxuICB0ZW1wbGF0ZTogYCA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+IGAsXHJcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXJPdXRsZXRDb21wb25lbnQge31cclxuIl19","// Different locales from .NET\n// Key is .NET locale, value is Angular locale\nexport const differentLocales = {\n    aa: 'en',\n    'aa-DJ': 'en',\n    'aa-ER': 'en',\n    'aa-ET': 'en',\n    'af-ZA': 'af',\n    'agq-CM': 'agq',\n    'ak-GH': 'ak',\n    'am-ET': 'am',\n    'ar-001': 'ar',\n    arn: 'en',\n    'arn-CL': 'en',\n    'as-IN': 'as',\n    'asa-TZ': 'asa',\n    'ast-ES': 'ast',\n    'az-Cyrl-AZ': 'az-Cyrl',\n    'az-Latn-AZ': 'az-Latn',\n    ba: 'ru',\n    'ba-RU': 'ru',\n    'bas-CM': 'bas',\n    'be-BY': 'be',\n    'bem-ZM': 'bem',\n    'bez-TZ': 'bez',\n    'bg-BG': 'bg',\n    bin: 'en',\n    'bin-NG': 'en',\n    'bm-Latn': 'bm',\n    'bm-Latn-ML': 'bm',\n    'bn-BD': 'bn',\n    'bo-CN': 'bo',\n    'br-FR': 'br',\n    'brx-IN': 'brx',\n    'bs-Cyrl-BA': 'bs-Cyrl',\n    'bs-Latn-BA': 'bs-Latn',\n    byn: 'en',\n    'byn-ER': 'en',\n    'ca-ES': 'ca',\n    'ca-ES-valencia': 'ca-ES-VALENCIA',\n    'ce-RU': 'ce',\n    'cgg-UG': 'cgg',\n    'chr-Cher': 'chr',\n    'chr-Cher-US': 'chr',\n    co: 'en',\n    'co-FR': 'fr',\n    'cs-CZ': 'cs',\n    'cu-RU': 'cu',\n    'cy-GB': 'cy',\n    'da-DK': 'da',\n    'dav-KE': 'dav',\n    'de-DE': 'de',\n    'dje-NE': 'dje',\n    'dsb-DE': 'dsb',\n    'dua-CM': 'dua',\n    dv: 'en',\n    'dv-MV': 'en',\n    'dyo-SN': 'dyo',\n    'dz-BT': 'dz',\n    'ebu-KE': 'ebu',\n    'ee-GH': 'ee',\n    'el-GR': 'el',\n    'en-029': 'en',\n    'en-ID': 'en',\n    'en-US': 'en',\n    'eo-001': 'en',\n    'es-ES': 'es',\n    'et-EE': 'et',\n    'eu-ES': 'eu',\n    'ewo-CM': 'ewo',\n    'fa-IR': 'fa',\n    'ff-Latn-SN': 'ff-Latn',\n    'ff-NG': 'ff',\n    'fi-FI': 'fi',\n    'fil-PH': 'fil',\n    'fo-FO': 'fo',\n    'fr-029': 'fr',\n    'fr-FR': 'fr',\n    'fur-IT': 'fur',\n    'fy-NL': 'fy',\n    'ga-IE': 'ga',\n    'gd-GB': 'gd',\n    'gl-ES': 'gl',\n    gn: 'en',\n    'gn-PY': 'en',\n    'gsw-CH': 'gsw',\n    'gu-IN': 'gu',\n    'guz-KE': 'guz',\n    'gv-IM': 'gv',\n    'ha-Latn': 'ha',\n    'ha-Latn-GH': 'ha-GH',\n    'ha-Latn-NE': 'ha-NE',\n    'ha-Latn-NG': 'ha',\n    'haw-US': 'haw',\n    'he-IL': 'he',\n    'hi-IN': 'hi',\n    'hr-HR': 'hr',\n    'hsb-DE': 'hsb',\n    'hu-HU': 'hu',\n    'hy-AM': 'hy',\n    'ia-001': 'ia',\n    'ia-FR': 'ia',\n    ibb: 'en',\n    'ibb-NG': 'en',\n    'id-ID': 'id',\n    'ig-NG': 'ig',\n    'ii-CN': 'ii',\n    'is-IS': 'is',\n    'it-IT': 'it',\n    iu: 'en',\n    'iu-Cans': 'en',\n    'iu-Cans-CA': 'en',\n    'iu-Latn': 'en',\n    'iu-Latn-CA': 'en',\n    'ja-JP': 'ja',\n    'jgo-CM': 'jgo',\n    'jmc-TZ': 'jmc',\n    'jv-Java': 'jv',\n    'jv-Java-ID': 'jv',\n    'jv-Latn': 'jv',\n    'jv-Latn-ID': 'jv',\n    'ka-GE': 'ka',\n    'kab-DZ': 'kab',\n    'kam-KE': 'kam',\n    'kde-TZ': 'kde',\n    'kea-CV': 'kea',\n    'khq-ML': 'khq',\n    'ki-KE': 'ki',\n    'kk-KZ': 'kk',\n    'kkj-CM': 'kkj',\n    'kl-GL': 'kl',\n    'kln-KE': 'kln',\n    'km-KH': 'km',\n    'kn-IN': 'kn',\n    'ko-KR': 'ko',\n    'kok-IN': 'kok',\n    kr: 'en',\n    'kr-NG': 'en',\n    'ks-Arab': 'ks',\n    'ks-Arab-IN': 'ks',\n    'ks-Deva': 'ks',\n    'ks-Deva-IN': 'ks',\n    'ksb-TZ': 'ksb',\n    'ksf-CM': 'ksf',\n    'ksh-DE': 'ksh',\n    'ku-Arab': 'ku',\n    'ku-Arab-IQ': 'ku',\n    'ku-Arab-IR': 'ku',\n    'kw-GB': 'kw',\n    'ky-KG': 'ky',\n    la: 'en',\n    'la-001': 'en',\n    'lag-TZ': 'lag',\n    'lb-LU': 'lb',\n    'lg-UG': 'lg',\n    'lkt-US': 'lkt',\n    'ln-CD': 'ln',\n    'lo-LA': 'lo',\n    'lrc-IR': 'lrc',\n    'lt-LT': 'lt',\n    'lu-CD': 'lu',\n    'luo-KE': 'luo',\n    'luy-KE': 'luy',\n    'lv-LV': 'lv',\n    'mas-KE': 'mas',\n    'mer-KE': 'mer',\n    'mfe-MU': 'mfe',\n    'mg-MG': 'mg',\n    'mgh-MZ': 'mgh',\n    'mgo-CM': 'mgo',\n    'mi-NZ': 'mi',\n    'mk-MK': 'mk',\n    'ml-IN': 'ml',\n    'mn-Cyrl': 'mn',\n    'mn-MN': 'mn',\n    'mn-Mong': 'mn',\n    'mn-Mong-CN': 'mn',\n    'mn-Mong-MN': 'mn',\n    mni: 'en',\n    'mni-IN': 'en',\n    moh: 'en',\n    'moh-CA': 'en',\n    'mr-IN': 'mr',\n    'ms-MY': 'ms',\n    'mt-MT': 'mt',\n    'mua-CM': 'mua',\n    'my-MM': 'my',\n    'mzn-IR': 'mzn',\n    'naq-NA': 'naq',\n    'nb-NO': 'nb',\n    'nd-ZW': 'nd',\n    'ne-NP': 'ne',\n    'nl-NL': 'nl',\n    'nmg-CM': 'ngm',\n    'nn-NO': 'nn',\n    'nnh-CM': 'nnh',\n    no: 'en',\n    nqo: 'en',\n    'nqo-GN': 'en',\n    nr: 'en',\n    'nr-ZA': 'en',\n    nso: 'en',\n    'nso-ZA': 'en',\n    'nus-SS': 'nus',\n    'nyn-UG': 'nyn',\n    oc: 'en',\n    'oc-FR': 'fr',\n    'om-ET': 'om',\n    'or-IN': 'or',\n    'os-GE': 'os',\n    'pa-Arab-PK': 'pa-Arab',\n    'pa-IN': 'pa',\n    pap: 'en',\n    'pap-029': 'en',\n    'pl-PL': 'pl',\n    'prg-001': 'prg',\n    prs: 'en',\n    'prs-AF': 'en',\n    'ps-AF': 'ps',\n    'pt-BR': 'pt',\n    quc: 'en',\n    'quc-Latn': 'en',\n    'quc-Latn-GT': 'en',\n    quz: 'en',\n    'quz-BO': 'en',\n    'quz-EC': 'en',\n    'quz-PE': 'en',\n    'rm-CH': 'rm',\n    'rn-BI': 'rn',\n    'ro-RO': 'ro',\n    'rof-TZ': 'rof',\n    'ru-RU': 'ru',\n    'rw-RW': 'rw',\n    'rwk-TZ': 'rwk',\n    sa: 'en',\n    'sa-IN': 'en',\n    'sah-RU': 'sah',\n    'saq-KE': 'saq',\n    'sbp-TZ': 'en',\n    'sd-Arab': 'sd',\n    'sd-Arab-PK': 'sd',\n    'sd-Deva': 'sd',\n    'sd-Deva-IN': 'sd',\n    'se-NO': 'se',\n    'seh-MZ': 'seh',\n    'ses-ML': 'ses',\n    'sg-CF': 'sg',\n    'shi-Latn-MA': 'shi-Latn',\n    'shi-Tfng-MA': 'shi-Tfng',\n    'si-LK': 'si',\n    'sk-SK': 'sk',\n    'sl-SI': 'sl',\n    sma: 'en',\n    'sma-NO': 'en',\n    'sma-SE': 'en',\n    smj: 'en',\n    'smj-NO': 'en',\n    'smj-SE': 'en',\n    'smn-FI': 'en',\n    sms: 'en',\n    'sms-FI': 'en',\n    'sn-Latn': 'sn',\n    'sn-Latn-ZW': 'sn',\n    'so-SO': 'so',\n    'sq-AL': 'so',\n    'sr-Cyrl-RS': 'sr-Cryl',\n    'sr-Latn-RS': 'sr-Latn',\n    ss: 'en',\n    'ss-SZ': 'en',\n    'ss-ZA': 'en',\n    ssy: 'en',\n    'ssy-ER': 'en',\n    st: 'en',\n    'st-LS': 'en',\n    'st-ZA': 'en',\n    'sv-SE': 'sv',\n    'sw-TZ': 'sw',\n    syr: 'en',\n    'syr-SY': 'en',\n    'ta-IN': 'ta',\n    'te-IN': 'te',\n    'teo-UG': 'teo',\n    'tg-Cyrl': 'tg',\n    'tg-Cyrl-TJ': 'tg',\n    'th-TH': 'th',\n    'ti-ET': 'ti',\n    tig: 'en',\n    'tig-ER': 'en',\n    'tk-TM': 'tk',\n    tn: 'en',\n    'tn-BW': 'en',\n    'tn-ZA': 'en',\n    'to-TO': 'to',\n    'tr-TR': 'tr',\n    ts: 'en',\n    'ts-ZA': 'en',\n    'tt-RU': 'tt',\n    'twq-NE': 'twq',\n    'tzm-Arab': 'tzm',\n    'tzm-Arab-MA': 'tzm',\n    'tzm-Latn': 'tzm',\n    'tzm-Latn-DZ': 'tzm',\n    'tzm-Latn-MA': 'tzm',\n    'tzm-Tfng': 'tzm',\n    'tzm-Tfng-MA': 'tzm',\n    'ug-CN': 'ug',\n    'uk-UA': 'uk',\n    'ur-PK': 'ur',\n    'uz-Arab-AF': 'uz-Arab',\n    'uz-Cyrl-UZ': 'uz-Cyrl',\n    'uz-Latn-UZ': 'uz-Latn',\n    'vai-Latn-LR': 'vai-Latn',\n    'vai-Vaii-LR': 'vai-Vaii',\n    ve: 'en',\n    've-ZA': 'en',\n    'vi-VN': 'vi',\n    'vo-001': 'vo',\n    'vun-TZ': 'vun',\n    'wae-CH': 'wae',\n    wal: 'en',\n    'wal-ET': 'en',\n    'wo-SN': 'wo',\n    'xh-ZA': 'xh',\n    'xog-UG': 'xog',\n    'yav-CM': 'yav',\n    'yi-001': 'yi',\n    'yo-NG': 'yo',\n    'zgh-Tfng': 'zgh',\n    'zgh-Tfng-MA': 'zgh',\n    'zh-CN': 'zh',\n    'zh-HK': 'zh',\n    'zh-MO': 'zh',\n    'zh-SG': 'zh',\n    'zh-TW': 'zh',\n    'zu-ZA': 'zu',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZmVyZW50LWxvY2FsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29uc3RhbnRzL2RpZmZlcmVudC1sb2NhbGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhCQUE4QjtBQUM5Qiw4Q0FBOEM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsRUFBRSxFQUFFLElBQUk7SUFDUixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxJQUFJO0lBQ2QsR0FBRyxFQUFFLElBQUk7SUFDVCxRQUFRLEVBQUUsSUFBSTtJQUNkLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsR0FBRyxFQUFFLElBQUk7SUFDVCxRQUFRLEVBQUUsSUFBSTtJQUNkLFNBQVMsRUFBRSxJQUFJO0lBQ2YsWUFBWSxFQUFFLElBQUk7SUFDbEIsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLEtBQUs7SUFDZixZQUFZLEVBQUUsU0FBUztJQUN2QixZQUFZLEVBQUUsU0FBUztJQUN2QixHQUFH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LEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLEtBQUs7SUFDZixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsS0FBSztJQUNmLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsWUFBWSxFQUFFLElBQUk7SUFDbEIsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLFFBQVEsRUFBRSxLQUFLO0lBQ2YsU0FBUyxFQUFFLElBQUk7SUFDZixZQUFZLEVBQUUsSUFBSTtJQUNsQixZQUFZLEVBQUUsSUFBSTtJQUNsQixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsRUFBRSxFQUFFLElBQUk7SUFDUixRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsUUFBUSxFQUFFLEtBQUs7SUFDZixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFNBQVMsRUFBRSxJQUFJO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixTQUFTLEVBQUUsSUFBSTtJQUNmLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLEdBQUcsRUFBRSxJQUFJO0lBQ1QsUUFBUSxFQUFFLElBQUk7SUFDZCxHQUFHLEVBQUUsSUFBSTtJQUNULFFBQVEsRUFBRSxJQUFJO0lBQ2QsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLEtBQUs7SUFDZixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsUUFBUSxFQUFFLEtBQUs7SUFDZixPQUFPLEVBQUUsSUFBSTtJQUViLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsS0FBSztJQUNmLEVBQUUsRUFBRSxJQUFJO0lBQ1IsR0FBRyxFQUFFLElBQUk7SUFDVCxRQUFRLEVBQUUsSUFBSTtJQUNkLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixHQUFHLEVBQUUsSUFBSTtJQUNULFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixZQUFZLEVBQUUsU0FBUztJQUN2QixPQUFPLEVBQUUsSUFBSTtJQUNiLEdBQUcsRUFBRSxJQUFJO0lBQ1QsU0FBUyxFQUFFLElBQUk7SUFDZixPQUFPLEVBQUUsSUFBSTtJQUNiLFNB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RUFBRSxLQUFLO0lBQ3BCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGFBQWEsRUFBRSxVQUFVO0lBQ3pCLGFBQWEsRUFBRSxVQUFVO0lBQ3pCLEVBQUUsRUFBRSxJQUFJO0lBQ1IsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLFFBQVEsRUFBRSxJQUFJO0lBQ2QsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLEdBQUcsRUFBRSxJQUFJO0lBQ1QsUUFBUSxFQUFFLElBQUk7SUFDZCxPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLEtBQUs7SUFDZixRQUFRLEVBQUUsS0FBSztJQUNmLFFBQVEsRUFBRSxJQUFJO0lBQ2QsT0FBTyxFQUFFLElBQUk7SUFDYixVQUFVLEVBQUUsS0FBSztJQUNqQixhQUFhLEVBQUUsS0FBSztJQUNwQixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7SUFDYixPQUFPLEVBQUUsSUFBSTtJQUNiLE9BQU8sRUFBRSxJQUFJO0lBQ2IsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRGlmZmVyZW50IGxvY2FsZXMgZnJvbSAuTkVUXHJcbi8vIEtleSBpcyAuTkVUIGxvY2FsZSwgdmFsdWUgaXMgQW5ndWxhciBsb2NhbGVcclxuXHJcbmV4cG9ydCBjb25zdCBkaWZmZXJlbnRMb2NhbGVzID0ge1xyXG4gIGFhOiAnZW4nLFxyXG4gICdhYS1ESic6ICdlbicsXHJcbiAgJ2FhLUVSJzogJ2VuJyxcclxuICAnYWEtRVQnOiAnZW4nLFxyXG4gICdhZi1aQSc6ICdhZicsXHJcbiAgJ2FncS1DTSc6ICdhZ3EnLFxyXG4gICdhay1HSCc6ICdhaycsXHJcbiAgJ2FtLUVUJzogJ2FtJyxcclxuICAnYXItMDAxJzogJ2FyJyxcclxuICBhcm46ICdlbicsXHJcbiAgJ2Fybi1DTCc6ICdlbicsXHJcbiAgJ2FzLUlOJzogJ2FzJyxcclxuICAnYXNhLVRaJzogJ2FzYScsXHJcbiAgJ2FzdC1FUyc6ICdhc3QnLFxyXG4gICdhei1DeXJsLUFaJzogJ2F6LUN5cmwnLFxyXG4gICdhei1MYXRuLUFaJzogJ2F6LUxhdG4nLFxyXG4gIGJhOiAncnUnLFxyXG4gICdiYS1SVSc6ICdydScsXHJcbiAgJ2Jhcy1DTSc6ICdiYXMnLFxyXG4gICdiZS1CWSc6ICdiZScsXHJcbiAgJ2JlbS1aTSc6ICdiZW0nLFxyXG4gICdiZXotVFonOiAnYmV6JyxcclxuICAnYmctQkcnOiAnYmcnLFxyXG4gIGJpbjogJ2VuJyxcclxuICAnYmluLU5HJzogJ2VuJyxcclxuICAnYm0tTGF0bic6ICdibScsXHJcbiAgJ2JtLUxhdG4tTUwnOiAnYm0nLFxyXG4gICdibi1CRCc6ICdibicsXHJcbiAgJ2JvLUNOJzogJ2JvJyxcclxuICAnYnItRlInOiAnYnInLFxyXG4gICdicngtSU4nOiAnYnJ4JyxcclxuICAnYnMtQ3lybC1CQSc6ICdicy1DeXJsJyxcclxuICAnYnMtTGF0bi1CQSc6ICdicy1MYXRuJyxcclxuICBieW46ICdlbicsXHJcbiAgJ2J5bi1FUic6ICdlbicsXHJcbiAgJ2NhLUVTJzogJ2NhJyxcclxuICAnY2EtRVMtdmFsZW5jaWEnOiAnY2EtRVMtVkFMRU5DSUEnLFxyXG4gICdjZS1SVSc6ICdjZScsXHJcbiAgJ2NnZy1VRyc6ICdjZ2cnLFxyXG4gICdjaHItQ2hlcic6ICdjaHInLFxyXG4gICdjaHItQ2hlci1VUyc6ICdjaHInLFxyXG4gIGNvOiAnZW4nLFxyXG4gICdjby1GUic6ICdmcicsXHJcbiAgJ2NzLUNaJzogJ2NzJyxcclxuICAnY3UtUlUnOiAnY3UnLFxyXG4gICdjeS1HQic6ICdjeScsXHJcbiAgJ2RhLURLJzogJ2RhJyxcclxuICAnZGF2LUtFJzogJ2RhdicsXHJcbiAgJ2RlLURFJzogJ2RlJyxcclxuICAnZGplLU5FJzogJ2RqZScsXHJcbiAgJ2RzYi1ERSc6ICdkc2InLFxyXG4gICdkdWEtQ00nOiAnZHVhJyxcclxuICBkdjogJ2VuJyxcclxuICAnZHYtTVYnOiAnZW4nLFxyXG4gICdkeW8tU04nOiAnZHlvJyxcclxuICAnZHotQlQnOiAnZHonLFxyXG4gICdlYnUtS0UnOiAnZWJ1JyxcclxuICAnZWUtR0gnOiAnZWUnLFxyXG4gICdlbC1HUic6ICdlbCcsXHJcbiAgJ2VuLTAyOSc6ICdlbicsXHJcbiAgJ2VuLUlEJzogJ2VuJyxcclxuICAnZW4tVVMnOiAnZW4nLFxyXG4gICdlby0wMDEnOiAnZW4nLFxyXG4gICdlcy1FUyc6ICdlcycsXHJcbiAgJ2V0LUVFJzogJ2V0JyxcclxuICAnZXUtRVMnOiAnZXUnLFxyXG4gICdld28tQ00nOiAnZXdvJyxcclxuICAnZmEtSVInOiAnZmEnLFxyXG4gICdmZi1MYXRuLVNOJzogJ2ZmLUxhdG4nLFxyXG4gICdmZi1ORyc6ICdmZicsXHJcbiAgJ2ZpLUZJJzogJ2ZpJyxcclxuICAnZmlsLVBIJzogJ2ZpbCcsXHJcbiAgJ2ZvLUZPJzogJ2ZvJyxcclxuICAnZnItMDI5JzogJ2ZyJyxcclxuICAnZnItRlInOiAnZnInLFxyXG4gICdmdXItSVQnOiAnZnVyJyxcclxuICAnZnktTkwnOiAnZnknLFxyXG4gICdnYS1JRSc6ICdnYScsXHJcbiAgJ2dkLUdCJzogJ2dkJyxcclxuICAnZ2wtRVMnOiAnZ2wnLFxyXG4gIGduOiAnZW4nLFxyXG4gICdnbi1QWSc6ICdlbicsXHJcbiAgJ2dzdy1DSCc6ICdnc3cnLFxyXG4gICdndS1JTic6ICdndScsXHJcbiAgJ2d1ei1LRSc6ICdndXonLFxyXG4gICdndi1JTSc6ICdndicsXHJcbiAgJ2hhLUxhdG4nOiAnaGEnLFxyXG4gICdoYS1MYXRuLUdIJzogJ2hhLUdIJyxcclxuICAnaGEtTGF0bi1ORSc6ICdoYS1ORScsXHJcbiAgJ2hhLUxhdG4tTkcnOiAnaGEnLFxyXG4gICdoYXctVVMnOiAnaGF3JyxcclxuICAnaGUtSUwnOiAnaGUnLFxyXG4gICdoaS1JTic6ICdoaScsXHJcbiAgJ2hyLUhSJzogJ2hyJyxcclxuICAnaHNiLURFJzogJ2hzYicsXHJcbiAgJ2h1LUhVJzogJ2h1JyxcclxuICAnaHktQU0nOiAnaHknLFxyXG4gICdpYS0wMDEnOiAnaWEnLFxyXG4gICdpYS1GUic6ICdpYScsXHJcbiAgaWJiOiAnZW4nLFxyXG4gICdpYmItTkcnOiAnZW4nLFxyXG4gICdpZC1JRCc6ICdpZCcsXHJcbiAgJ2lnLU5HJzogJ2lnJyxcclxuICAnaWktQ04nOiAnaWknLFxyXG4gICdpcy1JUyc6ICdpcycsXHJcbiAgJ2l0LUlUJzogJ2l0JyxcclxuICBpdTogJ2VuJyxcclxuICAnaXUtQ2Fucyc6ICdlbicsXHJcbiAgJ2l1LUNhbnMtQ0EnOiAnZW4nLFxyXG4gICdpdS1MYXRuJzogJ2VuJyxcclxuICAnaXUtTGF0bi1DQSc6ICdlbicsXHJcbiAgJ2phLUpQJzogJ2phJyxcclxuICAnamdvLUNNJzogJ2pnbycsXHJcbiAgJ2ptYy1UWic6ICdqbWMnLFxyXG4gICdqdi1KYXZhJzogJ2p2JyxcclxuICAnanYtSmF2YS1JRCc6ICdqdicsXHJcbiAgJ2p2LUxhdG4nOiAnanYnLFxyXG4gICdqdi1MYXRuLUlEJzogJ2p2JyxcclxuICAna2EtR0UnOiAna2EnLFxyXG4gICdrYWItRFonOiAna2FiJyxcclxuICAna2FtLUtFJzogJ2thbScsXHJcbiAgJ2tkZS1UWic6ICdrZGUnLFxyXG4gICdrZWEtQ1YnOiAna2VhJyxcclxuICAna2hxLU1MJzogJ2tocScsXHJcbiAgJ2tpLUtFJzogJ2tpJyxcclxuICAna2stS1onOiAna2snLFxyXG4gICdra2otQ00nOiAna2tqJyxcclxuICAna2wtR0wnOiAna2wnLFxyXG4gICdrbG4tS0UnOiAna2xuJyxcclxuICAna20tS0gnOiAna20nLFxyXG4gICdrbi1JTic6ICdrbicsXHJcbiAgJ2tvLUtSJzogJ2tvJyxcclxuICAna29rLUlOJzogJ2tvaycsXHJcbiAga3I6ICdlbicsXHJcbiAgJ2tyLU5HJzogJ2VuJyxcclxuICAna3MtQXJhYic6ICdrcycsXHJcbiAgJ2tzLUFyYWItSU4nOiAna3MnLFxyXG4gICdrcy1EZXZhJzogJ2tzJyxcclxuICAna3MtRGV2YS1JTic6ICdrcycsXHJcbiAgJ2tzYi1UWic6ICdrc2InLFxyXG4gICdrc2YtQ00nOiAna3NmJyxcclxuICAna3NoLURFJzogJ2tzaCcsXHJcbiAgJ2t1LUFyYWInOiAna3UnLFxyXG4gICdrdS1BcmFiLUlRJzogJ2t1JyxcclxuICAna3UtQXJhYi1JUic6ICdrdScsXHJcbiAgJ2t3LUdCJzogJ2t3JyxcclxuICAna3ktS0cnOiAna3knLFxyXG4gIGxhOiAnZW4nLFxyXG4gICdsYS0wMDEnOiAnZW4nLFxyXG4gICdsYWctVFonOiAnbGFnJyxcclxuICAnbGItTFUnOiAnbGInLFxyXG4gICdsZy1VRyc6ICdsZycsXHJcbiAgJ2xrdC1VUyc6ICdsa3QnLFxyXG4gICdsbi1DRCc6ICdsbicsXHJcbiAgJ2xvLUxBJzogJ2xvJyxcclxuICAnbHJjLUlSJzogJ2xyYycsXHJcbiAgJ2x0LUxUJzogJ2x0JyxcclxuICAnbHUtQ0QnOiAnbHUnLFxyXG4gICdsdW8tS0UnOiAnbHVvJyxcclxuICAnbHV5LUtFJzogJ2x1eScsXHJcbiAgJ2x2LUxWJzogJ2x2JyxcclxuICAnbWFzLUtFJzogJ21hcycsXHJcbiAgJ21lci1LRSc6ICdtZXInLFxyXG4gICdtZmUtTVUnOiAnbWZlJyxcclxuICAnbWctTUcnOiAnbWcnLFxyXG4gICdtZ2gtTVonOiAnbWdoJyxcclxuICAnbWdvLUNNJzogJ21nbycsXHJcbiAgJ21pLU5aJzogJ21pJyxcclxuICAnbWstTUsnOiAnbWsnLFxyXG4gICdtbC1JTic6ICdtbCcsXHJcbiAgJ21uLUN5cmwnOiAnbW4nLFxyXG4gICdtbi1NTic6ICdtbicsXHJcbiAgJ21uLU1vbmcnOiAnbW4nLFxyXG4gICdtbi1Nb25nLUNOJzogJ21uJyxcclxuICAnbW4tTW9uZy1NTic6ICdtbicsXHJcbiAgbW5pOiAnZW4nLFxyXG4gICdtbmktSU4nOiAnZW4nLFxyXG4gIG1vaDogJ2VuJyxcclxuICAnbW9oLUNBJzogJ2VuJyxcclxuICAnbXItSU4nOiAnbXInLFxyXG4gICdtcy1NWSc6ICdtcycsXHJcbiAgJ210LU1UJzogJ210JyxcclxuICAnbXVhLUNNJzogJ211YScsXHJcbiAgJ215LU1NJzogJ215JyxcclxuICAnbXpuLUlSJzogJ216bicsXHJcbiAgJ25hcS1OQSc6ICduYXEnLFxyXG4gICduYi1OTyc6ICduYicsXHJcblxyXG4gICduZC1aVyc6ICduZCcsXHJcbiAgJ25lLU5QJzogJ25lJyxcclxuICAnbmwtTkwnOiAnbmwnLFxyXG4gICdubWctQ00nOiAnbmdtJyxcclxuICAnbm4tTk8nOiAnbm4nLFxyXG4gICdubmgtQ00nOiAnbm5oJyxcclxuICBubzogJ2VuJyxcclxuICBucW86ICdlbicsXHJcbiAgJ25xby1HTic6ICdlbicsXHJcbiAgbnI6ICdlbicsXHJcbiAgJ25yLVpBJzogJ2VuJyxcclxuICBuc286ICdlbicsXHJcbiAgJ25zby1aQSc6ICdlbicsXHJcbiAgJ251cy1TUyc6ICdudXMnLFxyXG4gICdueW4tVUcnOiAnbnluJyxcclxuICBvYzogJ2VuJyxcclxuICAnb2MtRlInOiAnZnInLFxyXG4gICdvbS1FVCc6ICdvbScsXHJcbiAgJ29yLUlOJzogJ29yJyxcclxuICAnb3MtR0UnOiAnb3MnLFxyXG4gICdwYS1BcmFiLVBLJzogJ3BhLUFyYWInLFxyXG4gICdwYS1JTic6ICdwYScsXHJcbiAgcGFwOiAnZW4nLFxyXG4gICdwYXAtMDI5JzogJ2VuJyxcclxuICAncGwtUEwnOiAncGwnLFxyXG4gICdwcmctMDAxJzogJ3ByZycsXHJcbiAgcHJzOiAnZW4nLFxyXG4gICdwcnMtQUYnOiAnZW4nLFxyXG4gICdwcy1BRic6ICdwcycsXHJcbiAgJ3B0LUJSJzogJ3B0JyxcclxuICBxdWM6ICdlbicsXHJcbiAgJ3F1Yy1MYXRuJzogJ2VuJyxcclxuICAncXVjLUxhdG4tR1QnOiAnZW4nLFxyXG4gIHF1ejogJ2VuJyxcclxuICAncXV6LUJPJzogJ2VuJyxcclxuICAncXV6LUVDJzogJ2VuJyxcclxuICAncXV6LVBFJzogJ2VuJyxcclxuICAncm0tQ0gnOiAncm0nLFxyXG4gICdybi1CSSc6ICdybicsXHJcbiAgJ3JvLVJPJzogJ3JvJyxcclxuICAncm9mLVRaJzogJ3JvZicsXHJcbiAgJ3J1LVJVJzogJ3J1JyxcclxuICAncnctUlcnOiAncncnLFxyXG4gICdyd2stVFonOiAncndrJyxcclxuICBzYTogJ2VuJyxcclxuICAnc2EtSU4nOiAnZW4nLFxyXG4gICdzYWgtUlUnOiAnc2FoJyxcclxuICAnc2FxLUtFJzogJ3NhcScsXHJcbiAgJ3NicC1UWic6ICdlbicsXHJcbiAgJ3NkLUFyYWInOiAnc2QnLFxyXG4gICdzZC1BcmFiLVBLJzogJ3NkJyxcclxuICAnc2QtRGV2YSc6ICdzZCcsXHJcbiAgJ3NkLURldmEtSU4nOiAnc2QnLFxyXG4gICdzZS1OTyc6ICdzZScsXHJcbiAgJ3NlaC1NWic6ICdzZWgnLFxyXG4gICdzZXMtTUwnOiAnc2VzJyxcclxuICAnc2ctQ0YnOiAnc2cnLFxyXG4gICdzaGktTGF0bi1NQSc6ICdzaGktTGF0bicsXHJcbiAgJ3NoaS1UZm5nLU1BJzogJ3NoaS1UZm5nJyxcclxuICAnc2ktTEsnOiAnc2knLFxyXG4gICdzay1TSyc6ICdzaycsXHJcbiAgJ3NsLVNJJzogJ3NsJyxcclxuICBzbWE6ICdlbicsXHJcbiAgJ3NtYS1OTyc6ICdlbicsXHJcbiAgJ3NtYS1TRSc6ICdlbicsXHJcbiAgc21qOiAnZW4nLFxyXG4gICdzbWotTk8nOiAnZW4nLFxyXG4gICdzbWotU0UnOiAnZW4nLFxyXG4gICdzbW4tRkknOiAnZW4nLFxyXG4gIHNtczogJ2VuJyxcclxuICAnc21zLUZJJzogJ2VuJyxcclxuICAnc24tTGF0bic6ICdzbicsXHJcbiAgJ3NuLUxhdG4tWlcnOiAnc24nLFxyXG4gICdzby1TTyc6ICdzbycsXHJcbiAgJ3NxLUFMJzogJ3NvJyxcclxuICAnc3ItQ3lybC1SUyc6ICdzci1DcnlsJyxcclxuICAnc3ItTGF0bi1SUyc6ICdzci1MYXRuJyxcclxuICBzczogJ2VuJyxcclxuICAnc3MtU1onOiAnZW4nLFxyXG4gICdzcy1aQSc6ICdlbicsXHJcbiAgc3N5OiAnZW4nLFxyXG4gICdzc3ktRVInOiAnZW4nLFxyXG4gIHN0OiAnZW4nLFxyXG4gICdzdC1MUyc6ICdlbicsXHJcbiAgJ3N0LVpBJzogJ2VuJyxcclxuICAnc3YtU0UnOiAnc3YnLFxyXG4gICdzdy1UWic6ICdzdycsXHJcbiAgc3lyOiAnZW4nLFxyXG4gICdzeXItU1knOiAnZW4nLFxyXG4gICd0YS1JTic6ICd0YScsXHJcbiAgJ3RlLUlOJzogJ3RlJyxcclxuICAndGVvLVVHJzogJ3RlbycsXHJcbiAgJ3RnLUN5cmwnOiAndGcnLFxyXG4gICd0Zy1DeXJsLVRKJzogJ3RnJyxcclxuICAndGgtVEgnOiAndGgnLFxyXG4gICd0aS1FVCc6ICd0aScsXHJcbiAgdGlnOiAnZW4nLFxyXG4gICd0aWctRVInOiAnZW4nLFxyXG4gICd0ay1UTSc6ICd0aycsXHJcbiAgdG46ICdlbicsXHJcbiAgJ3RuLUJXJzogJ2VuJyxcclxuICAndG4tWkEnOiAnZW4nLFxyXG4gICd0by1UTyc6ICd0bycsXHJcbiAgJ3RyLVRSJzogJ3RyJyxcclxuICB0czogJ2VuJyxcclxuICAndHMtWkEnOiAnZW4nLFxyXG4gICd0dC1SVSc6ICd0dCcsXHJcbiAgJ3R3cS1ORSc6ICd0d3EnLFxyXG4gICd0em0tQXJhYic6ICd0em0nLFxyXG4gICd0em0tQXJhYi1NQSc6ICd0em0nLFxyXG4gICd0em0tTGF0bic6ICd0em0nLFxyXG4gICd0em0tTGF0bi1EWic6ICd0em0nLFxyXG4gICd0em0tTGF0bi1NQSc6ICd0em0nLFxyXG4gICd0em0tVGZuZyc6ICd0em0nLFxyXG4gICd0em0tVGZuZy1NQSc6ICd0em0nLFxyXG4gICd1Zy1DTic6ICd1ZycsXHJcbiAgJ3VrLVVBJzogJ3VrJyxcclxuICAndXItUEsnOiAndXInLFxyXG4gICd1ei1BcmFiLUFGJzogJ3V6LUFyYWInLFxyXG4gICd1ei1DeXJsLVVaJzogJ3V6LUN5cmwnLFxyXG4gICd1ei1MYXRuLVVaJzogJ3V6LUxhdG4nLFxyXG4gICd2YWktTGF0bi1MUic6ICd2YWktTGF0bicsXHJcbiAgJ3ZhaS1WYWlpLUxSJzogJ3ZhaS1WYWlpJyxcclxuICB2ZTogJ2VuJyxcclxuICAndmUtWkEnOiAnZW4nLFxyXG4gICd2aS1WTic6ICd2aScsXHJcbiAgJ3ZvLTAwMSc6ICd2bycsXHJcbiAgJ3Z1bi1UWic6ICd2dW4nLFxyXG4gICd3YWUtQ0gnOiAnd2FlJyxcclxuICB3YWw6ICdlbicsXHJcbiAgJ3dhbC1FVCc6ICdlbicsXHJcbiAgJ3dvLVNOJzogJ3dvJyxcclxuICAneGgtWkEnOiAneGgnLFxyXG4gICd4b2ctVUcnOiAneG9nJyxcclxuICAneWF2LUNNJzogJ3lhdicsXHJcbiAgJ3lpLTAwMSc6ICd5aScsXHJcbiAgJ3lvLU5HJzogJ3lvJyxcclxuICAnemdoLVRmbmcnOiAnemdoJyxcclxuICAnemdoLVRmbmctTUEnOiAnemdoJyxcclxuICAnemgtQ04nOiAnemgnLFxyXG4gICd6aC1ISyc6ICd6aCcsXHJcbiAgJ3poLU1PJzogJ3poJyxcclxuICAnemgtU0cnOiAnemgnLFxyXG4gICd6aC1UVyc6ICd6aCcsXHJcbiAgJ3p1LVpBJzogJ3p1JyxcclxufTtcclxuIl19","export const DEFAULT_DYNAMIC_LAYOUTS = new Map([\n    [\"application\" /* eLayoutType.application */, \"Theme.ApplicationLayoutComponent\" /* eThemeSharedComponents.ApplicationLayoutComponent */],\n    [\"account\" /* eLayoutType.account */, \"Theme.AccountLayoutComponent\" /* eThemeSharedComponents.AccountLayoutComponent */],\n    [\"empty\" /* eLayoutType.empty */, \"Theme.EmptyLayoutComponent\" /* eThemeSharedComponents.EmptyLayoutComponent */],\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1sYXlvdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2NvbnN0YW50cy9kZWZhdWx0LWxheW91dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQWlCO0lBQzdELHlJQUE0RTtJQUM1RSx5SEFBb0U7SUFDcEUsaUhBQWdFO0NBQ2pFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ZUxheW91dFR5cGUsIGVUaGVtZVNoYXJlZENvbXBvbmVudHN9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRFlOQU1JQ19MQVlPVVRTID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW1xyXG4gIFtlTGF5b3V0VHlwZS5hcHBsaWNhdGlvbiwgZVRoZW1lU2hhcmVkQ29tcG9uZW50cy5BcHBsaWNhdGlvbkxheW91dENvbXBvbmVudF0sXHJcbiAgW2VMYXlvdXRUeXBlLmFjY291bnQsIGVUaGVtZVNoYXJlZENvbXBvbmVudHMuQWNjb3VudExheW91dENvbXBvbmVudF0sXHJcbiAgW2VMYXlvdXRUeXBlLmVtcHR5LCBlVGhlbWVTaGFyZWRDb21wb25lbnRzLkVtcHR5TGF5b3V0Q29tcG9uZW50XSxcclxuXSk7XHJcbiJdfQ==","import { Directive, ElementRef, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AutofocusDirective {\n    set delay(val) {\n        this._delay = Number(val) || 0;\n    }\n    get delay() {\n        return this._delay;\n    }\n    constructor(elRef) {\n        this.elRef = elRef;\n        this._delay = 0;\n    }\n    ngAfterViewInit() {\n        setTimeout(() => this.elRef.nativeElement.focus(), this.delay);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: AutofocusDirective, isStandalone: true, selector: \"[autofocus]\", inputs: { delay: [\"autofocus\", \"delay\"] }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AutofocusDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[autofocus]',\n                }]\n        }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { delay: [{\n                type: Input,\n                args: ['autofocus']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLNUUsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixJQUNJLEtBQUssQ0FBQyxHQUFnQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQVg3QixXQUFNLEdBQUcsQ0FBQyxDQUFDO0lBV3FCLENBQUM7SUFFekMsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBZSxDQUFDLENBQUM7SUFDM0UsQ0FBQzs4R0FoQlUsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCOytFQUtLLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXV0b2ZvY3VzXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRvZm9jdXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBwcml2YXRlIF9kZWxheSA9IDA7XHJcblxyXG4gIEBJbnB1dCgnYXV0b2ZvY3VzJylcclxuICBzZXQgZGVsYXkodmFsOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2RlbGF5ID0gTnVtYmVyKHZhbCkgfHwgMDtcclxuICB9XHJcblxyXG4gIGdldCBkZWxheSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWxheTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCksIHRoaXMuZGVsYXkgYXMgbnVtYmVyKTtcclxuICB9XHJcbn1cclxuIl19","import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { SubscriptionService } from '../services/subscription.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services/subscription.service\";\nexport class InputEventDebounceDirective {\n    constructor(el, subscription) {\n        this.el = el;\n        this.subscription = subscription;\n        this.debounce = 300;\n        this.debounceEvent = new EventEmitter();\n    }\n    ngOnInit() {\n        const input$ = fromEvent(this.el.nativeElement, 'input').pipe(debounceTime(this.debounce));\n        this.subscription.addOne(input$, (event) => {\n            this.debounceEvent.emit(event);\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: InputEventDebounceDirective, deps: [{ token: i0.ElementRef }, { token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: InputEventDebounceDirective, isStandalone: true, selector: \"[input.debounce]\", inputs: { debounce: \"debounce\" }, outputs: { debounceEvent: \"input.debounce\" }, providers: [SubscriptionService], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: InputEventDebounceDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[input.debounce]',\n                    providers: [SubscriptionService],\n                }]\n        }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.SubscriptionService }], propDecorators: { debounce: [{\n                type: Input\n            }], debounceEvent: [{\n                type: Output,\n                args: ['input.debounce']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZGVib3VuY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFNdkUsTUFBTSxPQUFPLDJCQUEyQjtJQUt0QyxZQUNVLEVBQWMsRUFDZCxZQUFpQztRQURqQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBTmxDLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFFVyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7SUFLMUUsQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQWEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN2RSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUM1QixDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWxCVSwyQkFBMkI7a0dBQTNCLDJCQUEyQiwrSUFGM0IsQ0FBQyxtQkFBbUIsQ0FBQzs7MkZBRXJCLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakM7aUhBRVUsUUFBUTtzQkFBaEIsS0FBSztnQkFFNkIsYUFBYTtzQkFBL0MsTUFBTTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tpbnB1dC5kZWJvdW5jZV0nLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkZWJvdW5jZSA9IDMwMDtcclxuXHJcbiAgQE91dHB1dCgnaW5wdXQuZGVib3VuY2UnKSByZWFkb25seSBkZWJvdW5jZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0JCA9IGZyb21FdmVudDxJbnB1dEV2ZW50Pih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdpbnB1dCcpLnBpcGUoXHJcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlKSxcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKGlucHV0JCwgKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmRlYm91bmNlRXZlbnQuZW1pdChldmVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19","import { Directive, Input, IterableDiffers, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport clone from 'just-clone';\nimport compare from 'just-compare';\nimport * as i0 from \"@angular/core\";\nclass AbpForContext {\n    constructor($implicit, index, count, list) {\n        this.$implicit = $implicit;\n        this.index = index;\n        this.count = count;\n        this.list = list;\n    }\n}\nclass RecordView {\n    constructor(record, view) {\n        this.record = record;\n        this.view = view;\n    }\n}\nexport class ForDirective {\n    get compareFn() {\n        return this.compareBy || compare;\n    }\n    get trackByFn() {\n        return this.trackBy || ((index, item) => item.id || index);\n    }\n    constructor(tempRef, vcRef, differs) {\n        this.tempRef = tempRef;\n        this.vcRef = vcRef;\n        this.differs = differs;\n    }\n    iterateOverAppliedOperations(changes) {\n        const rw = [];\n        changes.forEachOperation((record, previousIndex, currentIndex) => {\n            if (record.previousIndex == null) {\n                const view = this.vcRef.createEmbeddedView(this.tempRef, new AbpForContext(null, -1, -1, this.items), currentIndex || 0);\n                rw.push(new RecordView(record, view));\n            }\n            else if (currentIndex == null && previousIndex !== null) {\n                this.vcRef.remove(previousIndex);\n            }\n            else {\n                if (previousIndex !== null) {\n                    const view = this.vcRef.get(previousIndex);\n                    if (view && currentIndex !== null) {\n                        this.vcRef.move(view, currentIndex);\n                        rw.push(new RecordView(record, view));\n                    }\n                }\n            }\n        });\n        for (let i = 0, l = rw.length; i < l; i++) {\n            rw[i].view.context.$implicit = rw[i].record.item;\n        }\n    }\n    iterateOverAttachedViews(changes) {\n        for (let i = 0, l = this.vcRef.length; i < l; i++) {\n            const viewRef = this.vcRef.get(i);\n            viewRef.context.index = i;\n            viewRef.context.count = l;\n            viewRef.context.list = this.items;\n        }\n        changes.forEachIdentityChange((record) => {\n            if (record.currentIndex !== null) {\n                const viewRef = this.vcRef.get(record.currentIndex);\n                viewRef.context.$implicit = record.item;\n            }\n        });\n    }\n    projectItems(items) {\n        if (!items.length && this.emptyRef) {\n            this.vcRef.clear();\n            this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;\n            this.isShowEmptyRef = true;\n            this.differ = null;\n            return;\n        }\n        if (this.emptyRef && this.isShowEmptyRef) {\n            this.vcRef.clear();\n            this.isShowEmptyRef = false;\n        }\n        if (!this.differ && items) {\n            this.differ = this.differs.find(items).create(this.trackByFn);\n        }\n        if (this.differ) {\n            const changes = this.differ.diff(items);\n            if (changes) {\n                this.iterateOverAppliedOperations(changes);\n                this.iterateOverAttachedViews(changes);\n            }\n        }\n    }\n    sortItems(items) {\n        const orderBy = this.orderBy;\n        if (orderBy) {\n            items.sort((a, b) => (a[orderBy] > b[orderBy] ? 1 : a[orderBy] < b[orderBy] ? -1 : 0));\n        }\n        else {\n            items.sort();\n        }\n    }\n    ngOnChanges() {\n        let items = clone(this.items);\n        if (!Array.isArray(items))\n            return;\n        const compareFn = this.compareFn;\n        const filterBy = this.filterBy;\n        if (typeof filterBy !== 'undefined' &&\n            typeof this.filterVal !== 'undefined' &&\n            this.filterVal !== '') {\n            items = items.filter(item => compareFn(item[filterBy], this.filterVal));\n        }\n        switch (this.orderDir) {\n            case 'ASC':\n                this.sortItems(items);\n                this.projectItems(items);\n                break;\n            case 'DESC':\n                this.sortItems(items);\n                items.reverse();\n                this.projectItems(items);\n                break;\n            default:\n                this.projectItems(items);\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ForDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: ForDirective, isStandalone: true, selector: \"[abpFor]\", inputs: { items: [\"abpForOf\", \"items\"], orderBy: [\"abpForOrderBy\", \"orderBy\"], orderDir: [\"abpForOrderDir\", \"orderDir\"], filterBy: [\"abpForFilterBy\", \"filterBy\"], filterVal: [\"abpForFilterVal\", \"filterVal\"], trackBy: [\"abpForTrackBy\", \"trackBy\"], compareBy: [\"abpForCompareBy\", \"compareBy\"], emptyRef: [\"abpForEmptyRef\", \"emptyRef\"] }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ForDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[abpFor]',\n                }]\n        }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }], propDecorators: { items: [{\n                type: Input,\n                args: ['abpForOf']\n            }], orderBy: [{\n                type: Input,\n                args: ['abpForOrderBy']\n            }], orderDir: [{\n                type: Input,\n                args: ['abpForOrderDir']\n            }], filterBy: [{\n                type: Input,\n                args: ['abpForFilterBy']\n            }], filterVal: [{\n                type: Input,\n                args: ['abpForFilterVal']\n            }], trackBy: [{\n                type: Input,\n                args: ['abpForTrackBy']\n            }], compareBy: [{\n                type: Input,\n                args: ['abpForCompareBy']\n            }], emptyRef: [{\n                type: Input,\n                args: ['abpForEmptyRef']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2Zvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBSUwsZUFBZSxFQUVmLFdBQVcsRUFFWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQzs7QUFJbkMsTUFBTSxhQUFhO0lBQ2pCLFlBQ1MsU0FBYyxFQUNkLEtBQWEsRUFDYixLQUFhLEVBQ2IsSUFBVztRQUhYLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFNBQUksR0FBSixJQUFJLENBQU87SUFDakIsQ0FBQztDQUNMO0FBRUQsTUFBTSxVQUFVO0lBQ2QsWUFDUyxNQUFpQyxFQUNqQyxJQUFvQztRQURwQyxXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFnQztJQUMxQyxDQUFDO0NBQ0w7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQThCdkIsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFhLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBRSxJQUFZLENBQUMsRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxZQUNVLE9BQW1DLEVBQ25DLEtBQXVCLEVBQ3ZCLE9BQXdCO1FBRnhCLFlBQU8sR0FBUCxPQUFPLENBQTRCO1FBQ25DLFVBQUssR0FBTCxL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QUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsTUFBTTtZQUVSLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU07WUFFUjtnQkFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDOzhHQW5LVSxZQUFZO2tHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBSHhCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCOzZJQUlDLEtBQUs7c0JBREosS0FBSzt1QkFBQyxVQUFVO2dCQUlqQixPQUFPO3NCQUROLEtBQUs7dUJBQUMsZUFBZTtnQkFJdEIsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLGdCQUFnQjtnQkFJdkIsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLGdCQUFnQjtnQkFJdkIsU0FBUztzQkFEUixLQUFLO3VCQUFDLGlCQUFpQjtnQkFJeEIsT0FBTztzQkFETixLQUFLO3VCQUFDLGVBQWU7Z0JBSXRCLFNBQVM7c0JBRFIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSXhCLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbWJlZGRlZFZpZXdSZWYsXHJcbiAgSW5wdXQsXHJcbiAgSXRlcmFibGVDaGFuZ2VSZWNvcmQsXHJcbiAgSXRlcmFibGVDaGFuZ2VzLFxyXG4gIEl0ZXJhYmxlRGlmZmVyLFxyXG4gIEl0ZXJhYmxlRGlmZmVycyxcclxuICBPbkNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVHJhY2tCeUZ1bmN0aW9uLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJztcclxuaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcclxuXHJcbmV4cG9ydCB0eXBlIENvbXBhcmVGbjxUID0gYW55PiA9ICh2YWx1ZTogVCwgY29tcGFyaXNvbjogVCkgPT4gYm9vbGVhbjtcclxuXHJcbmNsYXNzIEFicEZvckNvbnRleHQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljICRpbXBsaWNpdDogYW55LFxyXG4gICAgcHVibGljIGluZGV4OiBudW1iZXIsXHJcbiAgICBwdWJsaWMgY291bnQ6IG51bWJlcixcclxuICAgIHB1YmxpYyBsaXN0OiBhbnlbXSxcclxuICApIHt9XHJcbn1cclxuXHJcbmNsYXNzIFJlY29yZFZpZXcge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlY29yZDogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8YW55PixcclxuICAgIHB1YmxpYyB2aWV3OiBFbWJlZGRlZFZpZXdSZWY8QWJwRm9yQ29udGV4dD4sXHJcbiAgKSB7fVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thYnBGb3JdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcclxuICBASW5wdXQoJ2FicEZvck9mJylcclxuICBpdGVtcyE6IGFueVtdO1xyXG5cclxuICBASW5wdXQoJ2FicEZvck9yZGVyQnknKVxyXG4gIG9yZGVyQnk/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnYWJwRm9yT3JkZXJEaXInKVxyXG4gIG9yZGVyRGlyPzogJ0FTQycgfCAnREVTQyc7XHJcblxyXG4gIEBJbnB1dCgnYWJwRm9yRmlsdGVyQnknKVxyXG4gIGZpbHRlckJ5Pzogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoJ2FicEZvckZpbHRlclZhbCcpXHJcbiAgZmlsdGVyVmFsOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgnYWJwRm9yVHJhY2tCeScpXHJcbiAgdHJhY2tCeT86IFRyYWNrQnlGdW5jdGlvbjxhbnk+O1xyXG5cclxuICBASW5wdXQoJ2FicEZvckNvbXBhcmVCeScpXHJcbiAgY29tcGFyZUJ5PzogQ29tcGFyZUZuO1xyXG5cclxuICBASW5wdXQoJ2FicEZvckVtcHR5UmVmJylcclxuICBlbXB0eVJlZj86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIHByaXZhdGUgZGlmZmVyITogSXRlcmFibGVEaWZmZXI8YW55PiB8IG51bGw7XHJcblxyXG4gIHByaXZhdGUgaXNTaG93RW1wdHlSZWYhOiBib29sZWFuO1xyXG5cclxuICBnZXQgY29tcGFyZUZuKCk6IENvbXBhcmVGbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wYXJlQnkgfHwgY29tcGFyZTtcclxuICB9XHJcblxyXG4gIGdldCB0cmFja0J5Rm4oKTogVHJhY2tCeUZ1bmN0aW9uPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhY2tCeSB8fCAoKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkgPT4gKGl0ZW0gYXMgYW55KS5pZCB8fCBpbmRleCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGVtcFJlZjogVGVtcGxhdGVSZWY8QWJwRm9yQ29udGV4dD4sXHJcbiAgICBwcml2YXRlIHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXHJcbiAgKSB7fVxyXG5cclxuICBwcml2YXRlIGl0ZXJhdGVPdmVyQXBwbGllZE9wZXJhdGlvbnMoY2hhbmdlczogSXRlcmFibGVDaGFuZ2VzPGFueT4pIHtcclxuICAgIGNvbnN0IHJ3OiBSZWNvcmRWaWV3W10gPSBbXTtcclxuXHJcbiAgICBjaGFuZ2VzLmZvckVhY2hPcGVyYXRpb24oXHJcbiAgICAgIChcclxuICAgICAgICByZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPGFueT4sXHJcbiAgICAgICAgcHJldmlvdXNJbmRleDogbnVtYmVyIHwgbnVsbCxcclxuICAgICAgICBjdXJyZW50SW5kZXg6IG51bWJlciB8IG51bGwsXHJcbiAgICAgICkgPT4ge1xyXG4gICAgICAgIGlmIChyZWNvcmQucHJldmlvdXNJbmRleCA9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcoXHJcbiAgICAgICAgICAgIHRoaXMudGVtcFJlZixcclxuICAgICAgICAgICAgbmV3IEFicEZvckNvbnRleHQobnVsbCwgLTEsIC0xLCB0aGlzLml0ZW1zKSxcclxuICAgICAgICAgICAgY3VycmVudEluZGV4IHx8IDAsXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHJ3LnB1c2gobmV3IFJlY29yZFZpZXcocmVjb3JkLCB2aWV3KSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50SW5kZXggPT0gbnVsbCAmJiBwcmV2aW91c0luZGV4ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLnZjUmVmLnJlbW92ZShwcmV2aW91c0luZGV4KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHByZXZpb3VzSW5kZXggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudmNSZWYuZ2V0KHByZXZpb3VzSW5kZXgpO1xyXG4gICAgICAgICAgICBpZiAodmlldyAmJiBjdXJyZW50SW5kZXggIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLnZjUmVmLm1vdmUodmlldywgY3VycmVudEluZGV4KTtcclxuICAgICAgICAgICAgICBydy5wdXNoKG5ldyBSZWNvcmRWaWV3KHJlY29yZCwgdmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8QWJwRm9yQ29udGV4dD4pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBydy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgcndbaV0udmlldy5jb250ZXh0LiRpbXBsaWNpdCA9IHJ3W2ldLnJlY29yZC5pdGVtO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpdGVyYXRlT3ZlckF0dGFjaGVkVmlld3MoY2hhbmdlczogSXRlcmFibGVDaGFuZ2VzPGFueT4pIHtcclxuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy52Y1JlZi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmNSZWYuZ2V0KGkpIGFzIEVtYmVkZGVkVmlld1JlZjxBYnBGb3JDb250ZXh0PjtcclxuICAgICAgdmlld1JlZi5jb250ZXh0LmluZGV4ID0gaTtcclxuICAgICAgdmlld1JlZi5jb250ZXh0LmNvdW50ID0gbDtcclxuICAgICAgdmlld1JlZi5jb250ZXh0Lmxpc3QgPSB0aGlzLml0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZXMuZm9yRWFjaElkZW50aXR5Q2hhbmdlKChyZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPGFueT4pID0+IHtcclxuICAgICAgaWYgKHJlY29yZC5jdXJyZW50SW5kZXggIT09IG51bGwpIHtcclxuICAgICAgICBjb25zdCB2aWV3UmVmID0gdGhpcy52Y1JlZi5nZXQocmVjb3JkLmN1cnJlbnRJbmRleCkgYXMgRW1iZWRkZWRWaWV3UmVmPEFicEZvckNvbnRleHQ+O1xyXG4gICAgICAgIHZpZXdSZWYuY29udGV4dC4kaW1wbGljaXQgPSByZWNvcmQuaXRlbTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByb2plY3RJdGVtcyhpdGVtczogYW55W10pOiB2b2lkIHtcclxuICAgIGlmICghaXRlbXMubGVuZ3RoICYmIHRoaXMuZW1wdHlSZWYpIHtcclxuICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xyXG4gICAgICB0aGlzLnZjUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmVtcHR5UmVmKS5yb290Tm9kZXM7XHJcbiAgICAgIHRoaXMuaXNTaG93RW1wdHlSZWYgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRpZmZlciA9IG51bGw7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZW1wdHlSZWYgJiYgdGhpcy5pc1Nob3dFbXB0eVJlZikge1xyXG4gICAgICB0aGlzLnZjUmVmLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuaXNTaG93RW1wdHlSZWYgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZGlmZmVyICYmIGl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuZGlmZmVyID0gdGhpcy5kaWZmZXJzLmZpbmQoaXRlbXMpLmNyZWF0ZSh0aGlzLnRyYWNrQnlGbik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGlmZmVyKSB7XHJcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSB0aGlzLmRpZmZlci5kaWZmKGl0ZW1zKTtcclxuXHJcbiAgICAgIGlmIChjaGFuZ2VzKSB7XHJcbiAgICAgICAgdGhpcy5pdGVyYXRlT3ZlckFwcGxpZWRPcGVyYXRpb25zKGNoYW5nZXMpO1xyXG4gICAgICAgIHRoaXMuaXRlcmF0ZU92ZXJBdHRhY2hlZFZpZXdzKGNoYW5nZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNvcnRJdGVtcyhpdGVtczogYW55W10pIHtcclxuICAgIGNvbnN0IG9yZGVyQnkgPSB0aGlzLm9yZGVyQnk7XHJcbiAgICBpZiAob3JkZXJCeSkge1xyXG4gICAgICBpdGVtcy5zb3J0KChhLCBiKSA9PiAoYVtvcmRlckJ5XSA+IGJbb3JkZXJCeV0gPyAxIDogYVtvcmRlckJ5XSA8IGJbb3JkZXJCeV0gPyAtMSA6IDApKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGl0ZW1zLnNvcnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgbGV0IGl0ZW1zID0gY2xvbmUodGhpcy5pdGVtcykgYXMgYW55W107XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgY29tcGFyZUZuID0gdGhpcy5jb21wYXJlRm47XHJcbiAgICBjb25zdCBmaWx0ZXJCeSA9IHRoaXMuZmlsdGVyQnk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHR5cGVvZiBmaWx0ZXJCeSAhPT0gJ3VuZGVmaW5lZCcgJiZcclxuICAgICAgdHlwZW9mIHRoaXMuZmlsdGVyVmFsICE9PSAndW5kZWZpbmVkJyAmJlxyXG4gICAgICB0aGlzLmZpbHRlclZhbCAhPT0gJydcclxuICAgICkge1xyXG4gICAgICBpdGVtcyA9IGl0ZW1zLmZpbHRlcihpdGVtID0+IGNvbXBhcmVGbihpdGVtW2ZpbHRlckJ5XSwgdGhpcy5maWx0ZXJWYWwpKTtcclxuICAgIH1cclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMub3JkZXJEaXIpIHtcclxuICAgICAgY2FzZSAnQVNDJzpcclxuICAgICAgICB0aGlzLnNvcnRJdGVtcyhpdGVtcyk7XHJcbiAgICAgICAgdGhpcy5wcm9qZWN0SXRlbXMoaXRlbXMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAnREVTQyc6XHJcbiAgICAgICAgdGhpcy5zb3J0SXRlbXMoaXRlbXMpO1xyXG4gICAgICAgIGl0ZW1zLnJldmVyc2UoKTtcclxuICAgICAgICB0aGlzLnByb2plY3RJdGVtcyhpdGVtcyk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMucHJvamVjdEl0ZW1zKGl0ZW1zKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19","import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, Output, Self, } from '@angular/core';\nimport { FormGroupDirective } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport { SubscriptionService } from '../services/subscription.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"../services/subscription.service\";\n/**\n * @deprecated FormSubmitDirective will be removed in V7.0.0. Use `ngSubmit` instead.\n */\nexport class FormSubmitDirective {\n    constructor(formGroupDirective, host, cdRef, subscription) {\n        this.formGroupDirective = formGroupDirective;\n        this.host = host;\n        this.cdRef = cdRef;\n        this.subscription = subscription;\n        this.debounce = 200;\n        this.markAsDirtyWhenSubmit = true;\n        this.ngSubmit = new EventEmitter();\n        this.executedNgSubmit = false;\n    }\n    ngOnInit() {\n        this.subscription.addOne(this.formGroupDirective.ngSubmit, () => {\n            if (this.markAsDirtyWhenSubmit) {\n                this.markAsDirty();\n            }\n            this.executedNgSubmit = true;\n        });\n        const keyup$ = fromEvent(this.host.nativeElement, 'keyup').pipe(debounceTime(this.debounce), filter(event => !(event.target instanceof HTMLTextAreaElement)), filter(event => event && event.key === 'Enter'));\n        this.subscription.addOne(keyup$, () => {\n            if (!this.executedNgSubmit) {\n                this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n            }\n            this.executedNgSubmit = false;\n        });\n    }\n    markAsDirty() {\n        const { form } = this.formGroupDirective;\n        setDirty(form.controls);\n        form.markAsDirty();\n        this.cdRef.detectChanges();\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: FormSubmitDirective, deps: [{ token: i1.FormGroupDirective, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: FormSubmitDirective, isStandalone: true, selector: \"form[ngSubmit][formGroup]\", inputs: { debounce: \"debounce\", notValidateOnSubmit: \"notValidateOnSubmit\", markAsDirtyWhenSubmit: \"markAsDirtyWhenSubmit\" }, outputs: { ngSubmit: \"ngSubmit\" }, providers: [SubscriptionService], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: FormSubmitDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: 'form[ngSubmit][formGroup]',\n                    providers: [SubscriptionService],\n                }]\n        }], ctorParameters: () => [{ type: i1.FormGroupDirective, decorators: [{\n                    type: Self\n                }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.SubscriptionService }], propDecorators: { debounce: [{\n                type: Input\n            }], notValidateOnSubmit: [{\n                type: Input\n            }], markAsDirtyWhenSubmit: [{\n                type: Input\n            }], ngSubmit: [{\n                type: Output\n            }] } });\nfunction setDirty(controls) {\n    if (Array.isArray(controls)) {\n        controls.forEach(group => {\n            setDirty(group.controls);\n        });\n        return;\n    }\n    Object.keys(controls).forEach(key => {\n        controls[key].markAsDirty();\n        controls[key].updateValueAndValidity();\n    });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUF3QyxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUd2RTs7R0FFRztBQUtILE1BQU0sT0FBTyxtQkFBbUI7SUFlOUIsWUFDa0Isa0JBQXNDLEVBQzlDLElBQWlDLEVBQ2pDLEtBQXdCLEVBQ3hCLFlBQWlDO1FBSHpCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDOUMsU0FBSSxHQUFKLElBQUksQ0FBNkI7UUFDakMsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBakIzQyxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBT2YsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRVYsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakQscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBT3RCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDOUQsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLENBQUM7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQTRCLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUMzRixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sWUFBWSxtQkFBbUIsQ0FBQyxDQUFDLEVBQy9ELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxDQUNoRCxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDbkMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDekQsQ0FBQztZQUNKLENBQUM7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBRXpDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBaUQsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBdkRVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHlPQUZuQixDQUFDLG1CQUFtQixDQUFDOzsyRkFFckIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNqQzs7MEJBaUJJLElBQUk7b0lBZFAsUUFBUTtzQkFEUCxLQUFLO2dCQUtOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFJTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBR2EsUUFBUTtzQkFBMUIsTUFBTTs7QUErQ1QsU0FBUyxRQUFRLENBQUMsUUFBa0I7SUFDbEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixRQUFRLENBQUMsS0FBSyxDQUFDLFFBQWlELENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDbEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2VsZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwRGlyZWN0aXZlLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N1YnNjcmlwdGlvbi5zZXJ2aWNlJztcclxuXHJcbnR5cGUgQ29udHJvbHMgPSB7IFtrZXk6IHN0cmluZ106IFVudHlwZWRGb3JtQ29udHJvbCB9IHwgVW50eXBlZEZvcm1Hcm91cFtdO1xyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgRm9ybVN1Ym1pdERpcmVjdGl2ZSB3aWxsIGJlIHJlbW92ZWQgaW4gVjcuMC4wLiBVc2UgYG5nU3VibWl0YCBpbnN0ZWFkLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdmb3JtW25nU3VibWl0XVtmb3JtR3JvdXBdJyxcclxuICBwcm92aWRlcnM6IFtTdWJzY3JpcHRpb25TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1TdWJtaXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgZGVib3VuY2UgPSAyMDA7XHJcblxyXG4gIC8vIFRPRE86IFJlbW92ZSB1bnVzZWQgaW5wdXRcclxuICBASW5wdXQoKVxyXG4gIG5vdFZhbGlkYXRlT25TdWJtaXQ/OiBzdHJpbmcgfCBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1hcmtBc0RpcnR5V2hlblN1Ym1pdCA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSByZWFkb25seSBuZ1N1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZXhlY3V0ZWROZ1N1Ym1pdCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBTZWxmKCkgcHJpdmF0ZSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgaG9zdDogRWxlbWVudFJlZjxIVE1MRm9ybUVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLm5nU3VibWl0LCAoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm1hcmtBc0RpcnR5V2hlblN1Ym1pdCkge1xyXG4gICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5leGVjdXRlZE5nU3VibWl0ID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGtleXVwJCA9IGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLmhvc3QubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UpLFxyXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSksXHJcbiAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCAmJiBldmVudC5rZXkgPT09ICdFbnRlcicpLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGRPbmUoa2V5dXAkLCAoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5leGVjdXRlZE5nU3VibWl0KSB7XHJcbiAgICAgICAgdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChcclxuICAgICAgICAgIG5ldyBFdmVudCgnc3VibWl0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZXhlY3V0ZWROZ1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtYXJrQXNEaXJ0eSgpIHtcclxuICAgIGNvbnN0IHsgZm9ybSB9ID0gdGhpcy5mb3JtR3JvdXBEaXJlY3RpdmU7XHJcblxyXG4gICAgc2V0RGlydHkoZm9ybS5jb250cm9scyBhcyB7IFtrZXk6IHN0cmluZ106IFVudHlwZWRGb3JtQ29udHJvbCB9KTtcclxuICAgIGZvcm0ubWFya0FzRGlydHkoKTtcclxuXHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldERpcnR5KGNvbnRyb2xzOiBDb250cm9scykge1xyXG4gIGlmIChBcnJheS5pc0FycmF5KGNvbnRyb2xzKSkge1xyXG4gICAgY29udHJvbHMuZm9yRWFjaChncm91cCA9PiB7XHJcbiAgICAgIHNldERpcnR5KGdyb3VwLmNvbnRyb2xzIGFzIHsgW2tleTogc3RyaW5nXTogVW50eXBlZEZvcm1Db250cm9sIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBPYmplY3Qua2V5cyhjb250cm9scykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgY29udHJvbHNba2V5XS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgY29udHJvbHNba2V5XS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfSk7XHJcbn1cclxuIl19","import { Directive, Output, EventEmitter, ElementRef } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class InitDirective {\n    constructor(elRef) {\n        this.elRef = elRef;\n        this.init = new EventEmitter();\n    }\n    ngAfterViewInit() {\n        this.init.emit(this.elRef);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: InitDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: InitDirective, isStandalone: true, selector: \"[abpInit]\", outputs: { init: \"abpInit\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: InitDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[abpInit]',\n                }]\n        }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { init: [{\n                type: Output,\n                args: ['abpInit']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9pbml0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLM0YsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUZULFNBQUksR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUUvQixDQUFDO0lBRXpDLGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs4R0FQVSxhQUFhO2tHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBSHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCOytFQUU2QixJQUFJO3NCQUEvQixNQUFNO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thYnBJbml0XScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbml0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQE91dHB1dCgnYWJwSW5pdCcpIHJlYWRvbmx5IGluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRSZWY8YW55Pj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZikge31cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5pbml0LmVtaXQodGhpcy5lbFJlZik7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { ChangeDetectorRef, Directive, Inject, Input, Optional, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { distinctUntilChanged, take } from 'rxjs/operators';\nimport { PermissionService } from '../services/permission.service';\nimport { QUEUE_MANAGER } from '../tokens/queue.token';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services/permission.service\";\nexport class PermissionDirective {\n    constructor(templateRef, vcRef, permissionService, cdRef, queue) {\n        this.templateRef = templateRef;\n        this.vcRef = vcRef;\n        this.permissionService = permissionService;\n        this.cdRef = cdRef;\n        this.queue = queue;\n        this.runChangeDetection = true;\n        this.cdrSubject = new ReplaySubject();\n        this.rendered = false;\n    }\n    check() {\n        if (this.subscription) {\n            this.subscription.unsubscribe();\n        }\n        this.subscription = this.permissionService\n            .getGrantedPolicy$(this.condition || '')\n            .pipe(distinctUntilChanged())\n            .subscribe(isGranted => {\n            this.vcRef.clear();\n            if (isGranted)\n                this.vcRef.createEmbeddedView(this.templateRef);\n            if (this.runChangeDetection) {\n                if (!this.rendered) {\n                    this.cdrSubject.next();\n                }\n                else {\n                    this.cdRef.detectChanges();\n                }\n            }\n            else {\n                this.cdRef.markForCheck();\n            }\n        });\n    }\n    ngOnDestroy() {\n        if (this.subscription)\n            this.subscription.unsubscribe();\n    }\n    ngOnChanges() {\n        this.check();\n    }\n    ngAfterViewInit() {\n        this.cdrSubject.pipe(take(1)).subscribe(() => this.queue.add(() => this.cdRef.detectChanges()));\n        this.rendered = true;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PermissionDirective, deps: [{ token: i0.TemplateRef, optional: true }, { token: i0.ViewContainerRef }, { token: i1.PermissionService }, { token: i0.ChangeDetectorRef }, { token: QUEUE_MANAGER }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: PermissionDirective, isStandalone: true, selector: \"[abpPermission]\", inputs: { condition: [\"abpPermission\", \"condition\"], runChangeDetection: [\"abpPermissionRunChangeDetection\", \"runChangeDetection\"] }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PermissionDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[abpPermission]',\n                }]\n        }], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{\n                    type: Optional\n                }] }, { type: i0.ViewContainerRef }, { type: i1.PermissionService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [QUEUE_MANAGER]\n                }] }], propDecorators: { condition: [{\n                type: Input,\n                args: ['abpPermission']\n            }], runChangeDetection: [{\n                type: Input,\n                args: ['abpPermissionRunChangeDetection']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQU10RCxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQ3NCLFdBQTZCLEVBQ3pDLEtBQXVCLEVBQ3ZCLGlCQUFvQyxFQUNwQyxLQUF3QixFQUNGLEtBQW1CO1FBSjdCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUN6QyxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUN2QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ0YsVUFBSyxHQUFMLEtBQUssQ0FBYztRQWJULHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUlwRSxlQUFVLEdBQUcsSUFBSSxhQUFhLEVBQVEsQ0FBQztRQUV2QyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBUWQsQ0FBQztJQUVJLEtBQUs7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUI7YUFDdkMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7YUFDdkMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDNUIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxTQUFTO2dCQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9ELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3pCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxZQUFZO1lBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7OEdBckRVLG1CQUFtQiwrSkFnQnBCLGFBQWE7a0dBaEJaLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs7MEJBYUksUUFBUTs7MEJBSVIsTUFBTTsyQkFBQyxhQUFhO3lDQWZDLFNBQVM7c0JBQWhDLEtBQUs7dUJBQUMsZUFBZTtnQkFFb0Isa0JBQWtCO3NCQUEzRCxLQUFLO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBEaXJlY3RpdmUsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3B0aW9uYWwsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Blcm1pc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFFVRVVFX01BTkFHRVIgfSBmcm9tICcuLi90b2tlbnMvcXVldWUudG9rZW4nO1xyXG5pbXBvcnQgeyBRdWV1ZU1hbmFnZXIgfSBmcm9tICcuLi91dGlscy9xdWV1ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thYnBQZXJtaXNzaW9uXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgnYWJwUGVybWlzc2lvbicpIGNvbmRpdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoJ2FicFBlcm1pc3Npb25SdW5DaGFuZ2VEZXRlY3Rpb24nKSBydW5DaGFuZ2VEZXRlY3Rpb24gPSB0cnVlO1xyXG5cclxuICBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNkclN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigpO1xyXG5cclxuICByZW5kZXJlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBJbmplY3QoUVVFVUVfTUFOQUdFUikgcHVibGljIHF1ZXVlOiBRdWV1ZU1hbmFnZXIsXHJcbiAgKSB7fVxyXG5cclxuICBwcml2YXRlIGNoZWNrKCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlXHJcbiAgICAgIC5nZXRHcmFudGVkUG9saWN5JCh0aGlzLmNvbmRpdGlvbiB8fCAnJylcclxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgLnN1YnNjcmliZShpc0dyYW50ZWQgPT4ge1xyXG4gICAgICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcclxuICAgICAgICBpZiAoaXNHcmFudGVkKSB0aGlzLnZjUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgICAgICBpZiAodGhpcy5ydW5DaGFuZ2VEZXRlY3Rpb24pIHtcclxuICAgICAgICAgIGlmICghdGhpcy5yZW5kZXJlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNkclN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNkclN1YmplY3QucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5xdWV1ZS5hZGQoKCkgPT4gdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCkpKTtcclxuICAgIHRoaXMucmVuZGVyZWQgPSB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Directive, Injector, Input, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport compare from 'just-compare';\nimport { filter } from 'rxjs/operators';\nimport { ReplaceableComponentsService } from '../services/replaceable-components.service';\nimport { SubscriptionService } from '../services/subscription.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services/replaceable-components.service\";\nimport * as i2 from \"../services/subscription.service\";\nexport class ReplaceableTemplateDirective {\n    constructor(injector, templateRef, vcRef, replaceableComponents, subscription) {\n        this.injector = injector;\n        this.templateRef = templateRef;\n        this.vcRef = vcRef;\n        this.replaceableComponents = replaceableComponents;\n        this.subscription = subscription;\n        this.providedData = {\n            inputs: {},\n            outputs: {},\n        };\n        this.context = {};\n        this.defaultComponentSubscriptions = {};\n        this.initialized = false;\n        this.context = {\n            initTemplate: (ref) => {\n                this.resetDefaultComponent();\n                this.defaultComponentRef = ref;\n                this.setDefaultComponentInputs();\n            },\n        };\n    }\n    ngOnInit() {\n        const component$ = this.replaceableComponents\n            .get$(this.data.componentKey)\n            .pipe(filter((res = {}) => !this.initialized || !compare(res.component, this.externalComponent)));\n        this.subscription.addOne(component$, (res = {}) => {\n            this.vcRef.clear();\n            this.externalComponent = res.component;\n            if (this.defaultComponentRef) {\n                this.resetDefaultComponent();\n            }\n            if (res.component) {\n                this.setProvidedData();\n                const customInjector = Injector.create({\n                    providers: [{ provide: 'REPLACEABLE_DATA', useValue: this.providedData }],\n                    parent: this.injector,\n                });\n                const ref = this.vcRef.createComponent(res.component, {\n                    index: 0,\n                    injector: customInjector,\n                });\n            }\n            else {\n                this.vcRef.createEmbeddedView(this.templateRef, this.context);\n            }\n            this.initialized = true;\n        });\n    }\n    ngOnChanges(changes) {\n        if (changes?.data?.currentValue?.inputs && this.defaultComponentRef) {\n            this.setDefaultComponentInputs();\n        }\n    }\n    setDefaultComponentInputs() {\n        if (!this.defaultComponentRef || (!this.data.inputs && !this.data.outputs))\n            return;\n        if (this.data.inputs) {\n            for (const key in this.data.inputs) {\n                if (Object.prototype.hasOwnProperty.call(this.data.inputs, key)) {\n                    if (!compare(this.defaultComponentRef[key], this.data.inputs[key].value)) {\n                        this.defaultComponentRef[key] = this.data.inputs[key].value;\n                    }\n                }\n            }\n        }\n        if (this.data.outputs) {\n            for (const key in this.data.outputs) {\n                if (Object.prototype.hasOwnProperty.call(this.data.outputs, key)) {\n                    if (!this.defaultComponentSubscriptions[key]) {\n                        this.defaultComponentSubscriptions[key] = this.defaultComponentRef[key].subscribe((value) => {\n                            this.data.outputs?.[key](value);\n                        });\n                    }\n                }\n            }\n        }\n    }\n    setProvidedData() {\n        this.providedData = { outputs: {}, ...this.data, inputs: {} };\n        if (!this.data.inputs)\n            return;\n        Object.defineProperties(this.providedData.inputs, {\n            ...Object.keys(this.data.inputs).reduce((acc, key) => ({\n                ...acc,\n                [key]: {\n                    enumerable: true,\n                    configurable: true,\n                    get: () => this.data.inputs?.[key]?.value,\n                    ...(this.data.inputs?.[key]?.twoWay && {\n                        set: (newValue) => {\n                            if (this.data.inputs?.[key]) {\n                                this.data.inputs[key].value = newValue;\n                            }\n                            if (this.data.outputs?.[`${key}Change`]) {\n                                this.data.outputs[`${key}Change`](newValue);\n                            }\n                        },\n                    }),\n                },\n            }), {}),\n        });\n    }\n    resetDefaultComponent() {\n        Object.keys(this.defaultComponentSubscriptions).forEach(key => {\n            this.defaultComponentSubscriptions[key].unsubscribe();\n        });\n        this.defaultComponentSubscriptions = {};\n        this.defaultComponentRef = null;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ReplaceableTemplateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.ReplaceableComponentsService }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: ReplaceableTemplateDirective, isStandalone: true, selector: \"[abpReplaceableTemplate]\", inputs: { data: [\"abpReplaceableTemplate\", \"data\"] }, providers: [SubscriptionService], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ReplaceableTemplateDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[abpReplaceableTemplate]',\n                    providers: [SubscriptionService],\n                }]\n        }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.ReplaceableComponentsService }, { type: i2.SubscriptionService }], propDecorators: { data: [{\n                type: Input,\n                args: ['abpReplaceableTemplate']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssRUFJTCxXQUFXLEVBRVgsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFNdkUsTUFBTSxPQUFPLDRCQUE0QjtJQW1CdkMsWUFDVSxRQUFrQixFQUNsQixXQUE2QixFQUM3QixLQUF1QixFQUN2QixxQkFBbUQsRUFDbkQsWUFBaUM7UUFKakMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0IsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFDdkIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUE4QjtRQUNuRCxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFwQjNDLGlCQUFZLEdBQUc7WUFDYixNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFO1NBQytDLENBQUM7UUFFN0QsWUFBTyxHQUFHLEVBQVMsQ0FBQztRQU1wQixrQ0FBNkIsR0FBRyxFQUFrQyxDQUFDO1FBRW5FLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBU2xCLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixZQUFZLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxD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QUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEVBQWtDLENBQUM7UUFDeEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDOzhHQTlJVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qiw2SEFGNUIsQ0FBQyxtQkFBbUIsQ0FBQzs7MkZBRXJCLDRCQUE0QjtrQkFKeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakM7bU5BR0MsSUFBSTtzQkFESCxLQUFLO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUeXBlLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBjb21wYXJlIGZyb20gJ2p1c3QtY29tcGFyZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBSZXBsYWNlYWJsZUNvbXBvbmVudHMgfSBmcm9tICcuLi9tb2RlbHMvcmVwbGFjZWFibGUtY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlQ29tcG9uZW50c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXBsYWNlYWJsZS1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYWJwUmVwbGFjZWFibGVUZW1wbGF0ZV0nLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ2FicFJlcGxhY2VhYmxlVGVtcGxhdGUnKVxyXG4gIGRhdGEhOiBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZUlucHV0PGFueSwgYW55PjtcclxuXHJcbiAgcHJvdmlkZWREYXRhID0ge1xyXG4gICAgaW5wdXRzOiB7fSxcclxuICAgIG91dHB1dHM6IHt9LFxyXG4gIH0gYXMgUmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlVGVtcGxhdGVEYXRhPGFueSwgYW55PjtcclxuXHJcbiAgY29udGV4dCA9IHt9IGFzIGFueTtcclxuXHJcbiAgZXh0ZXJuYWxDb21wb25lbnQhOiBUeXBlPGFueT47XHJcblxyXG4gIGRlZmF1bHRDb21wb25lbnRSZWY6IGFueTtcclxuXHJcbiAgZGVmYXVsdENvbXBvbmVudFN1YnNjcmlwdGlvbnMgPSB7fSBhcyBBQlAuRGljdGlvbmFyeTxTdWJzY3JpcHRpb24+O1xyXG5cclxuICBpbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIHJlcGxhY2VhYmxlQ29tcG9uZW50czogUmVwbGFjZWFibGVDb21wb25lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25TZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5jb250ZXh0ID0ge1xyXG4gICAgICBpbml0VGVtcGxhdGU6IChyZWY6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzZXREZWZhdWx0Q29tcG9uZW50KCk7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmID0gcmVmO1xyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdENvbXBvbmVudElucHV0cygpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgY29tcG9uZW50JCA9IHRoaXMucmVwbGFjZWFibGVDb21wb25lbnRzXHJcbiAgICAgIC5nZXQkKHRoaXMuZGF0YS5jb21wb25lbnRLZXkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIChyZXMgPSB7fSBhcyBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnQpID0+XHJcbiAgICAgICAgICAgICF0aGlzLmluaXRpYWxpemVkIHx8ICFjb21wYXJlKHJlcy5jb21wb25lbnQsIHRoaXMuZXh0ZXJuYWxDb21wb25lbnQpLFxyXG4gICAgICAgICksXHJcbiAgICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKFxyXG4gICAgICBjb21wb25lbnQkLFxyXG4gICAgICAocmVzID0ge30gYXMgUmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDb21wb25lbnQgPSByZXMuY29tcG9uZW50O1xyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYpIHtcclxuICAgICAgICAgIHRoaXMucmVzZXREZWZhdWx0Q29tcG9uZW50KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgdGhpcy5zZXRQcm92aWRlZERhdGEoKTtcclxuICAgICAgICAgIGNvbnN0IGN1c3RvbUluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiAnUkVQTEFDRUFCTEVfREFUQScsIHVzZVZhbHVlOiB0aGlzLnByb3ZpZGVkRGF0YSB9XSxcclxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLnZjUmVmLmNyZWF0ZUNvbXBvbmVudChyZXMuY29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGluZGV4OiAwLFxyXG4gICAgICAgICAgICBpbmplY3RvcjogY3VzdG9tSW5qZWN0b3IsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzPy5kYXRhPy5jdXJyZW50VmFsdWU/LmlucHV0cyAmJiB0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0Q29tcG9uZW50SW5wdXRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0Q29tcG9uZW50SW5wdXRzKCkge1xyXG4gICAgaWYgKCF0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYgfHwgKCF0aGlzLmRhdGEuaW5wdXRzICYmICF0aGlzLmRhdGEub3V0cHV0cykpIHJldHVybjtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLmlucHV0cykge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRhdGEuaW5wdXRzKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmRhdGEuaW5wdXRzLCBrZXkpKSB7XHJcbiAgICAgICAgICBpZiAoIWNvbXBhcmUodGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmW2tleV0sIHRoaXMuZGF0YS5pbnB1dHNba2V5XS52YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmW2tleV0gPSB0aGlzLmRhdGEuaW5wdXRzW2tleV0udmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5vdXRwdXRzKSB7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZGF0YS5vdXRwdXRzKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmRhdGEub3V0cHV0cywga2V5KSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zW2tleV0pIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50U3Vic2NyaXB0aW9uc1trZXldID0gdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmW2tleV0uc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEub3V0cHV0cz8uW2tleV0odmFsdWUpO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQcm92aWRlZERhdGEoKSB7XHJcbiAgICB0aGlzLnByb3ZpZGVkRGF0YSA9IHsgb3V0cHV0czoge30sIC4uLnRoaXMuZGF0YSwgaW5wdXRzOiB7fSB9O1xyXG5cclxuICAgIGlmICghdGhpcy5kYXRhLmlucHV0cykgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcy5wcm92aWRlZERhdGEuaW5wdXRzLCB7XHJcbiAgICAgIC4uLk9iamVjdC5rZXlzKHRoaXMuZGF0YS5pbnB1dHMpLnJlZHVjZShcclxuICAgICAgICAoYWNjLCBrZXkpID0+ICh7XHJcbiAgICAgICAgICAuLi5hY2MsXHJcbiAgICAgICAgICBba2V5XToge1xyXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGdldDogKCkgPT4gdGhpcy5kYXRhLmlucHV0cz8uW2tleV0/LnZhbHVlLFxyXG4gICAgICAgICAgICAuLi4odGhpcy5kYXRhLmlucHV0cz8uW2tleV0/LnR3b1dheSAmJiB7XHJcbiAgICAgICAgICAgICAgc2V0OiAobmV3VmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5pbnB1dHM/LltrZXldKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5pbnB1dHNba2V5XS52YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5vdXRwdXRzPy5bYCR7a2V5fUNoYW5nZWBdKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5vdXRwdXRzW2Ake2tleX1DaGFuZ2VgXShuZXdWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHt9LFxyXG4gICAgICApLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXNldERlZmF1bHRDb21wb25lbnQoKSB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbXBvbmVudFN1YnNjcmlwdGlvbnNba2V5XS51bnN1YnNjcmliZSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zID0ge30gYXMgQUJQLkRpY3Rpb25hcnk8U3Vic2NyaXB0aW9uPjtcclxuICAgIHRoaXMuZGVmYXVsdENvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { Directive, ElementRef, EventEmitter, Output } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { SubscriptionService } from '../services/subscription.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services/subscription.service\";\nexport class StopPropagationDirective {\n    constructor(el, subscription) {\n        this.el = el;\n        this.subscription = subscription;\n        this.stopPropEvent = new EventEmitter();\n    }\n    ngOnInit() {\n        this.subscription.addOne(fromEvent(this.el.nativeElement, 'click'), event => {\n            event.stopPropagation();\n            this.stopPropEvent.emit(event);\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: StopPropagationDirective, deps: [{ token: i0.ElementRef }, { token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: StopPropagationDirective, isStandalone: true, selector: \"[click.stop]\", outputs: { stopPropEvent: \"click.stop\" }, providers: [SubscriptionService], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: StopPropagationDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[click.stop]',\n                    providers: [SubscriptionService],\n                }]\n        }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.SubscriptionService }], propDecorators: { stopPropEvent: [{\n                type: Output,\n                args: ['click.stop']\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9zdG9wLXByb3BhZ2F0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQU12RSxNQUFNLE9BQU8sd0JBQXdCO0lBR25DLFlBQ1UsRUFBYyxFQUNkLFlBQWlDO1FBRGpDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFKWixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFLM0UsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQWEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDdEYsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FiVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixxR0FGeEIsQ0FBQyxtQkFBbUIsQ0FBQzs7MkZBRXJCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDO2lIQUVnQyxhQUFhO3NCQUEzQyxNQUFNO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjbGljay5zdG9wXScsXHJcbiAgcHJvdmlkZXJzOiBbU3Vic2NyaXB0aW9uU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBPdXRwdXQoJ2NsaWNrLnN0b3AnKSByZWFkb25seSBzdG9wUHJvcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLCBldmVudCA9PiB7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLnN0b3BQcm9wRXZlbnQuZW1pdChldmVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ShowPasswordDirective {\n    constructor() {\n        this.elementRef = inject(ElementRef);\n    }\n    set abpShowPassword(visible) {\n        const element = this.elementRef.nativeElement;\n        if (!element)\n            return;\n        element.type = visible ? 'text' : 'password';\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ShowPasswordDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: ShowPasswordDirective, isStandalone: true, selector: \"[abpShowPassword]\", inputs: { abpShowPassword: \"abpShowPassword\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ShowPasswordDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[abpShowPassword]',\n                }]\n        }], propDecorators: { abpShowPassword: [{\n                type: Input\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1wYXNzd29yZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9zaG93LXBhc3N3b3JkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtyRSxNQUFNLE9BQU8scUJBQXFCO0lBSGxDO1FBSXFCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FRcEQ7SUFOQyxJQUFhLGVBQWUsQ0FBQyxPQUFnQjtRQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWlDLENBQUM7UUFDbEUsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRXJCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUMvQyxDQUFDOzhHQVJVLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCOzhCQUljLGVBQWU7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FicFNob3dQYXNzd29yZF0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hvd1Bhc3N3b3JkRGlyZWN0aXZlIHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGFicFNob3dQYXNzd29yZCh2aXNpYmxlOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmICghZWxlbWVudCkgcmV0dXJuO1xyXG5cclxuICAgIGVsZW1lbnQudHlwZSA9IHZpc2libGUgPyAndGV4dCcgOiAncGFzc3dvcmQnO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class TrackCapsLockDirective {\n    constructor() {\n        this.capsLock = new EventEmitter();\n    }\n    onKeyDown(event) {\n        this.capsLock.emit(this.isCapsLockOpen(event));\n    }\n    onKeyUp(event) {\n        this.capsLock.emit(this.isCapsLockOpen(event));\n    }\n    isCapsLockOpen(e) {\n        const s = String.fromCharCode(e.which);\n        if ((s.toUpperCase() === s && s.toLowerCase() !== s && e.shiftKey) ||\n            (s.toUpperCase() !== s && s.toLowerCase() === s && e.shiftKey) ||\n            (e.getModifierState && e.getModifierState('CapsLock'))) {\n            return true;\n        }\n        return false;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TrackCapsLockDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.7\", type: TrackCapsLockDirective, isStandalone: true, selector: \"[abpCapsLock]\", outputs: { capsLock: \"abpCapsLock\" }, host: { listeners: { \"window:keydown\": \"onKeyDown($event)\", \"window:keyup\": \"onKeyUp($event)\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TrackCapsLockDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    selector: '[abpCapsLock]',\n                }]\n        }], propDecorators: { capsLock: [{\n                type: Output,\n                args: ['abpCapsLock']\n            }], onKeyDown: [{\n                type: HostListener,\n                args: ['window:keydown', ['$event']]\n            }], onKeyUp: [{\n                type: HostListener,\n                args: ['window:keyup', ['$event']]\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fwcy1sb2NrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2NhcHMtbG9jay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLOUUsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUl5QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztLQXNCL0Q7SUFuQkMsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQW9CO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsY0FBYyxDQUFDLENBQUM7UUFDZCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUNFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDOUQsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUM5RCxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsRUFDdEQsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0F0QlUsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7aUJBQzFCOzhCQUV3QixRQUFRO3NCQUE5QixNQUFNO3VCQUFDLGFBQWE7Z0JBR3JCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLMUMsT0FBTztzQkFETixZQUFZO3VCQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYWJwQ2Fwc0xvY2tdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYWNrQ2Fwc0xvY2tEaXJlY3RpdmUge1xyXG4gIEBPdXRwdXQoJ2FicENhcHNMb2NrJykgY2Fwc0xvY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuY2Fwc0xvY2suZW1pdCh0aGlzLmlzQ2Fwc0xvY2tPcGVuKGV2ZW50KSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5jYXBzTG9jay5lbWl0KHRoaXMuaXNDYXBzTG9ja09wZW4oZXZlbnQpKTtcclxuICB9XHJcblxyXG4gIGlzQ2Fwc0xvY2tPcGVuKGUpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHMgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGUud2hpY2gpO1xyXG4gICAgaWYgKFxyXG4gICAgICAocy50b1VwcGVyQ2FzZSgpID09PSBzICYmIHMudG9Mb3dlckNhc2UoKSAhPT0gcyAmJiBlLnNoaWZ0S2V5KSB8fFxyXG4gICAgICAocy50b1VwcGVyQ2FzZSgpICE9PSBzICYmIHMudG9Mb3dlckNhc2UoKSA9PT0gcyAmJiBlLnNoaWZ0S2V5KSB8fFxyXG4gICAgICAoZS5nZXRNb2RpZmllclN0YXRlICYmIGUuZ2V0TW9kaWZpZXJTdGF0ZSgnQ2Fwc0xvY2snKSlcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19","Date.prototype.toLocalISOString = function () {\n    const timezoneOffset = this.getTimezoneOffset();\n    return new Date(this.getTime() - timezoneOffset * 60000).toISOString();\n};\nexport {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1leHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2RhdGUtZXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixHQUFHO0lBQ2hDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBRWhELE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLGNBQWMsR0FBRyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUN6RSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge307XHJcblxyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIERhdGUge1xyXG4gICAgdG9Mb2NhbElTT1N0cmluZz86ICgpID0+IHN0cmluZztcclxuICB9XHJcbn1cclxuXHJcbkRhdGUucHJvdG90eXBlLnRvTG9jYWxJU09TdHJpbmcgPSBmdW5jdGlvbiAodGhpczogRGF0ZSk6IHN0cmluZyB7XHJcbiAgY29uc3QgdGltZXpvbmVPZmZzZXQgPSB0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCk7XHJcblxyXG4gIHJldHVybiBuZXcgRGF0ZSh0aGlzLmdldFRpbWUoKSAtIHRpbWV6b25lT2Zmc2V0ICogNjAwMDApLnRvSVNPU3RyaW5nKCk7XHJcbn07XHJcbiJdfQ==","import { Injector, inject, provideAppInitializer } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { SessionStateService } from '../services/session-state.service';\nimport { COOKIE_LANGUAGE_KEY } from '../tokens/cookie-language-key.token';\nexport function setLanguageToCookie() {\n    const injector = inject(Injector);\n    const sessionState = injector.get(SessionStateService);\n    const document = injector.get(DOCUMENT);\n    const cookieLanguageKey = injector.get(COOKIE_LANGUAGE_KEY);\n    sessionState.getLanguage$().subscribe(language => {\n        const cookieValue = encodeURIComponent(`c=${language}|uic=${language}`);\n        document.cookie = `${cookieLanguageKey}=${cookieValue}`;\n    });\n}\nexport const CookieLanguageProvider = provideAppInitializer(() => {\n    setLanguageToCookie();\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLWxhbmd1YWdlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9jb29raWUtbGFuZ3VhZ2UucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTFFLE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2RCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzVELFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDL0MsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxRQUFRLFFBQVEsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RSxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLElBQUksV0FBVyxFQUFFLENBQUM7SUFDMUQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcscUJBQXFCLENBQUMsR0FBRyxFQUFFO0lBQy9ELG1CQUFtQixFQUFFLENBQUM7QUFDeEIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgaW5qZWN0LCBwcm92aWRlQXBwSW5pdGlhbGl6ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTZXNzaW9uU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc2Vzc2lvbi1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ09PS0lFX0xBTkdVQUdFX0tFWSB9IGZyb20gJy4uL3Rva2Vucy9jb29raWUtbGFuZ3VhZ2Uta2V5LnRva2VuJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRMYW5ndWFnZVRvQ29va2llKCkge1xyXG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICBjb25zdCBzZXNzaW9uU3RhdGUgPSBpbmplY3Rvci5nZXQoU2Vzc2lvblN0YXRlU2VydmljZSk7XHJcbiAgY29uc3QgZG9jdW1lbnQgPSBpbmplY3Rvci5nZXQoRE9DVU1FTlQpO1xyXG4gIGNvbnN0IGNvb2tpZUxhbmd1YWdlS2V5ID0gaW5qZWN0b3IuZ2V0KENPT0tJRV9MQU5HVUFHRV9LRVkpO1xyXG4gIHNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSQoKS5zdWJzY3JpYmUobGFuZ3VhZ2UgPT4ge1xyXG4gICAgY29uc3QgY29va2llVmFsdWUgPSBlbmNvZGVVUklDb21wb25lbnQoYGM9JHtsYW5ndWFnZX18dWljPSR7bGFuZ3VhZ2V9YCk7XHJcbiAgICBkb2N1bWVudC5jb29raWUgPSBgJHtjb29raWVMYW5ndWFnZUtleX09JHtjb29raWVWYWx1ZX1gO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ29va2llTGFuZ3VhZ2VQcm92aWRlciA9IHByb3ZpZGVBcHBJbml0aWFsaXplcigoKSA9PiB7XHJcbiAgc2V0TGFuZ3VhZ2VUb0Nvb2tpZSgpO1xyXG59KTtcclxuIl19","import { LOCALE_ID } from '@angular/core';\nimport { differentLocales } from '../constants/different-locales';\nimport { LocalizationService } from '../services/localization.service';\nimport { checkHasProp } from '../utils/common-utils';\nexport class LocaleId extends String {\n    constructor(localizationService) {\n        super();\n        this.localizationService = localizationService;\n    }\n    toString() {\n        const { currentLang } = this.localizationService;\n        if (checkHasProp(differentLocales, currentLang)) {\n            return differentLocales[currentLang];\n        }\n        return currentLang;\n    }\n    valueOf() {\n        return this.toString();\n    }\n}\nexport const LocaleProvider = {\n    provide: LOCALE_ID,\n    useClass: LocaleId,\n    deps: [LocalizationService],\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9sb2NhbGUucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsTUFBTSxPQUFPLFFBQVMsU0FBUSxNQUFNO0lBQ2xDLFlBQW9CLG1CQUF3QztRQUMxRCxLQUFLLEVBQUUsQ0FBQztRQURVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFFNUQsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ2pELElBQUksWUFBWSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDaEQsT0FBTyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWE7SUFDdEMsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUM7Q0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExPQ0FMRV9JRCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZGlmZmVyZW50TG9jYWxlcyB9IGZyb20gJy4uL2NvbnN0YW50cy9kaWZmZXJlbnQtbG9jYWxlcyc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IGNoZWNrSGFzUHJvcCB9IGZyb20gJy4uL3V0aWxzL2NvbW1vbi11dGlscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgTG9jYWxlSWQgZXh0ZW5kcyBTdHJpbmcge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB7IGN1cnJlbnRMYW5nIH0gPSB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2U7XHJcbiAgICBpZiAoY2hlY2tIYXNQcm9wKGRpZmZlcmVudExvY2FsZXMsIGN1cnJlbnRMYW5nKSkge1xyXG4gICAgICByZXR1cm4gZGlmZmVyZW50TG9jYWxlc1tjdXJyZW50TGFuZ107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY3VycmVudExhbmc7XHJcbiAgfVxyXG5cclxuICB2YWx1ZU9mKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IExvY2FsZVByb3ZpZGVyOiBQcm92aWRlciA9IHtcclxuICBwcm92aWRlOiBMT0NBTEVfSUQsXHJcbiAgdXNlQ2xhc3M6IExvY2FsZUlkLFxyXG4gIGRlcHM6IFtMb2NhbGl6YXRpb25TZXJ2aWNlXSxcclxufTtcclxuIl19","import { INCUDE_LOCALIZATION_RESOURCES_TOKEN } from '../tokens/include-localization-resources.token';\nexport const IncludeLocalizationResourcesProvider = {\n    provide: INCUDE_LOCALIZATION_RESOURCES_TOKEN,\n    useValue: false,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5jbHVkZS1sb2NhbGl6YXRpb24tcmVzb3VyY2VzLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9pbmNsdWRlLWxvY2FsaXphdGlvbi1yZXNvdXJjZXMucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFckcsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQWE7SUFDNUQsT0FBTyxFQUFFLG1DQUFtQztJQUM1QyxRQUFRLEVBQUUsS0FBSztDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSU5DVURFX0xPQ0FMSVpBVElPTl9SRVNPVVJDRVNfVE9LRU4gfSBmcm9tICcuLi90b2tlbnMvaW5jbHVkZS1sb2NhbGl6YXRpb24tcmVzb3VyY2VzLnRva2VuJztcclxuXHJcbmV4cG9ydCBjb25zdCBJbmNsdWRlTG9jYWxpemF0aW9uUmVzb3VyY2VzUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xyXG4gIHByb3ZpZGU6IElOQ1VERV9MT0NBTElaQVRJT05fUkVTT1VSQ0VTX1RPS0VOLFxyXG4gIHVzZVZhbHVlOiBmYWxzZSxcclxufTtcclxuIl19","import { Injectable, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RoutesService } from '../services/routes.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services/routes.service\";\nimport * as i2 from \"@angular/router\";\nexport class RoutesHandler {\n    constructor(routes, router) {\n        this.routes = routes;\n        this.router = router;\n        this.addRoutes();\n    }\n    addRoutes() {\n        this.router?.config?.forEach(({ path = '', data }) => {\n            const routes = data?.routes;\n            if (!routes)\n                return;\n            if (Array.isArray(routes)) {\n                this.routes.add(routes);\n            }\n            else {\n                const routesFlatten = flatRoutes([{ path, ...routes }], { path: '' });\n                this.routes.add(routesFlatten);\n            }\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RoutesHandler, deps: [{ token: i1.RoutesService }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RoutesHandler, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RoutesHandler, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.RoutesService }, { type: i2.Router, decorators: [{\n                    type: Optional\n                }] }] });\nfunction flatRoutes(routes, parent) {\n    if (!routes)\n        return [];\n    return routes.reduce((acc, route) => {\n        const { children, ...current } = {\n            ...route,\n            parentName: parent.name,\n            path: (parent.path + '/' + route.path).replace(/\\/\\//g, '/'),\n        };\n        acc.push(current, ...flatRoutes(children, current));\n        return acc;\n    }, []);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaGFuZGxlcnMvcm91dGVzLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFTLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUszRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNVLE1BQXFCLEVBQ1QsTUFBYztRQUQxQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ1QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUVsQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFNBQVM7UUFDTixJQUFJLENBQUMsTUFBTSxFQUFFLE1BQXNCLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBYSxFQUFFLEVBQUU7WUFDL0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxFQUFFLE1BQU0sQ0FBQztZQUM1QixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBRXBCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBcEJVLGFBQWE7a0hBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJSSxRQUFROztBQW9CYixTQUFTLFVBQVUsQ0FBQyxNQUFrQixFQUFFLE1BQVc7SUFDakQsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUV2QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDbEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHO1lBQy9CLEdBQUcsS0FBSztZQUNSLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSTtZQUN2QixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7U0FDN0QsQ0FBQztRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXBELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLEVBQWlCLENBQUMsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFJvdXRlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yb3V0ZXMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm91dGVzSGFuZGxlciB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlczogUm91dGVzU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmFkZFJvdXRlcygpO1xyXG4gIH1cclxuXHJcbiAgYWRkUm91dGVzKCkge1xyXG4gICAgKHRoaXMucm91dGVyPy5jb25maWcgYXMgUm91dGVEYXRhW10pPy5mb3JFYWNoKCh7IHBhdGggPSAnJywgZGF0YSB9OiBSb3V0ZURhdGEpID0+IHtcclxuICAgICAgY29uc3Qgcm91dGVzID0gZGF0YT8ucm91dGVzO1xyXG4gICAgICBpZiAoIXJvdXRlcykgcmV0dXJuO1xyXG5cclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm91dGVzKSkge1xyXG4gICAgICAgIHRoaXMucm91dGVzLmFkZChyb3V0ZXMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHJvdXRlc0ZsYXR0ZW4gPSBmbGF0Um91dGVzKFt7IHBhdGgsIC4uLnJvdXRlcyB9XSwgeyBwYXRoOiAnJyB9KTtcclxuICAgICAgICB0aGlzLnJvdXRlcy5hZGQocm91dGVzRmxhdHRlbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZmxhdFJvdXRlcyhyb3V0ZXM6IFJvdXRlRGVmW10sIHBhcmVudDogYW55KSB7XHJcbiAgaWYgKCFyb3V0ZXMpIHJldHVybiBbXTtcclxuXHJcbiAgcmV0dXJuIHJvdXRlcy5yZWR1Y2UoKGFjYywgcm91dGUpID0+IHtcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4sIC4uLmN1cnJlbnQgfSA9IHtcclxuICAgICAgLi4ucm91dGUsXHJcbiAgICAgIHBhcmVudE5hbWU6IHBhcmVudC5uYW1lLFxyXG4gICAgICBwYXRoOiAocGFyZW50LnBhdGggKyAnLycgKyByb3V0ZS5wYXRoKS5yZXBsYWNlKC9cXC9cXC8vZywgJy8nKSxcclxuICAgIH07XHJcblxyXG4gICAgYWNjLnB1c2goY3VycmVudCwgLi4uZmxhdFJvdXRlcyhjaGlsZHJlbiwgY3VycmVudCkpO1xyXG5cclxuICAgIHJldHVybiBhY2M7XHJcbiAgfSwgW10gYXMgQUJQLlJvdXRlW10pO1xyXG59XHJcblxyXG50eXBlIFJvdXRlRGVmID0gQUJQLlJvdXRlICYgeyBjaGlsZHJlbjogUm91dGVEZWZbXSB9O1xyXG50eXBlIFJvdXRlRGF0YSA9IFJvdXRlICYgeyBkYXRhOiB7IHJvdXRlczogUm91dGVEZWYgfCBBcnJheTxSb3V0ZURlZj4gfSB9O1xyXG4iXX0=","import { HttpHeaders, } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { finalize } from 'rxjs/operators';\nimport { HttpWaitService } from '../services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services\";\nexport class ApiInterceptor {\n    constructor(httpWaitService) {\n        this.httpWaitService = httpWaitService;\n    }\n    getAdditionalHeaders(existingHeaders) {\n        return existingHeaders || new HttpHeaders();\n    }\n    intercept(request, next) {\n        this.httpWaitService.addRequest(request);\n        return next.handle(request).pipe(finalize(() => this.httpWaitService.deleteRequest(request)));\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ApiInterceptor, deps: [{ token: i1.HttpWaitService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ApiInterceptor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ApiInterceptor, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.HttpWaitService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFdBQVcsR0FJWixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUs5QyxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFBRyxDQUFDO0lBRXhELG9CQUFvQixDQUFDLGVBQTZCO1FBQ2hELE9BQU8sZUFBZSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ3BELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDOzhHQVZVLGNBQWM7a0hBQWQsY0FBYyxjQUZiLE1BQU07OzJGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBIdHRwSGFuZGxlcixcclxuICBIdHRwSGVhZGVycyxcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cEV2ZW50LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwV2FpdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBJQXBpSW50ZXJjZXB0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFdhaXRTZXJ2aWNlOiBIdHRwV2FpdFNlcnZpY2UpIHt9XHJcblxyXG4gIGdldEFkZGl0aW9uYWxIZWFkZXJzKGV4aXN0aW5nSGVhZGVycz86IEh0dHBIZWFkZXJzKSB7XHJcbiAgICByZXR1cm4gZXhpc3RpbmdIZWFkZXJzIHx8IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gICAgdGhpcy5odHRwV2FpdFNlcnZpY2UuYWRkUmVxdWVzdChyZXF1ZXN0KTtcclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KS5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaHR0cFdhaXRTZXJ2aWNlLmRlbGV0ZVJlcXVlc3QocmVxdWVzdCkpKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFwaUludGVyY2VwdG9yIGV4dGVuZHMgSHR0cEludGVyY2VwdG9yIHtcclxuICBnZXRBZGRpdGlvbmFsSGVhZGVycyhleGlzdGluZ0hlYWRlcnM/OiBIdHRwSGVhZGVycyk6IEh0dHBIZWFkZXJzO1xyXG59XHJcbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { TimezoneService } from '../services';\nimport * as i0 from \"@angular/core\";\nexport class TimezoneInterceptor {\n    constructor() {\n        this.timezoneService = inject(TimezoneService);\n    }\n    intercept(req, next) {\n        if (!this.timezoneService.isUtcClockEnabled) {\n            return next.handle(req);\n        }\n        const timezone = this.timezoneService.timezone;\n        if (timezone) {\n            req = req.clone({\n                setHeaders: {\n                    __timezone: timezone,\n                },\n            });\n        }\n        return next.handle(req);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TimezoneInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TimezoneInterceptor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: TimezoneInterceptor, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXpvbmUuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaW50ZXJjZXB0b3JzL3RpbWV6b25lLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBTTlDLE1BQU0sT0FBTyxtQkFBbUI7SUFIaEM7UUFJcUIsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7S0FnQjlEO0lBZEMsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO1FBQy9DLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDZCxVQUFVLEVBQUU7b0JBQ1YsVUFBVSxFQUFFLFFBQVE7aUJBQ3JCO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDOzhHQWhCVSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRpbWV6b25lU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRpbWV6b25lSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIHByb3RlY3RlZCByZWFkb25seSB0aW1lem9uZVNlcnZpY2UgPSBpbmplY3QoVGltZXpvbmVTZXJ2aWNlKTtcclxuXHJcbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBpZiAoIXRoaXMudGltZXpvbmVTZXJ2aWNlLmlzVXRjQ2xvY2tFbmFibGVkKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGltZXpvbmUgPSB0aGlzLnRpbWV6b25lU2VydmljZS50aW1lem9uZTtcclxuICAgIGlmICh0aW1lem9uZSkge1xyXG4gICAgICByZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgICAgIHNldEhlYWRlcnM6IHtcclxuICAgICAgICAgIF9fdGltZXpvbmU6IHRpbWV6b25lLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { makeEnvironmentProviders, provideAppInitializer, inject } from '@angular/core';\nimport { TitleStrategy } from '@angular/router';\nimport { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi, withXsrfConfiguration, } from '@angular/common/http';\nimport { CORE_OPTIONS, LOCALIZATIONS, DYNAMIC_LAYOUTS_TOKEN, OTHERS_GROUP, QUEUE_MANAGER, SORT_COMPARE_FUNC, TENANT_KEY, compareFuncFactory, coreOptionsFactory, localizationContributor, } from '../tokens';\nimport { RoutesHandler } from '../handlers';\nimport { AuthErrorFilterService } from '../abstracts';\nimport { DEFAULT_DYNAMIC_LAYOUTS } from '../constants';\nimport { LocalizationService, LocalStorageListenerService, AbpTitleStrategy } from '../services';\nimport { DefaultQueueManager, getInitialData } from '../utils';\nimport { CookieLanguageProvider, IncludeLocalizationResourcesProvider, LocaleProvider } from './';\nimport { TimezoneInterceptor } from '../interceptors';\nexport var CoreFeatureKind;\n(function (CoreFeatureKind) {\n    CoreFeatureKind[CoreFeatureKind[\"Options\"] = 0] = \"Options\";\n    CoreFeatureKind[CoreFeatureKind[\"CompareFunctionFactory\"] = 1] = \"CompareFunctionFactory\";\n    CoreFeatureKind[CoreFeatureKind[\"TitleStrategy\"] = 2] = \"TitleStrategy\";\n})(CoreFeatureKind || (CoreFeatureKind = {}));\nfunction makeCoreFeature(kind, providers) {\n    return {\n        ɵkind: kind,\n        ɵproviders: providers,\n    };\n}\nexport function withOptions(options = {}) {\n    return makeCoreFeature(CoreFeatureKind.Options, [\n        {\n            provide: 'CORE_OPTIONS',\n            useValue: options,\n        },\n        {\n            provide: CORE_OPTIONS,\n            useFactory: coreOptionsFactory,\n            deps: ['CORE_OPTIONS'],\n        },\n        { provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' },\n        {\n            provide: LOCALIZATIONS,\n            multi: true,\n            useValue: localizationContributor(options.localizations),\n            deps: [LocalizationService],\n        },\n        {\n            provide: OTHERS_GROUP,\n            useValue: options.othersGroup || 'AbpUi::OthersGroup',\n        },\n        {\n            provide: DYNAMIC_LAYOUTS_TOKEN,\n            useValue: options.dynamicLayouts || DEFAULT_DYNAMIC_LAYOUTS,\n        },\n    ]);\n}\nexport function withTitleStrategy(strategy) {\n    return makeCoreFeature(CoreFeatureKind.TitleStrategy, [\n        {\n            provide: TitleStrategy,\n            useExisting: strategy,\n        },\n    ]);\n}\nexport function withCompareFuncFactory(factory) {\n    return makeCoreFeature(CoreFeatureKind.CompareFunctionFactory, [\n        {\n            provide: SORT_COMPARE_FUNC,\n            useFactory: factory,\n        },\n    ]);\n}\nexport function provideAbpCore(...features) {\n    const providers = [\n        provideHttpClient(withInterceptorsFromDi(), withXsrfConfiguration({\n            cookieName: 'XSRF-TOKEN',\n            headerName: 'RequestVerificationToken',\n        })),\n        provideAppInitializer(async () => {\n            inject(LocalizationService);\n            inject(LocalStorageListenerService);\n            inject(RoutesHandler);\n            await getInitialData();\n        }),\n        LocaleProvider,\n        CookieLanguageProvider,\n        {\n            provide: SORT_COMPARE_FUNC,\n            useFactory: compareFuncFactory,\n        },\n        {\n            provide: QUEUE_MANAGER,\n            useClass: DefaultQueueManager,\n        },\n        AuthErrorFilterService,\n        IncludeLocalizationResourcesProvider,\n        {\n            provide: TitleStrategy,\n            useExisting: AbpTitleStrategy,\n        },\n        {\n            provide: HTTP_INTERCEPTORS,\n            useClass: TimezoneInterceptor,\n            multi: true,\n        },\n    ];\n    for (const feature of features) {\n        providers.push(...feature.ɵproviders);\n    }\n    return makeEnvironmentProviders(providers);\n}\nexport function provideAbpCoreChild(options = {}) {\n    return makeEnvironmentProviders([\n        {\n            provide: LOCALIZATIONS,\n            multi: true,\n            useValue: localizationContributor(options.localizations),\n            deps: [LocalizationService],\n        },\n    ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1tb2R1bGUtY29uZmlnLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Byb3ZpZGVycy9jb3JlLW1vZHVsZS1jb25maWcucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFZLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFDTCxZQUFZLEVBQ1osYUFBYSxFQUNiLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osYUFBYSxFQUNiLGlCQUFpQixFQUNqQixVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQix1QkFBdUIsR0FDeEIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQkFBMkIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQ0FBb0MsRUFBRSxjQUFjLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsTUFBTSxDQUFOLElB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LFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxVQUFVLEVBQWU7SUFDM0QsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QjtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDeEQsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUM7U0FDNUI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciwgcHJvdmlkZUFwcEluaXRpYWxpemVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGl0bGVTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7XHJcbiAgSFRUUF9JTlRFUkNFUFRPUlMsXHJcbiAgcHJvdmlkZUh0dHBDbGllbnQsXHJcbiAgd2l0aEludGVyY2VwdG9yc0Zyb21EaSxcclxuICB3aXRoWHNyZkNvbmZpZ3VyYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIENPUkVfT1BUSU9OUyxcclxuICBMT0NBTElaQVRJT05TLFxyXG4gIERZTkFNSUNfTEFZT1VUU19UT0tFTixcclxuICBPVEhFUlNfR1JPVVAsXHJcbiAgUVVFVUVfTUFOQUdFUixcclxuICBTT1JUX0NPTVBBUkVfRlVOQyxcclxuICBURU5BTlRfS0VZLFxyXG4gIGNvbXBhcmVGdW5jRmFjdG9yeSxcclxuICBjb3JlT3B0aW9uc0ZhY3RvcnksXHJcbiAgbG9jYWxpemF0aW9uQ29udHJpYnV0b3IsXHJcbn0gZnJvbSAnLi4vdG9rZW5zJztcclxuaW1wb3J0IHsgUm91dGVzSGFuZGxlciB9IGZyb20gJy4uL2hhbmRsZXJzJztcclxuaW1wb3J0IHsgQUJQLCBTb3J0YWJsZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBdXRoRXJyb3JGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vYWJzdHJhY3RzJztcclxuaW1wb3J0IHsgREVGQVVMVF9EWU5BTUlDX0xBWU9VVFMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlLCBMb2NhbFN0b3JhZ2VMaXN0ZW5lclNlcnZpY2UsIEFicFRpdGxlU3RyYXRlZ3kgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IERlZmF1bHRRdWV1ZU1hbmFnZXIsIGdldEluaXRpYWxEYXRhIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBDb29raWVMYW5ndWFnZVByb3ZpZGVyLCBJbmNsdWRlTG9jYWxpemF0aW9uUmVzb3VyY2VzUHJvdmlkZXIsIExvY2FsZVByb3ZpZGVyIH0gZnJvbSAnLi8nO1xyXG5pbXBvcnQgeyBUaW1lem9uZUludGVyY2VwdG9yIH0gZnJvbSAnLi4vaW50ZXJjZXB0b3JzJztcclxuXHJcbmV4cG9ydCBlbnVtIENvcmVGZWF0dXJlS2luZCB7XHJcbiAgT3B0aW9ucyxcclxuICBDb21wYXJlRnVuY3Rpb25GYWN0b3J5LFxyXG4gIFRpdGxlU3RyYXRlZ3ksXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29yZUZlYXR1cmU8S2luZFQgZXh0ZW5kcyBDb3JlRmVhdHVyZUtpbmQ+IHtcclxuICDJtWtpbmQ6IEtpbmRUO1xyXG4gIMm1cHJvdmlkZXJzOiBQcm92aWRlcltdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtYWtlQ29yZUZlYXR1cmU8S2luZFQgZXh0ZW5kcyBDb3JlRmVhdHVyZUtpbmQ+KFxyXG4gIGtpbmQ6IEtpbmRULFxyXG4gIHByb3ZpZGVyczogUHJvdmlkZXJbXSxcclxuKTogQ29yZUZlYXR1cmU8S2luZFQ+IHtcclxuICByZXR1cm4ge1xyXG4gICAgybVraW5kOiBraW5kLFxyXG4gICAgybVwcm92aWRlcnM6IHByb3ZpZGVycyxcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gd2l0aE9wdGlvbnMob3B0aW9ucyA9IHt9IGFzIEFCUC5Sb290KTogQ29yZUZlYXR1cmU8Q29yZUZlYXR1cmVLaW5kLk9wdGlvbnM+IHtcclxuICByZXR1cm4gbWFrZUNvcmVGZWF0dXJlKENvcmVGZWF0dXJlS2luZC5PcHRpb25zLCBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6ICdDT1JFX09QVElPTlMnLFxyXG4gICAgICB1c2VWYWx1ZTogb3B0aW9ucyxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IENPUkVfT1BUSU9OUyxcclxuICAgICAgdXNlRmFjdG9yeTogY29yZU9wdGlvbnNGYWN0b3J5LFxyXG4gICAgICBkZXBzOiBbJ0NPUkVfT1BUSU9OUyddLFxyXG4gICAgfSxcclxuICAgIHsgcHJvdmlkZTogVEVOQU5UX0tFWSwgdXNlVmFsdWU6IG9wdGlvbnMudGVuYW50S2V5IHx8ICdfX3RlbmFudCcgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTE9DQUxJWkFUSU9OUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZVZhbHVlOiBsb2NhbGl6YXRpb25Db250cmlidXRvcihvcHRpb25zLmxvY2FsaXphdGlvbnMpLFxyXG4gICAgICBkZXBzOiBbTG9jYWxpemF0aW9uU2VydmljZV0sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBPVEhFUlNfR1JPVVAsXHJcbiAgICAgIHVzZVZhbHVlOiBvcHRpb25zLm90aGVyc0dyb3VwIHx8ICdBYnBVaTo6T3RoZXJzR3JvdXAnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogRFlOQU1JQ19MQVlPVVRTX1RPS0VOLFxyXG4gICAgICB1c2VWYWx1ZTogb3B0aW9ucy5keW5hbWljTGF5b3V0cyB8fCBERUZBVUxUX0RZTkFNSUNfTEFZT1VUUyxcclxuICAgIH0sXHJcbiAgXSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB3aXRoVGl0bGVTdHJhdGVneShzdHJhdGVneTogdW5rbm93bik6IENvcmVGZWF0dXJlPENvcmVGZWF0dXJlS2luZC5UaXRsZVN0cmF0ZWd5PiB7XHJcbiAgcmV0dXJuIG1ha2VDb3JlRmVhdHVyZShDb3JlRmVhdHVyZUtpbmQuVGl0bGVTdHJhdGVneSwgW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBUaXRsZVN0cmF0ZWd5LFxyXG4gICAgICB1c2VFeGlzdGluZzogc3RyYXRlZ3ksXHJcbiAgICB9LFxyXG4gIF0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gd2l0aENvbXBhcmVGdW5jRmFjdG9yeShcclxuICBmYWN0b3J5OiAoYTogU29ydGFibGVJdGVtLCBiOiBTb3J0YWJsZUl0ZW0pID0+IDEgfCAtMSB8IDAsXHJcbik6IENvcmVGZWF0dXJlPENvcmVGZWF0dXJlS2luZC5Db21wYXJlRnVuY3Rpb25GYWN0b3J5PiB7XHJcbiAgcmV0dXJuIG1ha2VDb3JlRmVhdHVyZShDb3JlRmVhdHVyZUtpbmQuQ29tcGFyZUZ1bmN0aW9uRmFjdG9yeSwgW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBTT1JUX0NPTVBBUkVfRlVOQyxcclxuICAgICAgdXNlRmFjdG9yeTogZmFjdG9yeSxcclxuICAgIH0sXHJcbiAgXSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQWJwQ29yZSguLi5mZWF0dXJlczogQ29yZUZlYXR1cmU8Q29yZUZlYXR1cmVLaW5kPltdKSB7XHJcbiAgY29uc3QgcHJvdmlkZXJzID0gW1xyXG4gICAgcHJvdmlkZUh0dHBDbGllbnQoXHJcbiAgICAgIHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSxcclxuICAgICAgd2l0aFhzcmZDb25maWd1cmF0aW9uKHtcclxuICAgICAgICBjb29raWVOYW1lOiAnWFNSRi1UT0tFTicsXHJcbiAgICAgICAgaGVhZGVyTmFtZTogJ1JlcXVlc3RWZXJpZmljYXRpb25Ub2tlbicsXHJcbiAgICAgIH0pLFxyXG4gICAgKSxcclxuICAgIHByb3ZpZGVBcHBJbml0aWFsaXplcihhc3luYyAoKSA9PiB7XHJcbiAgICAgIGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICAgICAgaW5qZWN0KExvY2FsU3RvcmFnZUxpc3RlbmVyU2VydmljZSk7XHJcbiAgICAgIGluamVjdChSb3V0ZXNIYW5kbGVyKTtcclxuICAgICAgYXdhaXQgZ2V0SW5pdGlhbERhdGEoKTtcclxuICAgIH0pLFxyXG4gICAgTG9jYWxlUHJvdmlkZXIsXHJcbiAgICBDb29raWVMYW5ndWFnZVByb3ZpZGVyLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBTT1JUX0NPTVBBUkVfRlVOQyxcclxuICAgICAgdXNlRmFjdG9yeTogY29tcGFyZUZ1bmNGYWN0b3J5LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogUVVFVUVfTUFOQUdFUixcclxuICAgICAgdXNlQ2xhc3M6IERlZmF1bHRRdWV1ZU1hbmFnZXIsXHJcbiAgICB9LFxyXG4gICAgQXV0aEVycm9yRmlsdGVyU2VydmljZSxcclxuICAgIEluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXNQcm92aWRlcixcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogVGl0bGVTdHJhdGVneSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IEFicFRpdGxlU3RyYXRlZ3ksXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcclxuICAgICAgdXNlQ2xhc3M6IFRpbWV6b25lSW50ZXJjZXB0b3IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdO1xyXG5cclxuICBmb3IgKGNvbnN0IGZlYXR1cmUgb2YgZmVhdHVyZXMpIHtcclxuICAgIHByb3ZpZGVycy5wdXNoKC4uLmZlYXR1cmUuybVwcm92aWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFicENvcmVDaGlsZChvcHRpb25zID0ge30gYXMgQUJQLkNoaWxkKSB7XHJcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IExPQ0FMSVpBVElPTlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VWYWx1ZTogbG9jYWxpemF0aW9uQ29udHJpYnV0b3Iob3B0aW9ucy5sb2NhbGl6YXRpb25zKSxcclxuICAgICAgZGVwczogW0xvY2FsaXphdGlvblNlcnZpY2VdLFxyXG4gICAgfSxcclxuICBdKTtcclxufVxyXG4iXX0=","import { Injectable, Pipe } from '@angular/core';\nimport { LocalizationService } from '../services/localization.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services/localization.service\";\nexport class LocalizationPipe {\n    constructor(localization) {\n        this.localization = localization;\n    }\n    transform(value = '', ...interpolateParams) {\n        const params = interpolateParams.reduce((acc, val) => {\n            if (!acc) {\n                return val;\n            }\n            if (!val) {\n                return acc;\n            }\n            return Array.isArray(val) ? [...acc, ...val] : [...acc, val];\n        }, []) || [];\n        return this.localization.instant(value, ...params);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationPipe, deps: [{ token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationPipe, isStandalone: true, name: \"abpLocalization\" }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationPipe }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationPipe, decorators: [{\n            type: Injectable\n        }, {\n            type: Pipe,\n            args: [{\n                    name: 'abpLocalization',\n                }]\n        }], ctorParameters: () => [{ type: i1.LocalizationService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWhFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFNdkUsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7SUFBRyxDQUFDO0lBRXpELFNBQVMsQ0FDUCxRQUEwQyxFQUFFLEVBQzVDLEdBQUcsaUJBQW9EO1FBRXZELE1BQU0sTUFBTSxHQUNWLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1lBQ0QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBbEJVLGdCQUFnQjs0R0FBaEIsZ0JBQWdCO2tIQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFVBQVU7O2tCQUNWLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbldpdGhEZWZhdWx0IH0gZnJvbSAnLi4vbW9kZWxzL2xvY2FsaXphdGlvbic7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYWJwTG9jYWxpemF0aW9uJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2FsaXphdGlvbjogTG9jYWxpemF0aW9uU2VydmljZSkge31cclxuXHJcbiAgdHJhbnNmb3JtKFxyXG4gICAgdmFsdWU6IHN0cmluZyB8IExvY2FsaXphdGlvbldpdGhEZWZhdWx0ID0gJycsXHJcbiAgICAuLi5pbnRlcnBvbGF0ZVBhcmFtczogKHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkKVtdXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9XHJcbiAgICAgIGludGVycG9sYXRlUGFyYW1zLnJlZHVjZSgoYWNjLCB2YWwpID0+IHtcclxuICAgICAgICBpZiAoIWFjYykge1xyXG4gICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF2YWwpIHtcclxuICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbCkgPyBbLi4uYWNjLCAuLi52YWxdIDogWy4uLmFjYywgdmFsXTtcclxuICAgICAgfSwgW10pIHx8IFtdO1xyXG4gICAgcmV0dXJuIHRoaXMubG9jYWxpemF0aW9uLmluc3RhbnQodmFsdWUsIC4uLnBhcmFtcyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { inject, Injectable, Pipe, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport * as i0 from \"@angular/core\";\nexport class SafeHtmlPipe {\n    constructor() {\n        this.sanitizer = inject(DomSanitizer);\n    }\n    transform(value) {\n        if (typeof value !== 'string')\n            return '';\n        return this.sanitizer.sanitize(SecurityContext.HTML, value);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: \"abpSafeHtml\" }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SafeHtmlPipe }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SafeHtmlPipe, decorators: [{\n            type: Injectable\n        }, {\n            type: Pipe,\n            args: [{\n                    name: 'abpSafeHtml',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcGlwZXMvc2FmZS1odG1sLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFpQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU16RCxNQUFNLE9BQU8sWUFBWTtJQUp6QjtRQUttQixjQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBTW5EO0lBSkMsU0FBUyxDQUFDLEtBQWE7UUFDckIsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7OEdBTlUsWUFBWTs0R0FBWixZQUFZO2tIQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBSnhCLFVBQVU7O2tCQUNWLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGFBQWE7aUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBTZWN1cml0eUNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYWJwU2FmZUh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FmZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHJldHVybiAnJztcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5zYW5pdGl6ZShTZWN1cml0eUNvbnRleHQuSFRNTCwgdmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Injectable, Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SortPipe {\n    transform(value, sortOrder = 'asc', sortKey) {\n        sortOrder = sortOrder && sortOrder.toLowerCase();\n        if (!value || (sortOrder !== 'asc' && sortOrder !== 'desc'))\n            return value;\n        let numberArray = [];\n        let stringArray = [];\n        if (!sortKey) {\n            numberArray = value.filter(item => typeof item === 'number').sort();\n            stringArray = value.filter(item => typeof item === 'string').sort();\n        }\n        else {\n            numberArray = value\n                .filter(item => typeof item[sortKey] === 'number')\n                .sort((a, b) => a[sortKey] - b[sortKey]);\n            stringArray = value\n                .filter(item => typeof item[sortKey] === 'string')\n                .sort((a, b) => {\n                if (a[sortKey] < b[sortKey])\n                    return -1;\n                else if (a[sortKey] > b[sortKey])\n                    return 1;\n                else\n                    return 0;\n            });\n        }\n        const sorted = [\n            ...numberArray,\n            ...stringArray,\n            ...value.filter(item => typeof (sortKey ? item[sortKey] : item) !== 'number' &&\n                typeof (sortKey ? item[sortKey] : item) !== 'string'),\n        ];\n        return sortOrder === 'asc' ? sorted : sorted.reverse();\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: SortPipe, isStandalone: true, name: \"abpSort\" }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SortPipe }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: SortPipe, decorators: [{\n            type: Injectable\n        }, {\n            type: Pipe,\n            args: [{\n                    name: 'abpSort',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3BpcGVzL3NvcnQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT2hFLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFNBQVMsQ0FBQyxLQUFZLEVBQUUsWUFBZ0MsS0FBSyxFQUFFLE9BQXlCO1FBQ3RGLFNBQVMsR0FBRyxTQUFTLElBQUssU0FBUyxDQUFDLFdBQVcsRUFBVSxDQUFDO1FBRTFELElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxJQUFJLFNBQVMsS0FBSyxNQUFNLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUUxRSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDckIsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEUsV0FBVyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0RSxDQUFDO2FBQU0sQ0FBQztZQUNOLFdBQVcsR0FBRyxLQUFLO2lCQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUM7aUJBQ2pELElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMzQyxXQUFXLEdBQUcsS0FBSztpQkFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDO2lCQUNqRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztvQkFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO3FCQUNsQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO29CQUFFLE9BQU8sQ0FBQyxDQUFDOztvQkFDdEMsT0FBTyxDQUFDLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUc7WUFDYixHQUFHLFdBQVc7WUFDZCxHQUFHLFdBQVc7WUFDZCxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQ2IsSUFBSSxDQUFDLEVBQUUsQ0FDTCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVE7Z0JBQ3BELE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxDQUN2RDtTQUNGLENBQUM7UUFDRixPQUFPLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pELENBQUM7OEdBbENVLFFBQVE7NEdBQVIsUUFBUTtrSEFBUixRQUFROzsyRkFBUixRQUFRO2tCQUpwQixVQUFVOztrQkFDVixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxTQUFTO2lCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuZXhwb3J0IHR5cGUgU29ydE9yZGVyID0gJ2FzYycgfCAnZGVzYyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYWJwU29ydCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTb3J0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogYW55W10sIHNvcnRPcmRlcjogU29ydE9yZGVyIHwgc3RyaW5nID0gJ2FzYycsIHNvcnRLZXk/OiBzdHJpbmcgfCBudW1iZXIpOiBhbnkge1xyXG4gICAgc29ydE9yZGVyID0gc29ydE9yZGVyICYmIChzb3J0T3JkZXIudG9Mb3dlckNhc2UoKSBhcyBhbnkpO1xyXG5cclxuICAgIGlmICghdmFsdWUgfHwgKHNvcnRPcmRlciAhPT0gJ2FzYycgJiYgc29ydE9yZGVyICE9PSAnZGVzYycpKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgbGV0IG51bWJlckFycmF5ID0gW107XHJcbiAgICBsZXQgc3RyaW5nQXJyYXkgPSBbXTtcclxuXHJcbiAgICBpZiAoIXNvcnRLZXkpIHtcclxuICAgICAgbnVtYmVyQXJyYXkgPSB2YWx1ZS5maWx0ZXIoaXRlbSA9PiB0eXBlb2YgaXRlbSA9PT0gJ251bWJlcicpLnNvcnQoKTtcclxuICAgICAgc3RyaW5nQXJyYXkgPSB2YWx1ZS5maWx0ZXIoaXRlbSA9PiB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpLnNvcnQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG51bWJlckFycmF5ID0gdmFsdWVcclxuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gdHlwZW9mIGl0ZW1bc29ydEtleV0gPT09ICdudW1iZXInKVxyXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhW3NvcnRLZXldIC0gYltzb3J0S2V5XSk7XHJcbiAgICAgIHN0cmluZ0FycmF5ID0gdmFsdWVcclxuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gdHlwZW9mIGl0ZW1bc29ydEtleV0gPT09ICdzdHJpbmcnKVxyXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICBpZiAoYVtzb3J0S2V5XSA8IGJbc29ydEtleV0pIHJldHVybiAtMTtcclxuICAgICAgICAgIGVsc2UgaWYgKGFbc29ydEtleV0gPiBiW3NvcnRLZXldKSByZXR1cm4gMTtcclxuICAgICAgICAgIGVsc2UgcmV0dXJuIDA7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzb3J0ZWQgPSBbXHJcbiAgICAgIC4uLm51bWJlckFycmF5LFxyXG4gICAgICAuLi5zdHJpbmdBcnJheSxcclxuICAgICAgLi4udmFsdWUuZmlsdGVyKFxyXG4gICAgICAgIGl0ZW0gPT5cclxuICAgICAgICAgIHR5cGVvZiAoc29ydEtleSA/IGl0ZW1bc29ydEtleV0gOiBpdGVtKSAhPT0gJ251bWJlcicgJiZcclxuICAgICAgICAgIHR5cGVvZiAoc29ydEtleSA/IGl0ZW1bc29ydEtleV0gOiBpdGVtKSAhPT0gJ3N0cmluZycsXHJcbiAgICAgICksXHJcbiAgICBdO1xyXG4gICAgcmV0dXJuIHNvcnRPcmRlciA9PT0gJ2FzYycgPyBzb3J0ZWQgOiBzb3J0ZWQucmV2ZXJzZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { InjectionToken, Injector, Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const INJECTOR_PIPE_DATA_TOKEN = new InjectionToken('INJECTOR_PIPE_DATA_TOKEN');\nexport class ToInjectorPipe {\n    constructor(injector) {\n        this.injector = injector;\n    }\n    transform(value, token = INJECTOR_PIPE_DATA_TOKEN, name = 'ToInjectorPipe') {\n        return Injector.create({\n            providers: [\n                {\n                    provide: token,\n                    useValue: value,\n                },\n            ],\n            parent: this.injector,\n            name,\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ToInjectorPipe, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: ToInjectorPipe, isStandalone: true, name: \"toInjector\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ToInjectorPipe, decorators: [{\n            type: Pipe,\n            args: [{\n                    name: 'toInjector',\n                }]\n        }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8taW5qZWN0b3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9waXBlcy90by1pbmplY3Rvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRTlFLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN4RCwwQkFBMEIsQ0FDM0IsQ0FBQztBQUtGLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBQzFDLFNBQVMsQ0FDUCxLQUFVLEVBQ1YsUUFBNkIsd0JBQXdCLEVBQ3JELElBQUksR0FBRyxnQkFBZ0I7UUFFdkIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsS0FBSztvQkFDZCxRQUFRLEVBQUUsS0FBSztpQkFDaEI7YUFDRjtZQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNyQixJQUFJO1NBQ0wsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FqQlUsY0FBYzs0R0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUgxQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxZQUFZO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IElOSkVDVE9SX1BJUEVfREFUQV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQaXBlVHJhbnNmb3JtPihcclxuICAnSU5KRUNUT1JfUElQRV9EQVRBX1RPS0VOJyxcclxuKTtcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAndG9JbmplY3RvcicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUb0luamVjdG9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxyXG4gIHRyYW5zZm9ybShcclxuICAgIHZhbHVlOiBhbnksXHJcbiAgICB0b2tlbjogSW5qZWN0aW9uVG9rZW48YW55PiA9IElOSkVDVE9SX1BJUEVfREFUQV9UT0tFTixcclxuICAgIG5hbWUgPSAnVG9JbmplY3RvclBpcGUnLFxyXG4gICk6IEluamVjdG9yIHtcclxuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiB0b2tlbixcclxuICAgICAgICAgIHVzZVZhbHVlOiB2YWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXHJcbiAgICAgIG5hbWUsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\nimport { Inject, LOCALE_ID, Optional, Pipe } from '@angular/core';\nimport { ConfigStateService } from '../services';\nimport { getShortDateFormat } from '../utils/date-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services\";\nexport class ShortDatePipe extends DatePipe {\n    constructor(configStateService, locale, defaultTimezone) {\n        super(locale, defaultTimezone);\n        this.configStateService = configStateService;\n    }\n    transform(value, timezone, locale) {\n        const format = getShortDateFormat(this.configStateService);\n        return super.transform(value, format, timezone, locale);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ShortDatePipe, deps: [{ token: i1.ConfigStateService }, { token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: ShortDatePipe, isStandalone: true, name: \"shortDate\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ShortDatePipe, decorators: [{\n            type: Pipe,\n            args: [{\n                    name: 'shortDate',\n                    pure: true,\n                }]\n        }], ctorParameters: () => [{ type: i1.ConfigStateService }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [LOCALE_ID]\n                }] }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [DATE_PIPE_DEFAULT_TIMEZONE]\n                }, {\n                    type: Optional\n                }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnQtZGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3BpcGVzL3Nob3J0LWRhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFNekQsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBQ3pDLFlBQ1Usa0JBQXNDLEVBQzNCLE1BQWMsRUFDZSxlQUErQjtRQUUvRSxLQUFLLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSnZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFLaEQsQ0FBQztJQVNELFNBQVMsQ0FDUCxLQUFnRCxFQUNoRCxRQUFpQixFQUNqQixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0QsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7OEdBdkJVLGFBQWEsb0RBR2QsU0FBUyxhQUNULDBCQUEwQjs0R0FKekIsYUFBYTs7MkZBQWIsYUFBYTtrQkFKekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztvQkFDakIsSUFBSSxFQUFFLElBQUk7aUJBQ1g7OzBCQUlJLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLE1BQU07MkJBQUMsMEJBQTBCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUsIERBVEVfUElQRV9ERUZBVUxUX1RJTUVaT05FIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBMT0NBTEVfSUQsIE9wdGlvbmFsLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgZ2V0U2hvcnREYXRlRm9ybWF0IH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS11dGlscyc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3Nob3J0RGF0ZScsXHJcbiAgcHVyZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNob3J0RGF0ZVBpcGUgZXh0ZW5kcyBEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZVNlcnZpY2U6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBsb2NhbGU6IHN0cmluZyxcclxuICAgIEBJbmplY3QoREFURV9QSVBFX0RFRkFVTFRfVElNRVpPTkUpIEBPcHRpb25hbCgpIGRlZmF1bHRUaW1lem9uZT86IHN0cmluZyB8IG51bGwsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihsb2NhbGUsIGRlZmF1bHRUaW1lem9uZSk7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm0oXHJcbiAgICB2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlcixcclxuICAgIGZvcm1hdD86IHN0cmluZyxcclxuICAgIHRpbWV6b25lPzogc3RyaW5nLFxyXG4gICAgbG9jYWxlPzogc3RyaW5nLFxyXG4gICk6IHN0cmluZyB8IG51bGw7XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBudWxsIHwgdW5kZWZpbmVkLCBmb3JtYXQ/OiBzdHJpbmcsIHRpbWV6b25lPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBudWxsO1xyXG4gIHRyYW5zZm9ybShcclxuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICAgIHRpbWV6b25lPzogc3RyaW5nLFxyXG4gICAgbG9jYWxlPzogc3RyaW5nLFxyXG4gICk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgZm9ybWF0ID0gZ2V0U2hvcnREYXRlRm9ybWF0KHRoaXMuY29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCwgdGltZXpvbmUsIGxvY2FsZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\nimport { Inject, LOCALE_ID, Optional, Pipe } from '@angular/core';\nimport { ConfigStateService } from '../services';\nimport { getShortTimeFormat } from '../utils/date-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services\";\nexport class ShortTimePipe extends DatePipe {\n    constructor(configStateService, locale, defaultTimezone) {\n        super(locale, defaultTimezone);\n        this.configStateService = configStateService;\n    }\n    transform(value, timezone, locale) {\n        const format = getShortTimeFormat(this.configStateService);\n        return super.transform(value, format, timezone, locale);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ShortTimePipe, deps: [{ token: i1.ConfigStateService }, { token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: ShortTimePipe, isStandalone: true, name: \"shortTime\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ShortTimePipe, decorators: [{\n            type: Pipe,\n            args: [{\n                    name: 'shortTime',\n                    pure: true,\n                }]\n        }], ctorParameters: () => [{ type: i1.ConfigStateService }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [LOCALE_ID]\n                }] }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [DATE_PIPE_DEFAULT_TIMEZONE]\n                }, {\n                    type: Optional\n                }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnQtdGltZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3BpcGVzL3Nob3J0LXRpbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFNekQsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFRO0lBQ3pDLFlBQ1Usa0JBQXNDLEVBQzNCLE1BQWMsRUFDZSxlQUErQjtRQUUvRSxLQUFLLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSnZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFLaEQsQ0FBQztJQVNELFNBQVMsQ0FDUCxLQUFnRCxFQUNoRCxRQUFpQixFQUNqQixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0QsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7OEdBdkJVLGFBQWEsb0RBR2QsU0FBUyxhQUNULDBCQUEwQjs0R0FKekIsYUFBYTs7MkZBQWIsYUFBYTtrQkFKekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztvQkFDakIsSUFBSSxFQUFFLElBQUk7aUJBQ1g7OzBCQUlJLE1BQU07MkJBQUMsU0FBUzs7MEJBQ2hCLE1BQU07MkJBQUMsMEJBQTBCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBpcGUsIERBVEVfUElQRV9ERUZBVUxUX1RJTUVaT05FIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBMT0NBTEVfSUQsIE9wdGlvbmFsLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgZ2V0U2hvcnRUaW1lRm9ybWF0IH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS11dGlscyc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ3Nob3J0VGltZScsXHJcbiAgcHVyZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNob3J0VGltZVBpcGUgZXh0ZW5kcyBEYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZVNlcnZpY2U6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBsb2NhbGU6IHN0cmluZyxcclxuICAgIEBJbmplY3QoREFURV9QSVBFX0RFRkFVTFRfVElNRVpPTkUpIEBPcHRpb25hbCgpIGRlZmF1bHRUaW1lem9uZT86IHN0cmluZyB8IG51bGwsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihsb2NhbGUsIGRlZmF1bHRUaW1lem9uZSk7XHJcbiAgfVxyXG5cclxuICB0cmFuc2Zvcm0oXHJcbiAgICB2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlcixcclxuICAgIGZvcm1hdD86IHN0cmluZyxcclxuICAgIHRpbWV6b25lPzogc3RyaW5nLFxyXG4gICAgbG9jYWxlPzogc3RyaW5nLFxyXG4gICk6IHN0cmluZyB8IG51bGw7XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBudWxsIHwgdW5kZWZpbmVkLCBmb3JtYXQ/OiBzdHJpbmcsIHRpbWV6b25lPzogc3RyaW5nLCBsb2NhbGU/OiBzdHJpbmcpOiBudWxsO1xyXG4gIHRyYW5zZm9ybShcclxuICAgIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICAgIHRpbWV6b25lPzogc3RyaW5nLFxyXG4gICAgbG9jYWxlPzogc3RyaW5nLFxyXG4gICk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgZm9ybWF0ID0gZ2V0U2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCwgdGltZXpvbmUsIGxvY2FsZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","import { DatePipe, DATE_PIPE_DEFAULT_TIMEZONE } from '@angular/common';\nimport { Inject, LOCALE_ID, Optional, Pipe } from '@angular/core';\nimport { ConfigStateService } from '../services';\nimport { getShortDateShortTimeFormat } from '../utils/date-utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../services\";\nexport class ShortDateTimePipe extends DatePipe {\n    constructor(configStateService, locale, defaultTimezone) {\n        super(locale, defaultTimezone);\n        this.configStateService = configStateService;\n    }\n    transform(value, timezone, locale) {\n        const format = getShortDateShortTimeFormat(this.configStateService);\n        return super.transform(value, format, timezone, locale);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ShortDateTimePipe, deps: [{ token: i1.ConfigStateService }, { token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: ShortDateTimePipe, isStandalone: true, name: \"shortDateTime\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: ShortDateTimePipe, decorators: [{\n            type: Pipe,\n            args: [{\n                    name: 'shortDateTime',\n                    pure: true,\n                }]\n        }], ctorParameters: () => [{ type: i1.ConfigStateService }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [LOCALE_ID]\n                }] }, { type: undefined, decorators: [{\n                    type: Inject,\n                    args: [DATE_PIPE_DEFAULT_TIMEZONE]\n                }, {\n                    type: Optional\n                }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcnQtZGF0ZS10aW1lLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcGlwZXMvc2hvcnQtZGF0ZS10aW1lLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTWxFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxRQUFRO0lBQzdDLFlBQ1Usa0JBQXNDLEVBQzNCLE1BQWMsRUFDZSxlQUErQjtRQUUvRSxLQUFLLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSnZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFLaEQsQ0FBQztJQVNELFNBQVMsQ0FDUCxLQUFnRCxFQUNoRCxRQUFpQixFQUNqQixNQUFlO1FBRWYsTUFBTSxNQUFNLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDcEUsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7OEdBdkJVLGlCQUFpQixvREFHbEIsU0FBUyxhQUNULDBCQUEwQjs0R0FKekIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUo3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO29CQUNyQixJQUFJLEVBQUUsSUFBSTtpQkFDWDs7MEJBSUksTUFBTTsyQkFBQyxTQUFTOzswQkFDaEIsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSwgREFURV9QSVBFX0RFRkFVTFRfVElNRVpPTkUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3QsIExPQ0FMRV9JRCwgT3B0aW9uYWwsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBnZXRTaG9ydERhdGVTaG9ydFRpbWVGb3JtYXQgfSBmcm9tICcuLi91dGlscy9kYXRlLXV0aWxzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnc2hvcnREYXRlVGltZScsXHJcbiAgcHVyZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNob3J0RGF0ZVRpbWVQaXBlIGV4dGVuZHMgRGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29uZmlnU3RhdGVTZXJ2aWNlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KExPQ0FMRV9JRCkgbG9jYWxlOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KERBVEVfUElQRV9ERUZBVUxUX1RJTUVaT05FKSBAT3B0aW9uYWwoKSBkZWZhdWx0VGltZXpvbmU/OiBzdHJpbmcgfCBudWxsLFxyXG4gICkge1xyXG4gICAgc3VwZXIobG9jYWxlLCBkZWZhdWx0VGltZXpvbmUpO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmb3JtKFxyXG4gICAgdmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIsXHJcbiAgICBmb3JtYXQ/OiBzdHJpbmcsXHJcbiAgICB0aW1lem9uZT86IHN0cmluZyxcclxuICAgIGxvY2FsZT86IHN0cmluZyxcclxuICApOiBzdHJpbmcgfCBudWxsO1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogbnVsbCB8IHVuZGVmaW5lZCwgZm9ybWF0Pzogc3RyaW5nLCB0aW1lem9uZT86IHN0cmluZywgbG9jYWxlPzogc3RyaW5nKTogbnVsbDtcclxuICB0cmFuc2Zvcm0oXHJcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQsXHJcbiAgICB0aW1lem9uZT86IHN0cmluZyxcclxuICAgIGxvY2FsZT86IHN0cmluZyxcclxuICApOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IGZvcm1hdCA9IGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCh0aGlzLmNvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgICByZXR1cm4gc3VwZXIudHJhbnNmb3JtKHZhbHVlLCBmb3JtYXQsIHRpbWV6b25lLCBsb2NhbGUpO1xyXG4gIH1cclxufVxyXG4iXX0=","import { Pipe, Injectable, inject, LOCALE_ID } from '@angular/core';\nimport { ConfigStateService, LocalizationService, TimeService, TimezoneService } from '../services';\nimport { getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat } from '../utils';\nimport * as i0 from \"@angular/core\";\nexport class UtcToLocalPipe {\n    constructor() {\n        this.timezoneService = inject(TimezoneService);\n        this.timeService = inject(TimeService);\n        this.configState = inject(ConfigStateService);\n        this.localizationService = inject(LocalizationService);\n        this.locale = inject(LOCALE_ID);\n    }\n    transform(value, type) {\n        if (!value)\n            return '';\n        const date = new Date(value);\n        if (isNaN(date.getTime()))\n            return '';\n        const format = this.getFormat(type);\n        try {\n            if (this.timezoneService.isUtcClockEnabled) {\n                const timeZone = this.timezoneService.timezone;\n                return this.timeService.formatDateWithStandardOffset(date, format, timeZone);\n            }\n            else {\n                return this.timeService.formatWithoutTimeZone(date, format);\n            }\n        }\n        catch (err) {\n            return value;\n        }\n    }\n    getFormat(propType) {\n        switch (propType) {\n            case 'date':\n                return getShortDateFormat(this.configState);\n            case 'time':\n                return getShortTimeFormat(this.configState);\n            case 'datetime':\n            default:\n                return getShortDateShortTimeFormat(this.configState);\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: UtcToLocalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: UtcToLocalPipe, isStandalone: true, name: \"abpUtcToLocal\" }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: UtcToLocalPipe }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: UtcToLocalPipe, decorators: [{\n            type: Injectable\n        }, {\n            type: Pipe,\n            args: [{\n                    name: 'abpUtcToLocal',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRjLXRvLWxvY2FsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcGlwZXMvdXRjLXRvLWxvY2FsLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQU0vRixNQUFNLE9BQU8sY0FBYztJQUozQjtRQUtxQixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3pDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0FvQy9DO0lBbENDLFNBQVMsQ0FDUCxLQUF1QyxFQUN2QyxJQUFrQztRQUVsQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXRCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXJDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO2dCQUMvQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU8sU0FBUyxDQUFDLFFBQXNDO1FBQ3RELFFBQVEsUUFBUSxFQUFFLENBQUM7WUFDakIsS0FBSyxNQUFNO2dCQUNULE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlDLEtBQUssTUFBTTtnQkFDVCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QyxLQUFLLFVBQVUsQ0FBQztZQUNoQjtnQkFDRSxPQUFPLDJCQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQzs4R0F4Q1UsY0FBYzs0R0FBZCxjQUFjO2tIQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBSjFCLFVBQVU7O2tCQUNWLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGVBQWU7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgSW5qZWN0YWJsZSwgaW5qZWN0LCBMT0NBTEVfSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlLCBMb2NhbGl6YXRpb25TZXJ2aWNlLCBUaW1lU2VydmljZSwgVGltZXpvbmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBnZXRTaG9ydERhdGVGb3JtYXQsIGdldFNob3J0RGF0ZVNob3J0VGltZUZvcm1hdCwgZ2V0U2hvcnRUaW1lRm9ybWF0IH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2FicFV0Y1RvTG9jYWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXRjVG9Mb2NhbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGltZXpvbmVTZXJ2aWNlID0gaW5qZWN0KFRpbWV6b25lU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpbWVTZXJ2aWNlID0gaW5qZWN0KFRpbWVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnU3RhdGUgPSBpbmplY3QoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxlID0gaW5qZWN0KExPQ0FMRV9JRCk7XHJcblxyXG4gIHRyYW5zZm9ybShcclxuICAgIHZhbHVlOiBzdHJpbmcgfCBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCxcclxuICAgIHR5cGU6ICdkYXRlJyB8ICdkYXRldGltZScgfCAndGltZScsXHJcbiAgKTogc3RyaW5nIHwgRGF0ZSB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XHJcblxyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcclxuICAgIGlmIChpc05hTihkYXRlLmdldFRpbWUoKSkpIHJldHVybiAnJztcclxuXHJcbiAgICBjb25zdCBmb3JtYXQgPSB0aGlzLmdldEZvcm1hdCh0eXBlKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy50aW1lem9uZVNlcnZpY2UuaXNVdGNDbG9ja0VuYWJsZWQpIHtcclxuICAgICAgICBjb25zdCB0aW1lWm9uZSA9IHRoaXMudGltZXpvbmVTZXJ2aWNlLnRpbWV6b25lO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRpbWVTZXJ2aWNlLmZvcm1hdERhdGVXaXRoU3RhbmRhcmRPZmZzZXQoZGF0ZSwgZm9ybWF0LCB0aW1lWm9uZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGltZVNlcnZpY2UuZm9ybWF0V2l0aG91dFRpbWVab25lKGRhdGUsIGZvcm1hdCk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZvcm1hdChwcm9wVHlwZTogJ2RhdGUnIHwgJ2RhdGV0aW1lJyB8ICd0aW1lJyk6IHN0cmluZyB7XHJcbiAgICBzd2l0Y2ggKHByb3BUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHJldHVybiBnZXRTaG9ydERhdGVGb3JtYXQodGhpcy5jb25maWdTdGF0ZSk7XHJcbiAgICAgIGNhc2UgJ3RpbWUnOlxyXG4gICAgICAgIHJldHVybiBnZXRTaG9ydFRpbWVGb3JtYXQodGhpcy5jb25maWdTdGF0ZSk7XHJcbiAgICAgIGNhc2UgJ2RhdGV0aW1lJzpcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZ2V0U2hvcnREYXRlU2hvcnRUaW1lRm9ybWF0KHRoaXMuY29uZmlnU3RhdGUpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=","import { inject, Injectable, Pipe } from '@angular/core';\nimport { of, filter, take, switchMap, map, startWith, distinctUntilChanged, } from 'rxjs';\nimport { ConfigStateService, LocalizationService } from '../services';\nimport * as i0 from \"@angular/core\";\nexport class LazyLocalizationPipe {\n    constructor() {\n        this.localizationService = inject(LocalizationService);\n        this.configStateService = inject(ConfigStateService);\n    }\n    transform(key, ...params) {\n        if (!key) {\n            return of('');\n        }\n        const flatParams = params.reduce((acc, val) => (Array.isArray(val) ? acc.concat(val) : [...acc, val]), []);\n        return this.configStateService.getAll$().pipe(filter(config => !!config.localization), take(1), switchMap(() => this.localizationService.get(key, ...flatParams)), map(translation => (translation && translation !== key ? translation : '')), startWith(''), distinctUntilChanged());\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LazyLocalizationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: LazyLocalizationPipe, isStandalone: true, name: \"abpLazyLocalization\" }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LazyLocalizationPipe }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LazyLocalizationPipe, decorators: [{\n            type: Injectable\n        }, {\n            type: Pipe,\n            args: [{\n                    name: 'abpLazyLocalization',\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2NhbGl6YXRpb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9waXBlcy9sYXp5LWxvY2FsaXphdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUVMLEVBQUUsRUFDRixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxHQUFHLEVBQ0gsU0FBUyxFQUNULG9CQUFvQixHQUNyQixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFNdEUsTUFBTSxPQUFPLG9CQUFvQjtJQUpqQztRQUtVLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xELHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0tBcUJ6RDtJQW5CQyxTQUFTLENBQUMsR0FBVyxFQUFFLEdBQUcsTUFBNkI7UUFDckQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQzlCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQ3BFLEVBQUUsQ0FDSCxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUMzQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUN2QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFDakUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksV0FBVyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUMzRSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQ2Isb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztJQUNKLENBQUM7OEdBdEJVLG9CQUFvQjs0R0FBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBSmhDLFVBQVU7O2tCQUNWLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHFCQUFxQjtpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBPYnNlcnZhYmxlLFxyXG4gIG9mLFxyXG4gIGZpbHRlcixcclxuICB0YWtlLFxyXG4gIHN3aXRjaE1hcCxcclxuICBtYXAsXHJcbiAgc3RhcnRXaXRoLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYWJwTGF6eUxvY2FsaXphdGlvbicsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXp5TG9jYWxpemF0aW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHByaXZhdGUgbG9jYWxpemF0aW9uU2VydmljZSA9IGluamVjdChMb2NhbGl6YXRpb25TZXJ2aWNlKTtcclxuICBwcml2YXRlIGNvbmZpZ1N0YXRlU2VydmljZSA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG5cclxuICB0cmFuc2Zvcm0oa2V5OiBzdHJpbmcsIC4uLnBhcmFtczogKHN0cmluZyB8IHN0cmluZ1tdKVtdKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGlmICgha2V5KSB7XHJcbiAgICAgIHJldHVybiBvZignJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmxhdFBhcmFtcyA9IHBhcmFtcy5yZWR1Y2U8c3RyaW5nW10+KFxyXG4gICAgICAoYWNjLCB2YWwpID0+IChBcnJheS5pc0FycmF5KHZhbCkgPyBhY2MuY29uY2F0KHZhbCkgOiBbLi4uYWNjLCB2YWxdKSxcclxuICAgICAgW10sXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N0YXRlU2VydmljZS5nZXRBbGwkKCkucGlwZShcclxuICAgICAgZmlsdGVyKGNvbmZpZyA9PiAhIWNvbmZpZy5sb2NhbGl6YXRpb24pLFxyXG4gICAgICB0YWtlKDEpLFxyXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldChrZXksIC4uLmZsYXRQYXJhbXMpKSxcclxuICAgICAgbWFwKHRyYW5zbGF0aW9uID0+ICh0cmFuc2xhdGlvbiAmJiB0cmFuc2xhdGlvbiAhPT0ga2V5ID8gdHJhbnNsYXRpb24gOiAnJykpLFxyXG4gICAgICBzdGFydFdpdGgoJycpLFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19","import { CommonModule } from '@angular/common';\nimport { provideHttpClient, withInterceptorsFromDi, withXsrfConfiguration, } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { AbstractNgModelComponent } from './abstracts';\nimport { DynamicLayoutComponent, ReplaceableRouteContainerComponent, RouterOutletComponent, } from './components';\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\nimport { StopPropagationDirective, ReplaceableTemplateDirective, PermissionDirective, InitDirective, ForDirective, InputEventDebounceDirective, AutofocusDirective, FormSubmitDirective, } from './directives';\nimport './utils/date-extensions';\nimport { provideAbpCoreChild, provideAbpCore, withOptions } from './providers';\nimport { LazyLocalizationPipe, UtcToLocalPipe, SafeHtmlPipe, ShortDatePipe, ShortTimePipe, ShortDateTimePipe, ToInjectorPipe, SortPipe, LocalizationPipe, } from './pipes';\nimport * as i0 from \"@angular/core\";\nconst CORE_DIRECTIVES = [\n    AutofocusDirective,\n    InputEventDebounceDirective,\n    ForDirective,\n    FormSubmitDirective,\n    InitDirective,\n    PermissionDirective,\n    ReplaceableTemplateDirective,\n    StopPropagationDirective,\n];\nconst CORE_PIPES = [\n    LocalizationPipe,\n    SortPipe,\n    SafeHtmlPipe,\n    ShortDateTimePipe,\n    ShortTimePipe,\n    ShortDatePipe,\n    ToInjectorPipe,\n    UtcToLocalPipe,\n    LazyLocalizationPipe,\n];\nconst CORE_COMPONENTS = [\n    DynamicLayoutComponent,\n    ReplaceableRouteContainerComponent,\n    RouterOutletComponent,\n    AbstractNgModelComponent,\n];\n/**\n * BaseCoreModule is the module that holds\n * all imports, declarations, exports, and entryComponents\n * but not the providers.\n * This module will be imported and exported by all others.\n */\nexport class BaseCoreModule {\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BaseCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: BaseCoreModule, imports: [CommonModule,\n            FormsModule,\n            ReactiveFormsModule,\n            RouterModule,\n            NgxValidateCoreModule, AutofocusDirective,\n            InputEventDebounceDirective,\n            ForDirective,\n            FormSubmitDirective,\n            InitDirective,\n            PermissionDirective,\n            ReplaceableTemplateDirective,\n            StopPropagationDirective, LocalizationPipe,\n            SortPipe,\n            SafeHtmlPipe,\n            ShortDateTimePipe,\n            ShortTimePipe,\n            ShortDatePipe,\n            ToInjectorPipe,\n            UtcToLocalPipe,\n            LazyLocalizationPipe, DynamicLayoutComponent,\n            ReplaceableRouteContainerComponent,\n            RouterOutletComponent,\n            AbstractNgModelComponent], exports: [CommonModule,\n            FormsModule,\n            ReactiveFormsModule,\n            RouterModule,\n            NgxValidateCoreModule, AutofocusDirective,\n            InputEventDebounceDirective,\n            ForDirective,\n            FormSubmitDirective,\n            InitDirective,\n            PermissionDirective,\n            ReplaceableTemplateDirective,\n            StopPropagationDirective, LocalizationPipe,\n            SortPipe,\n            SafeHtmlPipe,\n            ShortDateTimePipe,\n            ShortTimePipe,\n            ShortDatePipe,\n            ToInjectorPipe,\n            UtcToLocalPipe,\n            LazyLocalizationPipe, DynamicLayoutComponent,\n            ReplaceableRouteContainerComponent,\n            RouterOutletComponent,\n            AbstractNgModelComponent] }); }\n    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BaseCoreModule, providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi())], imports: [CommonModule,\n            FormsModule,\n            ReactiveFormsModule,\n            RouterModule,\n            NgxValidateCoreModule, DynamicLayoutComponent,\n            ReplaceableRouteContainerComponent,\n            RouterOutletComponent, CommonModule,\n            FormsModule,\n            ReactiveFormsModule,\n            RouterModule,\n            NgxValidateCoreModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: BaseCoreModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    exports: [\n                        CommonModule,\n                        FormsModule,\n                        ReactiveFormsModule,\n                        RouterModule,\n                        NgxValidateCoreModule,\n                        ...CORE_DIRECTIVES,\n                        ...CORE_PIPES,\n                        ...CORE_COMPONENTS,\n                    ],\n                    imports: [\n                        CommonModule,\n                        FormsModule,\n                        ReactiveFormsModule,\n                        RouterModule,\n                        NgxValidateCoreModule,\n                        ...CORE_DIRECTIVES,\n                        ...CORE_PIPES,\n                        ...CORE_COMPONENTS,\n                    ],\n                    declarations: [],\n                    providers: [LocalizationPipe, provideHttpClient(withInterceptorsFromDi())],\n                }]\n        }] });\n/**\n * RootCoreModule is the module that will be used at root level\n * and it introduces imports useful at root level (e.g. NGXS)\n */\nexport class RootCoreModule {\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RootCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: RootCoreModule, imports: [BaseCoreModule], exports: [BaseCoreModule] }); }\n    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RootCoreModule, providers: [\n            provideHttpClient(withXsrfConfiguration({\n                cookieName: 'XSRF-TOKEN',\n                headerName: 'RequestVerificationToken',\n            })),\n        ], imports: [BaseCoreModule, BaseCoreModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: RootCoreModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    exports: [BaseCoreModule],\n                    imports: [BaseCoreModule],\n                    providers: [\n                        provideHttpClient(withXsrfConfiguration({\n                            cookieName: 'XSRF-TOKEN',\n                            headerName: 'RequestVerificationToken',\n                        })),\n                    ],\n                }]\n        }] });\n/**\n * CoreModule is the module that is publicly available\n */\nexport class CoreModule {\n    /**\n     * @deprecated forRoot method is deprecated, use `provideAbpCore` *function* for config settings.\n     */\n    static forRoot(options = {}) {\n        return {\n            ngModule: RootCoreModule,\n            providers: [provideAbpCore(withOptions(options))],\n        };\n    }\n    /**\n     * @deprecated forChild method is deprecated, use `provideAbpCoreChild` *function* for config settings.\n     */\n    static forChild(options = {}) {\n        return {\n            ngModule: RootCoreModule,\n            providers: [provideAbpCoreChild(options)],\n        };\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: CoreModule, imports: [BaseCoreModule], exports: [BaseCoreModule] }); }\n    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: CoreModule, imports: [BaseCoreModule, BaseCoreModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: CoreModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    exports: [BaseCoreModule],\n                    imports: [BaseCoreModule],\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsc0JBQXNCLEVBQ3RCLHFCQUFxQixHQUN0QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsa0NBQWtDLEVBQ2xDLHFCQUFxQixHQUN0QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDRCQUE0QixFQUM1QixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLFlBQVksRUFDWiwyQkFBMkIsRUFDM0Isa0JBQWtCLEVBQ2xCLG1CQUFtQixHQUNwQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLFlBQVksRUFDWixhQUFhLEVBQ2IsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsUUFBUSxFQUNSLGdCQUFnQixHQUNqQixNQUFNLFNBQVMsQ0FBQzs7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Q0FBQyxDQUNIO1NBQ0YsWUFSUyxjQUFjLEVBUmIsY0FBYzs7MkZBa0JkLGNBQWM7a0JBWjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUN6QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQ3pCLFNBQVMsRUFBRTt3QkFDVCxpQkFBaUIsQ0FDZixxQkFBcUIsQ0FBQzs0QkFDcEIsVUFBVSxFQUFFLFlBQVk7NEJBQ3hCLFVBQVUsRUFBRSwwQkFBMEI7eUJBQ3ZDLENBQUMsQ0FDSDtxQkFDRjtpQkFDRjs7QUFHRDs7R0FFRztBQUtILE1BQU0sT0FBTyxVQUFVO0lBQ3JCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQWM7UUFDckMsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQWU7UUFDdkMsT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFDLENBQUM7SUFDSixDQUFDOzhHQW5CVSxVQUFVOytHQUFWLFVBQVUsWUEzQlYsY0FBYyxhQUFkLGNBQWM7K0dBMkJkLFVBQVUsWUFGWCxjQUFjLEVBekJiLGNBQWM7OzJGQTJCZCxVQUFVO2tCQUp0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztvQkFDekIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUMxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgcHJvdmlkZUh0dHBDbGllbnQsXHJcbiAgd2l0aEludGVyY2VwdG9yc0Zyb21EaSxcclxuICB3aXRoWHNyZkNvbmZpZ3VyYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdHMnO1xyXG5pbXBvcnQge1xyXG4gIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXHJcbiAgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGVDb3JlTW9kdWxlIH0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHtcclxuICBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsXHJcbiAgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gIEluaXREaXJlY3RpdmUsXHJcbiAgRm9yRGlyZWN0aXZlLFxyXG4gIElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSxcclxuICBBdXRvZm9jdXNEaXJlY3RpdmUsXHJcbiAgRm9ybVN1Ym1pdERpcmVjdGl2ZSxcclxufSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgJy4vdXRpbHMvZGF0ZS1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgcHJvdmlkZUFicENvcmVDaGlsZCwgcHJvdmlkZUFicENvcmUsIHdpdGhPcHRpb25zIH0gZnJvbSAnLi9wcm92aWRlcnMnO1xyXG5pbXBvcnQge1xyXG4gIExhenlMb2NhbGl6YXRpb25QaXBlLFxyXG4gIFV0Y1RvTG9jYWxQaXBlLFxyXG4gIFNhZmVIdG1sUGlwZSxcclxuICBTaG9ydERhdGVQaXBlLFxyXG4gIFNob3J0VGltZVBpcGUsXHJcbiAgU2hvcnREYXRlVGltZVBpcGUsXHJcbiAgVG9JbmplY3RvclBpcGUsXHJcbiAgU29ydFBpcGUsXHJcbiAgTG9jYWxpemF0aW9uUGlwZSxcclxufSBmcm9tICcuL3BpcGVzJztcclxuXHJcbmNvbnN0IENPUkVfRElSRUNUSVZFUyA9IFtcclxuICBBdXRvZm9jdXNEaXJlY3RpdmUsXHJcbiAgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlLFxyXG4gIEZvckRpcmVjdGl2ZSxcclxuICBGb3JtU3VibWl0RGlyZWN0aXZlLFxyXG4gIEluaXREaXJlY3RpdmUsXHJcbiAgUGVybWlzc2lvbkRpcmVjdGl2ZSxcclxuICBSZXBsYWNlYWJsZVRlbXBsYXRlRGlyZWN0aXZlLFxyXG4gIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcclxuXTtcclxuXHJcbmNvbnN0IENPUkVfUElQRVMgPSBbXHJcbiAgTG9jYWxpemF0aW9uUGlwZSxcclxuICBTb3J0UGlwZSxcclxuICBTYWZlSHRtbFBpcGUsXHJcbiAgU2hvcnREYXRlVGltZVBpcGUsXHJcbiAgU2hvcnRUaW1lUGlwZSxcclxuICBTaG9ydERhdGVQaXBlLFxyXG4gIFRvSW5qZWN0b3JQaXBlLFxyXG4gIFV0Y1RvTG9jYWxQaXBlLFxyXG4gIExhenlMb2NhbGl6YXRpb25QaXBlLFxyXG5dO1xyXG5cclxuY29uc3QgQ09SRV9DT01QT05FTlRTID0gW1xyXG4gIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXHJcbiAgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXHJcbiAgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50LFxyXG5dO1xyXG4vKipcclxuICogQmFzZUNvcmVNb2R1bGUgaXMgdGhlIG1vZHVsZSB0aGF0IGhvbGRzXHJcbiAqIGFsbCBpbXBvcnRzLCBkZWNsYXJhdGlvbnMsIGV4cG9ydHMsIGFuZCBlbnRyeUNvbXBvbmVudHNcclxuICogYnV0IG5vdCB0aGUgcHJvdmlkZXJzLlxyXG4gKiBUaGlzIG1vZHVsZSB3aWxsIGJlIGltcG9ydGVkIGFuZCBleHBvcnRlZCBieSBhbGwgb3RoZXJzLlxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUsXHJcbiAgICAuLi5DT1JFX0RJUkVDVElWRVMsXHJcbiAgICAuLi5DT1JFX1BJUEVTLFxyXG4gICAgLi4uQ09SRV9DT01QT05FTlRTLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxyXG4gICAgLi4uQ09SRV9ESVJFQ1RJVkVTLFxyXG4gICAgLi4uQ09SRV9QSVBFUyxcclxuICAgIC4uLkNPUkVfQ09NUE9ORU5UUyxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW10sXHJcbiAgcHJvdmlkZXJzOiBbTG9jYWxpemF0aW9uUGlwZSwgcHJvdmlkZUh0dHBDbGllbnQod2l0aEludGVyY2VwdG9yc0Zyb21EaSgpKV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlQ29yZU1vZHVsZSB7fVxyXG5cclxuLyoqXHJcbiAqIFJvb3RDb3JlTW9kdWxlIGlzIHRoZSBtb2R1bGUgdGhhdCB3aWxsIGJlIHVzZWQgYXQgcm9vdCBsZXZlbFxyXG4gKiBhbmQgaXQgaW50cm9kdWNlcyBpbXBvcnRzIHVzZWZ1bCBhdCByb290IGxldmVsIChlLmcuIE5HWFMpXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtCYXNlQ29yZU1vZHVsZV0sXHJcbiAgaW1wb3J0czogW0Jhc2VDb3JlTW9kdWxlXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHByb3ZpZGVIdHRwQ2xpZW50KFxyXG4gICAgICB3aXRoWHNyZkNvbmZpZ3VyYXRpb24oe1xyXG4gICAgICAgIGNvb2tpZU5hbWU6ICdYU1JGLVRPS0VOJyxcclxuICAgICAgICBoZWFkZXJOYW1lOiAnUmVxdWVzdFZlcmlmaWNhdGlvblRva2VuJyxcclxuICAgICAgfSksXHJcbiAgICApLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb290Q29yZU1vZHVsZSB7fVxyXG5cclxuLyoqXHJcbiAqIENvcmVNb2R1bGUgaXMgdGhlIG1vZHVsZSB0aGF0IGlzIHB1YmxpY2x5IGF2YWlsYWJsZVxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbQmFzZUNvcmVNb2R1bGVdLFxyXG4gIGltcG9ydHM6IFtCYXNlQ29yZU1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHtcclxuICAvKipcclxuICAgKiBAZGVwcmVjYXRlZCBmb3JSb290IG1ldGhvZCBpcyBkZXByZWNhdGVkLCB1c2UgYHByb3ZpZGVBYnBDb3JlYCAqZnVuY3Rpb24qIGZvciBjb25maWcgc2V0dGluZ3MuXHJcbiAgICovXHJcbiAgc3RhdGljIGZvclJvb3Qob3B0aW9ucyA9IHt9IGFzIEFCUC5Sb290KTogTW9kdWxlV2l0aFByb3ZpZGVyczxSb290Q29yZU1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IFJvb3RDb3JlTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtwcm92aWRlQWJwQ29yZSh3aXRoT3B0aW9ucyhvcHRpb25zKSldLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIGZvckNoaWxkIG1ldGhvZCBpcyBkZXByZWNhdGVkLCB1c2UgYHByb3ZpZGVBYnBDb3JlQ2hpbGRgICpmdW5jdGlvbiogZm9yIGNvbmZpZyBzZXR0aW5ncy5cclxuICAgKi9cclxuICBzdGF0aWMgZm9yQ2hpbGQob3B0aW9ucyA9IHt9IGFzIEFCUC5DaGlsZCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Um9vdENvcmVNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBSb290Q29yZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbcHJvdmlkZUFicENvcmVDaGlsZChvcHRpb25zKV0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { Router, } from '@angular/router';\nimport { of } from 'rxjs';\nimport { filter, take, tap } from 'rxjs/operators';\nimport { AuthService } from '../abstracts';\nimport { findRoute, getRoutePath } from '../utils/route-utils';\nimport { RoutesService, PermissionService, HttpErrorReporterService } from '../services';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated Use `permissionGuard` *function* instead.\n */\nexport class PermissionGuard {\n    constructor() {\n        this.router = inject(Router);\n        this.routesService = inject(RoutesService);\n        this.authService = inject(AuthService);\n        this.permissionService = inject(PermissionService);\n        this.httpErrorReporter = inject(HttpErrorReporterService);\n    }\n    canActivate(route, state) {\n        let { requiredPolicy } = route.data || {};\n        if (!requiredPolicy) {\n            const routeFound = findRoute(this.routesService, getRoutePath(this.router, state.url));\n            requiredPolicy = routeFound?.requiredPolicy;\n        }\n        if (!requiredPolicy) {\n            return of(true);\n        }\n        return this.permissionService.getGrantedPolicy$(requiredPolicy).pipe(filter(Boolean), take(1), tap(access => {\n            if (!access && this.authService.isAuthenticated) {\n                this.httpErrorReporter.reportError({ status: 403 });\n            }\n        }));\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PermissionGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PermissionGuard, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: PermissionGuard, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }] });\nexport const permissionGuard = (route, state) => {\n    const router = inject(Router);\n    const routesService = inject(RoutesService);\n    const authService = inject(AuthService);\n    const permissionService = inject(PermissionService);\n    const httpErrorReporter = inject(HttpErrorReporterService);\n    let { requiredPolicy } = route.data || {};\n    if (!requiredPolicy) {\n        const routeFound = findRoute(routesService, getRoutePath(router, state.url));\n        requiredPolicy = routeFound?.requiredPolicy;\n    }\n    if (!requiredPolicy) {\n        return of(true);\n    }\n    return permissionService.getGrantedPolicy$(requiredPolicy).pipe(filter(Boolean), take(1), tap(access => {\n        if (!access && authService.isAuthenticated) {\n            httpErrorReporter.reportError({ status: 403 });\n        }\n    }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9ndWFyZHMvcGVybWlzc2lvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBR0wsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFDekY7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQUg1QjtRQUlxQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xDLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlDLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0tBd0J6RTtJQXRCQyxXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLGNBQWMsR0FBRyxVQUFVLEVBQUUsY0FBYyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUF1QixDQUFDLENBQUM7WUFDM0UsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDOzhHQTVCVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUFnQ0QsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFrQixDQUM1QyxLQUE2QixFQUM3QixLQUEwQixFQUMxQixFQUFFO0lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRTNELElBQUksRUFBRSxjQUFjLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUUxQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdFLGNBQWMsR0FBRyxVQUFVLEVBQUUsY0FBYyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELE9BQU8saUJBQWlCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUM3RCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ2YsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNYLElBQUksQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzNDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQXVCLENBQUMsQ0FBQztRQUN0RSxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgQ2FuQWN0aXZhdGVGbixcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBJQWJwR3VhcmQgfSBmcm9tICcuLi9hYnN0cmFjdHMnO1xyXG5pbXBvcnQgeyBmaW5kUm91dGUsIGdldFJvdXRlUGF0aCB9IGZyb20gJy4uL3V0aWxzL3JvdXRlLXV0aWxzJztcclxuaW1wb3J0IHsgUm91dGVzU2VydmljZSwgUGVybWlzc2lvblNlcnZpY2UsIEh0dHBFcnJvclJlcG9ydGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIFVzZSBgcGVybWlzc2lvbkd1YXJkYCAqZnVuY3Rpb24qIGluc3RlYWQuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbkd1YXJkIGltcGxlbWVudHMgSUFicEd1YXJkIHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlc1NlcnZpY2UgPSBpbmplY3QoUm91dGVzU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGVybWlzc2lvblNlcnZpY2UgPSBpbmplY3QoUGVybWlzc2lvblNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBodHRwRXJyb3JSZXBvcnRlciA9IGluamVjdChIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UpO1xyXG5cclxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIGxldCB7IHJlcXVpcmVkUG9saWN5IH0gPSByb3V0ZS5kYXRhIHx8IHt9O1xyXG5cclxuICAgIGlmICghcmVxdWlyZWRQb2xpY3kpIHtcclxuICAgICAgY29uc3Qgcm91dGVGb3VuZCA9IGZpbmRSb3V0ZSh0aGlzLnJvdXRlc1NlcnZpY2UsIGdldFJvdXRlUGF0aCh0aGlzLnJvdXRlciwgc3RhdGUudXJsKSk7XHJcbiAgICAgIHJlcXVpcmVkUG9saWN5ID0gcm91dGVGb3VuZD8ucmVxdWlyZWRQb2xpY3k7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFyZXF1aXJlZFBvbGljeSkge1xyXG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucGVybWlzc2lvblNlcnZpY2UuZ2V0R3JhbnRlZFBvbGljeSQocmVxdWlyZWRQb2xpY3kpLnBpcGUoXHJcbiAgICAgIGZpbHRlcihCb29sZWFuKSxcclxuICAgICAgdGFrZSgxKSxcclxuICAgICAgdGFwKGFjY2VzcyA9PiB7XHJcbiAgICAgICAgaWYgKCFhY2Nlc3MgJiYgdGhpcy5hdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuaHR0cEVycm9yUmVwb3J0ZXIucmVwb3J0RXJyb3IoeyBzdGF0dXM6IDQwMyB9IGFzIEh0dHBFcnJvclJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBwZXJtaXNzaW9uR3VhcmQ6IENhbkFjdGl2YXRlRm4gPSAoXHJcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXHJcbikgPT4ge1xyXG4gIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xyXG4gIGNvbnN0IHJvdXRlc1NlcnZpY2UgPSBpbmplY3QoUm91dGVzU2VydmljZSk7XHJcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xyXG4gIGNvbnN0IHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuICBjb25zdCBodHRwRXJyb3JSZXBvcnRlciA9IGluamVjdChIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UpO1xyXG5cclxuICBsZXQgeyByZXF1aXJlZFBvbGljeSB9ID0gcm91dGUuZGF0YSB8fCB7fTtcclxuXHJcbiAgaWYgKCFyZXF1aXJlZFBvbGljeSkge1xyXG4gICAgY29uc3Qgcm91dGVGb3VuZCA9IGZpbmRSb3V0ZShyb3V0ZXNTZXJ2aWNlLCBnZXRSb3V0ZVBhdGgocm91dGVyLCBzdGF0ZS51cmwpKTtcclxuICAgIHJlcXVpcmVkUG9saWN5ID0gcm91dGVGb3VuZD8ucmVxdWlyZWRQb2xpY3k7XHJcbiAgfVxyXG5cclxuICBpZiAoIXJlcXVpcmVkUG9saWN5KSB7XHJcbiAgICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcGVybWlzc2lvblNlcnZpY2UuZ2V0R3JhbnRlZFBvbGljeSQocmVxdWlyZWRQb2xpY3kpLnBpcGUoXHJcbiAgICBmaWx0ZXIoQm9vbGVhbiksXHJcbiAgICB0YWtlKDEpLFxyXG4gICAgdGFwKGFjY2VzcyA9PiB7XHJcbiAgICAgIGlmICghYWNjZXNzICYmIGF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCkge1xyXG4gICAgICAgIGh0dHBFcnJvclJlcG9ydGVyLnJlcG9ydEVycm9yKHsgc3RhdHVzOiA0MDMgfSBhcyBIdHRwRXJyb3JSZXNwb25zZSk7XHJcbiAgICAgIH1cclxuICAgIH0pLFxyXG4gICk7XHJcbn07XHJcbiJdfQ==","import { NgModule } from '@angular/core';\nimport { LocalizationPipe } from './pipes/localization.pipe';\nimport { LazyLocalizationPipe } from './pipes';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated Use `LocalizationPipe` and `LazyLocalizationPipe` directly as a standalone pipe.\n * This module is no longer necessary for using the `LocalizationPipe` and `LazyLocalizationPipe` pipes.\n */\nexport class LocalizationModule {\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationModule, imports: [LocalizationPipe, LazyLocalizationPipe], exports: [LocalizationPipe, LazyLocalizationPipe] }); }\n    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: LocalizationModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    exports: [LocalizationPipe, LazyLocalizationPipe],\n                    imports: [LocalizationPipe, LazyLocalizationPipe],\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9sb2NhbGl6YXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUUvQzs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixZQUZuQixnQkFBZ0IsRUFBRSxvQkFBb0IsYUFEdEMsZ0JBQWdCLEVBQUUsb0JBQW9COytHQUdyQyxrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUM7b0JBQ2pELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLG9CQUFvQixDQUFDO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsaXphdGlvbi5waXBlJztcclxuaW1wb3J0IHsgTGF6eUxvY2FsaXphdGlvblBpcGUgfSBmcm9tICcuL3BpcGVzJztcclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBVc2UgYExvY2FsaXphdGlvblBpcGVgIGFuZCBgTGF6eUxvY2FsaXphdGlvblBpcGVgIGRpcmVjdGx5IGFzIGEgc3RhbmRhbG9uZSBwaXBlLlxyXG4gKiBUaGlzIG1vZHVsZSBpcyBubyBsb25nZXIgbmVjZXNzYXJ5IGZvciB1c2luZyB0aGUgYExvY2FsaXphdGlvblBpcGVgIGFuZCBgTGF6eUxvY2FsaXphdGlvblBpcGVgIHBpcGVzLlxyXG4gKi9cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW0xvY2FsaXphdGlvblBpcGUsIExhenlMb2NhbGl6YXRpb25QaXBlXSxcclxuICBpbXBvcnRzOiBbTG9jYWxpemF0aW9uUGlwZSwgTGF6eUxvY2FsaXphdGlvblBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uTW9kdWxlIHt9XHJcbiJdfQ==","import { checkHasProp } from '../utils/common-utils';\nexport class ListResultDto {\n    constructor(initialValues = {}) {\n        for (const key in initialValues) {\n            if (checkHasProp(initialValues, key)) {\n                this[key] = initialValues[key];\n            }\n        }\n    }\n}\nexport class PagedResultDto extends ListResultDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class ExtensibleObject {\n    constructor(initialValues = {}) {\n        for (const key in initialValues) {\n            if (checkHasProp(initialValues, key) && initialValues[key] !== undefined) {\n                this[key] = initialValues[key];\n            }\n        }\n    }\n}\nexport class ExtensibleEntityDto extends ExtensibleObject {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class LimitedResultRequestDto {\n    constructor(initialValues = {}) {\n        this.maxResultCount = 10;\n        for (const key in initialValues) {\n            if (checkHasProp(initialValues, key) && initialValues[key] !== undefined) {\n                this[key] = initialValues[key];\n            }\n        }\n    }\n}\nexport class ExtensibleLimitedResultRequestDto extends ExtensibleEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n        this.maxResultCount = 10;\n    }\n}\nexport class PagedResultRequestDto extends LimitedResultRequestDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class ExtensiblePagedResultRequestDto extends ExtensibleLimitedResultRequestDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class PagedAndSortedResultRequestDto extends PagedResultRequestDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class ExtensiblePagedAndSortedResultRequestDto extends ExtensiblePagedResultRequestDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class EntityDto {\n    constructor(initialValues = {}) {\n        for (const key in initialValues) {\n            if (checkHasProp(initialValues, key)) {\n                this[key] = initialValues[key];\n            }\n        }\n    }\n}\nexport class CreationAuditedEntityDto extends EntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class CreationAuditedEntityWithUserDto extends CreationAuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class AuditedEntityDto extends CreationAuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\n/** @deprecated the class signature will change in v8.0 */\nexport class AuditedEntityWithUserDto extends AuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class FullAuditedEntityDto extends AuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\n/** @deprecated the class signature will change in v8.0 */\nexport class FullAuditedEntityWithUserDto extends FullAuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class ExtensibleCreationAuditedEntityDto extends ExtensibleEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class ExtensibleAuditedEntityDto extends ExtensibleCreationAuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class ExtensibleAuditedEntityWithUserDto extends ExtensibleAuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class ExtensibleCreationAuditedEntityWithUserDto extends ExtensibleCreationAuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class ExtensibleFullAuditedEntityDto extends ExtensibleAuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\nexport class ExtensibleFullAuditedEntityWithUserDto extends ExtensibleFullAuditedEntityDto {\n    constructor(initialValues = {}) {\n        super(initialValues);\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHRvcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9tb2RlbHMvZHRvcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBWSxnQkFBMkMsRUFBRTtRQUN2RCxLQUFLLE1BQU0sR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLElBQUksWUFBWSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGNBQWtCLFNBQVEsYUFBZ0I7SUFHckQsWUFBWSxnQkFBNEMsRUFBRTtRQUN4RCxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUczQixZQUFZLGdCQUEyQyxFQUFFO1FBQ3ZELEtBQUssTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEMsSUFBSSxZQUFZLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxJQUFJLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxtQkFBbUMsU0FBUSxnQkFBZ0I7SUFHdEUsWUFBWSxnQkFBb0QsRUFBRTtRQUNoRSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHVCQUF1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RCxNQUFNLE9BQU8sMEJBRVgsU0FBUSxrQ0FBK0M7SUFJdkQsWUFBWSxnQkFBa0UsRUFBRTtRQUM5RSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGtDQUdYLFNBQVEsMEJBQXVDO0lBSS9DLFlBQVksZ0JBQTBFLEVBQUU7UUFDdEYsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTywwQ0FHWCxTQUFRLGtDQUErQztJQUd2RCxZQUNFLGdCQUFrRixFQUFFO1FBRXBGLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sOEJBRVgsU0FBUSwwQkFBdUM7SUFLL0MsWUFBWSxnQkFBc0UsRUFBRTtRQUNsRixLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHNDQUdYLFNBQVEsOEJBQTJDO0lBS25ELFlBQVksZ0JBQThFLEVBQUU7UUFDMUYsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFCUCB9IGZyb20gJy4vY29tbW9uJztcclxuaW1wb3J0IHsgY2hlY2tIYXNQcm9wIH0gZnJvbSAnLi4vdXRpbHMvY29tbW9uLXV0aWxzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBMaXN0UmVzdWx0RHRvPFQ+IHtcclxuICBpdGVtcz86IFRbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxMaXN0UmVzdWx0RHRvPFQ+PiA9IHt9KSB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0aWFsVmFsdWVzKSB7XHJcbiAgICAgIGlmIChjaGVja0hhc1Byb3AoaW5pdGlhbFZhbHVlcywga2V5KSkge1xyXG4gICAgICAgIHRoaXNba2V5XSA9IGluaXRpYWxWYWx1ZXNba2V5XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG50eXBlIFZhbHVlT2Y8VD4gPSBUW2tleW9mIFRdO1xyXG5leHBvcnQgY2xhc3MgUGFnZWRSZXN1bHREdG88VD4gZXh0ZW5kcyBMaXN0UmVzdWx0RHRvPFQ+IHtcclxuICB0b3RhbENvdW50PzogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPFBhZ2VkUmVzdWx0RHRvPFQ+PiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlT2JqZWN0IHtcclxuICBleHRyYVByb3BlcnRpZXM/OiBBQlAuRGljdGlvbmFyeTxhbnk+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPEV4dGVuc2libGVPYmplY3Q+ID0ge30pIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGluaXRpYWxWYWx1ZXMpIHtcclxuICAgICAgaWYgKGNoZWNrSGFzUHJvcChpbml0aWFsVmFsdWVzLCBrZXkpICYmIGluaXRpYWxWYWx1ZXNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpc1trZXldID0gaW5pdGlhbFZhbHVlc1trZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZUVudGl0eUR0bzxUS2V5ID0gc3RyaW5nPiBleHRlbmRzIEV4dGVuc2libGVPYmplY3Qge1xyXG4gIGlkPzogVEtleTtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxFeHRlbnNpYmxlRW50aXR5RHRvPFRLZXk+PiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMaW1pdGVkUmVzdWx0UmVxdWVzdER0byB7XHJcbiAgbWF4UmVzdWx0Q291bnQgPSAxMDtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxMaW1pdGVkUmVzdWx0UmVxdWVzdER0bz4gPSB7fSkge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gaW5pdGlhbFZhbHVlcykge1xyXG4gICAgICBpZiAoY2hlY2tIYXNQcm9wKGluaXRpYWxWYWx1ZXMsIGtleSkgJiYgaW5pdGlhbFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzW2tleV0gPSBpbml0aWFsVmFsdWVzW2tleV0gYXMgVmFsdWVPZjxMaW1pdGVkUmVzdWx0UmVxdWVzdER0bz47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlTGltaXRlZFJlc3VsdFJlcXVlc3REdG8gZXh0ZW5kcyBFeHRlbnNpYmxlRW50aXR5RHRvIHtcclxuICBtYXhSZXN1bHRDb3VudCA9IDEwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPEV4dGVuc2libGVMaW1pdGVkUmVzdWx0UmVxdWVzdER0bz4gPSB7fSkge1xyXG4gICAgc3VwZXIoaW5pdGlhbFZhbHVlcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGFnZWRSZXN1bHRSZXF1ZXN0RHRvIGV4dGVuZHMgTGltaXRlZFJlc3VsdFJlcXVlc3REdG8ge1xyXG4gIHNraXBDb3VudD86IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxQYWdlZFJlc3VsdFJlcXVlc3REdG8+ID0ge30pIHtcclxuICAgIHN1cGVyKGluaXRpYWxWYWx1ZXMpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVQYWdlZFJlc3VsdFJlcXVlc3REdG8gZXh0ZW5kcyBFeHRlbnNpYmxlTGltaXRlZFJlc3VsdFJlcXVlc3REdG8ge1xyXG4gIHNraXBDb3VudD86IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxFeHRlbnNpYmxlUGFnZWRSZXN1bHRSZXF1ZXN0RHRvPiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQYWdlZEFuZFNvcnRlZFJlc3VsdFJlcXVlc3REdG8gZXh0ZW5kcyBQYWdlZFJlc3VsdFJlcXVlc3REdG8ge1xyXG4gIHNvcnRpbmc/OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxWYWx1ZXM6IFBhcnRpYWw8UGFnZWRBbmRTb3J0ZWRSZXN1bHRSZXF1ZXN0RHRvPiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlUGFnZWRBbmRTb3J0ZWRSZXN1bHRSZXF1ZXN0RHRvIGV4dGVuZHMgRXh0ZW5zaWJsZVBhZ2VkUmVzdWx0UmVxdWVzdER0byB7XHJcbiAgc29ydGluZz86IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxFeHRlbnNpYmxlUGFnZWRBbmRTb3J0ZWRSZXN1bHRSZXF1ZXN0RHRvPiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlEdG88VEtleSA9IHN0cmluZz4ge1xyXG4gIGlkPzogVEtleTtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxFbnRpdHlEdG88VEtleT4+ID0ge30pIHtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIGluaXRpYWxWYWx1ZXMpIHtcclxuICAgICAgaWYgKGNoZWNrSGFzUHJvcChpbml0aWFsVmFsdWVzLCBrZXkpKSB7XHJcbiAgICAgICAgdGhpc1trZXldID0gaW5pdGlhbFZhbHVlc1trZXldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ3JlYXRpb25BdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5ID0gc3RyaW5nPiBleHRlbmRzIEVudGl0eUR0bzxUUHJpbWFyeUtleT4ge1xyXG4gIGNyZWF0aW9uVGltZT86IHN0cmluZyB8IERhdGU7XHJcbiAgY3JlYXRvcklkPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPENyZWF0aW9uQXVkaXRlZEVudGl0eUR0bzxUUHJpbWFyeUtleT4+ID0ge30pIHtcclxuICAgIHN1cGVyKGluaXRpYWxWYWx1ZXMpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENyZWF0aW9uQXVkaXRlZEVudGl0eVdpdGhVc2VyRHRvPCAgXHJcbiAgVFByaW1hcnlLZXkgPSBzdHJpbmcsXHJcbiAgVFVzZXJEdG8gPSBhbnlcclxuPiBleHRlbmRzIENyZWF0aW9uQXVkaXRlZEVudGl0eUR0bzxUUHJpbWFyeUtleT4ge1xyXG4gIGNyZWF0b3I/OiBUVXNlckR0bztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPENyZWF0aW9uQXVkaXRlZEVudGl0eVdpdGhVc2VyRHRvPFRQcmltYXJ5S2V5LFRVc2VyRHRvPj4gPSB7fSxcclxuICApIHtcclxuICAgIHN1cGVyKGluaXRpYWxWYWx1ZXMpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1ZGl0ZWRFbnRpdHlEdG88VFByaW1hcnlLZXkgPSBzdHJpbmc+IGV4dGVuZHMgQ3JlYXRpb25BdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5PiB7XHJcbiAgbGFzdE1vZGlmaWNhdGlvblRpbWU/OiBzdHJpbmcgfCBEYXRlO1xyXG4gIGxhc3RNb2RpZmllcklkPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPEF1ZGl0ZWRFbnRpdHlEdG88VFByaW1hcnlLZXk+PiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKiBAZGVwcmVjYXRlZCB0aGUgY2xhc3Mgc2lnbmF0dXJlIHdpbGwgY2hhbmdlIGluIHY4LjAgKi8gXHJcbmV4cG9ydCBjbGFzcyBBdWRpdGVkRW50aXR5V2l0aFVzZXJEdG88XHJcbiAgVFByaW1hcnlLZXkgPSBzdHJpbmcsXHJcbiAgVFVzZXJEdG8gPSBhbnksXHJcbj4gZXh0ZW5kcyBBdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5PiB7XHJcbiAgY3JlYXRvcj86IFRVc2VyRHRvO1xyXG4gIGxhc3RNb2RpZmllcj86IFRVc2VyRHRvO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPEF1ZGl0ZWRFbnRpdHlXaXRoVXNlckR0bzwgVFByaW1hcnlLZXksVFVzZXJEdG8+PiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGdWxsQXVkaXRlZEVudGl0eUR0bzxUUHJpbWFyeUtleSA9IHN0cmluZz4gZXh0ZW5kcyBBdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5PiB7XHJcbiAgaXNEZWxldGVkPzogYm9vbGVhbjtcclxuICBkZWxldGVySWQ/OiBzdHJpbmc7XHJcbiAgZGVsZXRpb25UaW1lPzogRGF0ZSB8IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxGdWxsQXVkaXRlZEVudGl0eUR0bzxUUHJpbWFyeUtleT4+ID0ge30pIHtcclxuICAgIHN1cGVyKGluaXRpYWxWYWx1ZXMpO1xyXG4gIH1cclxufVxyXG4vKiogQGRlcHJlY2F0ZWQgdGhlIGNsYXNzIHNpZ25hdHVyZSB3aWxsIGNoYW5nZSBpbiB2OC4wICovIFxyXG5leHBvcnQgY2xhc3MgRnVsbEF1ZGl0ZWRFbnRpdHlXaXRoVXNlckR0bzxcclxuICBUUHJpbWFyeUtleSA9IHN0cmluZyxcclxuICBUVXNlckR0byA9IGFueVxyXG4+IGV4dGVuZHMgRnVsbEF1ZGl0ZWRFbnRpdHlEdG88VFByaW1hcnlLZXk+IHtcclxuICBjcmVhdG9yPzogVFVzZXJEdG87XHJcbiAgbGFzdE1vZGlmaWVyPzogVFVzZXJEdG87XHJcbiAgZGVsZXRlcj86IFRVc2VyRHRvO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPEZ1bGxBdWRpdGVkRW50aXR5V2l0aFVzZXJEdG88IFRQcmltYXJ5S2V5LFRVc2VyRHRvPj4gPSB7fSkge1xyXG4gICAgc3VwZXIoaW5pdGlhbFZhbHVlcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZUNyZWF0aW9uQXVkaXRlZEVudGl0eUR0bzxcclxuICBUUHJpbWFyeUtleSA9IHN0cmluZyxcclxuPiBleHRlbmRzIEV4dGVuc2libGVFbnRpdHlEdG88VFByaW1hcnlLZXk+IHtcclxuICBjcmVhdGlvblRpbWU/OiBEYXRlIHwgc3RyaW5nO1xyXG4gIGNyZWF0b3JJZD86IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxFeHRlbnNpYmxlQ3JlYXRpb25BdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5Pj4gPSB7fSkge1xyXG4gICAgc3VwZXIoaW5pdGlhbFZhbHVlcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZUF1ZGl0ZWRFbnRpdHlEdG88XHJcbiAgVFByaW1hcnlLZXkgPSBzdHJpbmcsXHJcbj4gZXh0ZW5kcyBFeHRlbnNpYmxlQ3JlYXRpb25BdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5PiB7XHJcbiAgbGFzdE1vZGlmaWNhdGlvblRpbWU/OiBEYXRlIHwgc3RyaW5nO1xyXG4gIGxhc3RNb2RpZmllcklkPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPEV4dGVuc2libGVBdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5Pj4gPSB7fSkge1xyXG4gICAgc3VwZXIoaW5pdGlhbFZhbHVlcyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaWJsZUF1ZGl0ZWRFbnRpdHlXaXRoVXNlckR0bzxcclxuICBUUHJpbWFyeUtleSA9IHN0cmluZyxcclxuICBUVXNlckR0byA9IGFueSxcclxuPiBleHRlbmRzIEV4dGVuc2libGVBdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5PiB7XHJcbiAgY3JlYXRvcj86IFRVc2VyRHRvO1xyXG4gIGxhc3RNb2RpZmllcj86IFRVc2VyRHRvO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihpbml0aWFsVmFsdWVzOiBQYXJ0aWFsPEV4dGVuc2libGVBdWRpdGVkRW50aXR5V2l0aFVzZXJEdG88VFByaW1hcnlLZXk+PiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlQ3JlYXRpb25BdWRpdGVkRW50aXR5V2l0aFVzZXJEdG88XHJcbiAgVFByaW1hcnlLZXkgPSBzdHJpbmcsXHJcbiAgVFVzZXJEdG8gPSBhbnksXHJcbj4gZXh0ZW5kcyBFeHRlbnNpYmxlQ3JlYXRpb25BdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5PiB7XHJcbiAgY3JlYXRvcj86IFRVc2VyRHRvO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGluaXRpYWxWYWx1ZXM6IFBhcnRpYWw8RXh0ZW5zaWJsZUNyZWF0aW9uQXVkaXRlZEVudGl0eVdpdGhVc2VyRHRvPFRQcmltYXJ5S2V5Pj4gPSB7fSxcclxuICApIHtcclxuICAgIHN1cGVyKGluaXRpYWxWYWx1ZXMpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEV4dGVuc2libGVGdWxsQXVkaXRlZEVudGl0eUR0bzxcclxuICBUUHJpbWFyeUtleSA9IHN0cmluZyxcclxuPiBleHRlbmRzIEV4dGVuc2libGVBdWRpdGVkRW50aXR5RHRvPFRQcmltYXJ5S2V5PiB7XHJcbiAgaXNEZWxldGVkPzogYm9vbGVhbjtcclxuICBkZWxldGVySWQ/OiBzdHJpbmc7XHJcbiAgZGVsZXRpb25UaW1lPzogRGF0ZSB8IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoaW5pdGlhbFZhbHVlczogUGFydGlhbDxFeHRlbnNpYmxlRnVsbEF1ZGl0ZWRFbnRpdHlEdG88VFByaW1hcnlLZXk+PiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpYmxlRnVsbEF1ZGl0ZWRFbnRpdHlXaXRoVXNlckR0bzxcclxuICBUUHJpbWFyeUtleSA9IHN0cmluZyxcclxuICBUVXNlckR0byA9IGFueSxcclxuPiBleHRlbmRzIEV4dGVuc2libGVGdWxsQXVkaXRlZEVudGl0eUR0bzxUUHJpbWFyeUtleT4ge1xyXG4gIGNyZWF0b3I/OiBUVXNlckR0bztcclxuICBsYXN0TW9kaWZpZXI/OiBUVXNlckR0bztcclxuICBkZWxldGVyPzogVFVzZXJEdG87XHJcblxyXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxWYWx1ZXM6IFBhcnRpYWw8RXh0ZW5zaWJsZUZ1bGxBdWRpdGVkRW50aXR5V2l0aFVzZXJEdG88VFByaW1hcnlLZXk+PiA9IHt9KSB7XHJcbiAgICBzdXBlcihpbml0aWFsVmFsdWVzKTtcclxuICB9XHJcbn1cclxuIl19","export class AuthEvent {\n    constructor(type) {\n        this.type = type;\n        this.type = type;\n    }\n}\nexport class AuthSuccessEvent extends AuthEvent {\n    constructor(type, info) {\n        super(type);\n        this.type = type;\n        this.info = info;\n    }\n}\nexport class AuthInfoEvent extends AuthEvent {\n    constructor(type, info) {\n        super(type);\n        this.type = type;\n        this.info = info;\n    }\n}\nexport class AuthErrorEvent extends AuthEvent {\n    constructor(type, reason, params) {\n        super(type);\n        this.type = type;\n        this.reason = reason;\n        this.params = params;\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ldmVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvbW9kZWxzL2F1dGgtZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCQSxNQUFNLE9BQWdCLFNBQVM7SUFDN0IsWUFBNEIsSUFBZTtRQUFmLFNBQUksR0FBSixJQUFJLENBQVc7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFNBQVM7SUFDN0MsWUFBNEIsSUFBZSxFQUFrQixJQUFVO1FBQ3JFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURjLFNBQUksR0FBSixJQUFJLENBQVc7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBTTtJQUV2RSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sYUFBYyxTQUFRLFNBQVM7SUFDMUMsWUFBNEIsSUFBZSxFQUFrQixJQUFVO1FBQ3JFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURjLFNBQUksR0FBSixJQUFJLENBQVc7UUFBa0IsU0FBSSxHQUFKLElBQUksQ0FBTTtJQUV2RSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFDM0MsWUFDa0IsSUFBZSxFQUNmLE1BQWMsRUFDZCxNQUFlO1FBRS9CLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUpJLFNBQUksR0FBSixJQUFJLENBQVc7UUFDZixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUztJQUdqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFdmVudFR5cGUgPVxyXG4gIHwgJ2Rpc2NvdmVyeV9kb2N1bWVudF9sb2FkZWQnXHJcbiAgfCAnandrc19sb2FkX2Vycm9yJ1xyXG4gIHwgJ2ludmFsaWRfbm9uY2VfaW5fc3RhdGUnXHJcbiAgfCAnZGlzY292ZXJ5X2RvY3VtZW50X2xvYWRfZXJyb3InXHJcbiAgfCAnZGlzY292ZXJ5X2RvY3VtZW50X3ZhbGlkYXRpb25fZXJyb3InXHJcbiAgfCAndXNlcl9wcm9maWxlX2xvYWRlZCdcclxuICB8ICd1c2VyX3Byb2ZpbGVfbG9hZF9lcnJvcidcclxuICB8ICd0b2tlbl9yZWNlaXZlZCdcclxuICB8ICd0b2tlbl9lcnJvcidcclxuICB8ICdjb2RlX2Vycm9yJ1xyXG4gIHwgJ3Rva2VuX3JlZnJlc2hlZCdcclxuICB8ICd0b2tlbl9yZWZyZXNoX2Vycm9yJ1xyXG4gIHwgJ3NpbGVudF9yZWZyZXNoX2Vycm9yJ1xyXG4gIHwgJ3NpbGVudGx5X3JlZnJlc2hlZCdcclxuICB8ICdzaWxlbnRfcmVmcmVzaF90aW1lb3V0J1xyXG4gIHwgJ3Rva2VuX3ZhbGlkYXRpb25fZXJyb3InXHJcbiAgfCAndG9rZW5fZXhwaXJlcydcclxuICB8ICdzZXNzaW9uX2NoYW5nZWQnXHJcbiAgfCAnc2Vzc2lvbl9lcnJvcidcclxuICB8ICdzZXNzaW9uX3Rlcm1pbmF0ZWQnXHJcbiAgfCAnc2Vzc2lvbl91bmNoYW5nZWQnXHJcbiAgfCAnbG9nb3V0J1xyXG4gIHwgJ3BvcHVwX2Nsb3NlZCdcclxuICB8ICdwb3B1cF9ibG9ja2VkJ1xyXG4gIHwgJ3Rva2VuX3Jldm9rZV9lcnJvcic7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXV0aEV2ZW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdHlwZTogRXZlbnRUeXBlKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dGhTdWNjZXNzRXZlbnQgZXh0ZW5kcyBBdXRoRXZlbnQge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0eXBlOiBFdmVudFR5cGUsIHB1YmxpYyByZWFkb25seSBpbmZvPzogYW55KSB7XHJcbiAgICBzdXBlcih0eXBlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoSW5mb0V2ZW50IGV4dGVuZHMgQXV0aEV2ZW50IHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdHlwZTogRXZlbnRUeXBlLCBwdWJsaWMgcmVhZG9ubHkgaW5mbz86IGFueSkge1xyXG4gICAgc3VwZXIodHlwZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXV0aEVycm9yRXZlbnQgZXh0ZW5kcyBBdXRoRXZlbnQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGU6IEV2ZW50VHlwZSxcclxuICAgIHB1YmxpYyByZWFkb25seSByZWFzb246IG9iamVjdCxcclxuICAgIHB1YmxpYyByZWFkb25seSBwYXJhbXM/OiBvYmplY3QsXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0eXBlKTtcclxuICB9XHJcbn1cclxuIl19","import { RestService } from '../../../../../../services';\nimport { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../../../../../services\";\nexport class AbpApiDefinitionService {\n    constructor(restService) {\n        this.restService = restService;\n        this.apiName = 'abp';\n        this.getByModel = (model, config) => this.restService.request({\n            method: 'GET',\n            url: '/api/abp/api-definition',\n            params: { includeTypes: model.includeTypes },\n        }, { apiName: this.apiName, ...config });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpApiDefinitionService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpApiDefinitionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AbpApiDefinitionService, decorators: [{\n            type: Injectable,\n            args: [{\n                    providedIn: 'root',\n                }]\n        }], ctorParameters: () => [{ type: i1.RestService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLWFwaS1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcGktZXhwbG9yaW5nL2FicC1hcGktZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLHVCQUF1QjtJQVlsQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVg1QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLGVBQVUsR0FBRyxDQUFDLEtBQStDLEVBQUUsTUFBNkIsRUFBRSxFQUFFLENBQzlGLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFzQztZQUM1RCxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSx5QkFBeUI7WUFDOUIsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUU7U0FDN0MsRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVRLENBQUM7OEdBWnJDLHVCQUF1QjtrSEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgUmVzdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBBcHBsaWNhdGlvbkFwaURlc2NyaXB0aW9uTW9kZWwsIEFwcGxpY2F0aW9uQXBpRGVzY3JpcHRpb25Nb2RlbFJlcXVlc3REdG8gfSBmcm9tICcuLi8uLi8uLi9odHRwL21vZGVsaW5nL21vZGVscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWJwQXBpRGVmaW5pdGlvblNlcnZpY2Uge1xyXG4gIGFwaU5hbWUgPSAnYWJwJztcclxuICBcclxuXHJcbiAgZ2V0QnlNb2RlbCA9IChtb2RlbDogQXBwbGljYXRpb25BcGlEZXNjcmlwdGlvbk1vZGVsUmVxdWVzdER0bywgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBBcHBsaWNhdGlvbkFwaURlc2NyaXB0aW9uTW9kZWw+KHtcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgdXJsOiAnL2FwaS9hYnAvYXBpLWRlZmluaXRpb24nLFxyXG4gICAgICBwYXJhbXM6IHsgaW5jbHVkZVR5cGVzOiBtb2RlbC5pbmNsdWRlVHlwZXMgfSxcclxuICAgIH0sXHJcbiAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSwuLi5jb25maWcgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlKSB7fVxyXG59XHJcbiJdfQ==","export class ContainerStrategy {\n    constructor(containerRef) {\n        this.containerRef = containerRef;\n    }\n    prepare() { }\n}\nexport class ClearContainerStrategy extends ContainerStrategy {\n    getIndex() {\n        return 0;\n    }\n    prepare() {\n        this.containerRef.clear();\n    }\n}\nexport class InsertIntoContainerStrategy extends ContainerStrategy {\n    constructor(containerRef, index) {\n        super(containerRef);\n        this.index = index;\n    }\n    getIndex() {\n        return Math.min(Math.max(0, this.index), this.containerRef.length);\n    }\n}\nexport const CONTAINER_STRATEGY = {\n    Clear(containerRef) {\n        return new ClearContainerStrategy(containerRef);\n    },\n    Append(containerRef) {\n        return new InsertIntoContainerStrategy(containerRef, containerRef.length);\n    },\n    Prepend(containerRef) {\n        return new InsertIntoContainerStrategy(containerRef, 0);\n    },\n    Insert(containerRef, index) {\n        return new InsertIntoContainerStrategy(containerRef, index);\n    },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLnN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3N0cmF0ZWdpZXMvY29udGFpbmVyLnN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBZ0IsaUJBQWlCO0lBQ3JDLFlBQW1CLFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUFHLENBQUM7SUFJckQsT0FBTyxLQUFVLENBQUM7Q0FDbkI7QUFFRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsaUJBQWlCO0lBQzNELFFBQVE7UUFDTixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsaUJBQWlCO0lBQ2hFLFlBQVksWUFBOEIsRUFBVSxLQUFhO1FBQy9ELEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUQ4QixVQUFLLEdBQUwsS0FBSyxDQUFRO0lBRWpFLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLEtBQUssQ0FBQyxZQUE4QjtRQUNsQyxPQUFPLElBQUksc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUE4QjtRQUNuQyxPQUFPLElBQUksMkJBQTJCLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsT0FBTyxDQUFDLFlBQThCO1FBQ3BDLE9BQU8sSUFBSSwyQkFBMkIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUE4QixFQUFFLEtBQWE7UUFDbEQsT0FBTyxJQUFJLDJCQUEyQixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250YWluZXJTdHJhdGVneSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge31cclxuXHJcbiAgYWJzdHJhY3QgZ2V0SW5kZXgoKTogbnVtYmVyO1xyXG5cclxuICBwcmVwYXJlKCk6IHZvaWQge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENsZWFyQ29udGFpbmVyU3RyYXRlZ3kgZXh0ZW5kcyBDb250YWluZXJTdHJhdGVneSB7XHJcbiAgZ2V0SW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgcHJlcGFyZSgpIHtcclxuICAgIHRoaXMuY29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSW5zZXJ0SW50b0NvbnRhaW5lclN0cmF0ZWd5IGV4dGVuZHMgQ29udGFpbmVyU3RyYXRlZ3kge1xyXG4gIGNvbnN0cnVjdG9yKGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBzdXBlcihjb250YWluZXJSZWYpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5kZXgoKSB7XHJcbiAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoMCwgdGhpcy5pbmRleCksIHRoaXMuY29udGFpbmVyUmVmLmxlbmd0aCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ09OVEFJTkVSX1NUUkFURUdZID0ge1xyXG4gIENsZWFyKGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgcmV0dXJuIG5ldyBDbGVhckNvbnRhaW5lclN0cmF0ZWd5KGNvbnRhaW5lclJlZik7XHJcbiAgfSxcclxuICBBcHBlbmQoY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICByZXR1cm4gbmV3IEluc2VydEludG9Db250YWluZXJTdHJhdGVneShjb250YWluZXJSZWYsIGNvbnRhaW5lclJlZi5sZW5ndGgpO1xyXG4gIH0sXHJcbiAgUHJlcGVuZChjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIHJldHVybiBuZXcgSW5zZXJ0SW50b0NvbnRhaW5lclN0cmF0ZWd5KGNvbnRhaW5lclJlZiwgMCk7XHJcbiAgfSxcclxuICBJbnNlcnQoY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gbmV3IEluc2VydEludG9Db250YWluZXJTdHJhdGVneShjb250YWluZXJSZWYsIGluZGV4KTtcclxuICB9LFxyXG59O1xyXG4iXX0=","export class ContentSecurityStrategy {\n    constructor(nonce) {\n        this.nonce = nonce;\n    }\n}\nexport class LooseContentSecurityStrategy extends ContentSecurityStrategy {\n    constructor(nonce) {\n        super(nonce);\n    }\n    applyCSP(element) {\n        if (this.nonce) {\n            element.setAttribute('nonce', this.nonce);\n        }\n    }\n}\nexport class NoContentSecurityStrategy extends ContentSecurityStrategy {\n    constructor() {\n        super();\n    }\n    applyCSP(_) { }\n}\nexport const CONTENT_SECURITY_STRATEGY = {\n    Loose(nonce) {\n        return new LooseContentSecurityStrategy(nonce);\n    },\n    None() {\n        return new NoContentSecurityStrategy();\n    },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1zZWN1cml0eS5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2NvbnRlbnQtc2VjdXJpdHkuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFnQix1QkFBdUI7SUFDM0MsWUFBbUIsS0FBYztRQUFkLFVBQUssR0FBTCxLQUFLLENBQVM7SUFBRyxDQUFDO0NBR3RDO0FBRUQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHVCQUF1QjtJQUN2RSxZQUFZLEtBQWE7UUFDdkIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUE2QztRQUNwRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHVCQUF1QjtJQUNwRTtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUF1QyxJQUFHLENBQUM7Q0FDckQ7QUFFRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxLQUFLLENBQUMsS0FBYTtRQUNqQixPQUFPLElBQUksNEJBQTRCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELElBQUk7UUFDRixPQUFPLElBQUkseUJBQXlCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZW50U2VjdXJpdHlTdHJhdGVneSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIG5vbmNlPzogc3RyaW5nKSB7fVxyXG5cclxuICBhYnN0cmFjdCBhcHBseUNTUChlbGVtZW50OiBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQpOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTG9vc2VDb250ZW50U2VjdXJpdHlTdHJhdGVneSBleHRlbmRzIENvbnRlbnRTZWN1cml0eVN0cmF0ZWd5IHtcclxuICBjb25zdHJ1Y3Rvcihub25jZTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihub25jZSk7XHJcbiAgfVxyXG5cclxuICBhcHBseUNTUChlbGVtZW50OiBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQpIHtcclxuICAgIGlmICh0aGlzLm5vbmNlKSB7XHJcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdub25jZScsIHRoaXMubm9uY2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5vQ29udGVudFNlY3VyaXR5U3RyYXRlZ3kgZXh0ZW5kcyBDb250ZW50U2VjdXJpdHlTdHJhdGVneSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlDU1AoXzogSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MU3R5bGVFbGVtZW50KSB7fVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ09OVEVOVF9TRUNVUklUWV9TVFJBVEVHWSA9IHtcclxuICBMb29zZShub25jZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IExvb3NlQ29udGVudFNlY3VyaXR5U3RyYXRlZ3kobm9uY2UpO1xyXG4gIH0sXHJcbiAgTm9uZSgpIHtcclxuICAgIHJldHVybiBuZXcgTm9Db250ZW50U2VjdXJpdHlTdHJhdGVneSgpO1xyXG4gIH0sXHJcbn07XHJcbiJdfQ==","import { CONTENT_SECURITY_STRATEGY } from './content-security.strategy';\nimport { DOM_STRATEGY } from './dom.strategy';\nexport class ContentStrategy {\n    constructor(content, domStrategy = DOM_STRATEGY.AppendToHead(), contentSecurityStrategy = CONTENT_SECURITY_STRATEGY.None(), options = {}) {\n        this.content = content;\n        this.domStrategy = domStrategy;\n        this.contentSecurityStrategy = contentSecurityStrategy;\n        this.options = options;\n    }\n    insertElement() {\n        const element = this.createElement();\n        if (this.options && Object.keys(this.options).length > 0) {\n            Object.keys(this.options).forEach(key => {\n                if (this.options[key]) {\n                    element[key] = this.options[key];\n                }\n            });\n        }\n        this.contentSecurityStrategy.applyCSP(element);\n        this.domStrategy.insertElement(element);\n        return element;\n    }\n}\nexport class StyleContentStrategy extends ContentStrategy {\n    createElement() {\n        const element = document.createElement('style');\n        element.textContent = this.content;\n        return element;\n    }\n}\nexport class ScriptContentStrategy extends ContentStrategy {\n    createElement() {\n        const element = document.createElement('script');\n        element.textContent = this.content;\n        return element;\n    }\n}\nexport const CONTENT_STRATEGY = {\n    AppendScriptToBody(content, options) {\n        return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToBody(), undefined, options);\n    },\n    AppendScriptToHead(content, options) {\n        return new ScriptContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);\n    },\n    AppendStyleToHead(content, options) {\n        return new StyleContentStrategy(content, DOM_STRATEGY.AppendToHead(), undefined, options);\n    },\n    PrependStyleToHead(content, options) {\n        return new StyleContentStrategy(content, DOM_STRATEGY.PrependToHead(), undefined, options);\n    },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2NvbnRlbnQuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUEyQixNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQU0zRCxNQUFNLE9BQWdCLGVBQWU7SUFDbkMsWUFDUyxPQUFlLEVBQ1osY0FBMkIsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUN0RCwwQkFBbUQseUJBQXlCLENBQUMsSUFBSSxFQUFFLEVBQ25GLFVBQTZCLEVBQUU7UUFIbEMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNaLGdCQUFXLEdBQVgsV0FBVyxDQUEyQztRQUN0RCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQTREO1FBQ25GLFlBQU8sR0FBUCxPQUFPLENBQXdCO0lBQ3hDLENBQUM7SUFJSixhQUFhO1FBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFvQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDMUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBSSxJQUFJLENBQUMsT0FBMEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGVBQWlDO0lBQ3pFLGFBQWE7UUFDWCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUVuQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBa0M7SUFDM0UsYUFBYTtRQUNYLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRW5DLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLGtCQUFrQixDQUFDLE9BQWUsRUFBRSxPQUEyQztRQUM3RSxPQUFPLElBQUkscUJBQXFCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUNELGtCQUFrQixDQUFDLE9BQWUsRUFBRSxPQUEyQztRQUM3RSxPQUFPLElBQUkscUJBQXFCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUNELGlCQUFpQixDQUFDLE9BQWUsRUFBRSxPQUEwQztRQUMzRSxPQUFPLElBQUksb0JBQW9CLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUNELGtCQUFrQixDQUFDLE9BQWUsRUFBRSxPQUEwQztRQUM1RSxPQUFPLElBQUksb0JBQW9CLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0YsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT05URU5UX1NFQ1VSSVRZX1NUUkFURUdZLCBDb250ZW50U2VjdXJpdHlTdHJhdGVneSB9IGZyb20gJy4vY29udGVudC1zZWN1cml0eS5zdHJhdGVneSc7XHJcbmltcG9ydCB7IERPTV9TVFJBVEVHWSwgRG9tU3RyYXRlZ3kgfSBmcm9tICcuL2RvbS5zdHJhdGVneSc7XHJcblxyXG5leHBvcnQgdHlwZSBFbGVtZW50T3B0aW9uczxUIGV4dGVuZHMgSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MU3R5bGVFbGVtZW50ID0gYW55PiA9IFBhcnRpYWw8e1xyXG4gIFtrZXkgaW4ga2V5b2YgVF06IFRba2V5XTtcclxufT47XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29udGVudFN0cmF0ZWd5PFQgZXh0ZW5kcyBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxTdHlsZUVsZW1lbnQgPSBhbnk+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb250ZW50OiBzdHJpbmcsXHJcbiAgICBwcm90ZWN0ZWQgZG9tU3RyYXRlZ3k6IERvbVN0cmF0ZWd5ID0gRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLFxyXG4gICAgcHJvdGVjdGVkIGNvbnRlbnRTZWN1cml0eVN0cmF0ZWd5OiBDb250ZW50U2VjdXJpdHlTdHJhdGVneSA9IENPTlRFTlRfU0VDVVJJVFlfU1RSQVRFR1kuTm9uZSgpLFxyXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IEVsZW1lbnRPcHRpb25zPFQ+ID0ge30sXHJcbiAgKSB7fVxyXG5cclxuICBhYnN0cmFjdCBjcmVhdGVFbGVtZW50KCk6IFQ7XHJcblxyXG4gIGluc2VydEVsZW1lbnQoKTogVCB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5jcmVhdGVFbGVtZW50KCk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiBPYmplY3Qua2V5cyh0aGlzLm9wdGlvbnMpLmxlbmd0aCA+IDApIHtcclxuICAgICAgKE9iamVjdC5rZXlzKHRoaXMub3B0aW9ucykgYXMgQXJyYXk8a2V5b2YgRWxlbWVudE9wdGlvbnM8VD4+KS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9uc1trZXldKSB7XHJcbiAgICAgICAgICBlbGVtZW50W2tleV0gPSAodGhpcy5vcHRpb25zIGFzIE5vbk51bGxhYmxlPFQ+KVtrZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb250ZW50U2VjdXJpdHlTdHJhdGVneS5hcHBseUNTUChlbGVtZW50KTtcclxuICAgIHRoaXMuZG9tU3RyYXRlZ3kuaW5zZXJ0RWxlbWVudChlbGVtZW50KTtcclxuXHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdHlsZUNvbnRlbnRTdHJhdGVneSBleHRlbmRzIENvbnRlbnRTdHJhdGVneTxIVE1MU3R5bGVFbGVtZW50PiB7XHJcbiAgY3JlYXRlRWxlbWVudCgpOiBIVE1MU3R5bGVFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgZWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuY29udGVudDtcclxuXHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTY3JpcHRDb250ZW50U3RyYXRlZ3kgZXh0ZW5kcyBDb250ZW50U3RyYXRlZ3k8SFRNTFNjcmlwdEVsZW1lbnQ+IHtcclxuICBjcmVhdGVFbGVtZW50KCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XHJcblxyXG4gICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQ09OVEVOVF9TVFJBVEVHWSA9IHtcclxuICBBcHBlbmRTY3JpcHRUb0JvZHkoY29udGVudDogc3RyaW5nLCBvcHRpb25zPzogRWxlbWVudE9wdGlvbnM8SFRNTFNjcmlwdEVsZW1lbnQ+KSB7XHJcbiAgICByZXR1cm4gbmV3IFNjcmlwdENvbnRlbnRTdHJhdGVneShjb250ZW50LCBET01fU1RSQVRFR1kuQXBwZW5kVG9Cb2R5KCksIHVuZGVmaW5lZCwgb3B0aW9ucyk7XHJcbiAgfSxcclxuICBBcHBlbmRTY3JpcHRUb0hlYWQoY29udGVudDogc3RyaW5nLCBvcHRpb25zPzogRWxlbWVudE9wdGlvbnM8SFRNTFNjcmlwdEVsZW1lbnQ+KSB7XHJcbiAgICByZXR1cm4gbmV3IFNjcmlwdENvbnRlbnRTdHJhdGVneShjb250ZW50LCBET01fU1RSQVRFR1kuQXBwZW5kVG9IZWFkKCksIHVuZGVmaW5lZCwgb3B0aW9ucyk7XHJcbiAgfSxcclxuICBBcHBlbmRTdHlsZVRvSGVhZChjb250ZW50OiBzdHJpbmcsIG9wdGlvbnM/OiBFbGVtZW50T3B0aW9uczxIVE1MU3R5bGVFbGVtZW50Pikge1xyXG4gICAgcmV0dXJuIG5ldyBTdHlsZUNvbnRlbnRTdHJhdGVneShjb250ZW50LCBET01fU1RSQVRFR1kuQXBwZW5kVG9IZWFkKCksIHVuZGVmaW5lZCwgb3B0aW9ucyk7XHJcbiAgfSxcclxuICBQcmVwZW5kU3R5bGVUb0hlYWQoY29udGVudDogc3RyaW5nLCBvcHRpb25zPzogRWxlbWVudE9wdGlvbnM8SFRNTFN0eWxlRWxlbWVudD4pIHtcclxuICAgIHJldHVybiBuZXcgU3R5bGVDb250ZW50U3RyYXRlZ3koY29udGVudCwgRE9NX1NUUkFURUdZLlByZXBlbmRUb0hlYWQoKSwgdW5kZWZpbmVkLCBvcHRpb25zKTtcclxuICB9LFxyXG59O1xyXG4iXX0=","export class ContextStrategy {\n    constructor(context) {\n        this.context = context;\n    }\n    setContext(componentRef) {\n        return this.context;\n    }\n}\nexport class NoContextStrategy extends ContextStrategy {\n    constructor() {\n        super(undefined);\n    }\n}\nexport class ComponentContextStrategy extends ContextStrategy {\n    setContext(componentRef) {\n        Object.keys(this.context).forEach(key => (componentRef.instance[key] = this.context[key]));\n        componentRef.changeDetectorRef.detectChanges();\n        return this.context;\n    }\n}\nexport class TemplateContextStrategy extends ContextStrategy {\n    setContext() {\n        return this.context;\n    }\n}\nexport const CONTEXT_STRATEGY = {\n    None() {\n        return new NoContextStrategy();\n    },\n    Component(context) {\n        return new ComponentContextStrategy(context);\n    },\n    Template(context) {\n        return new TemplateContextStrategy(context);\n    },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2NvbnRleHQuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQixlQUFlO0lBQ25DLFlBQW1CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO0lBQUcsQ0FBQztJQUV2RCxVQUFVLENBQUMsWUFBa0Q7UUFDM0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFFWCxTQUFRLGVBQWtCO0lBQzFCO1FBQ0UsS0FBSyxDQUFDLFNBQStDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBQW9ELFNBQVEsZUFBa0I7SUFDekYsVUFBVSxDQUFDLFlBQWlEO1FBQzFELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRixZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx1QkFBMEQsU0FBUSxlQUFrQjtJQUMvRixVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUk7UUFDRixPQUFPLElBQUksaUJBQWlCLEVBQUssQ0FBQztJQUNwQyxDQUFDO0lBQ0QsU0FBUyxDQUE0QixPQUF1QztRQUMxRSxPQUFPLElBQUksd0JBQXdCLENBQUksT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELFFBQVEsQ0FBbUMsT0FBc0M7UUFDL0UsT0FBTyxJQUFJLHVCQUF1QixDQUFJLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmZlcnJlZENvbnRleHRPZiwgSW5mZXJyZWRJbnN0YW5jZU9mIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250ZXh0U3RyYXRlZ3k8VCA9IGFueT4ge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250ZXh0OiBQYXJ0aWFsPENvbnRleHRUeXBlPFQ+Pikge31cclxuXHJcbiAgc2V0Q29udGV4dChjb21wb25lbnRSZWY/OiBDb21wb25lbnRSZWY8SW5mZXJyZWRJbnN0YW5jZU9mPFQ+Pik6IFBhcnRpYWw8Q29udGV4dFR5cGU8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTm9Db250ZXh0U3RyYXRlZ3k8XHJcbiAgVCBleHRlbmRzIFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPGFueT4gPSBhbnksXHJcbj4gZXh0ZW5kcyBDb250ZXh0U3RyYXRlZ3k8VD4ge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIodW5kZWZpbmVkIGFzIHVua25vd24gYXMgUGFydGlhbDxDb250ZXh0VHlwZTxUPj4pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBvbmVudENvbnRleHRTdHJhdGVneTxUIGV4dGVuZHMgVHlwZTxhbnk+ID0gYW55PiBleHRlbmRzIENvbnRleHRTdHJhdGVneTxUPiB7XHJcbiAgc2V0Q29udGV4dChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+KTogUGFydGlhbDxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+IHtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuY29udGV4dCkuZm9yRWFjaChrZXkgPT4gKGNvbXBvbmVudFJlZi5pbnN0YW5jZVtrZXldID0gdGhpcy5jb250ZXh0W2tleV0pKTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlQ29udGV4dFN0cmF0ZWd5PFQgZXh0ZW5kcyBUZW1wbGF0ZVJlZjxhbnk+ID0gYW55PiBleHRlbmRzIENvbnRleHRTdHJhdGVneTxUPiB7XHJcbiAgc2V0Q29udGV4dCgpOiBQYXJ0aWFsPEluZmVycmVkQ29udGV4dE9mPFQ+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IENPTlRFWFRfU1RSQVRFR1kgPSB7XHJcbiAgTm9uZTxUIGV4dGVuZHMgVHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8YW55PiA9IGFueT4oKSB7XHJcbiAgICByZXR1cm4gbmV3IE5vQ29udGV4dFN0cmF0ZWd5PFQ+KCk7XHJcbiAgfSxcclxuICBDb21wb25lbnQ8VCBleHRlbmRzIFR5cGU8YW55PiA9IGFueT4oY29udGV4dDogUGFydGlhbDxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+KSB7XHJcbiAgICByZXR1cm4gbmV3IENvbXBvbmVudENvbnRleHRTdHJhdGVneTxUPihjb250ZXh0KTtcclxuICB9LFxyXG4gIFRlbXBsYXRlPFQgZXh0ZW5kcyBUZW1wbGF0ZVJlZjxhbnk+ID0gYW55Pihjb250ZXh0OiBQYXJ0aWFsPEluZmVycmVkQ29udGV4dE9mPFQ+Pikge1xyXG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZUNvbnRleHRTdHJhdGVneTxUPihjb250ZXh0KTtcclxuICB9LFxyXG59O1xyXG5cclxudHlwZSBDb250ZXh0VHlwZTxUPiA9IFQgZXh0ZW5kcyBUeXBlPGluZmVyIFU+IHwgVGVtcGxhdGVSZWY8aW5mZXIgVT4gPyBVIDogbmV2ZXI7XHJcbiJdfQ==","import { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { fromLazyLoad } from '../utils';\nimport { CROSS_ORIGIN_STRATEGY } from './cross-origin.strategy';\nimport { DOM_STRATEGY } from './dom.strategy';\nexport class LoadingStrategy {\n    constructor(path, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {\n        this.path = path;\n        this.domStrategy = domStrategy;\n        this.crossOriginStrategy = crossOriginStrategy;\n    }\n    createStream() {\n        this.element = this.createElement();\n        return of(null).pipe(switchMap(() => fromLazyLoad(this.element, this.domStrategy, this.crossOriginStrategy)));\n    }\n}\nexport class ScriptLoadingStrategy extends LoadingStrategy {\n    constructor(src, domStrategy, crossOriginStrategy) {\n        super(src, domStrategy, crossOriginStrategy);\n    }\n    createElement() {\n        const element = document.createElement('script');\n        element.src = this.path;\n        return element;\n    }\n}\nexport class StyleLoadingStrategy extends LoadingStrategy {\n    constructor(href, domStrategy, crossOriginStrategy) {\n        super(href, domStrategy, crossOriginStrategy);\n    }\n    createElement() {\n        const element = document.createElement('link');\n        element.rel = 'stylesheet';\n        element.href = this.path;\n        return element;\n    }\n}\nexport const LOADING_STRATEGY = {\n    AppendScriptToBody(src) {\n        return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.None());\n    },\n    AppendAnonymousScriptToBody(src, integrity) {\n        return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToBody(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n    },\n    AppendAnonymousScriptToHead(src, integrity) {\n        return new ScriptLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n    },\n    AppendAnonymousStyleToHead(src, integrity) {\n        return new StyleLoadingStrategy(src, DOM_STRATEGY.AppendToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n    },\n    PrependAnonymousScriptToHead(src, integrity) {\n        return new ScriptLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n    },\n    PrependAnonymousStyleToHead(src, integrity) {\n        return new StyleLoadingStrategy(src, DOM_STRATEGY.PrependToHead(), CROSS_ORIGIN_STRATEGY.Anonymous(integrity));\n    },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL2xvYWRpbmcuc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUscUJBQXFCLEVBQXVCLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE1BQU0sT0FBZ0IsZUFBZTtJQUduQyxZQUNTLElBQVksRUFDVCxjQUEyQixZQUFZLENBQUMsWUFBWSxFQUFFLEVBQ3RELHNCQUEyQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUU7UUFGL0UsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNULGdCQUFXLEdBQVgsV0FBVyxDQUEyQztRQUN0RCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXlEO0lBQ3JGLENBQUM7SUFJSixZQUFZO1FBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFcEMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNsQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUMzRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGVBQWtDO0lBQzNFLFlBQVksR0FBVyxFQUFFLFdBQXlCLEVBQUUsbUJBQXlDO1FBQzNGLEtBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGFBQWE7UUFDWCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV4QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZ0M7SUFDeEUsWUFBWSxJQUFZLEVBQUUsV0FBeUIsRUFBRSxtQkFBeUM7UUFDNUYsS0FBSyxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUM7UUFDM0IsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRXpCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLGtCQUFrQixDQUFDLEdBQVc7UUFDNUIsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixHQUFHLEVBQ0gsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUMzQixxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FDN0IsQ0FBQztJQUNKLENBQUM7SUFDRCwyQkFBMkIsQ0FBQyxHQUFXLEVBQUUsU0FBa0I7UUFDekQsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixHQUFHLEVBQ0gsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUMzQixxQkFBcUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQzNDLENBQUM7SUFDSixDQUFDO0lBQ0QsMkJBQTJCLENBQUMsR0FBVyxFQUFFLFNBQWtCO1FBQ3pELE9BQU8sSUFBSSxxQkFBcUIsQ0FDOUIsR0FBRyxFQUNILFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFDM0IscUJBQXFCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUNELDBCQUEwQixDQUFDLEdBQVcsRUFBRSxTQUFrQjtRQUN4RCxPQUFPLElBQUksb0JBQW9CLENBQzdCLEdBQUcsRUFDSCxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQzNCLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FDM0MsQ0FBQztJQUNKLENBQUM7SUFDRCw0QkFBNEIsQ0FBQyxHQUFXLEVBQUUsU0FBa0I7UUFDMUQsT0FBTyxJQUFJLHFCQUFxQixDQUM5QixHQUFHLEVBQ0gsWUFBWSxDQUFDLGFBQWEsRUFBRSxFQUM1QixxQkFBcUIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQzNDLENBQUM7SUFDSixDQUFDO0lBQ0QsMkJBQTJCLENBQUMsR0FBVyxFQUFFLFNBQWtCO1FBQ3pELE9BQU8sSUFBSSxvQkFBb0IsQ0FDN0IsR0FBRyxFQUNILFlBQVksQ0FBQyxhQUFhLEVBQUUsRUFDNUIscUJBQXFCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUMzQyxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGZyb21MYXp5TG9hZCB9IGZyb20gJy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQ1JPU1NfT1JJR0lOX1NUUkFURUdZLCBDcm9zc09yaWdpblN0cmF0ZWd5IH0gZnJvbSAnLi9jcm9zcy1vcmlnaW4uc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBET01fU1RSQVRFR1ksIERvbVN0cmF0ZWd5IH0gZnJvbSAnLi9kb20uc3RyYXRlZ3knO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvYWRpbmdTdHJhdGVneTxUIGV4dGVuZHMgSFRNTFNjcmlwdEVsZW1lbnQgfCBIVE1MTGlua0VsZW1lbnQgPSBhbnk+IHtcclxuICBlbGVtZW50ITogVDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcGF0aDogc3RyaW5nLFxyXG4gICAgcHJvdGVjdGVkIGRvbVN0cmF0ZWd5OiBEb21TdHJhdGVneSA9IERPTV9TVFJBVEVHWS5BcHBlbmRUb0hlYWQoKSxcclxuICAgIHByb3RlY3RlZCBjcm9zc09yaWdpblN0cmF0ZWd5OiBDcm9zc09yaWdpblN0cmF0ZWd5ID0gQ1JPU1NfT1JJR0lOX1NUUkFURUdZLkFub255bW91cygpLFxyXG4gICkge31cclxuXHJcbiAgYWJzdHJhY3QgY3JlYXRlRWxlbWVudCgpOiBUO1xyXG5cclxuICBjcmVhdGVTdHJlYW08RSBleHRlbmRzIEV2ZW50PigpOiBPYnNlcnZhYmxlPEU+IHtcclxuICAgIHRoaXMuZWxlbWVudCA9IHRoaXMuY3JlYXRlRWxlbWVudCgpO1xyXG5cclxuICAgIHJldHVybiBvZihudWxsKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbUxhenlMb2FkPEU+KHRoaXMuZWxlbWVudCwgdGhpcy5kb21TdHJhdGVneSwgdGhpcy5jcm9zc09yaWdpblN0cmF0ZWd5KSksXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNjcmlwdExvYWRpbmdTdHJhdGVneSBleHRlbmRzIExvYWRpbmdTdHJhdGVneTxIVE1MU2NyaXB0RWxlbWVudD4ge1xyXG4gIGNvbnN0cnVjdG9yKHNyYzogc3RyaW5nLCBkb21TdHJhdGVneT86IERvbVN0cmF0ZWd5LCBjcm9zc09yaWdpblN0cmF0ZWd5PzogQ3Jvc3NPcmlnaW5TdHJhdGVneSkge1xyXG4gICAgc3VwZXIoc3JjLCBkb21TdHJhdGVneSwgY3Jvc3NPcmlnaW5TdHJhdGVneSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVFbGVtZW50KCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIGVsZW1lbnQuc3JjID0gdGhpcy5wYXRoO1xyXG5cclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFN0eWxlTG9hZGluZ1N0cmF0ZWd5IGV4dGVuZHMgTG9hZGluZ1N0cmF0ZWd5PEhUTUxMaW5rRWxlbWVudD4ge1xyXG4gIGNvbnN0cnVjdG9yKGhyZWY6IHN0cmluZywgZG9tU3RyYXRlZ3k/OiBEb21TdHJhdGVneSwgY3Jvc3NPcmlnaW5TdHJhdGVneT86IENyb3NzT3JpZ2luU3RyYXRlZ3kpIHtcclxuICAgIHN1cGVyKGhyZWYsIGRvbVN0cmF0ZWd5LCBjcm9zc09yaWdpblN0cmF0ZWd5KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUVsZW1lbnQoKTogSFRNTExpbmtFbGVtZW50IHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICBlbGVtZW50LnJlbCA9ICdzdHlsZXNoZWV0JztcclxuICAgIGVsZW1lbnQuaHJlZiA9IHRoaXMucGF0aDtcclxuXHJcbiAgICByZXR1cm4gZWxlbWVudDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBMT0FESU5HX1NUUkFURUdZID0ge1xyXG4gIEFwcGVuZFNjcmlwdFRvQm9keShzcmM6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBTY3JpcHRMb2FkaW5nU3RyYXRlZ3koXHJcbiAgICAgIHNyYyxcclxuICAgICAgRE9NX1NUUkFURUdZLkFwcGVuZFRvQm9keSgpLFxyXG4gICAgICBDUk9TU19PUklHSU5fU1RSQVRFR1kuTm9uZSgpLFxyXG4gICAgKTtcclxuICB9LFxyXG4gIEFwcGVuZEFub255bW91c1NjcmlwdFRvQm9keShzcmM6IHN0cmluZywgaW50ZWdyaXR5Pzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IFNjcmlwdExvYWRpbmdTdHJhdGVneShcclxuICAgICAgc3JjLFxyXG4gICAgICBET01fU1RSQVRFR1kuQXBwZW5kVG9Cb2R5KCksXHJcbiAgICAgIENST1NTX09SSUdJTl9TVFJBVEVHWS5Bbm9ueW1vdXMoaW50ZWdyaXR5KSxcclxuICAgICk7XHJcbiAgfSxcclxuICBBcHBlbmRBbm9ueW1vdXNTY3JpcHRUb0hlYWQoc3JjOiBzdHJpbmcsIGludGVncml0eT86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBTY3JpcHRMb2FkaW5nU3RyYXRlZ3koXHJcbiAgICAgIHNyYyxcclxuICAgICAgRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLFxyXG4gICAgICBDUk9TU19PUklHSU5fU1RSQVRFR1kuQW5vbnltb3VzKGludGVncml0eSksXHJcbiAgICApO1xyXG4gIH0sXHJcbiAgQXBwZW5kQW5vbnltb3VzU3R5bGVUb0hlYWQoc3JjOiBzdHJpbmcsIGludGVncml0eT86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBTdHlsZUxvYWRpbmdTdHJhdGVneShcclxuICAgICAgc3JjLFxyXG4gICAgICBET01fU1RSQVRFR1kuQXBwZW5kVG9IZWFkKCksXHJcbiAgICAgIENST1NTX09SSUdJTl9TVFJBVEVHWS5Bbm9ueW1vdXMoaW50ZWdyaXR5KSxcclxuICAgICk7XHJcbiAgfSxcclxuICBQcmVwZW5kQW5vbnltb3VzU2NyaXB0VG9IZWFkKHNyYzogc3RyaW5nLCBpbnRlZ3JpdHk/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBuZXcgU2NyaXB0TG9hZGluZ1N0cmF0ZWd5KFxyXG4gICAgICBzcmMsXHJcbiAgICAgIERPTV9TVFJBVEVHWS5QcmVwZW5kVG9IZWFkKCksXHJcbiAgICAgIENST1NTX09SSUdJTl9TVFJBVEVHWS5Bbm9ueW1vdXMoaW50ZWdyaXR5KSxcclxuICAgICk7XHJcbiAgfSxcclxuICBQcmVwZW5kQW5vbnltb3VzU3R5bGVUb0hlYWQoc3JjOiBzdHJpbmcsIGludGVncml0eT86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBTdHlsZUxvYWRpbmdTdHJhdGVneShcclxuICAgICAgc3JjLFxyXG4gICAgICBET01fU1RSQVRFR1kuUHJlcGVuZFRvSGVhZCgpLFxyXG4gICAgICBDUk9TU19PUklHSU5fU1RSQVRFR1kuQW5vbnltb3VzKGludGVncml0eSksXHJcbiAgICApO1xyXG4gIH0sXHJcbn07XHJcbiJdfQ==","import { ApplicationRef, ComponentFactoryResolver, } from '@angular/core';\nimport { CONTAINER_STRATEGY } from './container.strategy';\nimport { CONTEXT_STRATEGY } from './context.strategy';\nimport { DOM_STRATEGY } from './dom.strategy';\nexport class ProjectionStrategy {\n    constructor(content) {\n        this.content = content;\n    }\n}\nexport class ComponentProjectionStrategy extends ProjectionStrategy {\n    constructor(component, containerStrategy, contextStrategy = CONTEXT_STRATEGY.None()) {\n        super(component);\n        this.containerStrategy = containerStrategy;\n        this.contextStrategy = contextStrategy;\n    }\n    injectContent(injector) {\n        this.containerStrategy.prepare();\n        const resolver = injector.get(ComponentFactoryResolver);\n        const factory = resolver.resolveComponentFactory(this.content);\n        const componentRef = this.containerStrategy.containerRef.createComponent(factory, this.containerStrategy.getIndex(), injector);\n        this.contextStrategy.setContext(componentRef);\n        return componentRef;\n    }\n}\nexport class RootComponentProjectionStrategy extends ProjectionStrategy {\n    constructor(component, contextStrategy = CONTEXT_STRATEGY.None(), domStrategy = DOM_STRATEGY.AppendToBody()) {\n        super(component);\n        this.contextStrategy = contextStrategy;\n        this.domStrategy = domStrategy;\n    }\n    injectContent(injector) {\n        const appRef = injector.get(ApplicationRef);\n        const resolver = injector.get(ComponentFactoryResolver);\n        const componentRef = resolver\n            .resolveComponentFactory(this.content)\n            .create(injector);\n        this.contextStrategy.setContext(componentRef);\n        appRef.attachView(componentRef.hostView);\n        const element = componentRef.hostView.rootNodes[0];\n        this.domStrategy.insertElement(element);\n        return componentRef;\n    }\n}\nexport class TemplateProjectionStrategy extends ProjectionStrategy {\n    constructor(templateRef, containerStrategy, contextStrategy = CONTEXT_STRATEGY.None()) {\n        super(templateRef);\n        this.containerStrategy = containerStrategy;\n        this.contextStrategy = contextStrategy;\n    }\n    injectContent() {\n        this.containerStrategy.prepare();\n        const embeddedViewRef = this.containerStrategy.containerRef.createEmbeddedView(this.content, this.contextStrategy.context, this.containerStrategy.getIndex());\n        embeddedViewRef.detectChanges();\n        return embeddedViewRef;\n    }\n}\nexport const PROJECTION_STRATEGY = {\n    AppendComponentToBody(component, context) {\n        return new RootComponentProjectionStrategy(component, context && CONTEXT_STRATEGY.Component(context));\n    },\n    AppendComponentToContainer(component, containerRef, context) {\n        return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Append(containerRef), context && CONTEXT_STRATEGY.Component(context));\n    },\n    AppendTemplateToContainer(templateRef, containerRef, context) {\n        return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Append(containerRef), context && CONTEXT_STRATEGY.Template(context));\n    },\n    PrependComponentToContainer(component, containerRef, context) {\n        return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Component(context));\n    },\n    PrependTemplateToContainer(templateRef, containerRef, context) {\n        return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Prepend(containerRef), context && CONTEXT_STRATEGY.Template(context));\n    },\n    ProjectComponentToContainer(component, containerRef, context) {\n        return new ComponentProjectionStrategy(component, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Component(context));\n    },\n    ProjectTemplateToContainer(templateRef, containerRef, context) {\n        return new TemplateProjectionStrategy(templateRef, CONTAINER_STRATEGY.Clear(containerRef), context && CONTEXT_STRATEGY.Template(context));\n    },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbi5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zdHJhdGVnaWVzL3Byb2plY3Rpb24uc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx3QkFBd0IsR0FPekIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFxQixrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsTUFBTSxPQUFnQixrQkFBa0I7SUFDdEMsWUFBbUIsT0FBVTtRQUFWLFlBQU8sR0FBUCxPQUFPLENBQUc7SUFBRyxDQUFDO0NBR2xDO0FBRUQsTUFBTSxPQUFPLDJCQUFpRCxTQUFRLGtCQUFxQjtJQUN6RixZQUNFLFNBQVksRUFDSixpQkFBb0MsRUFDcEMsa0JBQW1DLGdCQUFnQixDQUFDLElBQUksRUFBRTtRQUVsRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFIVCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLG9CQUFlLEdBQWYsZUFBZSxDQUEyQztJQUdwRSxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWtCO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVqQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUE2QixDQUFDO1FBQ3BGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBd0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUN0RSxPQUFP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LEVBQ3ZDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDO0lBQ0QsMkJBQTJCLENBQ3pCLFNBQVksRUFDWixZQUE4QixFQUM5QixPQUF3QztRQUV4QyxPQUFPLElBQUksMkJBQTJCLENBQ3BDLFNBQVMsRUFDVCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQ3hDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQy9DLENBQUM7SUFDSixDQUFDO0lBQ0QsMEJBQTBCLENBQ3hCLFdBQWMsRUFDZCxZQUE4QixFQUM5QixPQUF1QztRQUV2QyxPQUFPLElBQUksMEJBQTBCLENBQ25DLFdBQVcsRUFDWCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQ3hDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDO0lBQ0QsMkJBQTJCLENBQ3pCLFNBQVksRUFDWixZQUE4QixFQUM5QixPQUF3QztRQUV4QyxPQUFPLElBQUksMkJBQTJCLENBQ3BDLFNBQVMsRUFDVCxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQ3RDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQy9DLENBQUM7SUFDSixDQUFDO0lBQ0QsMEJBQTBCLENBQ3hCLFdBQWMsRUFDZCxZQUE4QixFQUM5QixPQUF1QztRQUV2QyxPQUFPLElBQUksMEJBQTBCLENBQ25DLFdBQVcsRUFDWCxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQ3RDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXBwbGljYXRpb25SZWYsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZixcclxuICBFbWJlZGRlZFZpZXdSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVHlwZSxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbmZlcnJlZENvbnRleHRPZiwgSW5mZXJyZWRJbnN0YW5jZU9mIH0gZnJvbSAnLi4vbW9kZWxzL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBDb250YWluZXJTdHJhdGVneSwgQ09OVEFJTkVSX1NUUkFURUdZIH0gZnJvbSAnLi9jb250YWluZXIuc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBDb250ZXh0U3RyYXRlZ3ksIENPTlRFWFRfU1RSQVRFR1kgfSBmcm9tICcuL2NvbnRleHQuc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBEb21TdHJhdGVneSwgRE9NX1NUUkFURUdZIH0gZnJvbSAnLi9kb20uc3RyYXRlZ3knO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFByb2plY3Rpb25TdHJhdGVneTxUID0gYW55PiB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbnRlbnQ6IFQpIHt9XHJcblxyXG4gIGFic3RyYWN0IGluamVjdENvbnRlbnQoaW5qZWN0b3I6IEluamVjdG9yKTogQ29tcG9uZW50UmVmT3JFbWJlZGRlZFZpZXdSZWY8VD47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRQcm9qZWN0aW9uU3RyYXRlZ3k8VCBleHRlbmRzIFR5cGU8YW55Pj4gZXh0ZW5kcyBQcm9qZWN0aW9uU3RyYXRlZ3k8VD4ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgY29tcG9uZW50OiBULFxyXG4gICAgcHJpdmF0ZSBjb250YWluZXJTdHJhdGVneTogQ29udGFpbmVyU3RyYXRlZ3ksXHJcbiAgICBwcml2YXRlIGNvbnRleHRTdHJhdGVneTogQ29udGV4dFN0cmF0ZWd5ID0gQ09OVEVYVF9TVFJBVEVHWS5Ob25lKCksXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjb21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgaW5qZWN0Q29udGVudChpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHRoaXMuY29udGFpbmVyU3RyYXRlZ3kucHJlcGFyZSgpO1xyXG5cclxuICAgIGNvbnN0IHJlc29sdmVyID0gaW5qZWN0b3IuZ2V0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikgYXMgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyO1xyXG4gICAgY29uc3QgZmFjdG9yeSA9IHJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PEluZmVycmVkSW5zdGFuY2VPZjxUPj4odGhpcy5jb250ZW50KTtcclxuXHJcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbnRhaW5lclN0cmF0ZWd5LmNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXHJcbiAgICAgIGZhY3RvcnksXHJcbiAgICAgIHRoaXMuY29udGFpbmVyU3RyYXRlZ3kuZ2V0SW5kZXgoKSxcclxuICAgICAgaW5qZWN0b3IsXHJcbiAgICApO1xyXG4gICAgdGhpcy5jb250ZXh0U3RyYXRlZ3kuc2V0Q29udGV4dChjb21wb25lbnRSZWYpO1xyXG5cclxuICAgIHJldHVybiBjb21wb25lbnRSZWYgYXMgQ29tcG9uZW50UmVmT3JFbWJlZGRlZFZpZXdSZWY8VD47XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm9vdENvbXBvbmVudFByb2plY3Rpb25TdHJhdGVneTxUIGV4dGVuZHMgVHlwZTxhbnk+PiBleHRlbmRzIFByb2plY3Rpb25TdHJhdGVneTxUPiB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjb21wb25lbnQ6IFQsXHJcbiAgICBwcml2YXRlIGNvbnRleHRTdHJhdGVneTogQ29udGV4dFN0cmF0ZWd5ID0gQ09OVEVYVF9TVFJBVEVHWS5Ob25lKCksXHJcbiAgICBwcml2YXRlIGRvbVN0cmF0ZWd5OiBEb21TdHJhdGVneSA9IERPTV9TVFJBVEVHWS5BcHBlbmRUb0JvZHkoKSxcclxuICApIHtcclxuICAgIHN1cGVyKGNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICBpbmplY3RDb250ZW50KGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgY29uc3QgYXBwUmVmID0gaW5qZWN0b3IuZ2V0KEFwcGxpY2F0aW9uUmVmKTtcclxuICAgIGNvbnN0IHJlc29sdmVyID0gaW5qZWN0b3IuZ2V0KENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikgYXMgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gcmVzb2x2ZXJcclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PEluZmVycmVkSW5zdGFuY2VPZjxUPj4odGhpcy5jb250ZW50KVxyXG4gICAgICAuY3JlYXRlKGluamVjdG9yKTtcclxuXHJcbiAgICB0aGlzLmNvbnRleHRTdHJhdGVneS5zZXRDb250ZXh0KGNvbXBvbmVudFJlZik7XHJcblxyXG4gICAgYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgIGNvbnN0IGVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdO1xyXG4gICAgdGhpcy5kb21TdHJhdGVneS5pbnNlcnRFbGVtZW50KGVsZW1lbnQpO1xyXG5cclxuICAgIHJldHVybiBjb21wb25lbnRSZWYgYXMgQ29tcG9uZW50UmVmT3JFbWJlZGRlZFZpZXdSZWY8VD47XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVQcm9qZWN0aW9uU3RyYXRlZ3k8VCBleHRlbmRzIFRlbXBsYXRlUmVmPGFueT4+IGV4dGVuZHMgUHJvamVjdGlvblN0cmF0ZWd5PFQ+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHRlbXBsYXRlUmVmOiBULFxyXG4gICAgcHJpdmF0ZSBjb250YWluZXJTdHJhdGVneTogQ29udGFpbmVyU3RyYXRlZ3ksXHJcbiAgICBwcml2YXRlIGNvbnRleHRTdHJhdGVneSA9IENPTlRFWFRfU1RSQVRFR1kuTm9uZSgpLFxyXG4gICkge1xyXG4gICAgc3VwZXIodGVtcGxhdGVSZWYpO1xyXG4gIH1cclxuXHJcbiAgaW5qZWN0Q29udGVudCgpIHtcclxuICAgIHRoaXMuY29udGFpbmVyU3RyYXRlZ3kucHJlcGFyZSgpO1xyXG5cclxuICAgIGNvbnN0IGVtYmVkZGVkVmlld1JlZiA9IHRoaXMuY29udGFpbmVyU3RyYXRlZ3kuY29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhcclxuICAgICAgdGhpcy5jb250ZW50LFxyXG4gICAgICB0aGlzLmNvbnRleHRTdHJhdGVneS5jb250ZXh0LFxyXG4gICAgICB0aGlzLmNvbnRhaW5lclN0cmF0ZWd5LmdldEluZGV4KCksXHJcbiAgICApO1xyXG4gICAgZW1iZWRkZWRWaWV3UmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICByZXR1cm4gZW1iZWRkZWRWaWV3UmVmIGFzIENvbXBvbmVudFJlZk9yRW1iZWRkZWRWaWV3UmVmPFQ+O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFBST0pFQ1RJT05fU1RSQVRFR1kgPSB7XHJcbiAgQXBwZW5kQ29tcG9uZW50VG9Cb2R5PFQgZXh0ZW5kcyBUeXBlPHVua25vd24+PihcclxuICAgIGNvbXBvbmVudDogVCxcclxuICAgIGNvbnRleHQ/OiBQYXJ0aWFsPEluZmVycmVkSW5zdGFuY2VPZjxUPj4sXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gbmV3IFJvb3RDb21wb25lbnRQcm9qZWN0aW9uU3RyYXRlZ3k8VD4oXHJcbiAgICAgIGNvbXBvbmVudCxcclxuICAgICAgY29udGV4dCAmJiBDT05URVhUX1NUUkFURUdZLkNvbXBvbmVudChjb250ZXh0KSxcclxuICAgICk7XHJcbiAgfSxcclxuICBBcHBlbmRDb21wb25lbnRUb0NvbnRhaW5lcjxUIGV4dGVuZHMgVHlwZTx1bmtub3duPj4oXHJcbiAgICBjb21wb25lbnQ6IFQsXHJcbiAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBjb250ZXh0PzogUGFydGlhbDxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+LFxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnRQcm9qZWN0aW9uU3RyYXRlZ3k8VD4oXHJcbiAgICAgIGNvbXBvbmVudCxcclxuICAgICAgQ09OVEFJTkVSX1NUUkFURUdZLkFwcGVuZChjb250YWluZXJSZWYpLFxyXG4gICAgICBjb250ZXh0ICYmIENPTlRFWFRfU1RSQVRFR1kuQ29tcG9uZW50KGNvbnRleHQpLFxyXG4gICAgKTtcclxuICB9LFxyXG4gIEFwcGVuZFRlbXBsYXRlVG9Db250YWluZXI8VCBleHRlbmRzIFRlbXBsYXRlUmVmPHVua25vd24+PihcclxuICAgIHRlbXBsYXRlUmVmOiBULFxyXG4gICAgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgY29udGV4dD86IFBhcnRpYWw8SW5mZXJyZWRDb250ZXh0T2Y8VD4+LFxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZVByb2plY3Rpb25TdHJhdGVneTxUPihcclxuICAgICAgdGVtcGxhdGVSZWYsXHJcbiAgICAgIENPTlRBSU5FUl9TVFJBVEVHWS5BcHBlbmQoY29udGFpbmVyUmVmKSxcclxuICAgICAgY29udGV4dCAmJiBDT05URVhUX1NUUkFURUdZLlRlbXBsYXRlKGNvbnRleHQpLFxyXG4gICAgKTtcclxuICB9LFxyXG4gIFByZXBlbmRDb21wb25lbnRUb0NvbnRhaW5lcjxUIGV4dGVuZHMgVHlwZTx1bmtub3duPj4oXHJcbiAgICBjb21wb25lbnQ6IFQsXHJcbiAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBjb250ZXh0PzogUGFydGlhbDxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+LFxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnRQcm9qZWN0aW9uU3RyYXRlZ3k8VD4oXHJcbiAgICAgIGNvbXBvbmVudCxcclxuICAgICAgQ09OVEFJTkVSX1NUUkFURUdZLlByZXBlbmQoY29udGFpbmVyUmVmKSxcclxuICAgICAgY29udGV4dCAmJiBDT05URVhUX1NUUkFURUdZLkNvbXBvbmVudChjb250ZXh0KSxcclxuICAgICk7XHJcbiAgfSxcclxuICBQcmVwZW5kVGVtcGxhdGVUb0NvbnRhaW5lcjxUIGV4dGVuZHMgVGVtcGxhdGVSZWY8dW5rbm93bj4+KFxyXG4gICAgdGVtcGxhdGVSZWY6IFQsXHJcbiAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBjb250ZXh0PzogUGFydGlhbDxJbmZlcnJlZENvbnRleHRPZjxUPj4sXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gbmV3IFRlbXBsYXRlUHJvamVjdGlvblN0cmF0ZWd5PFQ+KFxyXG4gICAgICB0ZW1wbGF0ZVJlZixcclxuICAgICAgQ09OVEFJTkVSX1NUUkFURUdZLlByZXBlbmQoY29udGFpbmVyUmVmKSxcclxuICAgICAgY29udGV4dCAmJiBDT05URVhUX1NUUkFURUdZLlRlbXBsYXRlKGNvbnRleHQpLFxyXG4gICAgKTtcclxuICB9LFxyXG4gIFByb2plY3RDb21wb25lbnRUb0NvbnRhaW5lcjxUIGV4dGVuZHMgVHlwZTx1bmtub3duPj4oXHJcbiAgICBjb21wb25lbnQ6IFQsXHJcbiAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBjb250ZXh0PzogUGFydGlhbDxJbmZlcnJlZEluc3RhbmNlT2Y8VD4+LFxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnRQcm9qZWN0aW9uU3RyYXRlZ3k8VD4oXHJcbiAgICAgIGNvbXBvbmVudCxcclxuICAgICAgQ09OVEFJTkVSX1NUUkFURUdZLkNsZWFyKGNvbnRhaW5lclJlZiksXHJcbiAgICAgIGNvbnRleHQgJiYgQ09OVEVYVF9TVFJBVEVHWS5Db21wb25lbnQoY29udGV4dCksXHJcbiAgICApO1xyXG4gIH0sXHJcbiAgUHJvamVjdFRlbXBsYXRlVG9Db250YWluZXI8VCBleHRlbmRzIFRlbXBsYXRlUmVmPHVua25vd24+PihcclxuICAgIHRlbXBsYXRlUmVmOiBULFxyXG4gICAgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgY29udGV4dD86IFBhcnRpYWw8SW5mZXJyZWRDb250ZXh0T2Y8VD4+LFxyXG4gICkge1xyXG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZVByb2plY3Rpb25TdHJhdGVneTxUPihcclxuICAgICAgdGVtcGxhdGVSZWYsXHJcbiAgICAgIENPTlRBSU5FUl9TVFJBVEVHWS5DbGVhcihjb250YWluZXJSZWYpLFxyXG4gICAgICBjb250ZXh0ICYmIENPTlRFWFRfU1RSQVRFR1kuVGVtcGxhdGUoY29udGV4dCksXHJcbiAgICApO1xyXG4gIH0sXHJcbn07XHJcblxyXG50eXBlIENvbXBvbmVudFJlZk9yRW1iZWRkZWRWaWV3UmVmPFQ+ID0gVCBleHRlbmRzIFR5cGU8aW5mZXIgVT5cclxuICA/IENvbXBvbmVudFJlZjxVPlxyXG4gIDogVCBleHRlbmRzIFRlbXBsYXRlUmVmPGluZmVyIEM+XHJcbiAgPyBFbWJlZGRlZFZpZXdSZWY8Qz5cclxuICA6IG5ldmVyO1xyXG4iXX0=","export function validateMinAge({ age = 18 } = {}) {\n    return (control) => {\n        if (['', null, undefined].indexOf(control.value) > -1)\n            return null;\n        return isValidMinAge(control.value, age) ? null : { minAge: { age } };\n    };\n}\nfunction isValidMinAge(value, minAge) {\n    const date = new Date();\n    date.setFullYear(date.getFullYear() - minAge);\n    date.setHours(23, 59, 59, 999);\n    return Number(new Date(value)) <= date.valueOf();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi92YWxpZGF0b3JzL2FnZS52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxVQUFVLGNBQWMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQW9CLEVBQUU7SUFDN0QsT0FBTyxDQUFDLE9BQXdCLEVBQXNCLEVBQUU7UUFDdEQsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVuRSxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN4RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsS0FBc0IsRUFBRSxNQUFjO0lBQzNELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWluQWdlRXJyb3Ige1xyXG4gIG1pbkFnZToge1xyXG4gICAgYWdlOiBudW1iZXI7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNaW5BZ2VPcHRpb25zIHtcclxuICBhZ2U/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU1pbkFnZSh7IGFnZSA9IDE4IH06IE1pbkFnZU9wdGlvbnMgPSB7fSk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IE1pbkFnZUVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoWycnLCBudWxsLCB1bmRlZmluZWRdLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPiAtMSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWRNaW5BZ2UoY29udHJvbC52YWx1ZSwgYWdlKSA/IG51bGwgOiB7IG1pbkFnZTogeyBhZ2UgfSB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmFsaWRNaW5BZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlciwgbWluQWdlOiBudW1iZXIpIHtcclxuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSAtIG1pbkFnZSk7XHJcbiAgZGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xyXG5cclxuICByZXR1cm4gTnVtYmVyKG5ldyBEYXRlKHZhbHVlKSkgPD0gZGF0ZS52YWx1ZU9mKCk7XHJcbn1cclxuIl19","export function validateCreditCard() {\n    return (control) => {\n        if (['', null, undefined].indexOf(control.value) > -1)\n            return null;\n        return isValidCreditCard(String(control.value)) ? null : { creditCard: true };\n    };\n}\nfunction isValidCreditCard(value) {\n    value = value.replace(/[ -]/g, '');\n    if (!/^[0-9]{13,19}$/.test(value))\n        return false;\n    let checksum = 0;\n    let multiplier = 1;\n    for (let i = value.length; i > 0; i--) {\n        const digit = Number(value[i - 1]) * multiplier;\n        checksum += (digit % 10) + ~~(digit / 10);\n        multiplier = (multiplier * 2) % 3;\n    }\n    return checksum % 10 === 0;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LWNhcmQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvY3JlZGl0LWNhcmQudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsT0FBTyxDQUFDLE9BQXdCLEVBQTBCLEVBQUU7UUFDMUQsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVuRSxPQUFPLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNoRixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhO0lBQ3RDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRWhELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUNoRCxRQUFRLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBRTFDLFVBQVUsR0FBRyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sUUFBUSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENyZWRpdENhcmRFcnJvciB7XHJcbiAgY3JlZGl0Q2FyZDogdHJ1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQ3JlZGl0Q2FyZCgpOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBDcmVkaXRDYXJkRXJyb3IgfCBudWxsID0+IHtcclxuICAgIGlmIChbJycsIG51bGwsIHVuZGVmaW5lZF0uaW5kZXhPZihjb250cm9sLnZhbHVlKSA+IC0xKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gaXNWYWxpZENyZWRpdENhcmQoU3RyaW5nKGNvbnRyb2wudmFsdWUpKSA/IG51bGwgOiB7IGNyZWRpdENhcmQ6IHRydWUgfTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1ZhbGlkQ3JlZGl0Q2FyZCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bIC1dL2csICcnKTtcclxuXHJcbiAgaWYgKCEvXlswLTldezEzLDE5fSQvLnRlc3QodmFsdWUpKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gIGxldCBjaGVja3N1bSA9IDA7XHJcbiAgbGV0IG11bHRpcGxpZXIgPSAxO1xyXG5cclxuICBmb3IgKGxldCBpID0gdmFsdWUubGVuZ3RoOyBpID4gMDsgaS0tKSB7XHJcbiAgICBjb25zdCBkaWdpdCA9IE51bWJlcih2YWx1ZVtpIC0gMV0pICogbXVsdGlwbGllcjtcclxuICAgIGNoZWNrc3VtICs9IChkaWdpdCAlIDEwKSArIH5+KGRpZ2l0IC8gMTApO1xyXG5cclxuICAgIG11bHRpcGxpZXIgPSAobXVsdGlwbGllciAqIDIpICUgMztcclxuICB9XHJcblxyXG4gIHJldHVybiBjaGVja3N1bSAlIDEwID09PSAwO1xyXG59XHJcbiJdfQ==","export function validateRange({ maximum = Infinity, minimum = 0 } = {}) {\n    return (control) => {\n        if (['', null, undefined].indexOf(control.value) > -1)\n            return null;\n        const value = Number(control.value);\n        return getMinError(value, minimum, maximum) || getMaxError(value, maximum, minimum);\n    };\n}\nfunction getMaxError(value, max, min) {\n    return value > max ? { range: { max, min } } : null;\n}\nfunction getMinError(value, min, max) {\n    return value < min ? { range: { min, max } } : null;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvcmFuZ2UudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLE1BQU0sVUFBVSxhQUFhLENBQUMsRUFBRSxPQUFPLEdBQUcsUUFBUSxFQUFFLE9BQU8sR0FBRyxDQUFDLEtBQW1CLEVBQUU7SUFDbEYsT0FBTyxDQUFDLE9BQXdCLEVBQXFCLEVBQUU7UUFDckQsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVuRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEYsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsR0FBVztJQUMxRCxPQUFPLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxHQUFXO0lBQzFELE9BQU8sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSYW5nZUVycm9yIHtcclxuICByYW5nZToge1xyXG4gICAgbWF4OiBudW1iZXI7XHJcbiAgICBtaW46IG51bWJlcjtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlT3B0aW9ucyB7XHJcbiAgbWF4aW11bT86IG51bWJlcjtcclxuICBtaW5pbXVtPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSYW5nZSh7IG1heGltdW0gPSBJbmZpbml0eSwgbWluaW11bSA9IDAgfTogUmFuZ2VPcHRpb25zID0ge30pOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBSYW5nZUVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoWycnLCBudWxsLCB1bmRlZmluZWRdLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPiAtMSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBOdW1iZXIoY29udHJvbC52YWx1ZSk7XHJcbiAgICByZXR1cm4gZ2V0TWluRXJyb3IodmFsdWUsIG1pbmltdW0sIG1heGltdW0pIHx8IGdldE1heEVycm9yKHZhbHVlLCBtYXhpbXVtLCBtaW5pbXVtKTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNYXhFcnJvcih2YWx1ZTogbnVtYmVyLCBtYXg6IG51bWJlciwgbWluOiBudW1iZXIpOiBSYW5nZUVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlID4gbWF4ID8geyByYW5nZTogeyBtYXgsIG1pbiB9IH0gOiBudWxsO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNaW5FcnJvcih2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBSYW5nZUVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlIDwgbWluID8geyByYW5nZTogeyBtaW4sIG1heCB9IH0gOiBudWxsO1xyXG59XHJcbiJdfQ==","export function validateRequired({ allowEmptyStrings } = {}) {\n    // note: please do not remove name of the function, it is used in function compare with type 'RequiredError'\n    const required = (control) => {\n        return isValidRequired(control.value, allowEmptyStrings) ? null : { required: true };\n    };\n    return required;\n}\nfunction isValidRequired(value, allowEmptyStrings) {\n    if (value || value === 0 || value === false)\n        return true;\n    if (allowEmptyStrings && value === '')\n        return true;\n    return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvcmVxdWlyZWQudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxFQUFFLGlCQUFpQixLQUFzQixFQUFFO0lBQzFFLDRHQUE0RztJQUM1RyxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQXdCLEVBQXdCLEVBQUU7UUFDbEUsT0FBTyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3ZGLENBQUMsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxLQUFVLEVBQUUsaUJBQXNDO0lBQ3pFLElBQUksS0FBSyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV6RCxJQUFJLGlCQUFpQixJQUFJLEtBQUssS0FBSyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFbkQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRFcnJvciB7XHJcbiAgcmVxdWlyZWQ6IHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRPcHRpb25zIHtcclxuICBhbGxvd0VtcHR5U3RyaW5ncz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVJlcXVpcmVkKHsgYWxsb3dFbXB0eVN0cmluZ3MgfTogUmVxdWlyZWRPcHRpb25zID0ge30pOiBWYWxpZGF0b3JGbiB7XHJcbiAgLy8gbm90ZTogcGxlYXNlIGRvIG5vdCByZW1vdmUgbmFtZSBvZiB0aGUgZnVuY3Rpb24sIGl0IGlzIHVzZWQgaW4gZnVuY3Rpb24gY29tcGFyZSB3aXRoIHR5cGUgJ1JlcXVpcmVkRXJyb3InXHJcbiAgY29uc3QgcmVxdWlyZWQgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogUmVxdWlyZWRFcnJvciB8IG51bGwgPT4ge1xyXG4gICAgcmV0dXJuIGlzVmFsaWRSZXF1aXJlZChjb250cm9sLnZhbHVlLCBhbGxvd0VtcHR5U3RyaW5ncykgPyBudWxsIDogeyByZXF1aXJlZDogdHJ1ZSB9O1xyXG4gIH07XHJcbiAgcmV0dXJuIHJlcXVpcmVkO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1ZhbGlkUmVxdWlyZWQodmFsdWU6IGFueSwgYWxsb3dFbXB0eVN0cmluZ3M6IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICBpZiAodmFsdWUgfHwgdmFsdWUgPT09IDAgfHwgdmFsdWUgPT09IGZhbHNlKSByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgaWYgKGFsbG93RW1wdHlTdHJpbmdzICYmIHZhbHVlID09PSAnJykgcmV0dXJuIHRydWU7XHJcblxyXG4gIHJldHVybiBmYWxzZTtcclxufVxyXG4iXX0=","export function validateStringLength({ maximumLength = Infinity, minimumLength = 0, } = {}) {\n    return (control) => {\n        if (['', null, undefined].indexOf(control.value) > -1)\n            return null;\n        const value = String(control.value);\n        return getMinLengthError(value, minimumLength) || getMaxLengthError(value, maximumLength);\n    };\n}\nfunction getMaxLengthError(value, requiredLength) {\n    return value.length > requiredLength ? { maxlength: { requiredLength } } : null;\n}\nfunction getMinLengthError(value, requiredLength) {\n    return value.length < requiredLength ? { minlength: { requiredLength } } : null;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWxlbmd0aC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9zdHJpbmctbGVuZ3RoLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEVBQ25DLGFBQWEsR0FBRyxRQUFRLEVBQ3hCLGFBQWEsR0FBRyxDQUFDLE1BQ00sRUFBRTtJQUN6QixPQUFPLENBQUMsT0FBd0IsRUFBNEIsRUFBRTtRQUM1RCxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRW5FLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEMsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxjQUFzQjtJQUM5RCxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNsRixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsY0FBc0I7SUFDOUQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0xlbmd0aEVycm9yIHtcclxuICBtYXhsZW5ndGg/OiB7XHJcbiAgICByZXF1aXJlZExlbmd0aDogbnVtYmVyO1xyXG4gIH07XHJcbiAgbWlubGVuZ3RoPzoge1xyXG4gICAgcmVxdWlyZWRMZW5ndGg6IG51bWJlcjtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0xlbmd0aE9wdGlvbnMge1xyXG4gIG1heGltdW1MZW5ndGg/OiBudW1iZXI7XHJcbiAgbWluaW11bUxlbmd0aD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nTGVuZ3RoKHtcclxuICBtYXhpbXVtTGVuZ3RoID0gSW5maW5pdHksXHJcbiAgbWluaW11bUxlbmd0aCA9IDAsXHJcbn06IFN0cmluZ0xlbmd0aE9wdGlvbnMgPSB7fSk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFN0cmluZ0xlbmd0aEVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoWycnLCBudWxsLCB1bmRlZmluZWRdLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPiAtMSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBTdHJpbmcoY29udHJvbC52YWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIGdldE1pbkxlbmd0aEVycm9yKHZhbHVlLCBtaW5pbXVtTGVuZ3RoKSB8fCBnZXRNYXhMZW5ndGhFcnJvcih2YWx1ZSwgbWF4aW11bUxlbmd0aCk7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWF4TGVuZ3RoRXJyb3IodmFsdWU6IHN0cmluZywgcmVxdWlyZWRMZW5ndGg6IG51bWJlcik6IFN0cmluZ0xlbmd0aEVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IHJlcXVpcmVkTGVuZ3RoID8geyBtYXhsZW5ndGg6IHsgcmVxdWlyZWRMZW5ndGggfSB9IDogbnVsbDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWluTGVuZ3RoRXJyb3IodmFsdWU6IHN0cmluZywgcmVxdWlyZWRMZW5ndGg6IG51bWJlcik6IFN0cmluZ0xlbmd0aEVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA8IHJlcXVpcmVkTGVuZ3RoID8geyBtaW5sZW5ndGg6IHsgcmVxdWlyZWRMZW5ndGggfSB9IDogbnVsbDtcclxufVxyXG4iXX0=","import { isNullOrEmpty } from '../utils';\nexport function validateUniqueCharacter() {\n    return (control) => {\n        if (isNullOrEmpty(control.value))\n            return null;\n        return isUnqiueCharacter(control.value) ? null : { uniqueCharacter: true };\n    };\n}\nfunction isUnqiueCharacter(value) {\n    const set = new Set(value.split(''));\n    return set.size == value.length;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlLWNoYXJhY3Rlci52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy91bmlxdWUtY2hhcmFjdGVyLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBTXpDLE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxDQUFDLE9BQXdCLEVBQStCLEVBQUU7UUFDL0QsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTlDLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzdFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQWE7SUFDdEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQVMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBpc051bGxPckVtcHR5IH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVDaGFyYWN0ZXJFcnJvciB7XHJcbiAgdW5pcXVlQ2hhcmFjdGVyOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVVbmlxdWVDaGFyYWN0ZXIoKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVW5pcXVlQ2hhcmFjdGVyRXJyb3IgfCBudWxsID0+IHtcclxuICAgIGlmIChpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gaXNVbnFpdWVDaGFyYWN0ZXIoY29udHJvbC52YWx1ZSkgPyBudWxsIDogeyB1bmlxdWVDaGFyYWN0ZXI6IHRydWUgfTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1VucWl1ZUNoYXJhY3Rlcih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgY29uc3Qgc2V0ID0gbmV3IFNldDxzdHJpbmc+KHZhbHVlLnNwbGl0KCcnKSk7XHJcblxyXG4gIHJldHVybiBzZXQuc2l6ZSA9PSB2YWx1ZS5sZW5ndGg7XHJcbn1cclxuIl19","import { isNullOrEmpty } from '../utils';\nexport function validateUrl() {\n    return (control) => {\n        if (isNullOrEmpty(control.value))\n            return null;\n        return isValidUrl(control.value) ? null : { url: true };\n    };\n}\nfunction isValidUrl(value) {\n    if (/^http(s)?:\\/\\/[^/]/.test(value) || /^ftp:\\/\\/[^/]/.test(value)) {\n        const a = document.createElement('a');\n        a.href = value;\n        return !!a.host;\n    }\n    return false;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi92YWxpZGF0b3JzL3VybC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU16QyxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLENBQUMsT0FBd0IsRUFBbUIsRUFBRTtRQUNuRCxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFOUMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhO0lBQy9CLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwRSxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2YsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgaXNOdWxsT3JFbXB0eSB9IGZyb20gJy4uL3V0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXJsRXJyb3Ige1xyXG4gIHVybDogdHJ1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlVXJsKCk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFVybEVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoaXNOdWxsT3JFbXB0eShjb250cm9sLnZhbHVlKSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWRVcmwoY29udHJvbC52YWx1ZSkgPyBudWxsIDogeyB1cmw6IHRydWUgfTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1ZhbGlkVXJsKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICBpZiAoL15odHRwKHMpPzpcXC9cXC9bXi9dLy50ZXN0KHZhbHVlKSB8fCAvXmZ0cDpcXC9cXC9bXi9dLy50ZXN0KHZhbHVlKSkge1xyXG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGEuaHJlZiA9IHZhbHVlO1xyXG4gICAgcmV0dXJuICEhYS5ob3N0O1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59XHJcbiJdfQ==","import { isNullOrEmpty } from '../utils';\nconst onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;\nexport function validateUsername({ pattern = /.*/ } = { pattern: onlyLetterAndNumberRegex }) {\n    return (control) => {\n        const isValid = isValidUserName(control.value, pattern);\n        return isValid ? null : { usernamePattern: { actualValue: control.value } };\n    };\n}\nfunction isValidUserName(value, pattern) {\n    if (isNullOrEmpty(value))\n        return true;\n    return pattern.test(value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcm5hbWUudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvdXNlcm5hbWUudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFZekMsTUFBTSx3QkFBd0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEVBQUUsT0FBTyxHQUFHLElBQUksS0FBc0IsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7SUFFM0UsT0FBTyxDQUFDLE9BQXdCLEVBQStCLEVBQUU7UUFDL0QsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDOUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLEtBQVUsRUFBRSxPQUFlO0lBQ2xELElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXRDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgaXNOdWxsT3JFbXB0eSB9IGZyb20gJy4uL3V0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlcm5hbWVQYXR0ZXJuRXJyb3Ige1xyXG4gIHVzZXJuYW1lUGF0dGVybjoge1xyXG4gICAgYWN0dWFsVmFsdWU6IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJuYW1lT3B0aW9ucyB7XHJcbiAgcGF0dGVybj86IFJlZ0V4cDtcclxufVxyXG5cclxuY29uc3Qgb25seUxldHRlckFuZE51bWJlclJlZ2V4ID0gL15bYS16QS1aMC05XSskLztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVVzZXJuYW1lKFxyXG4gIHsgcGF0dGVybiA9IC8uKi8gfTogVXNlcm5hbWVPcHRpb25zID0geyBwYXR0ZXJuOiBvbmx5TGV0dGVyQW5kTnVtYmVyUmVnZXggfSxcclxuKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVXNlcm5hbWVQYXR0ZXJuRXJyb3IgfCBudWxsID0+IHtcclxuICAgIGNvbnN0IGlzVmFsaWQgPSBpc1ZhbGlkVXNlck5hbWUoY29udHJvbC52YWx1ZSwgcGF0dGVybik7XHJcbiAgICByZXR1cm4gaXNWYWxpZCA/IG51bGwgOiB7IHVzZXJuYW1lUGF0dGVybjogeyBhY3R1YWxWYWx1ZTogY29udHJvbC52YWx1ZSB9IH07XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNWYWxpZFVzZXJOYW1lKHZhbHVlOiBhbnksIHBhdHRlcm46IFJlZ0V4cCk6IGJvb2xlYW4ge1xyXG4gIGlmIChpc051bGxPckVtcHR5KHZhbHVlKSkgcmV0dXJuIHRydWU7XHJcblxyXG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodmFsdWUpO1xyXG59XHJcbiJdfQ==","import { Validators } from '@angular/forms';\nimport { validateMinAge } from './age.validator';\nimport { validateCreditCard } from './credit-card.validator';\nimport { validateRange } from './range.validator';\nimport { validateRequired } from './required.validator';\nimport { validateStringLength } from './string-length.validator';\nimport { validateUniqueCharacter } from './unique-character.validator';\nimport { validateUrl } from './url.validator';\nimport { validateUsername } from './username.validator';\nexport { validateUniqueCharacter } from './unique-character.validator';\nexport * from './age.validator';\nexport * from './credit-card.validator';\nexport * from './range.validator';\nexport * from './required.validator';\nexport * from './string-length.validator';\nexport * from './url.validator';\nexport * from './unique-character.validator';\nexport const AbpValidators = {\n    creditCard: validateCreditCard,\n    emailAddress: () => Validators.email,\n    minAge: validateMinAge,\n    range: validateRange,\n    required: validateRequired,\n    stringLength: validateStringLength,\n    url: validateUrl,\n    username: validateUsername,\n    uniqueCharacter: validateUniqueCharacter,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdkUsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsVUFBVSxFQUFFLGtCQUFrQjtJQUM5QixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUs7SUFDcEMsTUFBTSxFQUFFLGNBQWM7SUFDdEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixZQUFZLEVBQUUsb0JBQW9CO0lBQ2xDLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsZUFBZSxFQUFFLHVCQUF1QjtDQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdmFsaWRhdGVNaW5BZ2UgfSBmcm9tICcuL2FnZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyB2YWxpZGF0ZUNyZWRpdENhcmQgfSBmcm9tICcuL2NyZWRpdC1jYXJkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlUmFuZ2UgfSBmcm9tICcuL3JhbmdlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlUmVxdWlyZWQgfSBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nTGVuZ3RoIH0gZnJvbSAnLi9zdHJpbmctbGVuZ3RoLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlVW5pcXVlQ2hhcmFjdGVyIH0gZnJvbSAnLi91bmlxdWUtY2hhcmFjdGVyLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlVXJsIH0gZnJvbSAnLi91cmwudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgdmFsaWRhdGVVc2VybmFtZSB9IGZyb20gJy4vdXNlcm5hbWUudmFsaWRhdG9yJztcclxuZXhwb3J0IHsgdmFsaWRhdGVVbmlxdWVDaGFyYWN0ZXIgfSBmcm9tICcuL3VuaXF1ZS1jaGFyYWN0ZXIudmFsaWRhdG9yJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vYWdlLnZhbGlkYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3JlZGl0LWNhcmQudmFsaWRhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9yYW5nZS52YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5nLWxlbmd0aC52YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3VybC52YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3VuaXF1ZS1jaGFyYWN0ZXIudmFsaWRhdG9yJztcclxuZXhwb3J0IGNvbnN0IEFicFZhbGlkYXRvcnMgPSB7XHJcbiAgY3JlZGl0Q2FyZDogdmFsaWRhdGVDcmVkaXRDYXJkLFxyXG4gIGVtYWlsQWRkcmVzczogKCkgPT4gVmFsaWRhdG9ycy5lbWFpbCxcclxuICBtaW5BZ2U6IHZhbGlkYXRlTWluQWdlLFxyXG4gIHJhbmdlOiB2YWxpZGF0ZVJhbmdlLFxyXG4gIHJlcXVpcmVkOiB2YWxpZGF0ZVJlcXVpcmVkLFxyXG4gIHN0cmluZ0xlbmd0aDogdmFsaWRhdGVTdHJpbmdMZW5ndGgsXHJcbiAgdXJsOiB2YWxpZGF0ZVVybCxcclxuICB1c2VybmFtZTogdmFsaWRhdGVVc2VybmFtZSxcclxuICB1bmlxdWVDaGFyYWN0ZXI6IHZhbGlkYXRlVW5pcXVlQ2hhcmFjdGVyLFxyXG59O1xyXG4iXX0=","// export * from './lib/handlers';\nexport * from './lib/abstracts';\nexport * from './lib/components';\nexport * from './lib/constants';\nexport * from './lib/core.module';\nexport * from './lib/directives';\nexport * from './lib/enums';\nexport * from './lib/guards';\nexport * from './lib/localization.module';\nexport * from './lib/models';\nexport * from './lib/pipes';\nexport * from './lib/providers';\nexport * from './lib/proxy/pages/abp/multi-tenancy';\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/api-exploring';\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/application-configurations';\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending';\nexport * from './lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy';\nexport * from './lib/proxy/volo/abp/http/modeling';\nexport * from './lib/proxy/volo/abp/localization';\nexport * from './lib/proxy/volo/abp/models';\nexport * from './lib/services';\nexport * from './lib/strategies';\nexport * from './lib/tokens';\nexport * from './lib/utils';\nexport * from './lib/validators';\nexport * from './lib/interceptors';\nexport * from './lib/clients';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0NBQWtDO0FBQ2xDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHBvcnQgKiBmcm9tICcuL2xpYi9oYW5kbGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Fic3RyYWN0cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnVtcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2d1YXJkcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvY2FsaXphdGlvbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3ZpZGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3h5L3BhZ2VzL2FicC9tdWx0aS10ZW5hbmN5JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcGktZXhwbG9yaW5nJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvb2JqZWN0LWV4dGVuZGluZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvbXVsdGktdGVuYW5jeSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Byb3h5L3ZvbG8vYWJwL2h0dHAvbW9kZWxpbmcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm94eS92b2xvL2FicC9sb2NhbGl6YXRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm94eS92b2xvL2FicC9tb2RlbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0cmF0ZWdpZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmNlcHRvcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGllbnRzJztcclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9hYnAtbmcuY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":["i1.ConfigStateService","i2.AbpLocalStorageService","i1.RestService","i2.ExternalHttpClient","i3.EnvironmentService","i4.HttpErrorReporterService","i2.SessionStateService","i3.AbpTenantService","i4.ConfigStateService","i1.ResourceWaitService","i1","i1.RouterEvents","map","i1.AbpApplicationConfigurationService","i2.AbpApplicationLocalizationService","i1.SessionStateService","i2.ConfigStateService","i2.ReplaceableComponentsService","i3.SubscriptionService","i4","i1.SubscriptionService","i2.SubscriptionService","i1.PermissionService","i1.ReplaceableComponentsService","i1.RoutesService","i2","i1.HttpWaitService","i1.LocalizationService","filter","take","switchMap","distinctUntilChanged"],"mappings":"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"}