@acorex/platform 20.6.0-next.5 → 20.6.0-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-platform-auth.mjs +19 -19
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-CGVarshJ.mjs → acorex-platform-common-common-settings.provider-zhqNP3xb.mjs} +4 -4
- package/fesm2022/{acorex-platform-common-common-settings.provider-CGVarshJ.mjs.map → acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map} +1 -1
- package/fesm2022/acorex-platform-common.mjs +103 -103
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +54 -54
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +16 -16
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +17 -17
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +147 -147
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +72 -72
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-entity-create-entity.command-BsLbiAdA.mjs → acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-entity-create-entity.command-BsLbiAdA.mjs.map → acorex-platform-layout-entity-create-entity.command-DGeylNSY.mjs.map} +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +141 -141
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +16 -16
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +74 -73
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-lHfg4JFJ.mjs → acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-lHfg4JFJ.mjs.map → acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CMSnecnD.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-CMSnecnD.mjs.map → acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-DN-sIFYe.mjs → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-DN-sIFYe.mjs.map → acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-Bn9w0SEz.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-Bn9w0SEz.mjs.map → acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-view.component-B8mgcvoX.mjs → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-values-widget-view.component-B8mgcvoX.mjs.map → acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-edit.component-Bhof2SY8.mjs → acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-edit.component-Bhof2SY8.mjs.map → acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-view.component-CeQIvKVV.mjs → acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-extra-properties-widget-view.component-CeQIvKVV.mjs.map → acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-2q4whXBx.mjs → acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-2q4whXBx.mjs.map → acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-C57lyBs3.mjs → acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-C57lyBs3.mjs.map → acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DGDLHbaR.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs} +5 -5
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-C1l2KSDa.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-CvZTRhct.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-CvZTRhct.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-D-31ej0C.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-DHES_0ot.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs} +4 -4
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-DHES_0ot.mjs.map → acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map} +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +800 -548
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +40 -40
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-C_XmJV7Y.mjs → acorex-platform-themes-default-entity-master-create-view.component-g-EOvXP_.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-g-EOvXP_.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-Beba9db5.mjs → acorex-platform-themes-default-entity-master-list-view.component-CD3dS3z9.mjs} +10 -10
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-Beba9db5.mjs.map → acorex-platform-themes-default-entity-master-list-view.component-CD3dS3z9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DJPDil7w.mjs → acorex-platform-themes-default-entity-master-modify-view.component-Cwntcjyy.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Cwntcjyy.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BArdGNfr.mjs → acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs} +7 -7
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D7rEInHg.mjs → acorex-platform-themes-default-error-401.component-cfREo88K.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D7rEInHg.mjs.map → acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BTZlVrd8.mjs → acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BTZlVrd8.mjs.map → acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BhvEi6nX.mjs → acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BhvEi6nX.mjs.map → acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +39 -39
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BXV40gay.mjs → acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BXV40gay.mjs.map → acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BpIf4s53.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BpIf4s53.mjs.map → acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-C9gvfQfX.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-C9gvfQfX.mjs.map → acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +42 -42
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +37 -37
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/widget-core/index.d.ts +1 -0
- package/layout/widgets/index.d.ts +65 -3
- package/package.json +1 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DGDLHbaR.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-C_XmJV7Y.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DJPDil7w.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BArdGNfr.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-common.mjs","sources":["../tmp-esm2022/common/lib/app/app-version.provider.js","../tmp-esm2022/common/lib/app/application.types.js","../tmp-esm2022/common/lib/app/operators.js","../tmp-esm2022/common/lib/home-page/home-page.types.js","../tmp-esm2022/common/lib/settings/setting.builder.js","../tmp-esm2022/common/lib/settings/setting-definition.service.js","../tmp-esm2022/common/lib/settings/settings.provider.js","../tmp-esm2022/common/lib/settings/settings.service.js","../tmp-esm2022/common/lib/home-page/home-page-settings.key.js","../tmp-esm2022/common/lib/home-page/home-page.service.js","../tmp-esm2022/common/lib/home-page/home-page.routes.js","../tmp-esm2022/common/lib/home-page/home-page-settings.provider.js","../tmp-esm2022/common/lib/home-page/home-page.module.js","../tmp-esm2022/common/lib/data/data-provider.types.js","../tmp-esm2022/common/lib/data/operators.service.js","../tmp-esm2022/common/lib/data/filter-middleware.service.js","../tmp-esm2022/common/lib/errors/error-handler-registry.service.js","../tmp-esm2022/common/lib/errors/global-error-handler.js","../tmp-esm2022/common/lib/global-variables/global-variable-definition.provider.js","../tmp-esm2022/common/lib/global-variables/global-variable-definition.service.js","../tmp-esm2022/common/lib/global-variables/global-variable-evaluator-scope.provider.js","../tmp-esm2022/common/lib/layout/sticky.directive.js","../tmp-esm2022/common/lib/layout/logo/logo.component.js","../tmp-esm2022/common/lib/layout/menu/menu.context.js","../tmp-esm2022/common/lib/layout/menu/menu.middleware.js","../tmp-esm2022/common/lib/layout/menu/menu-middleware.registry.js","../tmp-esm2022/common/lib/layout/menu/menu.provider.js","../tmp-esm2022/common/lib/layout/menu/provide-menu-middleware.js","../tmp-esm2022/common/lib/layout/menu/menu.service.js","../tmp-esm2022/common/lib/layout/menu/search-definition.provider.js","../tmp-esm2022/common/lib/layout/menu/search.provider.js","../tmp-esm2022/common/lib/layout/theme/components/slots/footer-text-slot.component.js","../tmp-esm2022/common/lib/layout/theme/components/slots/navbar-slot.component.js","../tmp-esm2022/common/lib/search/search-definition.builder.js","../tmp-esm2022/common/lib/search/search-definition.provider.js","../tmp-esm2022/common/lib/search/search.provider.js","../tmp-esm2022/common/lib/search/search.service.js","../tmp-esm2022/common/lib/configs/common-settings.key.js","../tmp-esm2022/common/lib/workflows/common.workflow.js","../tmp-esm2022/common/lib/workflows/navigate.workflow.js","../tmp-esm2022/common/lib/workflows/error-handler.js","../tmp-esm2022/common/lib/common.module.js","../tmp-esm2022/common/lib/configs/app.config.js","../tmp-esm2022/common/lib/configs/config.types.js","../tmp-esm2022/common/lib/file-storage/file-storage.service.js","../tmp-esm2022/common/lib/file-storage/file-storage.types.js","../tmp-esm2022/common/lib/file-type/file-type.provider.js","../tmp-esm2022/common/lib/lock-system/lock.service.js","../tmp-esm2022/common/lib/utils/clipboard-service.js","../tmp-esm2022/common/lib/utils/export-popup.js","../tmp-esm2022/common/lib/utils/export.service.js","../tmp-esm2022/common/lib/utils/filter-cleaner.js","../tmp-esm2022/common/lib/versioning/types.js","../tmp-esm2022/common/acorex-platform-common.js"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_APP_VERSION_PROVIDER = new InjectionToken('AXP_APP_VERSION_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return new AXPAppVersionDefaultProvider();\n },\n});\nclass AXPAppVersionDefaultProvider {\n async provider() {\n return {\n version: '1.0.0',\n build: 1,\n date: new Date(),\n };\n }\n}\nexport class AXPAppVersionService {\n constructor() {\n this.provider = inject(AXP_APP_VERSION_PROVIDER);\n }\n async getAppVersion() {\n return this.provider.provider();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPAppVersionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPAppVersionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPAppVersionService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXZlcnNpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2FwcC9hcHAtdmVyc2lvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWW5FLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUF3QiwwQkFBMEIsRUFBRTtJQUM1RyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osT0FBTyxJQUFJLDRCQUE0QixFQUFFLENBQUM7SUFDNUMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sNEJBQTRCO0lBQ2hDLEtBQUssQ0FBQyxRQUFRO1FBQ1osT0FBTztZQUNMLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1NBQ2pCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSVUsYUFBUSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0tBS3JEO0lBSEMsS0FBSyxDQUFDLGFBQWE7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7K0dBTFUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBBcHBWZXJzaW9uIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBidWlsZDogbnVtYmVyO1xuICBkYXRlOiBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFwcFZlcnNpb25Qcm92aWRlciB7XG4gIHByb3ZpZGVyKCk6IFByb21pc2U8QVhQQXBwVmVyc2lvbj47XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfQVBQX1ZFUlNJT05fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQQXBwVmVyc2lvblByb3ZpZGVyPignQVhQX0FQUF9WRVJTSU9OX1BST1ZJREVSJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEFYUEFwcFZlcnNpb25EZWZhdWx0UHJvdmlkZXIoKTtcbiAgfSxcbn0pO1xuXG5jbGFzcyBBWFBBcHBWZXJzaW9uRGVmYXVsdFByb3ZpZGVyIGltcGxlbWVudHMgQVhQQXBwVmVyc2lvblByb3ZpZGVyIHtcbiAgYXN5bmMgcHJvdmlkZXIoKTogUHJvbWlzZTxBWFBBcHBWZXJzaW9uPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICBidWlsZDogMSxcbiAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgfTtcbiAgfVxufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBBcHBWZXJzaW9uU2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXIgPSBpbmplY3QoQVhQX0FQUF9WRVJTSU9OX1BST1ZJREVSKTtcblxuICBhc3luYyBnZXRBcHBWZXJzaW9uKCk6IFByb21pc2U8QVhQQXBwVmVyc2lvbj4ge1xuICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLnByb3ZpZGVyKCk7XG4gIH1cbn1cbiJdfQ==","import { kebabCase } from 'lodash-es';\nexport var AXPRelationshipKind;\n(function (AXPRelationshipKind) {\n AXPRelationshipKind[AXPRelationshipKind[\"Association\"] = 0] = \"Association\";\n AXPRelationshipKind[AXPRelationshipKind[\"Composition\"] = 1] = \"Composition\";\n AXPRelationshipKind[AXPRelationshipKind[\"Aggregation\"] = 2] = \"Aggregation\";\n})(AXPRelationshipKind || (AXPRelationshipKind = {}));\nexport var AXPRelationshipCardinality;\n(function (AXPRelationshipCardinality) {\n AXPRelationshipCardinality[AXPRelationshipCardinality[\"OneToOne\"] = 0] = \"OneToOne\";\n AXPRelationshipCardinality[AXPRelationshipCardinality[\"OneToMany\"] = 1] = \"OneToMany\";\n AXPRelationshipCardinality[AXPRelationshipCardinality[\"ManyToMany\"] = 2] = \"ManyToMany\";\n})(AXPRelationshipCardinality || (AXPRelationshipCardinality = {}));\nexport var AXPEntityCommandScope;\n(function (AXPEntityCommandScope) {\n AXPEntityCommandScope[\"TypeLevel\"] = \"typeLevel\";\n AXPEntityCommandScope[\"Selected\"] = \"selected\";\n AXPEntityCommandScope[\"Individual\"] = \"individual\";\n AXPEntityCommandScope[\"Section\"] = \"section\";\n})(AXPEntityCommandScope || (AXPEntityCommandScope = {}));\nexport var AXPEntityQueryType;\n(function (AXPEntityQueryType) {\n AXPEntityQueryType[\"Single\"] = \"single\";\n AXPEntityQueryType[\"List\"] = \"list\";\n})(AXPEntityQueryType || (AXPEntityQueryType = {}));\nexport function getEntityInfo(entity) {\n return {\n source: `${entity.module}.${entity.name}`,\n module: {\n route: kebabCase(entity.module),\n },\n entity: {\n route: kebabCase(entity.name),\n },\n };\n}\nexport function createQueryView(name, title, fixed, params = {\n columns: [],\n conditions: [],\n sorts: [],\n}) {\n params = Object.assign({ columns: [], sorts: [], conditions: [] }, params);\n return {\n name,\n title,\n fixed,\n columns: params.columns ?? [],\n conditions: params.conditions ?? [],\n sorts: params.sorts ?? [],\n };\n}\nexport function createAllQueryView(params = {\n columns: [],\n sorts: [],\n conditions: [],\n}) {\n params = Object.assign({ columns: [], sorts: [], conditions: [] }, params);\n return createQueryView('all', '@general:terms.interface.selection.all-items', true, {\n columns: params.columns ?? [],\n conditions: params.conditions ?? [],\n sorts: params.sorts ?? [],\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2FwcC9hcHBsaWNhdGlvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBY3RDLE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0IsMkVBQVcsQ0FBQTtJQUNYLDJFQUFXLENBQUE7SUFDWCwyRUFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUI7QUFFRCxNQUFNLENBQU4sSUFBWSwwQkFJWDtBQUpELFdBQVksMEJBQTBCO0lBQ3BDLG1GQUFRLENBQUE7SUFDUixxRkFBUyxDQUFBO0lBQ1QsdUZBQVUsQ0FBQTtBQUNaLENBQUMsRUFKVywwQkFBMEIsS0FBMUIsMEJBQTBCLFFBSXJDO0FBVUQsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUMvQixnREFBdUIsQ0FBQTtJQUN2Qiw4Q0FBcUIsQ0FBQTtJQUNyQixrREFBeUIsQ0FBQTtJQUN6Qiw0Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUtoQztBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDNUIsdUNBQWlCLENBQUE7SUFDakIsbUNBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBRzdCO0FBeU1ELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBaUI7SUFDN0MsT0FBTztRQUNMLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtRQUN6QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDaEM7UUFDRCxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDOUI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQzdCLElBQVksRUFDWixLQUFhLEVBQ2IsS0FBYyxFQUNkLFNBQTZFO0lBQzNFLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLEVBQUU7SUFDZCxLQUFLLEVBQUUsRUFBRTtDQUNWO0lBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLE9BQU87UUFDTCxJQUFJO1FBQ0osS0FBSztRQUNMLEtBQUs7UUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1FBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUU7UUFDbkMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtLQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsU0FBb0c7SUFDbEcsT0FBTyxFQUFFLEVBQUU7SUFDWCxLQUFLLEVBQUUsRUFBRTtJQUNULFVBQVUsRUFBRSxFQUFFO0NBQ2Y7SUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0UsT0FBTyxlQUFlLENBQUMsS0FBSyxFQUFFLDhDQUE4QyxFQUFFLElBQUksRUFBRTtRQUNsRixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1FBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUU7UUFDbkMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtLQUMxQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlT3BlcmF0b3IsIEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3B1cFNpemVUeXBlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYUEdyaWRMYXlvdXRPcHRpb25zLCBBWFBNZXRhRGF0YSwgQVhQT3B0aW9uc0RhdGEsIEFYUFZhbGlkYXRpb25SdWxlcywgQVhQVmFsdWVUcmFuc2Zvcm1lckZ1bmN0aW9ucyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRUeXBlc01hcCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IGtlYmFiQ2FzZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhFbnRpdHlQcm9wZXJ0eVdpZGdldCB7XG4gIHR5cGU6IEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXSB8IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGZvcm11bGE/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogQVhFbnRpdHlQcm9wZXJ0eVdpZGdldFtdO1xuICBtb2RlOiAndmlldycgfCAnZWRpdCc7XG4gIG9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICB0cmlnZ2Vycz86IHsgZXZlbnQ6IHN0cmluZzsgYWN0aW9uOiBzdHJpbmc7IGRpc2FibGVkPzogYm9vbGVhbiB9W107XG4gIHZhbHVlVHJhbnNmb3Jtcz86IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbnM7XG59XG5cbmV4cG9ydCBlbnVtIEFYUFJlbGF0aW9uc2hpcEtpbmQge1xuICBBc3NvY2lhdGlvbixcbiAgQ29tcG9zaXRpb24sXG4gIEFnZ3JlZ2F0aW9uLFxufVxuXG5leHBvcnQgZW51bSBBWFBSZWxhdGlvbnNoaXBDYXJkaW5hbGl0eSB7XG4gIE9uZVRvT25lLFxuICBPbmVUb01hbnksXG4gIE1hbnlUb01hbnksXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQUmVsYXRpb25zaGlwIHtcbiAgaWQ6IHN0cmluZztcbiAgZnJvbTogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xuICBraW5kOiBBWFBSZWxhdGlvbnNoaXBLaW5kO1xuICBjYXJkaW5hbGl0eTogQVhQUmVsYXRpb25zaGlwQ2FyZGluYWxpdHk7XG59XG5cbmV4cG9ydCBlbnVtIEFYUEVudGl0eUNvbW1hbmRTY29wZSB7XG4gIFR5cGVMZXZlbCA9ICd0eXBlTGV2ZWwnLFxuICBTZWxlY3RlZCA9ICdzZWxlY3RlZCcsXG4gIEluZGl2aWR1YWwgPSAnaW5kaXZpZHVhbCcsXG4gIFNlY3Rpb24gPSAnc2VjdGlvbicsXG59XG5cbmV4cG9ydCBlbnVtIEFYUEVudGl0eVF1ZXJ5VHlwZSB7XG4gIFNpbmdsZSA9ICdzaW5nbGUnLFxuICBMaXN0ID0gJ2xpc3QnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByb3BlcnR5TGF5b3V0Q29uZmlnIGV4dGVuZHMgQVhQR3JpZExheW91dE9wdGlvbnMge1xuICBsYWJlbD86IHtcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgfTtcbiAgb3JkZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5UHJvcGVydHlHcm91cCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByb3BlcnR5VmlldyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGF0YVBhdGg/OiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIGxheW91dD86IEFYUEVudGl0eVByb3BlcnR5TGF5b3V0Q29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByb3BlcnR5VXBkYXRlVmlldyBleHRlbmRzIEFYUEVudGl0eVByb3BlcnR5VmlldyB7IH1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlQcm9wZXJ0eUNyZWF0ZVZpZXcgZXh0ZW5kcyBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcge1xuICBkZWZhdWx0VmFsdWU/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5U2VjdGlvblZpZXcge1xuICBpZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgb3JkZXI/OiBudW1iZXI7XG4gIGNvbGxhcHNlZD86IGJvb2xlYW47XG4gIGxheW91dD86IEFYUEVudGl0eVByb3BlcnR5TGF5b3V0Q29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByb3BlcnR5IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZ3JvdXBJZD86IHN0cmluZztcbiAgc2NoZW1hOiB7XG4gICAgZGF0YVR5cGU6IHN0cmluZztcbiAgICBudWxsYWJsZT86IGJvb2xlYW47XG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xuICAgIGhpZGRlbj86IGJvb2xlYW4gfCBzdHJpbmc7XG4gICAgZGVmYXVsdFZhbHVlPzogYW55IHwgc3RyaW5nIHwgKChjb250ZXh0OiBhbnkgfCBudWxsKSA9PiBhbnkpO1xuICAgIHVuaXF1ZT86IHtcbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgfTtcbiAgICBpbnRlcmZhY2U/OiBQYXJ0aWFsPEFYRW50aXR5UHJvcGVydHlXaWRnZXQ+O1xuICB9O1xuICBvcHRpb25zPzoge1xuICAgIGZpbHRlcj86IHtcbiAgICAgIGFkdmFuY2U/OiB7XG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgICB3aWRnZXRUeXBlPzogQVhQV2lkZ2V0VHlwZXNNYXBba2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXBdO1xuICAgICAgfTtcbiAgICAgIGlubGluZT86IHtcbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW47XG4gICAgICB9O1xuICAgIH07XG4gICAgc29ydD86IHtcbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgIH07XG4gIH07XG4gIHZhbGlkYXRpb25zPzogQVhQVmFsaWRhdGlvblJ1bGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVRhYmxlQ29sdW1uIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgc2hvd0FzPzoge1xuICAgIHR5cGU6IEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXSB8IHN0cmluZztcbiAgICBvcHRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgfTtcbiAgc29ydD86IHtcbiAgICBlbmFibGVkPzogYm9vbGVhbjtcbiAgICBkaXI/OiAnYXNjJyB8ICdkZXNjJztcbiAgfTtcbiAgb3B0aW9ucz86IHtcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBkYXRhUGF0aD86IHN0cmluZztcbiAgICBbbmFtZTogc3RyaW5nXTogYW55O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eUNvbW1hbmQge1xuICBleGVjdXRlOiBzdHJpbmcgfCBGdW5jdGlvbjsgLy8gQXMgcnVubmFibGUgZXhwcmVzc2lvblxuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVF1ZXJ5IHtcbiAgZXhlY3V0ZTogc3RyaW5nIHwgRnVuY3Rpb247IC8vIEFzIHJ1bm5hYmxlIGV4cHJlc3Npb25cbiAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlO1xufVxuXG5pbXBvcnQgeyBBWFBTeXN0ZW1BY3Rpb25UeXBlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuZXhwb3J0IHR5cGUgQVhQQ29tbWFuZEFjdGlvblR5cGUgPSBBWFBTeXN0ZW1BY3Rpb25UeXBlO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbW1hbmRBY3Rpb25Mb29rIHtcbiAgY29sb3I6IEFYU3R5bGVDb2xvclR5cGU7XG4gIGljb246IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVhQQ29tbWFuZEFjdGlvblByaW9yaXR5ID0gJ3ByaW1hcnknIHwgJ3NlY29uZGFyeSc7XG5cbi8vVE9ETzogcmVtb3ZlIGV4dHJhIHByb3BzXG5leHBvcnQgdHlwZSBBWFBDb21tYW5kQWN0aW9uQ2FsbGJhY2sgPVxuICB8IHN0cmluZ1xuICB8IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGRlY29yYXRpb24/OiB7XG4gICAgICAgIGhlYWRlcj86IHtcbiAgICAgICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBwcm9jZXNzPzoge1xuICAgICAgICBkYXRhPzogYW55O1xuICAgICAgICBbbmFtZTogc3RyaW5nXTogYW55O1xuICAgICAgfTtcbiAgICAgIGxheW91dD86IHtcbiAgICAgICAgc2l6ZT86IEFYUG9wdXBTaXplVHlwZTtcbiAgICAgIH07XG4gICAgICBbbmFtZTogc3RyaW5nXTogYW55O1xuICAgIH07XG4gICAgbWV0YWRhdGE/OiBBWFBNZXRhRGF0YTtcbiAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb21tYW5kQWN0aW9uRGlzcGxheSBleHRlbmRzIFBhcnRpYWw8QVhQQ29tbWFuZEFjdGlvbkxvb2s+IHtcbiAgbmFtZT86IHN0cmluZztcbiAgY29tbWFuZDogQVhQQ29tbWFuZEFjdGlvbkNhbGxiYWNrO1xuICB0aXRsZTogc3RyaW5nO1xuICB0eXBlOiBBWFBTeXN0ZW1BY3Rpb25UeXBlIHwgc3RyaW5nO1xuICBwcmlvcml0eTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeSc7XG4gIHNlcGFyYXRlZD86IGJvb2xlYW47XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIGhpZGRlbj86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbiB8IHN0cmluZztcbiAgZGVmYXVsdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5QWN0aW9uIGV4dGVuZHMgQVhQQ29tbWFuZEFjdGlvbkRpc3BsYXkge1xuICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eSB7XG4gIHBsdWdpbnM/OiB7IG5hbWU6IHN0cmluZzsgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhIH1bXTtcbiAgbW9kdWxlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgcGFyZW50S2V5Pzogc3RyaW5nO1xuICBjYXRlZ29yeT86IEFYUENhdGVnb3J5RW50aXR5O1xuICB0aXRsZTogc3RyaW5nO1xuICBmb3JtYXRzOiB7XG4gICAgaW5kaXZpZHVhbDogc3RyaW5nO1xuICAgIHBsdXJhbDogc3RyaW5nO1xuICAgIGxvb2t1cD86IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgICBzZWFyY2hSZXN1bHQ/OiB7XG4gICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgcmVsYXRlZEVudGl0aWVzPzogQVhQUmVsYXRlZEVudGl0eVtdO1xuICBncm91cHM/OiBBWFBFbnRpdHlQcm9wZXJ0eUdyb3VwW107XG4gIHByb3BlcnRpZXM6IEFYUEVudGl0eVByb3BlcnR5W107XG4gIGNvbHVtbnM/OiBBWFBFbnRpdHlUYWJsZUNvbHVtbltdO1xuICBjb21tYW5kcz86IHtcbiAgICBjcmVhdGU/OiBBWFBFbnRpdHlDb21tYW5kIHwgdW5kZWZpbmVkO1xuICAgIHVwZGF0ZT86IEFYUEVudGl0eUNvbW1hbmQgfCB1bmRlZmluZWQ7XG4gICAgZGVsZXRlPzogQVhQRW50aXR5Q29tbWFuZCB8IHVuZGVmaW5lZDtcbiAgICBbbmFtZTogc3RyaW5nXTogQVhQRW50aXR5Q29tbWFuZCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcXVlcmllczoge1xuICAgIGJ5S2V5OiBBWFBFbnRpdHlRdWVyeTtcbiAgICBsaXN0PzogQVhQRW50aXR5UXVlcnk7XG4gICAgbG9va3VwPzogQVhQRW50aXR5UXVlcnk7XG4gICAgaGlzdG9yeT86IEFYUEVudGl0eVF1ZXJ5O1xuICAgIGNvbW1lbnRzPzogQVhQRW50aXR5UXVlcnk7XG4gICAgW25hbWU6IHN0cmluZ106IEFYUEVudGl0eVF1ZXJ5IHwgdW5kZWZpbmVkO1xuICB9O1xuICB2YWxpZGF0aW9ucz86IEFYUFZhbGlkYXRpb25SdWxlcztcbiAgaW50ZXJmYWNlcz86IHtcbiAgICBtYXN0ZXI/OiB7XG4gICAgICBzaW5nbGU/OiBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVMYXlvdXRWaWV3O1xuICAgICAgbGlzdD86IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3O1xuICAgICAgY3JlYXRlPzogQVhQRW50aXR5TWFzdGVyQ3JlYXRlTGF5b3V0VmlldztcbiAgICAgIHVwZGF0ZT86IEFYUEVudGl0eU1hc3RlclVwZGF0ZUxheW91dFZpZXc7XG4gICAgfTtcbiAgICBkZXRhaWw/OiB7XG4gICAgICBsaXN0PzogQVhQRW50aXR5RGV0YWlsTGlzdFZpZXc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eUluZm8oZW50aXR5OiBBWFBFbnRpdHkpIHtcbiAgcmV0dXJuIHtcbiAgICBzb3VyY2U6IGAke2VudGl0eS5tb2R1bGV9LiR7ZW50aXR5Lm5hbWV9YCxcbiAgICBtb2R1bGU6IHtcbiAgICAgIHJvdXRlOiBrZWJhYkNhc2UoZW50aXR5Lm1vZHVsZSksXG4gICAgfSxcbiAgICBlbnRpdHk6IHtcbiAgICAgIHJvdXRlOiBrZWJhYkNhc2UoZW50aXR5Lm5hbWUpLFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVRdWVyeVZpZXcoXG4gIG5hbWU6IHN0cmluZyxcbiAgdGl0bGU6IHN0cmluZyxcbiAgZml4ZWQ6IGJvb2xlYW4sXG4gIHBhcmFtczogeyBjb2x1bW5zPzogc3RyaW5nW107IGNvbmRpdGlvbnM/OiBhbnlbXTsgc29ydHM/OiBBWFBRdWVyeVNvcnRbXSB9ID0ge1xuICAgIGNvbHVtbnM6IFtdLFxuICAgIGNvbmRpdGlvbnM6IFtdLFxuICAgIHNvcnRzOiBbXSxcbiAgfSxcbik6IEFYUFF1ZXJ5VmlldyB7XG4gIHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oeyBjb2x1bW5zOiBbXSwgc29ydHM6IFtdLCBjb25kaXRpb25zOiBbXSB9LCBwYXJhbXMpO1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdGl0bGUsXG4gICAgZml4ZWQsXG4gICAgY29sdW1uczogcGFyYW1zLmNvbHVtbnMgPz8gW10sXG4gICAgY29uZGl0aW9uczogcGFyYW1zLmNvbmRpdGlvbnMgPz8gW10sXG4gICAgc29ydHM6IHBhcmFtcy5zb3J0cyA/PyBbXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFsbFF1ZXJ5VmlldyhcbiAgcGFyYW1zOiB7IGNvbHVtbnM/OiBzdHJpbmdbXTsgY29uZGl0aW9ucz86IEFYUFF1ZXJ5RmlsdGVyW107IHNvcnRzPzogQVhQUXVlcnlTb3J0W10gfSB8IHVuZGVmaW5lZCA9IHtcbiAgICBjb2x1bW5zOiBbXSxcbiAgICBzb3J0czogW10sXG4gICAgY29uZGl0aW9uczogW10sXG4gIH0sXG4pOiBBWFBRdWVyeVZpZXcge1xuICBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHsgY29sdW1uczogW10sIHNvcnRzOiBbXSwgY29uZGl0aW9uczogW10gfSwgcGFyYW1zKTtcbiAgcmV0dXJuIGNyZWF0ZVF1ZXJ5VmlldygnYWxsJywgJ0BnZW5lcmFsOnRlcm1zLmludGVyZmFjZS5zZWxlY3Rpb24uYWxsLWl0ZW1zJywgdHJ1ZSwge1xuICAgIGNvbHVtbnM6IHBhcmFtcy5jb2x1bW5zID8/IFtdLFxuICAgIGNvbmRpdGlvbnM6IHBhcmFtcy5jb25kaXRpb25zID8/IFtdLFxuICAgIHNvcnRzOiBwYXJhbXMuc29ydHMgPz8gW10sXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFJlbGF0ZWRFbnRpdHkge1xuICBlbnRpdHk6IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNvbHVtbnM/OiBzdHJpbmdbXTtcbiAgbGF5b3V0Pzoge1xuICAgIHR5cGU6ICd0YWItZGV0YWlsJyB8ICd0YWItbGlzdCcgfCAncGFnZS1kZXRhaWwnIHwgJ3BhZ2UtbGlzdCcgfCAnbWVyZ2UtZGV0YWlsJztcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBwb3NpdGlvbj86ICdiZWZvcmUnIHwgJ2FmdGVyJyB8ICdtaWRkbGUnO1xuICB9O1xuICBjb25kaXRpb25zPzogQVhQUXVlcnlGaWx0ZXJbXTtcbiAgaGlkZGVuPzogYm9vbGVhbiB8IHN0cmluZztcbiAgYWN0aW9ucz86IEFYUEVudGl0eUFjdGlvbltdO1xuICAvKipcbiAgICogUmVsYXRpb25zaGlwLWxldmVsIHBlcnNpc3RlbmNlIHN0cmF0ZWd5IGZvciBtZXJnZS1kZXRhaWwgZGF0YS5cbiAgICogRGVmYXVsdHM6XG4gICAqIC0gc3RyYXRlZ3k6ICdlbWJlZGRlZCdcbiAgICogLSBpZEZpZWxkOiBsYXN0IHNlZ21lbnQgb2YgZGF0YVBhdGggKyAnSWQnIChvciAncmVsYXRlZElkJyB3aGVuIGRhdGFQYXRoIGlzIG1pc3NpbmcpXG4gICAqIC0gbWFwOiB1bmRlZmluZWQgKHBhc3MtdGhyb3VnaClcbiAgICogLSBoeWRyYXRlOiAnZWFnZXInIChhcHBsaWVzIHRvIGdldE9uZSBvbmx5IGluIG1vY2spXG4gICAqIC0gY2FzY2FkZS5kZWxldGU6ICdub25lJ1xuICAgKi9cbiAgcGVyc2lzdGVuY2U/OiB7XG4gICAgc3RyYXRlZ3k/OiAnZW1iZWRkZWQnIHwgJ3JlZmVyZW5jZWQnO1xuICAgIGlkRmllbGQ/OiBzdHJpbmc7XG4gICAgZGF0YVBhdGg/OiBzdHJpbmc7XG4gICAgbWFwPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBoeWRyYXRlPzogJ2VhZ2VyJyB8ICdsYXp5JztcbiAgICBjYXNjYWRlPzogeyBkZWxldGU/OiAnbm9uZScgfCAnb3JwaGFucycgfCAnYWxsJyB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENhdGVnb3J5RW50aXR5IHtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0ZXh0RmllbGQ/OiBzdHJpbmc7XG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XG4gIGNvbmRpdGlvbnM/OiBBWFBRdWVyeUZpbHRlcltdO1xuICBhcHBseUNvbmRpdGlvbnM/OiBBWFBRdWVyeUZpbHRlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVZlcnNpb25IaXN0b3J5IHtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIHNob3dJbkxpc3Q/OiBib29sZWFuO1xuICBzaG93SW5EZXRhaWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFnZ3JlZ2F0ZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZW50aXRpZXM6IEFYUEVudGl0eVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUE1vZHVsZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgYWdncmVnYXRlczogQVhQQWdncmVnYXRlW107XG4gIHJlbGF0aW9uc2hpcHM/OiBBWFBSZWxhdGlvbnNoaXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBBcHBsaWNhdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgbW9kdWxlczogQVhQTW9kdWxlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5TWFzdGVyTGF5b3V0VmlldyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBzZWN0aW9uczogQVhQRW50aXR5U2VjdGlvblZpZXdbXTtcbiAgcHJvcGVydGllcz86IEFYUEVudGl0eVByb3BlcnR5Vmlld1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3RlckNyZWF0ZUxheW91dFZpZXcgZXh0ZW5kcyBBWFBFbnRpdHlNYXN0ZXJMYXlvdXRWaWV3IHtcbiAgc3RlcHM/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3RlclVwZGF0ZUxheW91dFZpZXcgZXh0ZW5kcyBBWFBFbnRpdHlNYXN0ZXJMYXlvdXRWaWV3IHsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3RlclNpbmdsZUxheW91dFZpZXcgZXh0ZW5kcyBBWFBFbnRpdHlNYXN0ZXJMYXlvdXRWaWV3IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGFjdGlvbnM/OiBBWFBFbnRpdHlBY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlNYXN0ZXJMaXN0VmlldyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYWN0aW9ucz86IEFYUEVudGl0eUFjdGlvbltdO1xuICB2aWV3czogQVhQUXVlcnlWaWV3W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXcge1xuICB0aXRsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvbHVtbnM6IEFYUEVudGl0eVRhYmxlQ29sdW1uW107XG4gIGFjdGlvbnM/OiBBWFBFbnRpdHlBY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBRdWVyeVZpZXcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZpeGVkOiBib29sZWFuO1xuICB0aXRsZTogc3RyaW5nO1xuICBjb2x1bW5zOiBzdHJpbmdbXTtcbiAgY29uZGl0aW9uczogQVhQUXVlcnlGaWx0ZXJbXTtcbiAgc29ydHM6IEFYUFF1ZXJ5U29ydFtdO1xuICBpbmRleENvbD86IGJvb2xlYW47XG4gIHBhZ2VTaXplPzogbnVtYmVyO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBRdWVyeUZpbHRlciB7XG4gIG5hbWU6IHN0cmluZzsgLy8gZW50aXR5IHByb3BlcnR5IG5hbWVcbiAgb3BlcmF0b3I6IEFYRGF0YVNvdXJjZU9wZXJhdG9yO1xuICB2YWx1ZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFF1ZXJ5U29ydCB7XG4gIG5hbWU6IHN0cmluZzsgLy8gZW50aXR5IHByb3BlcnR5IG5hbWVcbiAgZGlyOiAnYXNjJyB8ICdkZXNjJztcbn1cblxuXG4iXX0=","export const EQ_OPER = { name: 'equal', title: 'Equal', hasValue: true };\nexport const NOT_EQ_OPER = { name: 'notEqual', title: 'Not Equal', hasValue: true };\nexport const GT_OPER = { name: 'greaterThan', title: 'Greater Than', hasValue: true };\nexport const LT_OPER = { name: 'lessThan', title: 'Less Than', hasValue: true };\nexport const GTE_OPER = {\n name: 'greaterThanOrEqual',\n title: 'Greater Than or Equal',\n hasValue: true,\n};\nexport const LTE_OPER = { name: 'lessThanOrEqual', title: 'Less Than or Equal', hasValue: true };\nexport const CONTAINS_OPER = { name: 'contains', title: 'Contains', hasValue: true };\nexport const NOT_CONTAINS_OPER = { name: 'notContains', title: 'Does Not Contain', hasValue: true };\nexport const IN_OPER = { name: 'in', title: 'In', hasValue: true };\nexport const STARTS_WITH_OPER = { name: 'startsWith', title: 'Starts With', hasValue: true };\nexport const ENDS_WITH_OPER = { name: 'endsWith', title: 'Ends With', hasValue: true };\nexport const IS_EMPTY_OPER = { name: 'isEmpty', title: 'Is Empty', hasValue: false };\nexport const IS_NOT_EMPTY_OPER = { name: 'isNotEmpty', title: 'Is Not Empty', hasValue: false };\nexport const BETWEEN_OPER = { name: 'between', title: 'Between', hasValue: true };\nexport const STRING_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n CONTAINS_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n IN_OPER\n];\nexport const NUMBER_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n BETWEEN_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\nexport const BOOLEAN_OPERATORS = [EQ_OPER];\nexport const DATE_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\nexport const ALL_DEFAULT_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n LT_OPER,\n GTE_OPER,\n LTE_OPER,\n CONTAINS_OPER,\n IN_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n BETWEEN_OPER,\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9hcHAvb3BlcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBc0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBc0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3ZHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBc0IsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3pHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBc0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ25HLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBc0I7SUFDekMsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixLQUFLLEVBQUUsdUJBQXVCO0lBQzlCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBc0IsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNwSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQXNCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN4RyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBc0IsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDdkgsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFzQixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDdEYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXNCLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXNCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUMxRyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQXNCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUN4RyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBc0IsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ25ILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBc0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBRXJHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLE9BQU87SUFDUCxXQUFXO0lBQ1gsYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsT0FBTztDQUNSLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixPQUFPO0lBQ1AsV0FBVztJQUNYLFlBQVk7SUFDWixPQUFPO0lBQ1AsUUFBUTtJQUNSLE9BQU87SUFDUCxRQUFRO0lBQ1IsYUFBYTtJQUNiLGlCQUFpQjtDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsT0FBTztJQUNQLFdBQVc7SUFDWCxPQUFPO0lBQ1AsUUFBUTtJQUNSLE9BQU87SUFDUCxRQUFRO0lBQ1IsYUFBYTtJQUNiLGlCQUFpQjtDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsT0FBTztJQUNQLFdBQVc7SUFDWCxPQUFPO0lBQ1AsT0FBTztJQUNQLFFBQVE7SUFDUixRQUFRO0lBQ1IsYUFBYTtJQUNiLE9BQU87SUFDUCxpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLFlBQVk7Q0FDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWFBGaWx0ZXJPcGVyYXRvciB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgaGFzVmFsdWU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBFUV9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2VxdWFsJywgdGl0bGU6ICdFcXVhbCcsIGhhc1ZhbHVlOiB0cnVlIH07XG5leHBvcnQgY29uc3QgTk9UX0VRX09QRVI6IEFYUEZpbHRlck9wZXJhdG9yID0geyBuYW1lOiAnbm90RXF1YWwnLCB0aXRsZTogJ05vdCBFcXVhbCcsIGhhc1ZhbHVlOiB0cnVlIH07XG5leHBvcnQgY29uc3QgR1RfT1BFUjogQVhQRmlsdGVyT3BlcmF0b3IgPSB7IG5hbWU6ICdncmVhdGVyVGhhbicsIHRpdGxlOiAnR3JlYXRlciBUaGFuJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBMVF9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2xlc3NUaGFuJywgdGl0bGU6ICdMZXNzIFRoYW4nLCBoYXNWYWx1ZTogdHJ1ZSB9O1xuZXhwb3J0IGNvbnN0IEdURV9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHtcbiAgbmFtZTogJ2dyZWF0ZXJUaGFuT3JFcXVhbCcsXG4gIHRpdGxlOiAnR3JlYXRlciBUaGFuIG9yIEVxdWFsJyxcbiAgaGFzVmFsdWU6IHRydWUsXG59O1xuZXhwb3J0IGNvbnN0IExURV9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2xlc3NUaGFuT3JFcXVhbCcsIHRpdGxlOiAnTGVzcyBUaGFuIG9yIEVxdWFsJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBDT05UQUlOU19PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2NvbnRhaW5zJywgdGl0bGU6ICdDb250YWlucycsIGhhc1ZhbHVlOiB0cnVlIH07XG5leHBvcnQgY29uc3QgTk9UX0NPTlRBSU5TX09QRVI6IEFYUEZpbHRlck9wZXJhdG9yID0geyBuYW1lOiAnbm90Q29udGFpbnMnLCB0aXRsZTogJ0RvZXMgTm90IENvbnRhaW4nLCBoYXNWYWx1ZTogdHJ1ZSB9O1xuZXhwb3J0IGNvbnN0IElOX09QRVI6IEFYUEZpbHRlck9wZXJhdG9yID0geyBuYW1lOiAnaW4nLCB0aXRsZTogJ0luJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBTVEFSVFNfV0lUSF9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ3N0YXJ0c1dpdGgnLCB0aXRsZTogJ1N0YXJ0cyBXaXRoJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBFTkRTX1dJVEhfT1BFUjogQVhQRmlsdGVyT3BlcmF0b3IgPSB7IG5hbWU6ICdlbmRzV2l0aCcsIHRpdGxlOiAnRW5kcyBXaXRoJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBJU19FTVBUWV9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2lzRW1wdHknLCB0aXRsZTogJ0lzIEVtcHR5JywgaGFzVmFsdWU6IGZhbHNlIH07XG5leHBvcnQgY29uc3QgSVNfTk9UX0VNUFRZX09QRVI6IEFYUEZpbHRlck9wZXJhdG9yID0geyBuYW1lOiAnaXNOb3RFbXB0eScsIHRpdGxlOiAnSXMgTm90IEVtcHR5JywgaGFzVmFsdWU6IGZhbHNlIH07XG5leHBvcnQgY29uc3QgQkVUV0VFTl9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2JldHdlZW4nLCB0aXRsZTogJ0JldHdlZW4nLCBoYXNWYWx1ZTogdHJ1ZSB9O1xuXG5leHBvcnQgY29uc3QgU1RSSU5HX09QRVJBVE9SUyA9IFtcbiAgRVFfT1BFUixcbiAgTk9UX0VRX09QRVIsXG4gIENPTlRBSU5TX09QRVIsXG4gIE5PVF9DT05UQUlOU19PUEVSLFxuICBTVEFSVFNfV0lUSF9PUEVSLFxuICBFTkRTX1dJVEhfT1BFUixcbiAgSVNfRU1QVFlfT1BFUixcbiAgSVNfTk9UX0VNUFRZX09QRVIsXG4gIElOX09QRVJcbl07XG5cbmV4cG9ydCBjb25zdCBOVU1CRVJfT1BFUkFUT1JTID0gW1xuICBFUV9PUEVSLFxuICBOT1RfRVFfT1BFUixcbiAgQkVUV0VFTl9PUEVSLFxuICBHVF9PUEVSLFxuICBHVEVfT1BFUixcbiAgTFRfT1BFUixcbiAgTFRFX09QRVIsXG4gIElTX0VNUFRZX09QRVIsXG4gIElTX05PVF9FTVBUWV9PUEVSLFxuXTtcblxuZXhwb3J0IGNvbnN0IEJPT0xFQU5fT1BFUkFUT1JTID0gW0VRX09QRVJdO1xuXG5leHBvcnQgY29uc3QgREFURV9PUEVSQVRPUlMgPSBbXG4gIEVRX09QRVIsXG4gIE5PVF9FUV9PUEVSLFxuICBHVF9PUEVSLFxuICBHVEVfT1BFUixcbiAgTFRfT1BFUixcbiAgTFRFX09QRVIsXG4gIElTX0VNUFRZX09QRVIsXG4gIElTX05PVF9FTVBUWV9PUEVSLFxuXTtcblxuZXhwb3J0IGNvbnN0IEFMTF9ERUZBVUxUX09QRVJBVE9SUyA9IFtcbiAgRVFfT1BFUixcbiAgTk9UX0VRX09QRVIsXG4gIEdUX09QRVIsXG4gIExUX09QRVIsXG4gIEdURV9PUEVSLFxuICBMVEVfT1BFUixcbiAgQ09OVEFJTlNfT1BFUixcbiAgSU5fT1BFUixcbiAgTk9UX0NPTlRBSU5TX09QRVIsXG4gIFNUQVJUU19XSVRIX09QRVIsXG4gIEVORFNfV0lUSF9PUEVSLFxuICBJU19FTVBUWV9PUEVSLFxuICBJU19OT1RfRU1QVFlfT1BFUixcbiAgQkVUV0VFTl9PUEVSLFxuXTtcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const AXP_HOME_PAGES = new InjectionToken('AXP_HOME_PAGES');\nexport const AXP_HOME_PAGE_DEFAULT_KEY = new InjectionToken('AXP_HOME_PAGE_DEFAULT_KEY', {\n factory: () => 'home'\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9ob21lLXBhZ2UvaG9tZS1wYWdlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVL0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUEwQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFTLDJCQUEyQixFQUFFO0lBQzdGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNO0NBQ3hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQSG9tZVBhZ2VEZWZpbml0aW9uIHtcbiAgICBrZXk6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIHJvdXRlOiBSb3V0ZVxufVxuXG5cbmV4cG9ydCBjb25zdCBBWFBfSE9NRV9QQUdFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBIb21lUGFnZURlZmluaXRpb25bXT4oJ0FYUF9IT01FX1BBR0VTJyk7XG5leHBvcnQgY29uc3QgQVhQX0hPTUVfUEFHRV9ERUZBVUxUX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdBWFBfSE9NRV9QQUdFX0RFRkFVTFRfS0VZJywge1xuICAgIGZhY3Rvcnk6ICgpID0+ICdob21lJ1xufSk7XG5cbiJdfQ==","import { merge } from 'lodash-es';\nexport class AXPSettingDefinitionProviderContext {\n constructor() {\n this.rootGroups = [];\n this.groupMap = new Map();\n }\n addGroup(name, title, description, icon) {\n const newGroup = {\n name,\n title,\n description,\n icon,\n groups: [],\n sections: [],\n };\n this.rootGroups.push(newGroup);\n this.groupMap.set(name, newGroup); // Index by name\n return new AXPSettingDefinitionGroupBuilder(this, newGroup);\n }\n group(name) {\n const foundGroup = this.groupMap.get(name);\n if (!foundGroup) {\n console.error(`Group with name \"${name}\" not found.`);\n return null;\n }\n return new AXPSettingDefinitionGroupBuilder(this, foundGroup);\n }\n getGroups() {\n return this.rootGroups;\n }\n // Expose groupMap for controlled access\n hasGroup(name) {\n return this.groupMap.has(name);\n }\n getGroup(name) {\n return this.groupMap.get(name);\n }\n}\nexport class AXPSettingDefinitionGroupBuilder {\n constructor(context, group) {\n this.context = context;\n this.group = group;\n }\n addSection(name, title, description) {\n const newSection = {\n name,\n title,\n description: description,\n settings: [],\n };\n this.group.sections.push(newSection);\n return new AXPSettingDefinitionSectionBuilder(this, newSection);\n }\n section(name) {\n const foundSection = this.group.sections.find((section) => section.name === name);\n if (!foundSection) {\n throw new Error(`Section with name \"${name}\" not found in group \"${this.group.name}\".`);\n }\n return new AXPSettingDefinitionSectionBuilder(this, foundSection);\n }\n addGroup(name, title, description, icon) {\n const newGroup = {\n name,\n title,\n description: description,\n icon,\n groups: [],\n sections: [],\n };\n this.group.groups.push(newGroup);\n if (this.context.hasGroup(name)) {\n throw new Error(`Group with name \"${name}\" already exists.`);\n }\n this.context['groupMap'].set(name, newGroup);\n return new AXPSettingDefinitionGroupBuilder(this.context, newGroup);\n }\n endGroup() {\n return this.context;\n }\n}\nexport class AXPSettingDefinitionSectionBuilder {\n constructor(groupBuilder, section) {\n this.groupBuilder = groupBuilder;\n this.section = section;\n }\n addSetting(setting) {\n const newSetting = {\n name: setting.key,\n title: setting.title,\n description: setting.description,\n isRequired: setting.isRequired ?? false,\n isInherited: setting.isInherited ?? false,\n isEncrypted: setting.isEncrypted ?? false,\n defaultValue: setting.defaultValue,\n scope: setting.scope ?? 'G',\n layout: setting.widget.layout,\n widget: {\n type: setting.widget.type,\n name: setting.key,\n path: setting.key,\n defaultValue: setting.defaultValue,\n options: merge(setting.widget.options ?? {}, {\n label: Object.keys(setting.widget.options ?? {}).includes('label') ? setting.widget.options?.['label'] : setting.title,\n validationRules: setting.validationRules ?? [],\n }),\n valueTransforms: setting.valueTransforms,\n triggers: setting.widget.triggers,\n },\n };\n this.section.settings.push(newSetting);\n return this;\n }\n endSection() {\n return this.groupBuilder;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9zZXR0aW5ncy9zZXR0aW5nLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlsQyxNQUFNLE9BQU8sbUNBQW1DO0lBQWhEO1FBQ1UsZUFBVSxHQUFnQyxFQUFFLENBQUM7UUFDN0MsYUFBUSxHQUEyQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBc0N2RSxDQUFDO0lBcENDLFFBQVEsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLFdBQW9CLEVBQUUsSUFBYTtRQUN2RSxNQUFNLFFBQVEsR0FBOEI7WUFDMUMsSUFBSTtZQUNKLEtBQUs7WUFDTCxXQUFXO1lBQ1gsSUFBSTtZQUNKLE1BQU0sRUFBRSxFQUFFO1lBQ1YsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCO1FBQ25ELE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixJQUFJLGNBQWMsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJ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SSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQT3B0aW9uc0RhdGEsIEFYUFZhbGlkYXRpb25SdWxlcywgQVhQVmFsdWVUcmFuc2Zvcm1lckZ1bmN0aW9ucywgQVhQV2lkZ2V0VHJpZ2dlcnMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0VHlwZXNNYXAgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nRGVmaW5pdGlvbiwgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCwgQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uIH0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBBWFBQbGF0Zm9ybVNjb3BlS2V5LCBBWFBHcmlkTGF5b3V0T3B0aW9ucyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB7XG4gIHByaXZhdGUgcm9vdEdyb3VwczogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cFtdID0gW107XG4gIHByaXZhdGUgZ3JvdXBNYXA6IE1hcDxzdHJpbmcsIEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXA+ID0gbmV3IE1hcCgpO1xuXG4gIGFkZEdyb3VwKG5hbWU6IHN0cmluZywgdGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIGljb24/OiBzdHJpbmcpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlciB7XG4gICAgY29uc3QgbmV3R3JvdXA6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXAgPSB7XG4gICAgICBuYW1lLFxuICAgICAgdGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGljb24sXG4gICAgICBncm91cHM6IFtdLFxuICAgICAgc2VjdGlvbnM6IFtdLFxuICAgIH07XG5cbiAgICB0aGlzLnJvb3RHcm91cHMucHVzaChuZXdHcm91cCk7XG4gICAgdGhpcy5ncm91cE1hcC5zZXQobmFtZSwgbmV3R3JvdXApOyAvLyBJbmRleCBieSBuYW1lXG4gICAgcmV0dXJuIG5ldyBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlcih0aGlzLCBuZXdHcm91cCk7XG4gIH1cblxuICBncm91cChuYW1lOiBzdHJpbmcpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlciB8IG51bGwge1xuICAgIGNvbnN0IGZvdW5kR3JvdXAgPSB0aGlzLmdyb3VwTWFwLmdldChuYW1lKTtcbiAgICBpZiAoIWZvdW5kR3JvdXApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEdyb3VwIHdpdGggbmFtZSBcIiR7bmFtZX1cIiBub3QgZm91bmQuYCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlcih0aGlzLCBmb3VuZEdyb3VwKTtcbiAgfVxuXG4gIGdldEdyb3VwcygpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10ge1xuICAgIHJldHVybiB0aGlzLnJvb3RHcm91cHM7XG4gIH1cblxuICAvLyBFeHBvc2UgZ3JvdXBNYXAgZm9yIGNvbnRyb2xsZWQgYWNjZXNzXG4gIGhhc0dyb3VwKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwTWFwLmhhcyhuYW1lKTtcbiAgfVxuXG4gIGdldEdyb3VwKG5hbWU6IHN0cmluZyk6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdyb3VwTWFwLmdldChuYW1lKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cEJ1aWxkZXIge1xuICBwcml2YXRlIGNvbnRleHQ6IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0O1xuICBwcml2YXRlIGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKGNvbnRleHQ6IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0LCBncm91cDogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCkge1xuICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuICB9XG5cbiAgYWRkU2VjdGlvbihuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgbmV3U2VjdGlvbjogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uID0ge1xuICAgICAgbmFtZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICAgICAgc2V0dGluZ3M6IFtdLFxuICAgIH07XG4gICAgdGhpcy5ncm91cC5zZWN0aW9ucy5wdXNoKG5ld1NlY3Rpb24pO1xuICAgIHJldHVybiBuZXcgQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uQnVpbGRlcih0aGlzLCBuZXdTZWN0aW9uKTtcbiAgfVxuXG4gIHNlY3Rpb24obmFtZTogc3RyaW5nKTogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uQnVpbGRlciB8IG51bGwge1xuICAgIGNvbnN0IGZvdW5kU2VjdGlvbiA9IHRoaXMuZ3JvdXAuc2VjdGlvbnMuZmluZCgoc2VjdGlvbikgPT4gc2VjdGlvbi5uYW1lID09PSBuYW1lKTtcbiAgICBpZiAoIWZvdW5kU2VjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZWN0aW9uIHdpdGggbmFtZSBcIiR7bmFtZX1cIiBub3QgZm91bmQgaW4gZ3JvdXAgXCIke3RoaXMuZ3JvdXAubmFtZX1cIi5gKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBWFBTZXR0aW5nRGVmaW5pdGlvblNlY3Rpb25CdWlsZGVyKHRoaXMsIGZvdW5kU2VjdGlvbik7XG4gIH1cblxuICBhZGRHcm91cChuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nLCBpY29uPzogc3RyaW5nKTogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cEJ1aWxkZXIge1xuICAgIGNvbnN0IG5ld0dyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwID0ge1xuICAgICAgbmFtZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICAgICAgaWNvbixcbiAgICAgIGdyb3VwczogW10sXG4gICAgICBzZWN0aW9uczogW10sXG4gICAgfTtcbiAgICB0aGlzLmdyb3VwLmdyb3Vwcy5wdXNoKG5ld0dyb3VwKTtcbiAgICBpZiAodGhpcy5jb250ZXh0Lmhhc0dyb3VwKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyb3VwIHdpdGggbmFtZSBcIiR7bmFtZX1cIiBhbHJlYWR5IGV4aXN0cy5gKTtcbiAgICB9XG4gICAgdGhpcy5jb250ZXh0Wydncm91cE1hcCddLnNldChuYW1lLCBuZXdHcm91cCk7XG4gICAgcmV0dXJuIG5ldyBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlcih0aGlzLmNvbnRleHQsIG5ld0dyb3VwKTtcbiAgfVxuXG4gIGVuZEdyb3VwKCk6IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBTZXR0aW5nRGVmaW5pdGlvblNlY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBncm91cEJ1aWxkZXI6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBCdWlsZGVyO1xuICBwcml2YXRlIHNlY3Rpb246IEFYUFNldHRpbmdEZWZpbml0aW9uU2VjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihncm91cEJ1aWxkZXI6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBCdWlsZGVyLCBzZWN0aW9uOiBBWFBTZXR0aW5nRGVmaW5pdGlvblNlY3Rpb24pIHtcbiAgICB0aGlzLmdyb3VwQnVpbGRlciA9IGdyb3VwQnVpbGRlcjtcbiAgICB0aGlzLnNlY3Rpb24gPSBzZWN0aW9uO1xuICB9XG5cbiAgYWRkU2V0dGluZyhzZXR0aW5nOiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBzY29wZTogQVhQUGxhdGZvcm1TY29wZUtleTtcbiAgICB3aWRnZXQ6IHtcbiAgICAgIHR5cGU6IEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXSB8IHN0cmluZztcbiAgICAgIG9wdGlvbnM/OiBBWFBPcHRpb25zRGF0YTtcbiAgICAgIHRyaWdnZXJzPzogQVhQV2lkZ2V0VHJpZ2dlcnM7XG4gICAgICBsYXlvdXQ/OiBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgICB9O1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGlzUmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIGlzSW5oZXJpdGVkPzogYm9vbGVhbjtcbiAgICBpc0VuY3J5cHRlZD86IGJvb2xlYW47XG4gICAgZGVmYXVsdFZhbHVlPzogdW5rbm93bjtcbiAgICB2YWx1ZVRyYW5zZm9ybXM/OiBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb25zO1xuICAgIHZhbGlkYXRpb25SdWxlcz86IEFYUFZhbGlkYXRpb25SdWxlcztcbiAgfSk6IHRoaXMge1xuICAgIGNvbnN0IG5ld1NldHRpbmc6IEFYUFNldHRpbmdEZWZpbml0aW9uID0ge1xuICAgICAgbmFtZTogc2V0dGluZy5rZXksXG4gICAgICB0aXRsZTogc2V0dGluZy50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBzZXR0aW5nLmRlc2NyaXB0aW9uLFxuICAgICAgaXNSZXF1aXJlZDogc2V0dGluZy5pc1JlcXVpcmVkID8/IGZhbHNlLFxuICAgICAgaXNJbmhlcml0ZWQ6IHNldHRpbmcuaXNJbmhlcml0ZWQgPz8gZmFsc2UsXG4gICAgICBpc0VuY3J5cHRlZDogc2V0dGluZy5pc0VuY3J5cHRlZCA/PyBmYWxzZSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogc2V0dGluZy5kZWZhdWx0VmFsdWUsXG4gICAgICBzY29wZTogc2V0dGluZy5zY29wZSA/PyAnRycsXG4gICAgICBsYXlvdXQ6IHNldHRpbmcud2lkZ2V0LmxheW91dCxcbiAgICAgIHdpZGdldDoge1xuICAgICAgICB0eXBlOiBzZXR0aW5nLndpZGdldC50eXBlLFxuICAgICAgICBuYW1lOiBzZXR0aW5nLmtleSxcbiAgICAgICAgcGF0aDogc2V0dGluZy5rZXksXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogc2V0dGluZy5kZWZhdWx0VmFsdWUsXG4gICAgICAgIG9wdGlvbnM6IG1lcmdlKHNldHRpbmcud2lkZ2V0Lm9wdGlvbnMgPz8ge30sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IE9iamVjdC5rZXlzKHNldHRpbmcud2lkZ2V0Lm9wdGlvbnMgPz8ge30pLmluY2x1ZGVzKCdsYWJlbCcpID8gc2V0dGluZy53aWRnZXQub3B0aW9ucz8uWydsYWJlbCddIDogc2V0dGluZy50aXRsZSxcbiAgICAgICAgICAgIHZhbGlkYXRpb25SdWxlczogc2V0dGluZy52YWxpZGF0aW9uUnVsZXMgPz8gW10sXG4gICAgICAgICAgfSksXG4gICAgICAgIHZhbHVlVHJhbnNmb3Jtczogc2V0dGluZy52YWx1ZVRyYW5zZm9ybXMsXG4gICAgICAgIHRyaWdnZXJzOiBzZXR0aW5nLndpZGdldC50cmlnZ2VycyxcbiAgICAgIH0sXG4gICAgfSBhcyBBWFBTZXR0aW5nRGVmaW5pdGlvbjtcbiAgICB0aGlzLnNlY3Rpb24uc2V0dGluZ3MucHVzaChuZXdTZXR0aW5nKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVuZFNlY3Rpb24oKTogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cEJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmdyb3VwQnVpbGRlcjtcbiAgfVxufVxuIl19","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport { AXPSettingDefinitionProviderContext } from './setting.builder';\nimport { sortBy } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\n// Injection token for setting providers\nexport const AXP_SETTING_DEFINITION_PROVIDER = new InjectionToken('AXP_SETTING_DEFINITION_PROVIDER');\nexport class AXPSettingDefinitionProviderService {\n constructor() {\n this.providers = inject(AXP_SETTING_DEFINITION_PROVIDER, { optional: true });\n this.cache = null;\n }\n async load() {\n if (this.cache) {\n return;\n }\n const context = new AXPSettingDefinitionProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n if (provider instanceof Promise) {\n // If provider is a promise, resolve it\n const resolvedProvider = await provider;\n await resolvedProvider.provide(context);\n }\n else {\n // If provider is a direct instance, use it directly\n await provider.provide(context);\n }\n }\n }\n this.cache = context.getGroups();\n }\n async reload() {\n this.cache = null;\n await this.load();\n }\n async getListAsync(scope) {\n await this.load();\n return this.getList(scope);\n }\n getList(scope) {\n if (!this.cache) {\n return [];\n }\n const scopeOrder = ['C', 'G', 'T', 'U']; // Scopes hierarchy in ascending order\n const filterByScope = (groups, currentScope) => {\n const currentScopeIndex = scopeOrder.indexOf(currentScope);\n return groups\n .map((group) => ({\n ...group,\n sections: group.sections.map((section) => ({\n ...section,\n settings: section.settings.filter((setting) => {\n const settingScopeIndex = scopeOrder.indexOf(setting.scope);\n // Include settings where:\n // 1. The scope matches the requested scope.\n if (setting.scope === currentScope)\n return true;\n // 2. The setting scope is higher (closer to 'U') and is inherited.\n if (setting.isInherited &&\n settingScopeIndex > currentScopeIndex // Higher scope\n ) {\n return true;\n }\n // 3. Exclude settings with a lower or irrelevant scope.\n return false;\n }),\n })).filter((section) => section.settings.length > 0), // Keep only sections with settings\n groups: filterByScope(group.groups, currentScope), // Recursively filter nested groups\n }))\n .filter((group) => group.sections.length > 0 || group.groups.length > 0); // Keep groups with valid sections or nested groups\n };\n return sortBy(filterByScope(this.cache, scope), 'title');\n }\n async defaultValues() {\n const defaults = {};\n const collectDefaults = (groups) => {\n groups.forEach((group) => {\n group.sections.forEach((section) => {\n section.settings.forEach((setting) => {\n if (setting.defaultValue !== undefined) {\n defaults[setting.name] = setting.defaultValue;\n }\n });\n });\n collectDefaults(group.groups);\n });\n };\n if (!this.cache) {\n await this.load();\n }\n collectDefaults(this.cache);\n return defaults;\n }\n findGroup(scope, groupName) {\n return this.searchRecursive(this.getList(scope), groupName, []); // Initialize with an empty breadcrumb\n }\n searchRecursive(groups, groupName, breadcrumb) {\n for (const group of groups) {\n const currentBreadcrumb = [...breadcrumb, { name: group.name, title: group.title, description: group.description }];\n // If the group name matches, return its details\n if (group.name === groupName) {\n return {\n breadcrumb: currentBreadcrumb,\n sections: group.sections.length > 0 ? group.sections : null,\n groups: group.groups.length > 0 ? group.groups : null,\n };\n }\n // Recursively search in nested groups\n const nestedResult = this.searchRecursive(group.groups, groupName, currentBreadcrumb);\n if (nestedResult.breadcrumb.length > 0) {\n return nestedResult;\n }\n }\n // If no matching group is found\n return {\n breadcrumb: [],\n groups: [],\n sections: []\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSettingDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSettingDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSettingDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n// Multi-provider token for higher-layer default values\nexport const AXP_SETTING_DEFAULT_VALUES_PROVIDERS = new InjectionToken('AXP_SETTING_DEFAULT_VALUES_PROVIDERS', {\n providedIn: 'root',\n factory: () => [],\n});\n// Aggregator service that merges definition defaults with higher-layer providers (by priority)\nexport class AXPSettingDefaultValuesAggregatorService {\n constructor() {\n this.definitionService = inject(AXPSettingDefinitionProviderService);\n this.providers = inject(AXP_SETTING_DEFAULT_VALUES_PROVIDERS, { optional: true }) ?? [];\n }\n async getDefaults() {\n const baseDefaults = await this.definitionService.defaultValues();\n const ordered = [...this.providers].sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n const merged = { ...baseDefaults };\n for (const provider of ordered) {\n try {\n const overrideMap = await provider.provide();\n Object.assign(merged, overrideMap);\n }\n catch (err) {\n console.error('AXPSettingDefaultValuesProvider failed:', err);\n }\n }\n return merged;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3NldHRpbmdzL3NldHRpbmctZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU1uRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU1uQyx3Q0FBd0M7QUFDeEMsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxjQUFjLENBQWlDLGlDQUFpQyxDQUFDLENBQUM7QUFHckksTUFBTSxPQUFPLG1DQUFtQztJQURoRDtRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsK0JBQStCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSxVQUFLLEdBQXVDLElBQUksQ0FBQztLQTJJMUQ7SUF6SVMsS0FBSyxDQUFDLElBQUk7UUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixPQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksbUNBQW1DLEVBQUUsQ0FBQztRQUMxRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEMsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksUUFBUSxZQUFZLE9BQU8sRUFBRSxDQUFDO29CQUNoQyx1Q0FBdUM7b0JBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxRQUFRLENBQUM7b0JBQ3hDLE1BQU0sZ0JBQWdCLENBQUMs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QUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWFBHcm91cFNlYXJjaFJlc3VsdCxcbiAgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCxcbiAgQVhQU2V0dGluZ0RlZmF1bHRWYWx1ZXNQcm92aWRlcixcbn0gZnJvbSAnLi9zZXR0aW5ncy50eXBlcyc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB9IGZyb20gJy4vc2V0dGluZy5idWlsZGVyJztcbmltcG9ydCB7IEFYUFBsYXRmb3JtU2NvcGUsIEFYUFBsYXRmb3JtU2NvcGVLZXkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbi8vIEludGVyZmFjZSBmb3Igc2V0dGluZyBwcm92aWRlcnNcbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlciB7XG4gIHByb3ZpZGUoY29udGV4dDogQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vLyBJbmplY3Rpb24gdG9rZW4gZm9yIHNldHRpbmcgcHJvdmlkZXJzXG5leHBvcnQgY29uc3QgQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyW10+KCdBWFBfU0VUVElOR19ERUZJTklUSU9OX1BST1ZJREVSJyk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlclNlcnZpY2Uge1xuICBwcml2YXRlIHByb3ZpZGVycyA9IGluamVjdChBWFBfU0VUVElOR19ERUZJTklUSU9OX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGNhY2hlOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0KCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgIGlmIChwcm92aWRlciBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAvLyBJZiBwcm92aWRlciBpcyBhIHByb21pc2UsIHJlc29sdmUgaXRcbiAgICAgICAgICBjb25zdCByZXNvbHZlZFByb3ZpZGVyID0gYXdhaXQgcHJvdmlkZXI7XG4gICAgICAgICAgYXdhaXQgcmVzb2x2ZWRQcm92aWRlci5wcm92aWRlKGNvbnRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIHByb3ZpZGVyIGlzIGEgZGlyZWN0IGluc3RhbmNlLCB1c2UgaXQgZGlyZWN0bHlcbiAgICAgICAgICBhd2FpdCBwcm92aWRlci5wcm92aWRlKGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2FjaGUgPSBjb250ZXh0LmdldEdyb3VwcygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNhY2hlID0gbnVsbDtcbiAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMaXN0QXN5bmMoc2NvcGU6IEFYUFBsYXRmb3JtU2NvcGVLZXkpOiBQcm9taXNlPEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXT4ge1xuICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIHJldHVybiB0aGlzLmdldExpc3Qoc2NvcGUpO1xuICB9XG5cbiAgcHVibGljIGdldExpc3Qoc2NvcGU6IEFYUFBsYXRmb3JtU2NvcGVLZXkpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlT3JkZXIgPSBbJ0MnLCAnRycsICdUJywgJ1UnXTsgLy8gU2NvcGVzIGhpZXJhcmNoeSBpbiBhc2NlbmRpbmcgb3JkZXJcblxuICAgIGNvbnN0IGZpbHRlckJ5U2NvcGUgPSAoXG4gICAgICBncm91cHM6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSxcbiAgICAgIGN1cnJlbnRTY29wZTogQVhQUGxhdGZvcm1TY29wZUtleVxuICAgICk6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50U2NvcGVJbmRleCA9IHNjb3BlT3JkZXIuaW5kZXhPZihjdXJyZW50U2NvcGUpO1xuXG4gICAgICByZXR1cm4gZ3JvdXBzXG4gICAgICAgIC5tYXAoKGdyb3VwKSA9PiAoe1xuICAgICAgICAgIC4uLmdyb3VwLFxuICAgICAgICAgIHNlY3Rpb25zOiBncm91cC5zZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+ICh7XG4gICAgICAgICAgICAuLi5zZWN0aW9uLFxuICAgICAgICAgICAgc2V0dGluZ3M6IHNlY3Rpb24uc2V0dGluZ3MuZmlsdGVyKChzZXR0aW5nKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNldHRpbmdTY29wZUluZGV4ID0gc2NvcGVPcmRlci5pbmRleE9mKHNldHRpbmcuc2NvcGUpO1xuXG4gICAgICAgICAgICAgIC8vIEluY2x1ZGUgc2V0dGluZ3Mgd2hlcmU6XG4gICAgICAgICAgICAgIC8vIDEuIFRoZSBzY29wZSBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgc2NvcGUuXG4gICAgICAgICAgICAgIGlmIChzZXR0aW5nLnNjb3BlID09PSBjdXJyZW50U2NvcGUpIHJldHVybiB0cnVlO1xuXG4gICAgICAgICAgICAgIC8vIDIuIFRoZSBzZXR0aW5nIHNjb3BlIGlzIGhpZ2hlciAoY2xvc2VyIHRvICdVJykgYW5kIGlzIGluaGVyaXRlZC5cbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHNldHRpbmcuaXNJbmhlcml0ZWQgJiZcbiAgICAgICAgICAgICAgICBzZXR0aW5nU2NvcGVJbmRleCA+IGN1cnJlbnRTY29wZUluZGV4IC8vIEhpZ2hlciBzY29wZVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIDMuIEV4Y2x1ZGUgc2V0dGluZ3Mgd2l0aCBhIGxvd2VyIG9yIGlycmVsZXZhbnQgc2NvcGUuXG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0pKS5maWx0ZXIoKHNlY3Rpb24pID0+IHNlY3Rpb24uc2V0dGluZ3MubGVuZ3RoID4gMCksIC8vIEtlZXAgb25seSBzZWN0aW9ucyB3aXRoIHNldHRpbmdzXG4gICAgICAgICAgZ3JvdXBzOiBmaWx0ZXJCeVNjb3BlKGdyb3VwLmdyb3VwcywgY3VycmVudFNjb3BlKSwgLy8gUmVjdXJzaXZlbHkgZmlsdGVyIG5lc3RlZCBncm91cHNcbiAgICAgICAgfSkpXG4gICAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiBncm91cC5zZWN0aW9ucy5sZW5ndGggPiAwIHx8IGdyb3VwLmdyb3Vwcy5sZW5ndGggPiAwKTsgLy8gS2VlcCBncm91cHMgd2l0aCB2YWxpZCBzZWN0aW9ucyBvciBuZXN0ZWQgZ3JvdXBzXG4gICAgfTtcblxuICAgIHJldHVybiBzb3J0QnkoZmlsdGVyQnlTY29wZSh0aGlzLmNhY2hlLCBzY29wZSksICd0aXRsZScpO1xuICB9XG5cblxuXG5cbiAgYXN5bmMgZGVmYXVsdFZhbHVlcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgY29uc3QgZGVmYXVsdHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgICBjb25zdCBjb2xsZWN0RGVmYXVsdHMgPSAoZ3JvdXBzOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10pID0+IHtcbiAgICAgIGdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICBncm91cC5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICAgICAgc2VjdGlvbi5zZXR0aW5ncy5mb3JFYWNoKChzZXR0aW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2V0dGluZy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBkZWZhdWx0c1tzZXR0aW5nLm5hbWVdID0gc2V0dGluZy5kZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb2xsZWN0RGVmYXVsdHMoZ3JvdXAuZ3JvdXBzKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIH1cbiAgICBjb2xsZWN0RGVmYXVsdHModGhpcy5jYWNoZSEpO1xuXG4gICAgcmV0dXJuIGRlZmF1bHRzO1xuICB9XG5cbiAgcHVibGljIGZpbmRHcm91cChzY29wZTogQVhQUGxhdGZvcm1TY29wZUtleSwgZ3JvdXBOYW1lOiBzdHJpbmcpOiBBWFBHcm91cFNlYXJjaFJlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoUmVjdXJzaXZlKHRoaXMuZ2V0TGlzdChzY29wZSksIGdyb3VwTmFtZSwgW10pOyAvLyBJbml0aWFsaXplIHdpdGggYW4gZW1wdHkgYnJlYWRjcnVtYlxuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hSZWN1cnNpdmUoXG4gICAgZ3JvdXBzOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10sXG4gICAgZ3JvdXBOYW1lOiBzdHJpbmcsXG4gICAgYnJlYWRjcnVtYjogeyBuYW1lOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfVtdXG4gICk6IEFYUEdyb3VwU2VhcmNoUmVzdWx0IHtcbiAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuICAgICAgY29uc3QgY3VycmVudEJyZWFkY3J1bWIgPSBbLi4uYnJlYWRjcnVtYiwgeyBuYW1lOiBncm91cC5uYW1lLCB0aXRsZTogZ3JvdXAudGl0bGUsIGRlc2NyaXB0aW9uOiBncm91cC5kZXNjcmlwdGlvbiB9XTtcblxuICAgICAgLy8gSWYgdGhlIGdyb3VwIG5hbWUgbWF0Y2hlcywgcmV0dXJuIGl0cyBkZXRhaWxzXG4gICAgICBpZiAoZ3JvdXAubmFtZSA9PT0gZ3JvdXBOYW1lKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYnJlYWRjcnVtYjogY3VycmVudEJyZWFkY3J1bWIsXG4gICAgICAgICAgc2VjdGlvbnM6IGdyb3VwLnNlY3Rpb25zLmxlbmd0aCA+IDAgPyBncm91cC5zZWN0aW9ucyA6IG51bGwsXG4gICAgICAgICAgZ3JvdXBzOiBncm91cC5ncm91cHMubGVuZ3RoID4gMCA/IGdyb3VwLmdyb3VwcyA6IG51bGwsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIFJlY3Vyc2l2ZWx5IHNlYXJjaCBpbiBuZXN0ZWQgZ3JvdXBzXG4gICAgICBjb25zdCBuZXN0ZWRSZXN1bHQgPSB0aGlzLnNlYXJjaFJlY3Vyc2l2ZShncm91cC5ncm91cHMsIGdyb3VwTmFtZSwgY3VycmVudEJyZWFkY3J1bWIpO1xuICAgICAgaWYgKG5lc3RlZFJlc3VsdC5icmVhZGNydW1iLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIG5lc3RlZFJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBubyBtYXRjaGluZyBncm91cCBpcyBmb3VuZFxuICAgIHJldHVybiB7XG4gICAgICBicmVhZGNydW1iOiBbXSxcbiAgICAgIGdyb3VwczogW10sXG4gICAgICBzZWN0aW9uczogW11cbiAgICB9O1xuICB9XG59XG5cbi8vIE11bHRpLXByb3ZpZGVyIHRva2VuIGZvciBoaWdoZXItbGF5ZXIgZGVmYXVsdCB2YWx1ZXNcbmV4cG9ydCBjb25zdCBBWFBfU0VUVElOR19ERUZBVUxUX1ZBTFVFU19QUk9WSURFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQU2V0dGluZ0RlZmF1bHRWYWx1ZXNQcm92aWRlcltdPlxuICAoJ0FYUF9TRVRUSU5HX0RFRkFVTFRfVkFMVUVTX1BST1ZJREVSUycsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gW10sXG4gIH0pO1xuXG4vLyBBZ2dyZWdhdG9yIHNlcnZpY2UgdGhhdCBtZXJnZXMgZGVmaW5pdGlvbiBkZWZhdWx0cyB3aXRoIGhpZ2hlci1sYXllciBwcm92aWRlcnMgKGJ5IHByaW9yaXR5KVxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBTZXR0aW5nRGVmYXVsdFZhbHVlc0FnZ3JlZ2F0b3JTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZpbml0aW9uU2VydmljZSA9IGluamVjdChBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9TRVRUSU5HX0RFRkFVTFRfVkFMVUVTX1BST1ZJREVSUywgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBbXTtcblxuICBhc3luYyBnZXREZWZhdWx0cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgY29uc3QgYmFzZURlZmF1bHRzID0gYXdhaXQgdGhpcy5kZWZpbml0aW9uU2VydmljZS5kZWZhdWx0VmFsdWVzKCk7XG4gICAgY29uc3Qgb3JkZXJlZCA9IFsuLi50aGlzLnByb3ZpZGVyc10uc29ydCgoYSwgYikgPT4gKGEucHJpb3JpdHkgPz8gMCkgLSAoYi5wcmlvcml0eSA/PyAwKSk7XG4gICAgY29uc3QgbWVyZ2VkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHsgLi4uYmFzZURlZmF1bHRzIH07XG4gICAgZm9yIChjb25zdCBwcm92aWRlciBvZiBvcmRlcmVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBvdmVycmlkZU1hcCA9IGF3YWl0IHByb3ZpZGVyLnByb3ZpZGUoKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihtZXJnZWQsIG92ZXJyaWRlTWFwKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdBWFBTZXR0aW5nRGVmYXVsdFZhbHVlc1Byb3ZpZGVyIGZhaWxlZDonLCBlcnIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9XG59Il19","import { inject, InjectionToken, Injector } from \"@angular/core\";\nimport { AXPPlatformScope } from \"@acorex/platform/core\";\nimport { AXPSessionService, AXPSessionStatus } from \"@acorex/platform/auth\";\nexport const AXP_SETTING_VALUE_PROVIDER = new InjectionToken('AXP_SETTING_VALUE_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n const injector = inject(Injector);\n return [\n new AXPSettingValueProviderDefault(AXPPlatformScope.Tenant, injector),\n new AXPSettingValueProviderDefault(AXPPlatformScope.User, injector)\n ];\n }\n});\nclass AXPSettingValueProviderDefault {\n constructor(_scope, injector) {\n this._scope = _scope;\n this.injector = injector;\n this.cache = new Map();\n this.localStorageKey = null;\n this.sessionService = this.injector.get(AXPSessionService);\n this.sessionService.status$.subscribe((status) => {\n if (status === AXPSessionStatus.Authorized || status === AXPSessionStatus.Authenticated) {\n if (this.scope === AXPPlatformScope.User) {\n this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.user?.id ?? 'U'})`;\n }\n else {\n this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.tenant?.id ?? 'T'})`;\n }\n }\n });\n }\n get scope() {\n return this._scope;\n }\n async load() {\n if (!this.localStorageKey) {\n return Promise.resolve([]);\n }\n // Load settings from localStorage as a single key\n const storedSettings = localStorage.getItem(this.localStorageKey);\n if (storedSettings) {\n const parsedSettings = JSON.parse(storedSettings);\n Object.entries(parsedSettings).forEach(([key, value]) => {\n this.cache.set(key, value);\n });\n return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));\n }\n return Promise.resolve([]);\n }\n async set(keyOrValues, value) {\n if (typeof keyOrValues === 'string') {\n // Single value update\n this.cache.set(keyOrValues, value);\n }\n else {\n // Bulk update\n for (const [key, val] of Object.entries(keyOrValues)) {\n this.cache.set(key, val);\n }\n }\n await this.saveToLocalStorage();\n }\n async saveToLocalStorage() {\n if (!this.localStorageKey) {\n return;\n }\n const settingsObject = {};\n this.cache.forEach((value, key) => {\n settingsObject[key] = value;\n });\n localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));\n }\n async clear() {\n if (!this.localStorageKey) {\n return;\n }\n localStorage.removeItem(this.localStorageKey);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3NldHRpbmdzL3NldHRpbmdzLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUs1RSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBNEIsNEJBQTRCLEVBQUU7SUFDbEgsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxPQUFPO1lBQ0gsSUFBSSw4QkFBOEIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO1lBQ3JFLElBQUksOEJBQThCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztTQUN0RSxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMsQ0FBQztBQUdILE1BQU0sOEJBQThCO0lBS2hDLFlBQW9CLE1BQXdCLEVBQVUsUUFBa0I7UUFBcEQsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSnZELFVBQUssR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QyxvQkFBZSxHQUFrQixJQUFJLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBR3pELElBQUksQ0FBQyxjQUFjLENBQUMs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RUFBRSxFQUFFO1lBQzlCLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFHTyxLQUFLLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNYLENBQUM7UUFDRCxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZXR0aW5nVmFsdWUsIEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyIH0gZnJvbSBcIi4vc2V0dGluZ3MudHlwZXNcIjtcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUFBsYXRmb3JtU2NvcGUgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb3JlXCI7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSwgQVhQU2Vzc2lvblN0YXR1cyB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2F1dGhcIjtcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcblxuXG5cbmV4cG9ydCBjb25zdCBBWFBfU0VUVElOR19WQUxVRV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBTZXR0aW5nVmFsdWVQcm92aWRlcltdPignQVhQX1NFVFRJTkdfVkFMVUVfUFJPVklERVInLCB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyRGVmYXVsdChBWFBQbGF0Zm9ybVNjb3BlLlRlbmFudCwgaW5qZWN0b3IpLFxuICAgICAgICAgICAgbmV3IEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyRGVmYXVsdChBWFBQbGF0Zm9ybVNjb3BlLlVzZXIsIGluamVjdG9yKVxuICAgICAgICBdO1xuICAgIH1cbn0pO1xuXG5cbmNsYXNzIEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyRGVmYXVsdCBpbXBsZW1lbnRzIEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQU2Vzc2lvblNlcnZpY2UpXG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zY29wZTogQVhQUGxhdGZvcm1TY29wZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5zdGF0dXMkLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhdHVzID09PSBBWFBTZXNzaW9uU3RhdHVzLkF1dGhvcml6ZWQgfHwgc3RhdHVzID09PSBBWFBTZXNzaW9uU3RhdHVzLkF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zY29wZSA9PT0gQVhQUGxhdGZvcm1TY29wZS5Vc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlS2V5ID0gYEFYUF9TRVRUSU5HU19TQ09QRSgke3RoaXMuc2Vzc2lvblNlcnZpY2UudXNlcj8uaWQgPz8gJ1UnfSlgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlS2V5ID0gYEFYUF9TRVRUSU5HU19TQ09QRSgke3RoaXMuc2Vzc2lvblNlcnZpY2UudGVuYW50Py5pZCA/PyAnVCd9KWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNjb3BlKCk6IEFYUFBsYXRmb3JtU2NvcGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2NvcGU7XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZCgpOiBQcm9taXNlPEFYUFNldHRpbmdWYWx1ZVtdPiB7XG4gICAgICAgIGlmICghdGhpcy5sb2NhbFN0b3JhZ2VLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICAgICAgICB9XG4gICAgICAgIC8vIExvYWQgc2V0dGluZ3MgZnJvbSBsb2NhbFN0b3JhZ2UgYXMgYSBzaW5nbGUga2V5XG4gICAgICAgIGNvbnN0IHN0b3JlZFNldHRpbmdzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VLZXkpO1xuICAgICAgICBpZiAoc3RvcmVkU2V0dGluZ3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZFNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gSlNPTi5wYXJzZShzdG9yZWRTZXR0aW5ncyk7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhwYXJzZWRTZXR0aW5ncykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoQXJyYXkuZnJvbSh0aGlzLmNhY2hlLmVudHJpZXMoKSkubWFwKGMgPT4gKHsga2V5OiBjWzBdLCB2YWx1ZTogY1sxXSB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIGFzeW5jIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IFByb21pc2U8dm9pZD47XG4gICAgYXN5bmMgc2V0KHZhbHVlczogUmVjb3JkPHN0cmluZywgYW55Pik6IFByb21pc2U8dm9pZD47XG4gICAgYXN5bmMgc2V0KGtleU9yVmFsdWVzOiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB2YWx1ZT86IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodHlwZW9mIGtleU9yVmFsdWVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gU2luZ2xlIHZhbHVlIHVwZGF0ZVxuICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5T3JWYWx1ZXMsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEJ1bGsgdXBkYXRlXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMoa2V5T3JWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5LCB2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZVRvTG9jYWxTdG9yYWdlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzYXZlVG9Mb2NhbFN0b3JhZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5sb2NhbFN0b3JhZ2VLZXkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXR0aW5nc09iamVjdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgICB0aGlzLmNhY2hlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHNldHRpbmdzT2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShzZXR0aW5nc09iamVjdCkpO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBhc3luYyBjbGVhcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxvY2FsU3RvcmFnZUtleSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5KTtcbiAgICB9XG59Il19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPBroadcastEventService, AXPPlatformScope } from '@acorex/platform/core';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { cloneDeep, get } from 'lodash-es';\nimport { distinctUntilChanged, Subject } from 'rxjs';\nimport { AXP_SETTING_VALUE_PROVIDER } from './settings.provider';\nimport { AXPSettingDefaultValuesAggregatorService } from './setting-definition.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPSettingService {\n constructor() {\n this.providers = inject(AXP_SETTING_VALUE_PROVIDER);\n this.injector = inject(Injector);\n this.eventService = inject(AXPBroadcastEventService);\n this.sessionService = inject(AXPSessionService);\n this.scopedSettingsCache = new Map();\n this.onChanged = new Subject();\n this.onLoaded = new Subject();\n // Initialize scoped caches for dynamic scopes\n const staticScopes = [\n AXPPlatformScope.Environment,\n AXPPlatformScope.Global,\n AXPPlatformScope.Tenant,\n AXPPlatformScope.User,\n ];\n staticScopes.forEach((scope) => {\n if (!this.scopedSettingsCache.has(scope)) {\n this.scopedSettingsCache.set(scope, new Map());\n }\n });\n // Listen for setting changes from other tabs\n this.eventService.listen('AXPSettingChangedEvent').subscribe((event) => {\n const data = event.data;\n data.keys.forEach((key) => {\n this.scopedSettingsCache.get(data.scope)?.set(key, data.values[key]);\n });\n this.onChanged.next(data); // Notify subscribers in the current tab\n });\n // reload settings when user is authenticated\n this.sessionService.isAuthenticated$.pipe(distinctUntilChanged()).subscribe(async (isAuthenticated) => {\n if (isAuthenticated) {\n await this.reload();\n }\n });\n }\n async reload() {\n await this.load();\n }\n async load() {\n try {\n const settingsList = [];\n for (const provider of this.providers) {\n const scopeCache = this.scopedSettingsCache.get(provider.scope) ?? new Map();\n const providerSettings = await provider.load();\n providerSettings.forEach((setting) => {\n scopeCache.set(setting.key, setting.value);\n });\n settingsList.push(...providerSettings);\n }\n this.onLoaded.next();\n return settingsList;\n }\n catch (error) {\n console.error('Error loading settings', error);\n throw error;\n }\n }\n async get(key) {\n if (this.scopedSettingsCache.size === 0) {\n await this.load();\n }\n const scopeOrder = [\n AXPPlatformScope.User,\n AXPPlatformScope.Tenant,\n AXPPlatformScope.Global,\n AXPPlatformScope.Environment,\n ];\n for (const scope of scopeOrder) {\n const scopeCache = this.scopedSettingsCache.get(scope);\n if (scopeCache && scopeCache.has(key)) {\n const value = scopeCache.get(key);\n if (value !== undefined && value !== null) {\n return cloneDeep(value);\n }\n }\n }\n const defaults = await this.injector.get(AXPSettingDefaultValuesAggregatorService).getDefaults();\n return get(defaults, key); // Fallback if no value is found\n }\n async defaultValues(scope) {\n let scopeOrder = [\n AXPPlatformScope.Environment,\n AXPPlatformScope.Global,\n AXPPlatformScope.Tenant,\n AXPPlatformScope.User,\n ].reverse();\n const scopeIndex = scopeOrder.indexOf(scope);\n if (scopeIndex === -1) {\n throw new Error(`Invalid scope: ${scope}`);\n }\n scopeOrder = scopeOrder.slice(scopeIndex + 1);\n // Accumulate defaults from the current scope and higher scopes\n const accumulatedDefaults = {};\n for (let i = scopeIndex; i < scopeOrder.length; i++) {\n const currentScope = scopeOrder[i];\n const scopeCache = this.scopedSettingsCache.get(currentScope);\n if (scopeCache) {\n scopeCache.forEach((value, key) => {\n if (!(key in accumulatedDefaults)) {\n accumulatedDefaults[key] = value;\n }\n });\n }\n }\n // Merge with aggregated default values (definition + higher-layer providers)\n const globalDefaults = await this.injector.get(AXPSettingDefaultValuesAggregatorService).getDefaults();\n return { ...globalDefaults, ...accumulatedDefaults };\n }\n scope(scope) {\n const provider = this.providers.find((p) => p.scope === scope);\n if (!provider) {\n throw new Error(`No provider found for scope: ${scope}`);\n }\n return new ScopedSettingService(this, provider, this.scopedSettingsCache.get(scope));\n }\n invokeChangeEvent(event) {\n this.onChanged.next(event);\n this.eventService.publish('AXPSettingChangedEvent', event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSettingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSettingService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSettingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\nclass ScopedSettingService {\n constructor(parent, provider, scopeCache) {\n this.parent = parent;\n this.provider = provider;\n this.scopeCache = scopeCache;\n }\n async get(key) {\n const settings = await this.provider.load();\n const setting = settings.find((s) => s.key === key);\n return setting ? cloneDeep(setting.value) : undefined;\n }\n async all() {\n const settings = await this.provider.load();\n return Object.fromEntries(settings.map((s) => [s.key, cloneDeep(s.value)]));\n }\n async defaultValues() {\n return this.parent.defaultValues(this.provider.scope);\n }\n async set(keyOrValues, value) {\n if (typeof keyOrValues === 'string') {\n // Single key-value pair\n await this.provider.set(keyOrValues, value);\n this.scopeCache.set(keyOrValues, value); // Sync the cache\n this.parent.invokeChangeEvent({\n scope: this.provider.scope,\n keys: [keyOrValues],\n values: { [keyOrValues]: value },\n entries: [{ key: keyOrValues, value }],\n });\n }\n else {\n // Multiple key-value pairs\n await this.provider.set(keyOrValues);\n Object.entries(keyOrValues).forEach(([key, val]) => this.scopeCache.set(key, val)); // Sync the cache\n const entries = Object.entries(keyOrValues).map(([key, val]) => ({ key, value: val }));\n this.parent.invokeChangeEvent({\n scope: this.provider.scope,\n keys: Object.keys(keyOrValues),\n values: keyOrValues,\n entries,\n });\n }\n }\n async update(key, updateFn) {\n const currentValue = await this.get(key);\n const newValue = updateFn(currentValue);\n await this.set(key, newValue);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFZeEYsTUFBTSxPQUFPLGlCQUFpQjtJQVM1QjtRQVJpQixjQUFTLEdBQThCLE1BQU0sQ0FBNEIsMEJBQTBCLENBQUMsQ0FBQztRQUNyRyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDaEQsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyx3QkFBbUIsR0FBa0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoRSxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFDbEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHN0MsOENBQThDO1FBQzlDLE1BQU0sWUFBWSxHQUFHO1lBQ25CLGdCQUFnQixDQUFDLFdB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QUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtZQUNyRyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztnQkFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztnQkFDMUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUM5QixNQUFNLEVBQUUsV0FBVztnQkFDbkIsT0FBTzthQUNSLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBVSxHQUFXLEVBQUUsUUFBZ0M7UUFDakUsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSwgQVhQUGxhdGZvcm1TY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL3NldHRpbmctZGVmaW5pdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9TRVRUSU5HX1ZBTFVFX1BST1ZJREVSIH0gZnJvbSAnLi9zZXR0aW5ncy5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50LCBBWFBTZXR0aW5nVmFsdWUsIEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnLi9zZXR0aW5ncy50eXBlcyc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nRGVmYXVsdFZhbHVlc0FnZ3JlZ2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi9zZXR0aW5nLWRlZmluaXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2V0dGluZ1NlcnZpY2VJbnRlcmZhY2Uge1xuICBsb2FkKCk6IFByb21pc2U8QVhQU2V0dGluZ1ZhbHVlW10+O1xuICBnZXQ8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBQcm9taXNlPFQ+O1xuICBkZWZhdWx0VmFsdWVzKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG4gIHNjb3BlKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlKTogU2NvcGVkU2V0dGluZ1NlcnZpY2U7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBTZXR0aW5nU2VydmljZSBpbXBsZW1lbnRzIEFYUFNldHRpbmdTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlcnM6IEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyW10gPSBpbmplY3Q8QVhQU2V0dGluZ1ZhbHVlUHJvdmlkZXJbXT4oQVhQX1NFVFRJTkdfVkFMVUVfUFJPVklERVIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NvcGVkU2V0dGluZ3NDYWNoZTogTWFwPHN0cmluZywgTWFwPHN0cmluZywgYW55Pj4gPSBuZXcgTWFwKCk7XG4gIHB1YmxpYyByZWFkb25seSBvbkNoYW5nZWQgPSBuZXcgU3ViamVjdDxBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb25Mb2FkZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEluaXRpYWxpemUgc2NvcGVkIGNhY2hlcyBmb3IgZHluYW1pYyBzY29wZXNcbiAgICBjb25zdCBzdGF0aWNTY29wZXMgPSBbXG4gICAgICBBWFBQbGF0Zm9ybVNjb3BlLkVudmlyb25tZW50LFxuICAgICAgQVhQUGxhdGZvcm1TY29wZS5HbG9iYWwsXG4gICAgICBBWFBQbGF0Zm9ybVNjb3BlLlRlbmFudCxcbiAgICAgIEFYUFBsYXRmb3JtU2NvcGUuVXNlcixcbiAgICBdO1xuICAgIHN0YXRpY1Njb3Blcy5mb3JFYWNoKChzY29wZSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnNjb3BlZFNldHRpbmdzQ2FjaGUuaGFzKHNjb3BlKSkge1xuICAgICAgICB0aGlzLnNjb3BlZFNldHRpbmdzQ2FjaGUuc2V0KHNjb3BlLCBuZXcgTWFwKCkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gTGlzdGVuIGZvciBzZXR0aW5nIGNoYW5nZXMgZnJvbSBvdGhlciB0YWJzXG4gICAgdGhpcy5ldmVudFNlcnZpY2UubGlzdGVuPEFYUFNldHRpbmdDaGFuZ2VkRXZlbnQ+KCdBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50Jykuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGE7XG4gICAgICBkYXRhLmtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIHRoaXMuc2NvcGVkU2V0dGluZ3NDYWNoZS5nZXQoZGF0YS5zY29wZSk/LnNldChrZXksIGRhdGEudmFsdWVzW2tleV0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KGRhdGEpOyAvLyBOb3RpZnkgc3Vic2NyaWJlcnMgaW4gdGhlIGN1cnJlbnQgdGFiXG4gICAgfSk7XG4gICAgLy8gcmVsb2FkIHNldHRpbmdzIHdoZW4gdXNlciBpcyBhdXRoZW50aWNhdGVkXG4gICAgdGhpcy5zZXNzaW9uU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKGFzeW5jIChpc0F1dGhlbnRpY2F0ZWQpID0+IHtcbiAgICAgIGlmIChpc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWQoKTogUHJvbWlzZTxBWFBTZXR0aW5nVmFsdWVbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZXR0aW5nc0xpc3Q6IEFYUFNldHRpbmdWYWx1ZVtdID0gW107XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgIGNvbnN0IHNjb3BlQ2FjaGUgPSB0aGlzLnNjb3BlZFNldHRpbmdzQ2FjaGUuZ2V0KHByb3ZpZGVyLnNjb3BlKSA/PyBuZXcgTWFwKCk7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyU2V0dGluZ3MgPSBhd2FpdCBwcm92aWRlci5sb2FkKCk7XG4gICAgICAgIHByb3ZpZGVyU2V0dGluZ3MuZm9yRWFjaCgoc2V0dGluZykgPT4ge1xuICAgICAgICAgIHNjb3BlQ2FjaGUuc2V0KHNldHRpbmcua2V5LCBzZXR0aW5nLnZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHNldHRpbmdzTGlzdC5wdXNoKC4uLnByb3ZpZGVyU2V0dGluZ3MpO1xuICAgICAgfVxuICAgICAgdGhpcy5vbkxvYWRlZC5uZXh0KCk7XG4gICAgICByZXR1cm4gc2V0dGluZ3NMaXN0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHNldHRpbmdzJywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0PFQgPSBhbnk+KGtleTogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMuc2NvcGVkU2V0dGluZ3NDYWNoZS5zaXplID09PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICB9XG4gICAgY29uc3Qgc2NvcGVPcmRlciA9IFtcbiAgICAgIEFYUFBsYXRmb3JtU2NvcGUuVXNlcixcbiAgICAgIEFYUFBsYXRmb3JtU2NvcGUuVGVuYW50LFxuICAgICAgQVhQUGxhdGZvcm1TY29wZS5HbG9iYWwsXG4gICAgICBBWFBQbGF0Zm9ybVNjb3BlLkVudmlyb25tZW50LFxuICAgIF07XG4gICAgZm9yIChjb25zdCBzY29wZSBvZiBzY29wZU9yZGVyKSB7XG4gICAgICBjb25zdCBzY29wZUNhY2hlID0gdGhpcy5zY29wZWRTZXR0aW5nc0NhY2hlLmdldChzY29wZSk7XG4gICAgICBpZiAoc2NvcGVDYWNoZSAmJiBzY29wZUNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gc2NvcGVDYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gY2xvbmVEZWVwKHZhbHVlKSBhcyBUO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRzID0gYXdhaXQgdGhpcy5pbmplY3Rvci5nZXQoQVhQU2V0dGluZ0RlZmF1bHRWYWx1ZXNBZ2dyZWdhdG9yU2VydmljZSkuZ2V0RGVmYXVsdHMoKTtcbiAgICByZXR1cm4gZ2V0KGRlZmF1bHRzLCBrZXkpIGFzIFQ7IC8vIEZhbGxiYWNrIGlmIG5vIHZhbHVlIGlzIGZvdW5kXG4gIH1cblxuICBhc3luYyBkZWZhdWx0VmFsdWVzKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIGxldCBzY29wZU9yZGVyID0gW1xuICAgICAgQVhQUGxhdGZvcm1TY29wZS5FbnZpcm9ubWVudCxcbiAgICAgIEFYUFBsYXRmb3JtU2NvcGUuR2xvYmFsLFxuICAgICAgQVhQUGxhdGZvcm1TY29wZS5UZW5hbnQsXG4gICAgICBBWFBQbGF0Zm9ybVNjb3BlLlVzZXIsXG4gICAgXS5yZXZlcnNlKCk7XG4gICAgY29uc3Qgc2NvcGVJbmRleCA9IHNjb3BlT3JkZXIuaW5kZXhPZihzY29wZSk7XG5cbiAgICBpZiAoc2NvcGVJbmRleCA9PT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzY29wZTogJHtzY29wZX1gKTtcbiAgICB9XG4gICAgc2NvcGVPcmRlciA9IHNjb3BlT3JkZXIuc2xpY2Uoc2NvcGVJbmRleCArIDEpO1xuICAgIC8vIEFjY3VtdWxhdGUgZGVmYXVsdHMgZnJvbSB0aGUgY3VycmVudCBzY29wZSBhbmQgaGlnaGVyIHNjb3Blc1xuICAgIGNvbnN0IGFjY3VtdWxhdGVkRGVmYXVsdHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gICAgZm9yIChsZXQgaSA9IHNjb3BlSW5kZXg7IGkgPCBzY29wZU9yZGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjdXJyZW50U2NvcGUgPSBzY29wZU9yZGVyW2ldO1xuICAgICAgY29uc3Qgc2NvcGVDYWNoZSA9IHRoaXMuc2NvcGVkU2V0dGluZ3NDYWNoZS5nZXQoY3VycmVudFNjb3BlKTtcblxuICAgICAgaWYgKHNjb3BlQ2FjaGUpIHtcbiAgICAgICAgc2NvcGVDYWNoZS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKCEoa2V5IGluIGFjY3VtdWxhdGVkRGVmYXVsdHMpKSB7XG4gICAgICAgICAgICBhY2N1bXVsYXRlZERlZmF1bHRzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1lcmdlIHdpdGggYWdncmVnYXRlZCBkZWZhdWx0IHZhbHVlcyAoZGVmaW5pdGlvbiArIGhpZ2hlci1sYXllciBwcm92aWRlcnMpXG4gICAgY29uc3QgZ2xvYmFsRGVmYXVsdHMgPSBhd2FpdCB0aGlzLmluamVjdG9yLmdldChBWFBTZXR0aW5nRGVmYXVsdFZhbHVlc0FnZ3JlZ2F0b3JTZXJ2aWNlKS5nZXREZWZhdWx0cygpO1xuICAgIHJldHVybiB7IC4uLmdsb2JhbERlZmF1bHRzLCAuLi5hY2N1bXVsYXRlZERlZmF1bHRzIH07XG4gIH1cblxuICBzY29wZShzY29wZTogQVhQUGxhdGZvcm1TY29wZSk6IFNjb3BlZFNldHRpbmdTZXJ2aWNlIHtcbiAgICBjb25zdCBwcm92aWRlciA9IHRoaXMucHJvdmlkZXJzLmZpbmQoKHApID0+IHAuc2NvcGUgPT09IHNjb3BlKTtcbiAgICBpZiAoIXByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHByb3ZpZGVyIGZvdW5kIGZvciBzY29wZTogJHtzY29wZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBTY29wZWRTZXR0aW5nU2VydmljZSh0aGlzLCBwcm92aWRlciwgdGhpcy5zY29wZWRTZXR0aW5nc0NhY2hlLmdldChzY29wZSkhKTtcbiAgfVxuXG4gIGludm9rZUNoYW5nZUV2ZW50KGV2ZW50OiBBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5vbkNoYW5nZWQubmV4dChldmVudCk7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UucHVibGlzaDxBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50PignQVhQU2V0dGluZ0NoYW5nZWRFdmVudCcsIGV2ZW50KTtcbiAgfVxufVxuXG5jbGFzcyBTY29wZWRTZXR0aW5nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGFyZW50OiBBWFBTZXR0aW5nU2VydmljZSxcbiAgICBwcml2YXRlIHByb3ZpZGVyOiBBWFBTZXR0aW5nVmFsdWVQcm92aWRlcixcbiAgICBwcml2YXRlIHNjb3BlQ2FjaGU6IE1hcDxzdHJpbmcsIGFueT4sXG4gICkgeyB9XG5cbiAgYXN5bmMgZ2V0PFQgPSBhbnk+KGtleTogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBhd2FpdCB0aGlzLnByb3ZpZGVyLmxvYWQoKTtcbiAgICBjb25zdCBzZXR0aW5nID0gc2V0dGluZ3MuZmluZCgocykgPT4gcy5rZXkgPT09IGtleSk7XG4gICAgcmV0dXJuIHNldHRpbmcgPyBjbG9uZURlZXAoc2V0dGluZy52YWx1ZSkgOiB1bmRlZmluZWQhO1xuICB9XG5cbiAgYXN5bmMgYWxsKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBhd2FpdCB0aGlzLnByb3ZpZGVyLmxvYWQoKTtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHNldHRpbmdzLm1hcCgocykgPT4gW3Mua2V5LCBjbG9uZURlZXAocy52YWx1ZSldKSk7XG4gIH1cblxuICBhc3luYyBkZWZhdWx0VmFsdWVzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZGVmYXVsdFZhbHVlcyh0aGlzLnByb3ZpZGVyLnNjb3BlKTtcbiAgfVxuXG4gIGFzeW5jIHNldDxUID0gYW55PihrZXk6IHN0cmluZywgdmFsdWU6IFQpOiBQcm9taXNlPHZvaWQ+O1xuICBhc3luYyBzZXQ8VCA9IGFueT4odmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBUPik6IFByb21pc2U8dm9pZD47XG4gIGFzeW5jIHNldDxUID0gYW55PihrZXlPclZhbHVlczogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgVD4sIHZhbHVlPzogVCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0eXBlb2Yga2V5T3JWYWx1ZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBTaW5nbGUga2V5LXZhbHVlIHBhaXJcbiAgICAgIGF3YWl0IHRoaXMucHJvdmlkZXIuc2V0KGtleU9yVmFsdWVzLCB2YWx1ZSk7XG4gICAgICB0aGlzLnNjb3BlQ2FjaGUuc2V0KGtleU9yVmFsdWVzLCB2YWx1ZSk7IC8vIFN5bmMgdGhlIGNhY2hlXG4gICAgICB0aGlzLnBhcmVudC5pbnZva2VDaGFuZ2VFdmVudCh7XG4gICAgICAgIHNjb3BlOiB0aGlzLnByb3ZpZGVyLnNjb3BlLFxuICAgICAgICBrZXlzOiBba2V5T3JWYWx1ZXNdLFxuICAgICAgICB2YWx1ZXM6IHsgW2tleU9yVmFsdWVzXTogdmFsdWUgfSxcbiAgICAgICAgZW50cmllczogW3sga2V5OiBrZXlPclZhbHVlcywgdmFsdWUgfV0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTXVsdGlwbGUga2V5LXZhbHVlIHBhaXJzXG4gICAgICBhd2FpdCB0aGlzLnByb3ZpZGVyLnNldChrZXlPclZhbHVlcyk7XG4gICAgICBPYmplY3QuZW50cmllcyhrZXlPclZhbHVlcykuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4gdGhpcy5zY29wZUNhY2hlLnNldChrZXksIHZhbCkpOyAvLyBTeW5jIHRoZSBjYWNoZVxuICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGtleU9yVmFsdWVzKS5tYXAoKFtrZXksIHZhbF0pID0+ICh7IGtleSwgdmFsdWU6IHZhbCB9KSk7XG4gICAgICB0aGlzLnBhcmVudC5pbnZva2VDaGFuZ2VFdmVudCh7XG4gICAgICAgIHNjb3BlOiB0aGlzLnByb3ZpZGVyLnNjb3BlLFxuICAgICAgICBrZXlzOiBPYmplY3Qua2V5cyhrZXlPclZhbHVlcyksXG4gICAgICAgIHZhbHVlczoga2V5T3JWYWx1ZXMsXG4gICAgICAgIGVudHJpZXMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGU8VCA9IGFueT4oa2V5OiBzdHJpbmcsIHVwZGF0ZUZuOiAoY3VycmVudFZhbHVlOiBUKSA9PiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYXdhaXQgdGhpcy5nZXQ8VD4oa2V5KTtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHVwZGF0ZUZuKGN1cnJlbnRWYWx1ZSk7XG4gICAgYXdhaXQgdGhpcy5zZXQoa2V5LCBuZXdWYWx1ZSk7XG4gIH1cbn1cbiJdfQ==","export var AXPHomePageSettings;\n(function (AXPHomePageSettings) {\n AXPHomePageSettings[\"UserHomePath\"] = \"general:startup:home-page\";\n})(AXPHomePageSettings || (AXPHomePageSettings = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLXNldHRpbmdzLmtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvaG9tZS1wYWdlL2hvbWUtcGFnZS1zZXR0aW5ncy5rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBRVg7QUFGRCxXQUFZLG1CQUFtQjtJQUMzQixpRUFBMEMsQ0FBQTtBQUM5QyxDQUFDLEVBRlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUU5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFYUEhvbWVQYWdlU2V0dGluZ3Mge1xuICAgIFVzZXJIb21lUGF0aCA9ICdnZW5lcmFsOnN0YXJ0dXA6aG9tZS1wYWdlJyxcbn0iXX0=","import { AXPSessionService } from '@acorex/platform/auth';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { merge } from 'rxjs';\nimport { AXPSettingService } from '../settings';\nimport { AXPHomePageSettings } from './home-page-settings.key';\nimport { AXP_HOME_PAGE_DEFAULT_KEY, AXP_HOME_PAGES } from './home-page.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPHomePageService {\n get flatCandidates() {\n return this.candidates.flatMap((c) => c);\n }\n constructor() {\n this.defaultHomePageKey = inject(AXP_HOME_PAGE_DEFAULT_KEY, { optional: true }) ?? 'home';\n this.userHomePageKey = null;\n this.candidates = inject(AXP_HOME_PAGES, { optional: true }) ?? [];\n this.settingsService = inject(AXPSettingService);\n this.sessionService = inject(AXPSessionService);\n this.injector = inject(Injector);\n this.originalConfig = null;\n this.loginPath = 'auth/login';\n // remove circular dependency\n setTimeout(async () => {\n await this.init();\n });\n }\n async init() {\n await this.load();\n //\n const keys = [AXPHomePageSettings.UserHomePath];\n this.settingsService.onChanged.subscribe(async (c) => {\n if (keys.some((k) => c.keys.includes(k))) {\n await this.load();\n this.refreshRoutes();\n }\n });\n //\n merge(this.sessionService.status$, this.sessionService.application$, this.sessionService.tenant$).subscribe(async (data) => {\n await this.load();\n this.refreshRoutes();\n });\n }\n async load() {\n this.userHomePageKey = await this.settingsService.get(AXPHomePageSettings.UserHomePath);\n }\n getRegisteredList() {\n return this.flatCandidates.filter((c) => c.route);\n }\n getRegisteredRoutes() {\n const defaultHomePage = this.flatCandidates.find((c) => c.key === this.defaultHomePageKey);\n const home = this.flatCandidates.find((c) => this.userHomePageKey && c.key === this.userHomePageKey) ?? defaultHomePage;\n if (home && home.route && this.sessionService.application?.name) {\n const fullPath = this.findPath(home.route);\n return [\n { path: '', redirectTo: fullPath, pathMatch: 'full' },\n { path: ':app', redirectTo: fullPath, pathMatch: 'full' },\n { ...home?.route, ...{ data: { key: home?.key, title: home?.title, path: fullPath } } },\n ];\n }\n return [\n { path: '', redirectTo: this.loginPath, pathMatch: 'full' },\n ];\n }\n getCurrent() {\n const key = this.userHomePageKey ?? this.defaultHomePageKey;\n const homePage = this.getRegisteredRoutes().find((c) => c.data?.['key'] === key);\n if (homePage) {\n return {\n path: homePage.data?.['path'],\n title: homePage.data?.['title'],\n };\n }\n return {\n path: this.loginPath,\n title: '',\n };\n }\n findPath(target) {\n const rawPath = this.buildFullPaths(target).join('/');\n const appName = this.sessionService.application?.name;\n if (appName) {\n return rawPath.replace(':app', appName);\n }\n return rawPath;\n }\n buildFullPaths(route, parentPath = []) {\n const segments = [...parentPath];\n if (route.path) {\n segments.push(route.path);\n }\n // Recursively search the first matched child (deepest first match)\n if (route.children?.length) {\n return this.buildFullPaths(route.children[0], segments);\n }\n return segments;\n }\n refreshRoutes() {\n const router = this.injector.get(Router);\n // 👇 On first call, remember what was there before:\n if (!this.originalConfig) {\n this.originalConfig = router.config;\n }\n this.applyMergedConfig(router);\n }\n applyMergedConfig(router) {\n const newHomeRoutes = this.getRegisteredRoutes(); // your 3 home entries\n // Filter the original routes to drop the old home placeholders.\n // We know your dynamic routes always have path === '' or ':app'\n // or carry a `data.key` matching one of your home-page keys.\n const otherRoutes = (this.originalConfig ?? [])\n .filter(r => r.path !== '' &&\n r.path !== ':app' &&\n !(r.data && typeof r.data['key'] === 'string'));\n // Build the new merged tree\n const merged = [\n ...newHomeRoutes,\n ...otherRoutes\n ];\n // TODO: check this for custom menu like :app/terms\n router.resetConfig(merged);\n }\n async navigateTo() {\n // wait for the router to be initialized \n setTimeout(() => {\n const router = this.injector.get(Router);\n const current = this.getCurrent();\n router.navigate([current.path]);\n }, 100);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2hvbWUtcGFnZS9ob21lLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFTLE1BQU0sRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxjQUFjLEVBQXlCLE1BQU0sbUJBQW1CLENBQUM7O0FBS3JHLE1BQU0sT0FBTyxrQkFBa0I7SUFVN0IsSUFBWSxjQUFjO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDtRQWJRLHVCQUFrQixHQUFHLE1BQU0sQ0FBUyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUM3RixvQkFBZSxHQUFrQixJQUFJLENBQUM7UUFDdEMsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZGLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLG1CQUFjLEdBQWtCLElBQUksQ0FBQztRQUNyQyxjQUFTLEdBQUcsWUFBWSxDQUFDO1FBTy9CLDZCQUE2QjtRQUM3QixVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDcEIsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLElBQUk7UUFDaEIsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsRUFBRTtRQUNGLE1BQU0sSUFBSSxHQUFHLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxFQUFFO1FBQ0YsS0FBSyxDQUNILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQzVCLENBQUMsU0FBUyxDQUNULEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNiLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxtQkFBbUI7UUFDakIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFM0YsTUFBTSxJQUFJLEdBQ1IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksZUFBZSxDQUFDO1FBQzdHLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDaEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsT0FBTztnQkFDTCxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO2dCQUNyRCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO2dCQUN6RCxFQUFFLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7YUFDeEYsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPO1lBQ0wsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUU7U0FDNUQsQ0FBQztJQUNKLENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDNUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFFLENBQUM7UUFDbEYsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ2hDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUztZQUNwQixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7SUFDSixDQUFDO0lBRU8sUUFBUSxDQUFDLE1BQWE7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO1FBQ3RELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQVksRUFBRSxhQUF1QixFQUFFO1FBQzVELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztRQUNqQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFFRCxtRUFBbUU7UUFDbkUsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzNCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU8sYUFBYTtRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsTUFBYztRQUN0QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFFLHNCQUFzQjtRQUV6RSxnRUFBZ0U7UUFDaEUsZ0VBQWdFO1FBQ2hFLDZEQUE2RDtRQUM3RCxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO2FBQzVDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNWLENBQUMsQ0FBQyxJQUFJLEtBQUssRUFBRTtZQUNiLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTTtZQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQy9DLENBQUM7UUFFSiw0QkFBNEI7UUFDNUIsTUFBTSxNQUFNLEdBQVc7WUFDckIsR0FBRyxhQUFhO1lBQ2hCLEdBQUcsV0FBVztTQUNmLENBQUM7UUFDRixtREFBbUQ7UUFDbkQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCwwQ0FBMEM7UUFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0FwSlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlLCBSb3V0ZXIsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXR0aW5ncyc7XG5pbXBvcnQgeyBBWFBIb21lUGFnZVNldHRpbmdzIH0gZnJvbSAnLi9ob21lLXBhZ2Utc2V0dGluZ3Mua2V5JztcbmltcG9ydCB7IEFYUF9IT01FX1BBR0VfREVGQVVMVF9LRVksIEFYUF9IT01FX1BBR0VTLCBBWFBIb21lUGFnZURlZmluaXRpb24gfSBmcm9tICcuL2hvbWUtcGFnZS50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBIb21lUGFnZVNlcnZpY2Uge1xuICBwcml2YXRlIGRlZmF1bHRIb21lUGFnZUtleSA9IGluamVjdDxzdHJpbmc+KEFYUF9IT01FX1BBR0VfREVGQVVMVF9LRVksIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gJ2hvbWUnO1xuICBwcml2YXRlIHVzZXJIb21lUGFnZUtleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2FuZGlkYXRlcyA9IGluamVjdDxBWFBIb21lUGFnZURlZmluaXRpb25bXT4oQVhQX0hPTUVfUEFHRVMsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG4gIHByaXZhdGUgc2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEFYUFNldHRpbmdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIG9yaWdpbmFsQ29uZmlnOiBSb3V0ZXMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsb2dpblBhdGggPSAnYXV0aC9sb2dpbic7XG5cbiAgcHJpdmF0ZSBnZXQgZmxhdENhbmRpZGF0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FuZGlkYXRlcy5mbGF0TWFwKChjKSA9PiBjKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIHJlbW92ZSBjaXJjdWxhciBkZXBlbmRlbmN5XG4gICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5pdCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICAvL1xuICAgIGNvbnN0IGtleXMgPSBbQVhQSG9tZVBhZ2VTZXR0aW5ncy5Vc2VySG9tZVBhdGhdO1xuICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLm9uQ2hhbmdlZC5zdWJzY3JpYmUoYXN5bmMgKGMpID0+IHtcbiAgICAgIGlmIChrZXlzLnNvbWUoKGspID0+IGMua2V5cy5pbmNsdWRlcyhrKSkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgICAgIHRoaXMucmVmcmVzaFJvdXRlcygpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vXG4gICAgbWVyZ2UoXG4gICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnN0YXR1cyQsXG4gICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLmFwcGxpY2F0aW9uJCxcbiAgICAgIHRoaXMuc2Vzc2lvblNlcnZpY2UudGVuYW50JCxcbiAgICApLnN1YnNjcmliZShcbiAgICAgIGFzeW5jIChkYXRhKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgICAgICB0aGlzLnJlZnJlc2hSb3V0ZXMoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnVzZXJIb21lUGFnZUtleSA9IGF3YWl0IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmdldChBWFBIb21lUGFnZVNldHRpbmdzLlVzZXJIb21lUGF0aCk7XG4gIH1cblxuICBnZXRSZWdpc3RlcmVkTGlzdCgpOiBBWFBIb21lUGFnZURlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhdENhbmRpZGF0ZXMuZmlsdGVyKChjKSA9PiBjLnJvdXRlKTtcbiAgfVxuXG4gIGdldFJlZ2lzdGVyZWRSb3V0ZXMoKTogUm91dGVzIHtcbiAgICBjb25zdCBkZWZhdWx0SG9tZVBhZ2UgPSB0aGlzLmZsYXRDYW5kaWRhdGVzLmZpbmQoKGMpID0+IGMua2V5ID09PSB0aGlzLmRlZmF1bHRIb21lUGFnZUtleSk7XG5cbiAgICBjb25zdCBob21lID1cbiAgICAgIHRoaXMuZmxhdENhbmRpZGF0ZXMuZmluZCgoYykgPT4gdGhpcy51c2VySG9tZVBhZ2VLZXkgJiYgYy5rZXkgPT09IHRoaXMudXNlckhvbWVQYWdlS2V5KSA/PyBkZWZhdWx0SG9tZVBhZ2U7XG4gICAgaWYgKGhvbWUgJiYgaG9tZS5yb3V0ZSAmJiB0aGlzLnNlc3Npb25TZXJ2aWNlLmFwcGxpY2F0aW9uPy5uYW1lKSB7XG4gICAgICBjb25zdCBmdWxsUGF0aCA9IHRoaXMuZmluZFBhdGgoaG9tZS5yb3V0ZSk7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7IHBhdGg6ICcnLCByZWRpcmVjdFRvOiBmdWxsUGF0aCwgcGF0aE1hdGNoOiAnZnVsbCcgfSxcbiAgICAgICAgeyBwYXRoOiAnOmFwcCcsIHJlZGlyZWN0VG86IGZ1bGxQYXRoLCBwYXRoTWF0Y2g6ICdmdWxsJyB9LFxuICAgICAgICB7IC4uLmhvbWU/LnJvdXRlLCAuLi57IGRhdGE6IHsga2V5OiBob21lPy5rZXksIHRpdGxlOiBob21lPy50aXRsZSwgcGF0aDogZnVsbFBhdGggfSB9IH0sXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgeyBwYXRoOiAnJywgcmVkaXJlY3RUbzogdGhpcy5sb2dpblBhdGgsIHBhdGhNYXRjaDogJ2Z1bGwnIH0sXG4gICAgXTtcbiAgfVxuXG4gIGdldEN1cnJlbnQoKTogeyBwYXRoOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy51c2VySG9tZVBhZ2VLZXkgPz8gdGhpcy5kZWZhdWx0SG9tZVBhZ2VLZXk7XG4gICAgY29uc3QgaG9tZVBhZ2UgPSB0aGlzLmdldFJlZ2lzdGVyZWRSb3V0ZXMoKS5maW5kKChjKSA9PiBjLmRhdGE/Llsna2V5J10gPT09IGtleSkhO1xuICAgIGlmIChob21lUGFnZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogaG9tZVBhZ2UuZGF0YT8uWydwYXRoJ10sXG4gICAgICAgIHRpdGxlOiBob21lUGFnZS5kYXRhPy5bJ3RpdGxlJ10sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogdGhpcy5sb2dpblBhdGgsXG4gICAgICB0aXRsZTogJycsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhdGgodGFyZ2V0OiBSb3V0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF3UGF0aCA9IHRoaXMuYnVpbGRGdWxsUGF0aHModGFyZ2V0KS5qb2luKCcvJyk7XG4gICAgY29uc3QgYXBwTmFtZSA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWU7XG4gICAgaWYgKGFwcE5hbWUpIHtcbiAgICAgIHJldHVybiByYXdQYXRoLnJlcGxhY2UoJzphcHAnLCBhcHBOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHJhd1BhdGg7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRnVsbFBhdGhzKHJvdXRlOiBSb3V0ZSwgcGFyZW50UGF0aDogc3RyaW5nW10gPSBbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IFsuLi5wYXJlbnRQYXRoXTtcbiAgICBpZiAocm91dGUucGF0aCkge1xuICAgICAgc2VnbWVudHMucHVzaChyb3V0ZS5wYXRoKTtcbiAgICB9XG5cbiAgICAvLyBSZWN1cnNpdmVseSBzZWFyY2ggdGhlIGZpcnN0IG1hdGNoZWQgY2hpbGQgKGRlZXBlc3QgZmlyc3QgbWF0Y2gpXG4gICAgaWYgKHJvdXRlLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkRnVsbFBhdGhzKHJvdXRlLmNoaWxkcmVuWzBdLCBzZWdtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlZ21lbnRzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoUm91dGVzKCkge1xuICAgIGNvbnN0IHJvdXRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG5cbiAgICAvLyDwn5GHIE9uIGZpcnN0IGNhbGwsIHJlbWVtYmVyIHdoYXQgd2FzIHRoZXJlIGJlZm9yZTpcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxDb25maWcpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxDb25maWcgPSByb3V0ZXIuY29uZmlnO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbHlNZXJnZWRDb25maWcocm91dGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlNZXJnZWRDb25maWcocm91dGVyOiBSb3V0ZXIpIHtcbiAgICBjb25zdCBuZXdIb21lUm91dGVzID0gdGhpcy5nZXRSZWdpc3RlcmVkUm91dGVzKCk7ICAvLyB5b3VyIDMgaG9tZSBlbnRyaWVzXG5cbiAgICAvLyBGaWx0ZXIgdGhlIG9yaWdpbmFsIHJvdXRlcyB0byBkcm9wIHRoZSBvbGQgaG9tZSBwbGFjZWhvbGRlcnMuXG4gICAgLy8gV2Uga25vdyB5b3VyIGR5bmFtaWMgcm91dGVzIGFsd2F5cyBoYXZlIHBhdGggPT09ICcnIG9yICc6YXBwJ1xuICAgIC8vIG9yIGNhcnJ5IGEgYGRhdGEua2V5YCBtYXRjaGluZyBvbmUgb2YgeW91ciBob21lLXBhZ2Uga2V5cy5cbiAgICBjb25zdCBvdGhlclJvdXRlcyA9ICh0aGlzLm9yaWdpbmFsQ29uZmlnID8/IFtdKVxuICAgICAgLmZpbHRlcihyID0+XG4gICAgICAgIHIucGF0aCAhPT0gJycgJiZcbiAgICAgICAgci5wYXRoICE9PSAnOmFwcCcgJiZcbiAgICAgICAgIShyLmRhdGEgJiYgdHlwZW9mIHIuZGF0YVsna2V5J10gPT09ICdzdHJpbmcnKVxuICAgICAgKTtcblxuICAgIC8vIEJ1aWxkIHRoZSBuZXcgbWVyZ2VkIHRyZWVcbiAgICBjb25zdCBtZXJnZWQ6IFJvdXRlcyA9IFtcbiAgICAgIC4uLm5ld0hvbWVSb3V0ZXMsXG4gICAgICAuLi5vdGhlclJvdXRlc1xuICAgIF07XG4gICAgLy8gVE9ETzogY2hlY2sgdGhpcyBmb3IgY3VzdG9tIG1lbnUgbGlrZSA6YXBwL3Rlcm1zXG4gICAgcm91dGVyLnJlc2V0Q29uZmlnKG1lcmdlZCk7XG4gIH1cblxuICBhc3luYyBuYXZpZ2F0ZVRvKCkge1xuICAgIC8vIHdhaXQgZm9yIHRoZSByb3V0ZXIgdG8gYmUgaW5pdGlhbGl6ZWQgIFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3Qgcm91dGVyID0gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnQoKTtcbiAgICAgIHJvdXRlci5uYXZpZ2F0ZShbY3VycmVudC5wYXRoXSk7XG4gICAgfSwgMTAwKTtcbiAgfVxufVxuIl19","import { inject, makeEnvironmentProviders } from \"@angular/core\";\nimport { ROUTES } from \"@angular/router\";\nimport { AXPHomePageService } from \"./home-page.service\";\nfunction dynamicRoutesFactory() {\n const service = inject(AXPHomePageService);\n return service.getRegisteredRoutes();\n}\nexport function provideDynamicHomePage() {\n return makeEnvironmentProviders([\n {\n provide: ROUTES,\n useFactory: dynamicRoutesFactory,\n multi: true\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvaG9tZS1wYWdlL2hvbWUtcGFnZS5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixNQUFNLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpELFNBQVMsb0JBQW9CO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNDLE9BQU8sT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0I7SUFDbEMsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QjtZQUNJLE9BQU8sRUFBRSxNQUFNO1lBQ2YsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBpbmplY3QsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSb3V0ZXMsIFJPVVRFUyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IEFYUEhvbWVQYWdlU2VydmljZSB9IGZyb20gXCIuL2hvbWUtcGFnZS5zZXJ2aWNlXCI7XG5cbmZ1bmN0aW9uIGR5bmFtaWNSb3V0ZXNGYWN0b3J5KCk6IFJvdXRlcyB7XG4gICAgY29uc3Qgc2VydmljZSA9IGluamVjdChBWFBIb21lUGFnZVNlcnZpY2UpO1xuICAgIHJldHVybiBzZXJ2aWNlLmdldFJlZ2lzdGVyZWRSb3V0ZXMoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEeW5hbWljSG9tZVBhZ2UoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBST1VURVMsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBkeW5hbWljUm91dGVzRmFjdG9yeSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdKTtcbn0iXX0=","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPPlatformScope, objectKeyValueTransforms } from '@acorex/platform/core';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { AXPHomePageSettings } from './home-page-settings.key';\nimport { AXPHomePageService } from './home-page.service';\nimport { AXP_HOME_PAGE_DEFAULT_KEY } from './home-page.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPHomePageSettingProvider {\n constructor(injector) {\n this.injector = injector;\n this.translateService = this.injector.get(AXTranslationService);\n this.homePageService = this.injector.get(AXPHomePageService);\n this.defaultHomePageKey = inject(AXP_HOME_PAGE_DEFAULT_KEY, { optional: true }) ?? 'home';\n }\n async provide(context) {\n const trans = async (key) => await this.translateService.translateAsync(`@general:settings.${key}`);\n const list = await this.homePageService.getRegisteredList().map((c) => ({ id: c.key, title: c.title }));\n if (list.length === 0) {\n return;\n }\n // Define the 'General Settings' group\n context\n .addGroup('general', await trans('general.title'), await trans('general.description'), 'fa-light fa-palette')\n // Add the 'Startup' section\n .addSection('startup', await trans('general.startup.title'), await trans('general.startup.description'))\n // Add the 'Home Page' setting\n .addSetting({\n key: AXPHomePageSettings.UserHomePath,\n title: await trans('general.startup.home-page.title'),\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: this.defaultHomePageKey || list[0].id,\n valueTransforms: objectKeyValueTransforms('id'),\n widget: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'id',\n textField: 'title',\n dataSource: list,\n },\n },\n description: await trans('general.startup.home-page.description'),\n })\n // End the 'Startup' section\n .endSection()\n // End the 'General Settings' group\n .endGroup();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageSettingProvider, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageSettingProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageSettingProvider, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLXNldHRpbmdzLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9ob21lLXBhZ2UvaG9tZS1wYWdlLXNldHRpbmdzLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHOUQsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSnJCLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0Qsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pFLHVCQUFrQixHQUFHLE1BQU0sQ0FBUyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUUzRCxDQUFDO0lBRTNDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBNEM7UUFDeEQsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQVcsRUFBRSxFQUFFLENBQ2xDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV6RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsT0FBTzthQUNKLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFBRSxxQkFBcUIsQ0FBQztZQUU3Ryw0QkFBNEI7YUFDM0IsVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDeEcsOEJBQThCO2FBQzdCLFVBQVUsQ0FBQztZQUNWLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxZQUFZO1lBQ3JDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztZQUNyRCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtZQUM1QixXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25ELGVBQWUsRUFBRSx3QkFBd0IsQ0FBQyxJQUFJLENBQUM7WUFDL0MsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO2dCQUM5QixPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxPQUFPO29CQUNsQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7YUFDRjtZQUNELFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQztTQUNsRSxDQUFDO1lBRUYsNEJBQTRCO2FBQzNCLFVBQVUsRUFBRTtZQUViLG1DQUFtQzthQUNsQyxRQUFRLEVBQUUsQ0FBQztJQUNoQixDQUFDOytHQTlDVSwwQkFBMEI7bUhBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFBsYXRmb3JtU2NvcGUsIG9iamVjdEtleVZhbHVlVHJhbnNmb3JtcyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXIsIEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnLi4vc2V0dGluZ3MnO1xuaW1wb3J0IHsgQVhQSG9tZVBhZ2VTZXR0aW5ncyB9IGZyb20gJy4vaG9tZS1wYWdlLXNldHRpbmdzLmtleSc7XG5pbXBvcnQgeyBBWFBIb21lUGFnZVNlcnZpY2UgfSBmcm9tICcuL2hvbWUtcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9IT01FX1BBR0VfREVGQVVMVF9LRVkgfSBmcm9tICcuL2hvbWUtcGFnZS50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBIb21lUGFnZVNldHRpbmdQcm92aWRlciBpbXBsZW1lbnRzIEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaG9tZVBhZ2VTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQSG9tZVBhZ2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkZWZhdWx0SG9tZVBhZ2VLZXkgPSBpbmplY3Q8c3RyaW5nPihBWFBfSE9NRV9QQUdFX0RFRkFVTFRfS0VZLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/ICdob21lJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcikgeyB9XG5cbiAgYXN5bmMgcHJvdmlkZShjb250ZXh0OiBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHRyYW5zID0gYXN5bmMgKGtleTogc3RyaW5nKSA9PlxuICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKGBAZ2VuZXJhbDpzZXR0aW5ncy4ke2tleX1gKTtcblxuICAgIGNvbnN0IGxpc3QgPSBhd2FpdCB0aGlzLmhvbWVQYWdlU2VydmljZS5nZXRSZWdpc3RlcmVkTGlzdCgpLm1hcCgoYykgPT4gKHsgaWQ6IGMua2V5LCB0aXRsZTogYy50aXRsZSB9KSk7XG4gICAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGVmaW5lIHRoZSAnR2VuZXJhbCBTZXR0aW5ncycgZ3JvdXBcbiAgICBjb250ZXh0XG4gICAgICAuYWRkR3JvdXAoJ2dlbmVyYWwnLCBhd2FpdCB0cmFucygnZ2VuZXJhbC50aXRsZScpLCBhd2FpdCB0cmFucygnZ2VuZXJhbC5kZXNjcmlwdGlvbicpLCAnZmEtbGlnaHQgZmEtcGFsZXR0ZScpXG5cbiAgICAgIC8vIEFkZCB0aGUgJ1N0YXJ0dXAnIHNlY3Rpb25cbiAgICAgIC5hZGRTZWN0aW9uKCdzdGFydHVwJywgYXdhaXQgdHJhbnMoJ2dlbmVyYWwuc3RhcnR1cC50aXRsZScpLCBhd2FpdCB0cmFucygnZ2VuZXJhbC5zdGFydHVwLmRlc2NyaXB0aW9uJykpXG4gICAgICAvLyBBZGQgdGhlICdIb21lIFBhZ2UnIHNldHRpbmdcbiAgICAgIC5hZGRTZXR0aW5nKHtcbiAgICAgICAga2V5OiBBWFBIb21lUGFnZVNldHRpbmdzLlVzZXJIb21lUGF0aCxcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCdnZW5lcmFsLnN0YXJ0dXAuaG9tZS1wYWdlLnRpdGxlJyksXG4gICAgICAgIHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlLlVzZXIsXG4gICAgICAgIGlzSW5oZXJpdGVkOiB0cnVlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZGVmYXVsdEhvbWVQYWdlS2V5IHx8IGxpc3RbMF0uaWQsXG4gICAgICAgIHZhbHVlVHJhbnNmb3Jtczogb2JqZWN0S2V5VmFsdWVUcmFuc2Zvcm1zKCdpZCcpLFxuICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2lkJyxcbiAgICAgICAgICAgIHRleHRGaWVsZDogJ3RpdGxlJyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGxpc3QsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCdnZW5lcmFsLnN0YXJ0dXAuaG9tZS1wYWdlLmRlc2NyaXB0aW9uJyksXG4gICAgICB9KVxuXG4gICAgICAvLyBFbmQgdGhlICdTdGFydHVwJyBzZWN0aW9uXG4gICAgICAuZW5kU2VjdGlvbigpXG5cbiAgICAgIC8vIEVuZCB0aGUgJ0dlbmVyYWwgU2V0dGluZ3MnIGdyb3VwXG4gICAgICAuZW5kR3JvdXAoKTtcbiAgfVxufVxuIl19","import { NgModule } from '@angular/core';\nimport { AXP_SETTING_DEFINITION_PROVIDER } from '../settings';\nimport { AXPHomePageSettingProvider } from './home-page-settings.provider';\nimport * as i0 from \"@angular/core\";\nexport class AXPHomePageModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageModule, providers: [\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXPHomePageSettingProvider,\n multi: true,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHomePageModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n providers: [\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXPHomePageSettingProvider,\n multi: true,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvaG9tZS1wYWdlL2hvbWUtcGFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBWTNFLE1BQU0sT0FBTyxpQkFBaUI7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsYUFSakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsK0JBQStCO2dCQUN4QyxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzRGQUVVLGlCQUFpQjtrQkFWN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtvQkFDWCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsUUFBUSxFQUFFLDBCQUEwQjs0QkFDcEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUiB9IGZyb20gJy4uL3NldHRpbmdzJztcbmltcG9ydCB7IEFYUEhvbWVQYWdlU2V0dGluZ1Byb3ZpZGVyIH0gZnJvbSAnLi9ob21lLXBhZ2Utc2V0dGluZ3MucHJvdmlkZXInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBIb21lUGFnZVNldHRpbmdQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEhvbWVQYWdlTW9kdWxlIHt9XG4iXX0=","export class AXPDataProvider {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wcm92aWRlci50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvZGF0YS9kYXRhLXByb3ZpZGVyLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsZUFBZTtDQWFwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBEYXRhUHJvdmlkZXIge1xuICBhYnN0cmFjdCBpbnNlcnRPbmUoZW50aXR5OiBhbnksIGVudGl0eUl0ZW06IGFueSk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgaW5zZXJ0TWFueShlbnRpdHk6IGFueSwgZW50aXR5TGlzdDogYW55KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBnZXRPbmUoZW50aXR5OiBhbnksIGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGdldE1hbnkoZW50aXR5OiBhbnksIHBhcmFtcz86IGFueSk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgdXBkYXRlT25lKGVudGl0eTogYW55LCBpZD86IHN0cmluZywgZGF0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGRlbGV0ZU9uZShlbnRpdHk6IGFueSwgaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZ2V0Rmlyc3QoZW50aXR5OiBhbnkpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHVwbG9hZEZpbGUoZmlsZTogRmlsZSwgdGl0bGU6IHN0cmluZywgY3VzdG9tVXJsPzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+O1xuICBhYnN0cmFjdCB1cGRhdGVGaWxlKGlkOnN0cmluZyxmaWxlOiBGaWxlLCB0aXRsZTogc3RyaW5nLCBjdXN0b21Vcmw/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz47XG4gIGFic3RyYWN0IHVwbG9hZE11bHRpcGxlRmlsZXMoZmlsZXM6IEZpbGVbXSwgdGl0bGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+O1xuICBhYnN0cmFjdCB2aWV3RmlsZShpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEJsb2I+O1xuICBhYnN0cmFjdCBkb3dubG9hZEZpbGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKTogUHJvbWlzZTxCbG9iPjtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPCustomOperatorService {\n}\nexport class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {\n getCustomOperators() {\n return {};\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCustomOperatorServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCustomOperatorServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCustomOperatorServiceImpl, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3JzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2RhdGEvb3BlcmF0b3JzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxPQUFnQix3QkFBd0I7Q0FFN0M7QUFHRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsd0JBQXdCO0lBQ3hFLGtCQUFrQjtRQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7K0dBSFUsNEJBQTRCO21IQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2VPcGVyYXRvciB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBDdXN0b21PcGVyYXRvclNlcnZpY2Uge1xuICBhYnN0cmFjdCBnZXRDdXN0b21PcGVyYXRvcnMoKTogeyBba2V5OiBzdHJpbmddOiBBWERhdGFTb3VyY2VPcGVyYXRvciB9O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQQ3VzdG9tT3BlcmF0b3JTZXJ2aWNlSW1wbCBleHRlbmRzIEFYUEN1c3RvbU9wZXJhdG9yU2VydmljZSB7XG4gIGdldEN1c3RvbU9wZXJhdG9ycygpOiB7IFtrZXk6IHN0cmluZ106IEFYRGF0YVNvdXJjZU9wZXJhdG9yIH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { ALL_DEFAULT_OPERATORS } from '../app';\nimport { AXPCustomOperatorService } from './operators.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPFilterOperatorMiddlewareService {\n}\nexport class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {\n constructor() {\n super(...arguments);\n this.customOperatorService = inject(AXPCustomOperatorService);\n this.operators = {\n ...this.getDefaultOperators(),\n ...this.customOperatorService.getCustomOperators(),\n };\n }\n transformFilters(filters) {\n return filters.map((filter) => this.transformFilter(filter));\n }\n transformFilter(filter) {\n const { operator, value, filters, field } = filter;\n // Find the operator (either default or custom)\n const filterOperator = this.operators[operator?.type ?? ''] || null;\n // Start by transforming the filter itself\n const transformedFilter = {\n ...filter, // Keep the original filter structure\n operator: filterOperator ? filterOperator : operator, // Add operator name\n };\n // If the filter contains nested filters, recursively transform them\n if (filters && filters.length > 0) {\n transformedFilter.filters = this.transformFilters(filters); // Recursively transform nested filters\n }\n return transformedFilter;\n }\n getOperator(key) {\n return this.operators[key];\n }\n // Helper function to return the default operators\n getDefaultOperators() {\n return ALL_DEFAULT_OPERATORS.reduce((acc, operator) => {\n acc[operator.name] = {\n type: operator.name,\n };\n return acc;\n }, {});\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW1pZGRsZXdhcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvZGF0YS9maWx0ZXItbWlkZGxld2FyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFL0QsTUFBTSxPQUFnQixrQ0FBa0M7Q0FpQnZEO0FBR0QsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLGtDQUFrQztJQUQ5Rjs7UUFFVSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUV6RCxjQUFTLEdBQTRDO1lBQzNELEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFO1NBQ25ELENBQUM7S0F5Q0g7SUF2Q0MsZ0JBQWdCLENBQUMsT0FBbUM7UUFDbEQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFnQztRQUM5QyxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ25ELCtDQUErQztRQUMvQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO1FBRXBFLDBDQUEwQztRQUMxQyxNQUFNLGlCQUFpQixHQUE2QjtZQUNsRCxHQUFHLE1BQU0sRUFBRSxxQ0FBcUM7WUFDaEQsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CO1NBQzNFLENBQUM7UUFFRixvRUFBb0U7UUFDcEUsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUNBQXVDO1FBQ3JHLENBQUM7UUFFRCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGtEQUFrRDtJQUMxQyxtQkFBbUI7UUFDekIsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQ2pDLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsSUFBVzthQUMzQixDQUFDO1lBQ0YsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0QsRUFBNkMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7K0dBOUNVLHNDQUFzQzttSEFBdEMsc0NBQXNDOzs0RkFBdEMsc0NBQXNDO2tCQURsRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLCBBWERhdGFTb3VyY2VPcGVyYXRvciB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFMTF9ERUZBVUxUX09QRVJBVE9SUyB9IGZyb20gJy4uL2FwcCc7XG5pbXBvcnQgeyBBWFBDdXN0b21PcGVyYXRvclNlcnZpY2UgfSBmcm9tICcuL29wZXJhdG9ycy5zZXJ2aWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2Uge1xuICAvKipcbiAgICogTWlkZGxld2FyZSB0byB0cmFuc2Zvcm0gc2VsZWN0ZWQgZmlsdGVycyBpbnRvIGNvcnJlc3BvbmRpbmcgb3BlcmF0b3JzLlxuICAgKiBAcGFyYW0gZmlsdGVycyBBcnJheSBvZiBzZWxlY3RlZCBmaWx0ZXJzIChlLmcuLCB1c2VyIGlucHV0KS5cbiAgICogQHBhcmFtIGN1c3RvbU9wZXJhdG9ycyBPcHRpb25hbCBjdXN0b20gb3BlcmF0b3JzIG1hcCB0byBvdmVycmlkZSBkZWZhdWx0IG9wZXJhdG9ycy5cbiAgICogQHJldHVybnMgVHJhbnNmb3JtZWQgZmlsdGVycyBiYXNlZCBvbiBjdXN0b20gb3IgZGVmYXVsdCBvcGVyYXRvcnMuXG4gICAqL1xuICBhYnN0cmFjdCB0cmFuc2Zvcm1GaWx0ZXJzKGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdKTogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW107XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gdHJhbnNmb3JtIGEgc2luZ2xlIGZpbHRlci4gVGhpcyBoYW5kbGVzIHJlY3Vyc2lvbiBmb3IgbmVzdGVkIGZpbHRlcnMuXG4gICAqIEBwYXJhbSBmaWx0ZXIgQSBzaW5nbGUgZmlsdGVyIG9iamVjdC5cbiAgICogQHJldHVybnMgVHJhbnNmb3JtZWQgZmlsdGVyLlxuICAgKi9cbiAgYWJzdHJhY3QgdHJhbnNmb3JtRmlsdGVyKGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbik6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbjtcblxuICBhYnN0cmFjdCBnZXRPcGVyYXRvcihrZXk6IHN0cmluZyk6IEFYRGF0YVNvdXJjZU9wZXJhdG9yO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZUltcGwgZXh0ZW5kcyBBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjdXN0b21PcGVyYXRvclNlcnZpY2UgPSBpbmplY3QoQVhQQ3VzdG9tT3BlcmF0b3JTZXJ2aWNlKTtcblxuICBwcml2YXRlIG9wZXJhdG9yczogeyBba2V5OiBzdHJpbmddOiBBWERhdGFTb3VyY2VPcGVyYXRvciB9ID0ge1xuICAgIC4uLnRoaXMuZ2V0RGVmYXVsdE9wZXJhdG9ycygpLFxuICAgIC4uLnRoaXMuY3VzdG9tT3BlcmF0b3JTZXJ2aWNlLmdldEN1c3RvbU9wZXJhdG9ycygpLFxuICB9O1xuXG4gIHRyYW5zZm9ybUZpbHRlcnMoZmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10pOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb25bXSB7XG4gICAgcmV0dXJuIGZpbHRlcnMubWFwKChmaWx0ZXIpID0+IHRoaXMudHJhbnNmb3JtRmlsdGVyKGZpbHRlcikpO1xuICB9XG5cbiAgdHJhbnNmb3JtRmlsdGVyKGZpbHRlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uKTogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIHtcbiAgICBjb25zdCB7IG9wZXJhdG9yLCB2YWx1ZSwgZmlsdGVycywgZmllbGQgfSA9IGZpbHRlcjtcbiAgICAvLyBGaW5kIHRoZSBvcGVyYXRvciAoZWl0aGVyIGRlZmF1bHQgb3IgY3VzdG9tKVxuICAgIGNvbnN0IGZpbHRlck9wZXJhdG9yID0gdGhpcy5vcGVyYXRvcnNbb3BlcmF0b3I/LnR5cGUgPz8gJyddIHx8IG51bGw7XG5cbiAgICAvLyBTdGFydCBieSB0cmFuc2Zvcm1pbmcgdGhlIGZpbHRlciBpdHNlbGZcbiAgICBjb25zdCB0cmFuc2Zvcm1lZEZpbHRlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgICAgLi4uZmlsdGVyLCAvLyBLZWVwIHRoZSBvcmlnaW5hbCBmaWx0ZXIgc3RydWN0dXJlXG4gICAgICBvcGVyYXRvcjogZmlsdGVyT3BlcmF0b3IgPyBmaWx0ZXJPcGVyYXRvciA6IG9wZXJhdG9yLCAvLyBBZGQgb3BlcmF0b3IgbmFtZVxuICAgIH07XG5cbiAgICAvLyBJZiB0aGUgZmlsdGVyIGNvbnRhaW5zIG5lc3RlZCBmaWx0ZXJzLCByZWN1cnNpdmVseSB0cmFuc2Zvcm0gdGhlbVxuICAgIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgdHJhbnNmb3JtZWRGaWx0ZXIuZmlsdGVycyA9IHRoaXMudHJhbnNmb3JtRmlsdGVycyhmaWx0ZXJzKTsgLy8gUmVjdXJzaXZlbHkgdHJhbnNmb3JtIG5lc3RlZCBmaWx0ZXJzXG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkRmlsdGVyO1xuICB9XG5cbiAgZ2V0T3BlcmF0b3Ioa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRvcnNba2V5XTtcbiAgfVxuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byByZXR1cm4gdGhlIGRlZmF1bHQgb3BlcmF0b3JzXG4gIHByaXZhdGUgZ2V0RGVmYXVsdE9wZXJhdG9ycygpOiB7IFtrZXk6IHN0cmluZ106IEFYRGF0YVNvdXJjZU9wZXJhdG9yIH0ge1xuICAgIHJldHVybiBBTExfREVGQVVMVF9PUEVSQVRPUlMucmVkdWNlKFxuICAgICAgKGFjYywgb3BlcmF0b3IpID0+IHtcbiAgICAgICAgYWNjW29wZXJhdG9yLm5hbWVdID0ge1xuICAgICAgICAgIHR5cGU6IG9wZXJhdG9yLm5hbWUgYXMgYW55LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogQVhEYXRhU291cmNlT3BlcmF0b3IgfSxcbiAgICApO1xuICB9XG59XG4iXX0=","import { Injectable, Injector } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPErrorHandlerRegistryService {\n constructor(injector) {\n this.injector = injector;\n this.errorHandlers = [];\n }\n register(...plugins) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const handler = childInjector.get(t);\n if (handler) {\n this.errorHandlers.push(handler);\n }\n });\n }\n get handlers() {\n return this.errorHandlers;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPErrorHandlerRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPErrorHandlerRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPErrorHandlerRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9lcnJvcnMvZXJyb3ItaGFuZGxlci1yZWdpc3RyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1yRCxNQUFNLE9BQU8sOEJBQThCO0lBR3ZDLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFGOUIsa0JBQWEsR0FBc0IsRUFBRSxDQUFDO0lBRzlDLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRyxPQUFzQztRQUM5QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDckgsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFHRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQzsrR0FuQlEsOEJBQThCO21IQUE5Qiw4QkFBOEIsY0FGM0IsTUFBTTs7NEZBRVQsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUEVycm9ySGFuZGxlciB9IGZyb20gXCIuL2Vycm9yLWhhbmRsZXIudHlwZXNcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBWFBFcnJvckhhbmRsZXJSZWdpc3RyeVNlcnZpY2Uge1xuICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyczogQVhQRXJyb3JIYW5kbGVyW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXIoLi4ucGx1Z2luczogKG5ldyAoKSA9PiBBWFBFcnJvckhhbmRsZXIpW10pIHtcbiAgICAgICAgcGx1Z2lucy5mb3JFYWNoKHQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7IHByb3ZpZGVyczogW3sgcHJvdmlkZTogdCwgdXNlQ2xhc3M6IHQsIGRlcHM6IFtdIH1dLCBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IgfSk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gY2hpbGRJbmplY3Rvci5nZXQodCk7XG4gICAgICAgICAgICBpZiAoaGFuZGxlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JIYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuXG4gICAgcHVibGljIGdldCBoYW5kbGVycygpOiBBWFBFcnJvckhhbmRsZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlcnM7XG4gICAgfVxufSJdfQ==","import { ErrorHandler, Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandlerRegistryService } from \"./error-handler-registry.service\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./error-handler-registry.service\";\nexport class AXPGlobalErrorHandler extends ErrorHandler {\n constructor(injector, registry) {\n super();\n this.injector = injector;\n this.registry = registry;\n }\n handleError(error) {\n const handleErrorRecursively = (index, error) => {\n const errorHandlers = this.registry.handlers;\n if (index < errorHandlers.length) {\n errorHandlers[index].handleError(error, (err) => {\n handleErrorRecursively(index + 1, err);\n });\n }\n else {\n super.handleError(error); // Fallback to default handler\n }\n };\n if (error.message?.startsWith('NG0100')) {\n //ignore it\n return;\n }\n handleErrorRecursively(0, error);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPGlobalErrorHandler, deps: [{ token: i0.Injector }, { token: i1.AXPErrorHandlerRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPGlobalErrorHandler, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPGlobalErrorHandler, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AXPErrorHandlerRegistryService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWVycm9yLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2Vycm9ycy9nbG9iYWwtZXJyb3ItaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQUdsRixNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUluRCxZQUFvQixRQUFrQixFQUFVLFFBQXdDO1FBQ3BGLEtBQUssRUFBRSxDQUFBO1FBRFMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdDO0lBRXhGLENBQUM7SUFFUSxXQUFXLENBQUMsS0FBWTtRQUM3QixNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBYSxFQUFFLEtBQVUsRUFBRSxFQUFFO1lBQ3pELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQzdDLElBQUksS0FBSyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDNUMsc0JBQXNCLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtZQUM1RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3RDLFdBQVc7WUFDWCxPQUFNO1FBQ1YsQ0FBQztRQUNELHNCQUFzQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQXhCUSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQURSLE1BQU07OzRGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBWFBFcnJvckhhbmRsZXJSZWdpc3RyeVNlcnZpY2UgfSBmcm9tIFwiLi9lcnJvci1oYW5kbGVyLXJlZ2lzdHJ5LnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBHbG9iYWxFcnJvckhhbmRsZXIgZXh0ZW5kcyBFcnJvckhhbmRsZXIge1xuXG5cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIHJlZ2lzdHJ5OiBBWFBFcnJvckhhbmRsZXJSZWdpc3RyeVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGhhbmRsZUVycm9yKGVycm9yOiBFcnJvcikge1xuICAgICAgICBjb25zdCBoYW5kbGVFcnJvclJlY3Vyc2l2ZWx5ID0gKGluZGV4OiBudW1iZXIsIGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9ySGFuZGxlcnMgPSB0aGlzLnJlZ2lzdHJ5LmhhbmRsZXJzO1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgZXJyb3JIYW5kbGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBlcnJvckhhbmRsZXJzW2luZGV4XS5oYW5kbGVFcnJvcihlcnJvciwgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvclJlY3Vyc2l2ZWx5KGluZGV4ICsgMSwgZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuaGFuZGxlRXJyb3IoZXJyb3IpOyAvLyBGYWxsYmFjayB0byBkZWZhdWx0IGhhbmRsZXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGVycm9yLm1lc3NhZ2U/LnN0YXJ0c1dpdGgoJ05HMDEwMCcpKSB7XG4gICAgICAgICAgICAvL2lnbm9yZSBpdFxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgaGFuZGxlRXJyb3JSZWN1cnNpdmVseSgwLCBlcnJvcik7XG4gICAgfVxufVxuIl19","import { InjectionToken } from '@angular/core';\nexport const AXP_GLOBAL_VARIABLE_DEFINITION_PROVIDER = new InjectionToken('AXP_GLOBAL_VARIABLE_DEFINITION_PROVIDER', {\n factory: () => [],\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXZhcmlhYmxlLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2dsb2JhbC12YXJpYWJsZXMvZ2xvYmFsLXZhcmlhYmxlLWRlZmluaXRpb24ucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDdkUseUNBQXlDLEVBQ3pDO0lBQ0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Q0FDbEIsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uUHJvdmlkZXJUb2tlbiA9XG4gIHwgQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uUHJvdmlkZXJcbiAgfCBQcm9taXNlPEFYUEdsb2JhbFZhcmlhYmxlRGVmaW5pdGlvblByb3ZpZGVyPjtcblxuZXhwb3J0IGNvbnN0IEFYUF9HTE9CQUxfVkFSSUFCTEVfREVGSU5JVElPTl9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb25Qcm92aWRlclRva2VuW10+KFxuICAnQVhQX0dMT0JBTF9WQVJJQUJMRV9ERUZJTklUSU9OX1BST1ZJREVSJyxcbiAge1xuICAgIGZhY3Rvcnk6ICgpID0+IFtdLFxuICB9LFxuKTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb25Qcm92aWRlcjxUID0gYW55PiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIG9yZGVyPzogbnVtYmVyO1xuXG4gIGV4ZWN1dGUoKTogUHJvbWlzZTxUPiB8IFQ7XG59XG4iXX0=","//#region ---- Imports ----\nimport { inject, Injectable } from '@angular/core';\nimport { AXP_GLOBAL_VARIABLE_DEFINITION_PROVIDER } from './global-variable-definition.provider';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class AXPGlobalVariableDefinitionService {\n constructor() {\n //#region ---- Providers & Caches ----\n this.definitionProviders = inject(AXP_GLOBAL_VARIABLE_DEFINITION_PROVIDER, { optional: true }) || [];\n /** Cache for definitions by name. */\n this.definitionsByName = new Map();\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Returns a report definition by its id.\n * First checks the cache, then queries all providers if not found.\n * @param name The global variable name.\n * @returns The global variable definition if found, undefined otherwise.\n */\n async getByName(name) {\n // Check cache first\n if (this.definitionsByName.has(name)) {\n return this.definitionsByName.get(name);\n }\n // Not in cache, query providers (each provider is itself a global variable definition)\n const resolvedProviders = await Promise.all(this.definitionProviders);\n const match = resolvedProviders.find(def => def?.name === name);\n if (match) {\n this.definitionsByName.set(name, match);\n return match;\n }\n return undefined;\n }\n async execute(name) {\n const definition = await this.getByName(name);\n if (definition) {\n return await definition.execute();\n }\n return undefined;\n }\n //#endregion\n //#region ---- Cache Management ----\n /** Clears the definitions by name cache. */\n clearDefinitionsCache() {\n this.definitionsByName.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPGlobalVariableDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPGlobalVariableDefinitionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPGlobalVariableDefinitionService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXZhcmlhYmxlLWRlZmluaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvZ2xvYmFsLXZhcmlhYmxlcy9nbG9iYWwtdmFyaWFibGUtZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFHaEcsWUFBWTtBQUtaLE1BQU0sT0FBTyxrQ0FBa0M7SUFIL0M7UUFJRSwwQ0FBMEM7UUFFekIsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpILHFDQUFxQztRQUM3QixzQkFBaUIsR0FBNkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztLQTZDakY7SUE1Q0MsWUFBWTtJQUVaLGtDQUFrQztJQUVsQzs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUMxQixvQkFBb0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCx1RkFBdUY7UUFDdkYsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdEUsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoRSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBWTtRQUN4QixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE9BQU8sTUFBTSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUFZO0lBRVosd0NBQXdDO0lBRXhDLDRDQUE0QztJQUM1QyxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pDLENBQUM7K0dBaERVLGtDQUFrQzttSEFBbEMsa0NBQWtDLGNBRmpDLE1BQU07OzRGQUVQLGtDQUFrQztrQkFIOUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX0dMT0JBTF9WQVJJQUJMRV9ERUZJTklUSU9OX1BST1ZJREVSIH0gZnJvbSAnLi9nbG9iYWwtdmFyaWFibGUtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb24gfSBmcm9tICcuL2dsb2JhbC12YXJpYWJsZS50eXBlcyc7XG5cbi8vI2VuZHJlZ2lvblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uU2VydmljZSB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJvdmlkZXJzICYgQ2FjaGVzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmaW5pdGlvblByb3ZpZGVycyA9IGluamVjdChBWFBfR0xPQkFMX1ZBUklBQkxFX0RFRklOSVRJT05fUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgW107XG5cbiAgLyoqIENhY2hlIGZvciBkZWZpbml0aW9ucyBieSBuYW1lLiAqL1xuICBwcml2YXRlIGRlZmluaXRpb25zQnlOYW1lOiBNYXA8c3RyaW5nLCBBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb24+ID0gbmV3IE1hcCgpO1xuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBBUEkgICAtLS0tXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSByZXBvcnQgZGVmaW5pdGlvbiBieSBpdHMgaWQuXG4gICAqIEZpcnN0IGNoZWNrcyB0aGUgY2FjaGUsIHRoZW4gcXVlcmllcyBhbGwgcHJvdmlkZXJzIGlmIG5vdCBmb3VuZC5cbiAgICogQHBhcmFtIG5hbWUgVGhlIGdsb2JhbCB2YXJpYWJsZSBuYW1lLlxuICAgKiBAcmV0dXJucyBUaGUgZ2xvYmFsIHZhcmlhYmxlIGRlZmluaXRpb24gaWYgZm91bmQsIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAqL1xuICBhc3luYyBnZXRCeU5hbWUobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb24gfCB1bmRlZmluZWQ+IHtcbiAgICAvLyBDaGVjayBjYWNoZSBmaXJzdFxuICAgIGlmICh0aGlzLmRlZmluaXRpb25zQnlOYW1lLmhhcyhuYW1lKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvbnNCeU5hbWUuZ2V0KG5hbWUpO1xuICAgIH1cbiAgICAvLyBOb3QgaW4gY2FjaGUsIHF1ZXJ5IHByb3ZpZGVycyAoZWFjaCBwcm92aWRlciBpcyBpdHNlbGYgYSBnbG9iYWwgdmFyaWFibGUgZGVmaW5pdGlvbilcbiAgICBjb25zdCByZXNvbHZlZFByb3ZpZGVycyA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZGVmaW5pdGlvblByb3ZpZGVycyk7XG5cbiAgICBjb25zdCBtYXRjaCA9IHJlc29sdmVkUHJvdmlkZXJzLmZpbmQoZGVmID0+IGRlZj8ubmFtZSA9PT0gbmFtZSk7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICB0aGlzLmRlZmluaXRpb25zQnlOYW1lLnNldChuYW1lLCBtYXRjaCk7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBhc3luYyBleGVjdXRlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IGF3YWl0IHRoaXMuZ2V0QnlOYW1lKG5hbWUpO1xuICAgIGlmIChkZWZpbml0aW9uKSB7XG4gICAgICByZXR1cm4gYXdhaXQgZGVmaW5pdGlvbi5leGVjdXRlKCk7ICAgIFxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDYWNoZSBNYW5hZ2VtZW50ICAgLS0tLVxuXG4gIC8qKiBDbGVhcnMgdGhlIGRlZmluaXRpb25zIGJ5IG5hbWUgY2FjaGUuICovXG4gIGNsZWFyRGVmaW5pdGlvbnNDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlZmluaXRpb25zQnlOYW1lLmNsZWFyKCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==","import { inject } from \"@angular/core\";\nimport { AXPGlobalVariableDefinitionService } from \"./global-variable-definition.service\";\nexport class AXPGlobalVariableEvaluatorScopeProvider {\n constructor() {\n this.globalVariableService = inject(AXPGlobalVariableDefinitionService);\n }\n async provide(context) {\n context.addScope('variables', {\n execute: async (name) => {\n return await this.globalVariableService.execute(name);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXZhcmlhYmxlLWV2YWx1YXRvci1zY29wZS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvZ2xvYmFsLXZhcmlhYmxlcy9nbG9iYWwtdmFyaWFibGUtZXZhbHVhdG9yLXNjb3BlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFMUYsTUFBTSxPQUFPLHVDQUF1QztJQUFwRDtRQUVjLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBU2pGLENBQUM7SUFQRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1EO1FBQzdELE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO1lBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUU7Z0JBQzVCLE9BQU8sTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFELENBQUM7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyLCBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb3JlXCI7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uU2VydmljZSB9IGZyb20gXCIuL2dsb2JhbC12YXJpYWJsZS1kZWZpbml0aW9uLnNlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEFYUEdsb2JhbFZhcmlhYmxlRXZhbHVhdG9yU2NvcGVQcm92aWRlciBpbXBsZW1lbnRzIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyIHtcblxuICAgIHByb3RlY3RlZCBnbG9iYWxWYXJpYWJsZVNlcnZpY2UgPSBpbmplY3QoQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uU2VydmljZSk7XG5cbiAgICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb250ZXh0LmFkZFNjb3BlKCd2YXJpYWJsZXMnLCB7XG4gICAgICAgICAgICBleGVjdXRlOiBhc3luYyAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2xvYmFsVmFyaWFibGVTZXJ2aWNlLmV4ZWN1dGUobmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxufSJdfQ==","import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPStickyDirective {\n get isSticky() {\n return this._isSticky;\n }\n set isSticky(value) {\n if (this._isSticky !== value) {\n this._isSticky = value;\n this.isStickyChange.emit(value);\n }\n }\n constructor(element, renderer, zone, cdr) {\n this.element = element;\n this.renderer = renderer;\n this.zone = zone;\n this.cdr = cdr;\n this.stickyOffset = 100;\n this.isStickyChange = new EventEmitter();\n this._isSticky = false;\n this.onParentScroll = () => {\n this.zone.runOutsideAngular(() => {\n const scrollTop = this.parentElement === window ? window.scrollY : this.parentElement.scrollTop;\n const shouldStick = scrollTop + this.stickyOffset >= this.topOffset;\n if (shouldStick !== this.isSticky) {\n this.zone.run(() => {\n this.isSticky = shouldStick;\n this.toggleStickyClasses(shouldStick);\n this.cdr.markForCheck();\n });\n }\n });\n };\n }\n ngAfterViewInit() {\n this.initSticky();\n // Add mutation observer for dynamic content\n this.mutationObserver = new MutationObserver(() => {\n this.updateTopOffset();\n });\n this.mutationObserver.observe(this.element.nativeElement, {\n childList: true,\n subtree: true,\n });\n // Add resize event listener\n window.addEventListener('resize', this.updateTopOffset.bind(this));\n }\n initSticky() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n }\n else {\n this.parentElement = document.querySelector(this.stickyParent) || window;\n }\n this.targetElement = document.querySelector(this.stickyTarget) || this.element.nativeElement;\n this.updateTopOffset();\n this.parentElement.addEventListener('scroll', this.onParentScroll);\n }\n updateTopOffset() {\n this.zone.runOutsideAngular(() => {\n const rect = this.targetElement.getBoundingClientRect();\n this.topOffset = rect.top + (window.scrollY || 0);\n });\n }\n toggleStickyClasses(isSticky) {\n const classes = this.stickyClass.split(' ').filter(Boolean);\n classes.forEach((className) => {\n if (isSticky) {\n this.renderer.addClass(this.targetElement, className);\n }\n else {\n this.renderer.removeClass(this.targetElement, className);\n }\n });\n }\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n window.removeEventListener('resize', this.updateTopOffset.bind(this));\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPStickyDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.10\", type: AXPStickyDirective, isStandalone: true, selector: \"[axpSticky]\", inputs: { stickyClass: [\"axpSticky\", \"stickyClass\"], stickyOffset: \"stickyOffset\", stickyParent: \"stickyParent\", stickyTarget: \"stickyTarget\" }, outputs: { isStickyChange: \"isStickyChange\" }, exportAs: [\"axpSticky\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPStickyDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axpSticky]',\n exportAs: 'axpSticky',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { stickyClass: [{\n type: Input,\n args: ['axpSticky']\n }], stickyOffset: [{\n type: Input,\n args: ['stickyOffset']\n }], isStickyChange: [{\n type: Output\n }], stickyParent: [{\n type: Input\n }], stickyTarget: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvbGF5b3V0L3N0aWNreS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7O0FBT3ZCLE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsS0FBYztRQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFVRCxZQUNVLE9BQW1DLEVBQ25DLFFBQW1CLEVBQ25CLElBQVksRUFDWixHQUFzQjtRQUh0QixZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTNCVCxpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQUV4QyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXRFLGNBQVMsR0FBWSxLQUFLLENBQUM7UUErRDNCLG1CQUFjLEdBQUcsR0FBUyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMs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Q04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RSxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7K0dBdkdVLGtCQUFrQjttR0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztzQkFFRSxLQUFLO3VCQUFDLFdBQVc7O3NCQUNqQixLQUFLO3VCQUFDLGNBQWM7O3NCQUVwQixNQUFNOztzQkFrQk4sS0FBSzs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhwU3RpY2t5XScsXG4gIGV4cG9ydEFzOiAnYXhwU3RpY2t5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQU3RpY2t5RGlyZWN0aXZlIHtcbiAgQElucHV0KCdheHBTdGlja3knKSBzdGlja3lDbGFzcyE6IHN0cmluZztcbiAgQElucHV0KCdzdGlja3lPZmZzZXQnKSBzdGlja3lPZmZzZXQ6IG51bWJlciA9IDEwMDtcblxuICBAT3V0cHV0KCkgaXNTdGlja3lDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIF9pc1N0aWNreTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgZ2V0IGlzU3RpY2t5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc1N0aWNreTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzU3RpY2t5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX2lzU3RpY2t5ICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5faXNTdGlja3kgPSB2YWx1ZTtcbiAgICAgIHRoaXMuaXNTdGlja3lDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b3BPZmZzZXQhOiBudW1iZXI7XG4gIHByaXZhdGUgcGFyZW50RWxlbWVudCE6IEhUTUxFbGVtZW50IHwgV2luZG93O1xuICBwcml2YXRlIHRhcmdldEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBtdXRhdGlvbk9ic2VydmVyITogTXV0YXRpb25PYnNlcnZlcjtcblxuICBASW5wdXQoKSBzdGlja3lQYXJlbnQhOiBzdHJpbmcgfCBIVE1MRWxlbWVudDtcbiAgQElucHV0KCkgc3RpY2t5VGFyZ2V0ITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRTdGlja3koKTtcblxuICAgIC8vIEFkZCBtdXRhdGlvbiBvYnNlcnZlciBmb3IgZHluYW1pYyBjb250ZW50XG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVUb3BPZmZzZXQoKTtcbiAgICB9KTtcblxuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIHJlc2l6ZSBldmVudCBsaXN0ZW5lclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnVwZGF0ZVRvcE9mZnNldC5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN0aWNreSgpIHtcbiAgICBpZiAodGhpcy5zdGlja3lQYXJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50ID0gdGhpcy5zdGlja3lQYXJlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudCA9IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc3RpY2t5UGFyZW50KSBhcyBIVE1MRWxlbWVudCkgfHwgd2luZG93O1xuICAgIH1cblxuICAgIHRoaXMudGFyZ2V0RWxlbWVudCA9IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc3RpY2t5VGFyZ2V0KSBhcyBIVE1MRWxlbWVudCkgfHwgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLnVwZGF0ZVRvcE9mZnNldCgpO1xuICAgIHRoaXMucGFyZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uUGFyZW50U2Nyb2xsKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVG9wT2Zmc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCByZWN0ID0gdGhpcy50YXJnZXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy50b3BPZmZzZXQgPSByZWN0LnRvcCArICh3aW5kb3cuc2Nyb2xsWSB8fCAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25QYXJlbnRTY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMucGFyZW50RWxlbWVudCA9PT0gd2luZG93ID8gd2luZG93LnNjcm9sbFkgOiAodGhpcy5wYXJlbnRFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3A7XG5cbiAgICAgIGNvbnN0IHNob3VsZFN0aWNrID0gc2Nyb2xsVG9wICsgdGhpcy5zdGlja3lPZmZzZXQgPj0gdGhpcy50b3BPZmZzZXQ7XG5cbiAgICAgIGlmIChzaG91bGRTdGljayAhPT0gdGhpcy5pc1N0aWNreSkge1xuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzU3RpY2t5ID0gc2hvdWxkU3RpY2s7XG4gICAgICAgICAgdGhpcy50b2dnbGVTdGlja3lDbGFzc2VzKHNob3VsZFN0aWNrKTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgcHJpdmF0ZSB0b2dnbGVTdGlja3lDbGFzc2VzKGlzU3RpY2t5OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY2xhc3NlcyA9IHRoaXMuc3RpY2t5Q2xhc3Muc3BsaXQoJyAnKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgY2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWUpID0+IHtcbiAgICAgIGlmIChpc1N0aWNreSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudGFyZ2V0RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50YXJnZXRFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25QYXJlbnRTY3JvbGwpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnVwZGF0ZVRvcE9mZnNldC5iaW5kKHRoaXMpKTtcblxuICAgIGlmICh0aGlzLm11dGF0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXPComponentLogoConfig, AXPImageUrlLogoConfig } from '@acorex/platform/core';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/image\";\nexport class AXPLogoComponent {\n constructor() {\n this.platform = inject(AXPlatform);\n }\n ngOnInit() {\n this.setLogoType();\n this.platform.themeMode$.subscribe(() => {\n this.setLogoTheme();\n });\n }\n ngOnChanges() {\n this.setLogoTheme();\n }\n setLogoType() {\n switch (true) {\n case this.source instanceof AXPImageUrlLogoConfig:\n this.logoType = 'url';\n break;\n case this.source instanceof AXPComponentLogoConfig:\n this.logoType = 'component';\n break;\n default:\n break;\n }\n }\n setLogoTheme() {\n if (this.source && this.source.dark && this.source.light) {\n this.source = this.platform.isDark() ? this.source.dark : this.source.light;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPLogoComponent, isStandalone: true, selector: \"axp-logo\", inputs: { source: \"source\" }, host: { classAttribute: \"ax-flex ax-justify-center\" }, usesOnChanges: true, ngImport: i0, template: \"@switch (logoType) { @case ('url') {\\n<ax-image [width]=\\\"source.width\\\" [height]=\\\"source.height\\\" [src]=\\\"source.url\\\"></ax-image>\\n} @case ('component') {\\n<ng-container *ngComponentOutlet=\\\"source.component\\\"></ng-container>\\n} }\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletEnvironmentInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"ngmodule\", type: AXImageModule }, { kind: \"component\", type: i2.AXImageComponent, selector: \"ax-image\", inputs: [\"width\", \"height\", \"overlayMode\", \"src\", \"alt\", \"priority\", \"lazy\"], outputs: [\"onLoad\", \"onError\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLogoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-logo', imports: [CommonModule, AXImageModule, AXDecoratorModule], host: { class: 'ax-flex ax-justify-center' }, template: \"@switch (logoType) { @case ('url') {\\n<ax-image [width]=\\\"source.width\\\" [height]=\\\"source.height\\\" [src]=\\\"source.url\\\"></ax-image>\\n} @case ('component') {\\n<ng-container *ngComponentOutlet=\\\"source.component\\\"></ng-container>\\n} }\\n\" }]\n }], propDecorators: { source: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2xheW91dC9sb2dvL2xvZ28uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbG9nby9sb2dvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBTjdCO1FBWVUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQWdDdkM7SUE5QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxXQUFXO1FBQ25CLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLElBQUksQ0FBQyxNQUFNLFlBQVkscUJBQXFCO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdEIsTUFBTTtZQUVSLEtBQUssSUFBSSxDQUFDLE1BQU0sWUFBWSxzQkFBc0I7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO2dCQUM1QixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUssSUFBSSxDQUFDLE1BQWMsQ0FBQyxJQUFJLElBQUssSUFBSSxDQUFDLE1BQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxNQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQztRQUNoRyxDQUFDO0lBQ0gsQ0FBQzsrR0FyQ1UsZ0JBQWdCO21HQUFoQixnQkFBZ0IsOEtDZDdCLDZPQUtBLDJDRE1ZLFlBQVksK1dBQUUsYUFBYSxvTkFBRSxpQkFBaUI7OzRGQUc3QyxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsVUFBVSxXQUVYLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxRQUNuRCxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTs7c0JBRzNDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYSW1hZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvaW1hZ2UnO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5cbmltcG9ydCB7IEFYUENvbXBvbmVudExvZ29Db25maWcsIEFYUEltYWdlVXJsTG9nb0NvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sb2dvJyxcbiAgdGVtcGxhdGVVcmw6IGBsb2dvLmNvbXBvbmVudC5odG1sYCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhJbWFnZU1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGVdLFxuICBob3N0OiB7IGNsYXNzOiAnYXgtZmxleCBheC1qdXN0aWZ5LWNlbnRlcicgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQTG9nb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHNvdXJjZSE6IGFueTtcblxuICBwcm90ZWN0ZWQgbG9nb1R5cGUhOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBwbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldExvZ29UeXBlKCk7XG4gICAgdGhpcy5wbGF0Zm9ybS50aGVtZU1vZGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNldExvZ29UaGVtZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMb2dvVGhlbWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRMb2dvVHlwZSgpIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgdGhpcy5zb3VyY2UgaW5zdGFuY2VvZiBBWFBJbWFnZVVybExvZ29Db25maWc6XG4gICAgICAgIHRoaXMubG9nb1R5cGUgPSAndXJsJztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgdGhpcy5zb3VyY2UgaW5zdGFuY2VvZiBBWFBDb21wb25lbnRMb2dvQ29uZmlnOlxuICAgICAgICB0aGlzLmxvZ29UeXBlID0gJ2NvbXBvbmVudCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldExvZ29UaGVtZSgpIHtcbiAgICBpZiAodGhpcy5zb3VyY2UgJiYgKHRoaXMuc291cmNlIGFzIGFueSkuZGFyayAmJiAodGhpcy5zb3VyY2UgYXMgYW55KS5saWdodCkge1xuICAgICAgdGhpcy5zb3VyY2UgPSB0aGlzLnBsYXRmb3JtLmlzRGFyaygpID8gKHRoaXMuc291cmNlIGFzIGFueSkuZGFyayA6ICh0aGlzLnNvdXJjZSBhcyBhbnkpLmxpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiQHN3aXRjaCAobG9nb1R5cGUpIHsgQGNhc2UgKCd1cmwnKSB7XG48YXgtaW1hZ2UgW3dpZHRoXT1cInNvdXJjZS53aWR0aFwiIFtoZWlnaHRdPVwic291cmNlLmhlaWdodFwiIFtzcmNdPVwic291cmNlLnVybFwiPjwvYXgtaW1hZ2U+XG59IEBjYXNlICgnY29tcG9uZW50Jykge1xuPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJzb3VyY2UuY29tcG9uZW50XCI+PC9uZy1jb250YWluZXI+XG59IH1cbiJdfQ==","//#region ---- Menu Context Builder ----\n/**\n * Creates a rich context for menu manipulation\n * Similar to entity modifier context pattern\n */\nexport function createMenuContext(items) {\n const context = {\n get items() {\n return items;\n },\n find(nameOrPattern) {\n if (typeof nameOrPattern === 'string') {\n return context.findByName(nameOrPattern);\n }\n const found = context.findByPattern(nameOrPattern);\n return found.length > 0 ? found[0] : createEmptyFinder();\n },\n findByName(name) {\n return createMenuItemFinder(items, name);\n },\n findByPattern(pattern) {\n const regex = typeof pattern === 'string' ? wildcardToRegex(pattern) : pattern;\n const results = [];\n const searchRecursive = (itemList) => {\n for (const item of itemList) {\n if (item.name && regex.test(item.name)) {\n results.push(createMenuItemFinder(items, item.name));\n }\n if (item.children) {\n searchRecursive(item.children);\n }\n }\n };\n searchRecursive(items);\n return results;\n },\n add(...newItems) {\n items.push(...newItems);\n return context;\n },\n remove(predicate) {\n removeRecursive(items, predicate);\n return context;\n },\n sort() {\n sortItemsRecursively(items);\n return context;\n },\n toArray() {\n return items;\n },\n };\n return context;\n}\n//#endregion\n//#region ---- Menu Item Finder Implementation ----\n/**\n * Creates a finder for a specific menu item\n */\nfunction createMenuItemFinder(rootItems, targetName) {\n const findItemWithParent = (items, name, parent = { items: rootItems }) => {\n for (const item of items) {\n if (item.name === name) {\n return { item, parent };\n }\n if (item.children) {\n const result = findItemWithParent(item.children, name, { items: item.children });\n if (result.item) {\n return result;\n }\n }\n }\n return { item: undefined, parent };\n };\n const finder = {\n get() {\n return findItemWithParent(rootItems, targetName).item;\n },\n exists() {\n return finder.get() !== undefined;\n },\n update(updater) {\n const { item } = findItemWithParent(rootItems, targetName);\n if (item) {\n const updates = typeof updater === 'function' ? updater(item) : updater;\n Object.assign(item, updates);\n }\n return finder;\n },\n remove() {\n const { item, parent } = findItemWithParent(rootItems, targetName);\n if (item) {\n const index = parent.items.indexOf(item);\n if (index !== -1) {\n parent.items.splice(index, 1);\n }\n }\n return finder;\n },\n hide() {\n // Hide by removing the item from menu\n return finder.remove();\n },\n show() {\n // Show is a no-op since items are visible by default\n // To truly implement show, we'd need to track removed items and re-add them\n console.warn('show() is not fully implemented - items are visible by default');\n return finder;\n },\n setPriority(priority) {\n return finder.update({ priority });\n },\n addChildren(...children) {\n const { item } = findItemWithParent(rootItems, targetName);\n if (item) {\n item.children = item.children || [];\n item.children.push(...children);\n }\n return finder;\n },\n removeChildren(predicate) {\n const { item } = findItemWithParent(rootItems, targetName);\n if (item && item.children) {\n item.children = item.children.filter((c) => !predicate(c));\n }\n return finder;\n },\n moveTo(parentName) {\n const { item, parent: oldParent } = findItemWithParent(rootItems, targetName);\n if (!item) {\n return finder;\n }\n // Remove from old parent\n const oldIndex = oldParent.items.indexOf(item);\n if (oldIndex !== -1) {\n oldParent.items.splice(oldIndex, 1);\n }\n // Add to new parent\n if (!parentName || parentName === '') {\n // Move to root (handles null, undefined, and empty string)\n rootItems.push(item);\n }\n else {\n const { item: newParentItem } = findItemWithParent(rootItems, parentName);\n if (newParentItem) {\n newParentItem.children = newParentItem.children || [];\n newParentItem.children.push(item);\n }\n }\n return finder;\n },\n insertBefore(...items) {\n const { item, parent } = findItemWithParent(rootItems, targetName);\n if (item) {\n const index = parent.items.indexOf(item);\n if (index !== -1) {\n parent.items.splice(index, 0, ...items);\n }\n }\n return finder;\n },\n insertAfter(...items) {\n const { item, parent } = findItemWithParent(rootItems, targetName);\n if (item) {\n const index = parent.items.indexOf(item);\n if (index !== -1) {\n parent.items.splice(index + 1, 0, ...items);\n }\n }\n return finder;\n },\n };\n return finder;\n}\n/**\n * Creates an empty finder for items not found\n */\nfunction createEmptyFinder() {\n return {\n get: () => undefined,\n exists: () => false,\n update: () => createEmptyFinder(),\n remove: () => createEmptyFinder(),\n hide: () => createEmptyFinder(),\n show: () => createEmptyFinder(),\n setPriority: () => createEmptyFinder(),\n addChildren: () => createEmptyFinder(),\n removeChildren: () => createEmptyFinder(),\n moveTo: () => createEmptyFinder(),\n insertBefore: () => createEmptyFinder(),\n insertAfter: () => createEmptyFinder(),\n };\n}\n//#endregion\n//#region ---- Helper Functions ----\n/**\n * Converts wildcard pattern to regex\n */\nfunction wildcardToRegex(pattern) {\n const escaped = pattern.replace(/[.+?^${}()|\\[\\]\\\\]/g, '\\\\$&');\n const regexStr = `^${escaped.replace(/\\*/g, '.*')}$`;\n return new RegExp(regexStr);\n}\n/**\n * Recursively removes items matching predicate\n */\nfunction removeRecursive(items, predicate) {\n for (let i = items.length - 1; i >= 0; i--) {\n const item = items[i];\n if (predicate(item)) {\n items.splice(i, 1);\n }\n else if (item.children) {\n removeRecursive(item.children, predicate);\n }\n }\n}\n/**\n * Recursively sorts items by priority\n */\nfunction sortItemsRecursively(items) {\n items.sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n items.forEach((item) => {\n if (item.children && item.children.length > 0) {\n sortItemsRecursively(item.children);\n }\n });\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9tZW51LmNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsNENBQTRDO0FBRTVDOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFvQjtJQUNsRCxNQUFNLE9BQU8sR0FBNkI7UUFDdEMsSUFBSSxLQUFLO1lBQ0wsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksQ0FBQyxhQUE4QjtZQUMvQixJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNwQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdELENBQUM7UUFFRCxVQUFVLENBQUMsSUFBWTtZQUNuQixPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsYUFBYSxDQUFDLE9BQXdCO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0UsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQztZQUV4QyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQXVCLEVBQUUsRUFBRTtnQkFDaEQsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUUs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QUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsb0JBQW9CLENBQUMsS0FBb0I7SUFDOUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUE1lbnVJdGVtIH0gZnJvbSAnLi9tZW51LnR5cGVzJztcbmltcG9ydCB7IEFYUE1lbnVJdGVtRmluZGVyLCBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQgfSBmcm9tICcuL21lbnUubWlkZGxld2FyZSc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgTWVudSBDb250ZXh0IEJ1aWxkZXIgICAtLS0tXG5cbi8qKlxuICogQ3JlYXRlcyBhIHJpY2ggY29udGV4dCBmb3IgbWVudSBtYW5pcHVsYXRpb25cbiAqIFNpbWlsYXIgdG8gZW50aXR5IG1vZGlmaWVyIGNvbnRleHQgcGF0dGVyblxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWVudUNvbnRleHQoaXRlbXM6IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUE1lbnVNaWRkbGV3YXJlQ29udGV4dCA9IHtcbiAgICAgICAgZ2V0IGl0ZW1zKCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmQobmFtZU9yUGF0dGVybjogc3RyaW5nIHwgUmVnRXhwKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lT3JQYXR0ZXJuID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmZpbmRCeU5hbWUobmFtZU9yUGF0dGVybik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmb3VuZCA9IGNvbnRleHQuZmluZEJ5UGF0dGVybihuYW1lT3JQYXR0ZXJuKTtcbiAgICAgICAgICAgIHJldHVybiBmb3VuZC5sZW5ndGggPiAwID8gZm91bmRbMF0gOiBjcmVhdGVFbXB0eUZpbmRlcigpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmRCeU5hbWUobmFtZTogc3RyaW5nKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU1lbnVJdGVtRmluZGVyKGl0ZW1zLCBuYW1lKTtcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5kQnlQYXR0ZXJuKHBhdHRlcm46IHN0cmluZyB8IFJlZ0V4cCk6IEFYUE1lbnVJdGVtRmluZGVyW10ge1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSB0eXBlb2YgcGF0dGVybiA9PT0gJ3N0cmluZycgPyB3aWxkY2FyZFRvUmVnZXgocGF0dGVybikgOiBwYXR0ZXJuO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0czogQVhQTWVudUl0ZW1GaW5kZXJbXSA9IFtdO1xuXG4gICAgICAgICAgICBjb25zdCBzZWFyY2hSZWN1cnNpdmUgPSAoaXRlbUxpc3Q6IEFYUE1lbnVJdGVtW10pID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbUxpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ubmFtZSAmJiByZWdleC50ZXN0KGl0ZW0ubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChjcmVhdGVNZW51SXRlbUZpbmRlcihpdGVtcywgaXRlbS5uYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaFJlY3Vyc2l2ZShpdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNlYXJjaFJlY3Vyc2l2ZShpdGVtcyk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgfSxcblxuICAgICAgICBhZGQoLi4ubmV3SXRlbXM6IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgICAgICAgICAgaXRlbXMucHVzaCguLi5uZXdJdGVtcyk7XG4gICAgICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICAgICAgfSxcblxuICAgICAgICByZW1vdmUocHJlZGljYXRlOiAoaXRlbTogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlKGl0ZW1zLCBwcmVkaWNhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgc29ydCgpOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgICAgICAgICAgc29ydEl0ZW1zUmVjdXJzaXZlbHkoaXRlbXMpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9BcnJheSgpOiBBWFBNZW51SXRlbVtdIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIE1lbnUgSXRlbSBGaW5kZXIgSW1wbGVtZW50YXRpb24gICAtLS0tXG5cbi8qKlxuICogQ3JlYXRlcyBhIGZpbmRlciBmb3IgYSBzcGVjaWZpYyBtZW51IGl0ZW1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW1GaW5kZXIocm9vdEl0ZW1zOiBBWFBNZW51SXRlbVtdLCB0YXJnZXROYW1lOiBzdHJpbmcpOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgY29uc3QgZmluZEl0ZW1XaXRoUGFyZW50ID0gKFxuICAgICAgICBpdGVtczogQVhQTWVudUl0ZW1bXSxcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBwYXJlbnQ6IHsgaXRlbXM6IEFYUE1lbnVJdGVtW10gfSA9IHsgaXRlbXM6IHJvb3RJdGVtcyB9XG4gICAgKTogeyBpdGVtOiBBWFBNZW51SXRlbSB8IHVuZGVmaW5lZDsgcGFyZW50OiB7IGl0ZW1zOiBBWFBNZW51SXRlbVtdIH0gfSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgaWYgKGl0ZW0ubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGl0ZW0sIHBhcmVudCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBmaW5kSXRlbVdpdGhQYXJlbnQoaXRlbS5jaGlsZHJlbiwgbmFtZSwgeyBpdGVtczogaXRlbS5jaGlsZHJlbiB9KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lml0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaXRlbTogdW5kZWZpbmVkLCBwYXJlbnQgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgZmluZGVyOiBBWFBNZW51SXRlbUZpbmRlciA9IHtcbiAgICAgICAgZ2V0KCk6IEFYUE1lbnVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICAgIHJldHVybiBmaW5kSXRlbVdpdGhQYXJlbnQocm9vdEl0ZW1zLCB0YXJnZXROYW1lKS5pdGVtO1xuICAgICAgICB9LFxuXG4gICAgICAgIGV4aXN0cygpOiBib29sZWFuIHtcbiAgICAgICAgICAgIHJldHVybiBmaW5kZXIuZ2V0KCkgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGUodXBkYXRlcjogUGFydGlhbDxBWFBNZW51SXRlbT4gfCAoKGl0ZW06IEFYUE1lbnVJdGVtKSA9PiBQYXJ0aWFsPEFYUE1lbnVJdGVtPikpOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0gfSA9IGZpbmRJdGVtV2l0aFBhcmVudChyb290SXRlbXMsIHRhcmdldE5hbWUpO1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVzID0gdHlwZW9mIHVwZGF0ZXIgPT09ICdmdW5jdGlvbicgPyB1cGRhdGVyKGl0ZW0pIDogdXBkYXRlcjtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0ZW0sIHVwZGF0ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICByZW1vdmUoKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgY29uc3QgeyBpdGVtLCBwYXJlbnQgfSA9IGZpbmRJdGVtV2l0aFBhcmVudChyb290SXRlbXMsIHRhcmdldE5hbWUpO1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcmVudC5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Lml0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICBoaWRlKCk6IEFYUE1lbnVJdGVtRmluZGVyIHtcbiAgICAgICAgICAgIC8vIEhpZGUgYnkgcmVtb3ZpbmcgdGhlIGl0ZW0gZnJvbSBtZW51XG4gICAgICAgICAgICByZXR1cm4gZmluZGVyLnJlbW92ZSgpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHNob3coKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgLy8gU2hvdyBpcyBhIG5vLW9wIHNpbmNlIGl0ZW1zIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHRcbiAgICAgICAgICAgIC8vIFRvIHRydWx5IGltcGxlbWVudCBzaG93LCB3ZSdkIG5lZWQgdG8gdHJhY2sgcmVtb3ZlZCBpdGVtcyBhbmQgcmUtYWRkIHRoZW1cbiAgICAgICAgICAgIGNvbnNvbGUud2Fybignc2hvdygpIGlzIG5vdCBmdWxseSBpbXBsZW1lbnRlZCAtIGl0ZW1zIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQnKTtcbiAgICAgICAgICAgIHJldHVybiBmaW5kZXI7XG4gICAgICAgIH0sXG5cbiAgICAgICAgc2V0UHJpb3JpdHkocHJpb3JpdHk6IG51bWJlcik6IEFYUE1lbnVJdGVtRmluZGVyIHtcbiAgICAgICAgICAgIHJldHVybiBmaW5kZXIudXBkYXRlKHsgcHJpb3JpdHkgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgYWRkQ2hpbGRyZW4oLi4uY2hpbGRyZW46IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0gfSA9IGZpbmRJdGVtV2l0aFBhcmVudChyb290SXRlbXMsIHRhcmdldE5hbWUpO1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuLnB1c2goLi4uY2hpbGRyZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICByZW1vdmVDaGlsZHJlbihwcmVkaWNhdGU6IChjaGlsZDogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0gfSA9IGZpbmRJdGVtV2l0aFBhcmVudChyb290SXRlbXMsIHRhcmdldE5hbWUpO1xuICAgICAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSBpdGVtLmNoaWxkcmVuLmZpbHRlcigoYykgPT4gIXByZWRpY2F0ZShjKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmluZGVyO1xuICAgICAgICB9LFxuXG4gICAgICAgIG1vdmVUbyhwYXJlbnROYW1lOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgY29uc3QgeyBpdGVtLCBwYXJlbnQ6IG9sZFBhcmVudCB9ID0gZmluZEl0ZW1XaXRoUGFyZW50KHJvb3RJdGVtcywgdGFyZ2V0TmFtZSk7XG4gICAgICAgICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmluZGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZW1vdmUgZnJvbSBvbGQgcGFyZW50XG4gICAgICAgICAgICBjb25zdCBvbGRJbmRleCA9IG9sZFBhcmVudC5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgaWYgKG9sZEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIG9sZFBhcmVudC5pdGVtcy5zcGxpY2Uob2xkSW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBZGQgdG8gbmV3IHBhcmVudFxuICAgICAgICAgICAgaWYgKCFwYXJlbnROYW1lIHx8IHBhcmVudE5hbWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgLy8gTW92ZSB0byByb290IChoYW5kbGVzIG51bGwsIHVuZGVmaW5lZCwgYW5kIGVtcHR5IHN0cmluZylcbiAgICAgICAgICAgICAgICByb290SXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBpdGVtOiBuZXdQYXJlbnRJdGVtIH0gPSBmaW5kSXRlbVdpdGhQYXJlbnQocm9vdEl0ZW1zLCBwYXJlbnROYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAobmV3UGFyZW50SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnRJdGVtLmNoaWxkcmVuID0gbmV3UGFyZW50SXRlbS5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgbmV3UGFyZW50SXRlbS5jaGlsZHJlbi5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICBpbnNlcnRCZWZvcmUoLi4uaXRlbXM6IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0sIHBhcmVudCB9ID0gZmluZEl0ZW1XaXRoUGFyZW50KHJvb3RJdGVtcywgdGFyZ2V0TmFtZSk7XG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGFyZW50Lml0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnQuaXRlbXMuc3BsaWNlKGluZGV4LCAwLCAuLi5pdGVtcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICBpbnNlcnRBZnRlciguLi5pdGVtczogQVhQTWVudUl0ZW1bXSk6IEFYUE1lbnVJdGVtRmluZGVyIHtcbiAgICAgICAgICAgIGNvbnN0IHsgaXRlbSwgcGFyZW50IH0gPSBmaW5kSXRlbVdpdGhQYXJlbnQocm9vdEl0ZW1zLCB0YXJnZXROYW1lKTtcbiAgICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJlbnQuaXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudC5pdGVtcy5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi5pdGVtcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGZpbmRlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVtcHR5IGZpbmRlciBmb3IgaXRlbXMgbm90IGZvdW5kXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVtcHR5RmluZGVyKCk6IEFYUE1lbnVJdGVtRmluZGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBnZXQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgZXhpc3RzOiAoKSA9PiBmYWxzZSxcbiAgICAgICAgdXBkYXRlOiAoKSA9PiBjcmVhdGVFbXB0eUZpbmRlcigpLFxuICAgICAgICByZW1vdmU6ICgpID0+IGNyZWF0ZUVtcHR5RmluZGVyKCksXG4gICAgICAgIGhpZGU6ICgpID0+IGNyZWF0ZUVtcHR5RmluZGVyKCksXG4gICAgICAgIHNob3c6ICgpID0+IGNyZWF0ZUVtcHR5RmluZGVyKCksXG4gICAgICAgIHNldFByaW9yaXR5OiAoKSA9PiBjcmVhdGVFbXB0eUZpbmRlcigpLFxuICAgICAgICBhZGRDaGlsZHJlbjogKCkgPT4gY3JlYXRlRW1wdHlGaW5kZXIoKSxcbiAgICAgICAgcmVtb3ZlQ2hpbGRyZW46ICgpID0+IGNyZWF0ZUVtcHR5RmluZGVyKCksXG4gICAgICAgIG1vdmVUbzogKCkgPT4gY3JlYXRlRW1wdHlGaW5kZXIoKSxcbiAgICAgICAgaW5zZXJ0QmVmb3JlOiAoKSA9PiBjcmVhdGVFbXB0eUZpbmRlcigpLFxuICAgICAgICBpbnNlcnRBZnRlcjogKCkgPT4gY3JlYXRlRW1wdHlGaW5kZXIoKSxcbiAgICB9O1xufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBIZWxwZXIgRnVuY3Rpb25zICAgLS0tLVxuXG4vKipcbiAqIENvbnZlcnRzIHdpbGRjYXJkIHBhdHRlcm4gdG8gcmVnZXhcbiAqL1xuZnVuY3Rpb24gd2lsZGNhcmRUb1JlZ2V4KHBhdHRlcm46IHN0cmluZyk6IFJlZ0V4cCB7XG4gICAgY29uc3QgZXNjYXBlZCA9IHBhdHRlcm4ucmVwbGFjZSgvWy4rP14ke30oKXxcXFtcXF1cXFxcXS9nLCAnXFxcXCQmJyk7XG4gICAgY29uc3QgcmVnZXhTdHIgPSBgXiR7ZXNjYXBlZC5yZXBsYWNlKC9cXCovZywgJy4qJyl9JGA7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXhTdHIpO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IHJlbW92ZXMgaXRlbXMgbWF0Y2hpbmcgcHJlZGljYXRlXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZVJlY3Vyc2l2ZShpdGVtczogQVhQTWVudUl0ZW1bXSwgcHJlZGljYXRlOiAoaXRlbTogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBmb3IgKGxldCBpID0gaXRlbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgICBpZiAocHJlZGljYXRlKGl0ZW0pKSB7XG4gICAgICAgICAgICBpdGVtcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlKGl0ZW0uY2hpbGRyZW4sIHByZWRpY2F0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgc29ydHMgaXRlbXMgYnkgcHJpb3JpdHlcbiAqL1xuZnVuY3Rpb24gc29ydEl0ZW1zUmVjdXJzaXZlbHkoaXRlbXM6IEFYUE1lbnVJdGVtW10pOiB2b2lkIHtcbiAgICBpdGVtcy5zb3J0KChhLCBiKSA9PiAoYS5wcmlvcml0eSA/PyAwKSAtIChiLnByaW9yaXR5ID8/IDApKTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc29ydEl0ZW1zUmVjdXJzaXZlbHkoaXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { InjectionToken } from '@angular/core';\n/**\n * Injection token for menu middlewares (multi-provider)\n */\nexport const AXP_MENU_MIDDLEWARE = new InjectionToken('AXP_MENU_MIDDLEWARE');\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9tZW51Lm1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWdLL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IscUJBQXFCLENBQUMsQ0FBQztBQUVsRyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUE1lbnVJdGVtIH0gZnJvbSAnLi9tZW51LnR5cGVzJztcblxuLy8jcmVnaW9uIC0tLS0gICBNZW51IE1pZGRsZXdhcmUgQ29udGV4dCAgIC0tLS1cblxuLyoqXG4gKiBSaWNoIGNvbnRleHQgQVBJIGZvciBtYW5pcHVsYXRpbmcgbWVudSBpdGVtcyB3aXRoaW4gbWlkZGxld2FyZVxuICogUHJvdmlkZXMgaGVscGVyIG1ldGhvZHMgdG8gZmluZCwgdXBkYXRlLCByZW1vdmUsIGFuZCBhZGQgbWVudSBpdGVtcyBlYXNpbHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgIC8qKlxuICAgICAqIEdldCBhbGwgbWVudSBpdGVtc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGl0ZW1zOiBBWFBNZW51SXRlbVtdO1xuXG4gICAgLyoqXG4gICAgICogRmluZCBtZW51IGl0ZW0ocykgYnkgbmFtZSBvciBwYXR0ZXJuXG4gICAgICovXG4gICAgZmluZChuYW1lT3JQYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHApOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIEZpbmQgbWVudSBpdGVtIGJ5IG5hbWUgKGV4YWN0IG1hdGNoKVxuICAgICAqL1xuICAgIGZpbmRCeU5hbWUobmFtZTogc3RyaW5nKTogQVhQTWVudUl0ZW1GaW5kZXI7XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIG1lbnUgaXRlbXMgYnkgcGF0dGVybiAocmVnZXggb3Igd2lsZGNhcmQpXG4gICAgICovXG4gICAgZmluZEJ5UGF0dGVybihwYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHApOiBBWFBNZW51SXRlbUZpbmRlcltdO1xuXG4gICAgLyoqXG4gICAgICogQWRkIG5ldyBtZW51IGl0ZW1zIHRvIHJvb3QgbGV2ZWxcbiAgICAgKi9cbiAgICBhZGQoLi4uaXRlbXM6IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQ7XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgbWVudSBpdGVtcyBieSBwcmVkaWNhdGVcbiAgICAgKi9cbiAgICByZW1vdmUocHJlZGljYXRlOiAoaXRlbTogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQ7XG5cbiAgICAvKipcbiAgICAgKiBTb3J0IGFsbCBtZW51IGl0ZW1zIHJlY3Vyc2l2ZWx5IGJ5IHByaW9yaXR5XG4gICAgICovXG4gICAgc29ydCgpOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQ7XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGZpbmFsIG1lbnUgaXRlbXMgYXJyYXlcbiAgICAgKi9cbiAgICB0b0FycmF5KCk6IEFYUE1lbnVJdGVtW107XG59XG5cbi8qKlxuICogSGVscGVyIGZvciBmaW5kaW5nIGFuZCBtYW5pcHVsYXRpbmcgYSBzcGVjaWZpYyBtZW51IGl0ZW1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBmb3VuZCBtZW51IGl0ZW0gKG9yIHVuZGVmaW5lZClcbiAgICAgKi9cbiAgICBnZXQoKTogQVhQTWVudUl0ZW0gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBtZW51IGl0ZW0gZXhpc3RzXG4gICAgICovXG4gICAgZXhpc3RzKCk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgbWVudSBpdGVtIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICB1cGRhdGUodXBkYXRlcjogUGFydGlhbDxBWFBNZW51SXRlbT4gfCAoKGl0ZW06IEFYUE1lbnVJdGVtKSA9PiBQYXJ0aWFsPEFYUE1lbnVJdGVtPikpOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWVudSBpdGVtXG4gICAgICovXG4gICAgcmVtb3ZlKCk6IEFYUE1lbnVJdGVtRmluZGVyO1xuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgbWVudSBpdGVtIChyZW1vdmVzIGl0IGZyb20gdGhlIG1lbnUpXG4gICAgICovXG4gICAgaGlkZSgpOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG1lbnUgaXRlbSAoY3VycmVudGx5IGEgbm8tb3AgYXMgaXRlbXMgYXJlIHZpc2libGUgYnkgZGVmYXVsdClcbiAgICAgKiBOb3RlOiBUbyB0cnVseSBpbXBsZW1lbnQgc2hvdywgd2UnZCBuZWVkIHRvIHRyYWNrIHJlbW92ZWQgaXRlbXNcbiAgICAgKi9cbiAgICBzaG93KCk6IEFYUE1lbnVJdGVtRmluZGVyO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHByaW9yaXR5XG4gICAgICovXG4gICAgc2V0UHJpb3JpdHkocHJpb3JpdHk6IG51bWJlcik6IEFYUE1lbnVJdGVtRmluZGVyO1xuXG4gICAgLyoqXG4gICAgICogQWRkIGNoaWxkcmVuIHRvIHRoaXMgbWVudSBpdGVtXG4gICAgICovXG4gICAgYWRkQ2hpbGRyZW4oLi4uY2hpbGRyZW46IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBjaGlsZHJlbiBieSBwcmVkaWNhdGVcbiAgICAgKi9cbiAgICByZW1vdmVDaGlsZHJlbihwcmVkaWNhdGU6IChjaGlsZDogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIE1vdmUgbWVudSBpdGVtIHRvIGEgZGlmZmVyZW50IHBhcmVudFxuICAgICAqL1xuICAgIG1vdmVUbyhwYXJlbnROYW1lOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogQVhQTWVudUl0ZW1GaW5kZXI7XG5cbiAgICAvKipcbiAgICAgKiBJbnNlcnQgbWVudSBpdGVtcyBiZWZvcmUgdGhpcyBpdGVtXG4gICAgICovXG4gICAgaW5zZXJ0QmVmb3JlKC4uLml0ZW1zOiBBWFBNZW51SXRlbVtdKTogQVhQTWVudUl0ZW1GaW5kZXI7XG5cbiAgICAvKipcbiAgICAgKiBJbnNlcnQgbWVudSBpdGVtcyBhZnRlciB0aGlzIGl0ZW1cbiAgICAgKi9cbiAgICBpbnNlcnRBZnRlciguLi5pdGVtczogQVhQTWVudUl0ZW1bXSk6IEFYUE1lbnVJdGVtRmluZGVyO1xufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBNZW51IE1pZGRsZXdhcmUgICAtLS0tXG5cbi8qKlxuICogTWlkZGxld2FyZSB0aGF0IHByb2Nlc3NlcyBtZW51IGl0ZW1zIGFmdGVyIGFsbCBwcm92aWRlcnMgaGF2ZSBleGVjdXRlZFxuICogTWlkZGxld2FyZXMgYXJlIGV4ZWN1dGVkIGluIG9yZGVyIGJhc2VkIG9uIHRoZWlyIHByaW9yaXR5IChoaWdoZXIgcHJpb3JpdHkgPSBlYXJsaWVyIGV4ZWN1dGlvbilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBNZW51TWlkZGxld2FyZSB7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgcHJpb3JpdHkgZm9yIGV4ZWN1dGlvbiBvcmRlciAoaGlnaGVyID0gZWFybGllcilcbiAgICAgKiBEZWZhdWx0OiAwXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJpb3JpdHk/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBuYW1lIGZvciBkZWJ1Z2dpbmcgYW5kIGlkZW50aWZpY2F0aW9uXG4gICAgICovXG4gICAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3MgbWVudSBpdGVtcyB1c2luZyB0aGUgcmljaCBjb250ZXh0IEFQSVxuICAgICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIG1lbnUgbWlkZGxld2FyZSBjb250ZXh0IHdpdGggaGVscGVyIG1ldGhvZHNcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY29udGV4dCBvciB2b2lkIChjb250ZXh0IGlzIG11dGFibGUpXG4gICAgICovXG4gICAgcHJvY2Vzcyhjb250ZXh0OiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQpOiBQcm9taXNlPHZvaWQgfCBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQ+O1xufVxuXG4vKipcbiAqIFByb3ZpZGVyIGRlZmluaXRpb24gZm9yIHJlZ2lzdGVyaW5nIG1pZGRsZXdhcmUgdmlhIG11bHRpLXByb3ZpZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQTWVudU1pZGRsZXdhcmVQcm92aWRlciB7XG4gICAgLyoqXG4gICAgICogVGhlIG1pZGRsZXdhcmUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBtaWRkbGV3YXJlOiBBWFBNZW51TWlkZGxld2FyZTtcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIHByaW9yaXR5IG92ZXJyaWRlXG4gICAgICovXG4gICAgcHJpb3JpdHk/OiBudW1iZXI7XG59XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBtZW51IG1pZGRsZXdhcmVzIChtdWx0aS1wcm92aWRlcilcbiAqL1xuZXhwb3J0IGNvbnN0IEFYUF9NRU5VX01JRERMRVdBUkUgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQTWVudU1pZGRsZXdhcmVbXT4oJ0FYUF9NRU5VX01JRERMRVdBUkUnKTtcblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { AXP_MENU_MIDDLEWARE } from './menu.middleware';\nimport * as i0 from \"@angular/core\";\n//#region ---- Menu Middleware Registry ----\n/**\n * Central service for managing menu middlewares with priority-based ordering\n * Similar to token registry pattern used in identifier-management\n */\nexport class AXPMenuMiddlewareRegistry {\n constructor() {\n //#region ---- Fields ----\n /**\n * Manually registered middlewares\n */\n this.manualMiddlewares = new Map();\n /**\n * Provider-based middlewares (multi-provider injection)\n */\n this.providerMiddlewares = inject(AXP_MENU_MIDDLEWARE, { optional: true }) ?? [];\n }\n //#endregion\n //#region ---- Registration Methods ----\n /**\n * Manually register a middleware\n * @param middleware - The middleware to register\n */\n register(middleware) {\n const name = middleware.name || `middleware_${Date.now()}_${Math.random()}`;\n const existing = this.manualMiddlewares.get(name);\n if (!existing || (middleware.priority ?? 0) > (existing.priority ?? 0)) {\n this.manualMiddlewares.set(name, middleware);\n }\n }\n /**\n * Unregister a middleware by name\n * @param name - The name of the middleware to remove\n */\n unregister(name) {\n this.manualMiddlewares.delete(name);\n }\n /**\n * Get a specific middleware by name\n * @param name - The middleware name\n */\n get(name) {\n // Provider-provided middlewares take precedence\n const fromProvider = this.providerMiddlewares\n .filter((m) => m.name === name)\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))[0];\n if (fromProvider) {\n return fromProvider;\n }\n return this.manualMiddlewares.get(name);\n }\n /**\n * Get all middlewares sorted by priority (highest first)\n * Combines provider-based and manually registered middlewares\n */\n list() {\n const map = new Map();\n // Helper to add middleware, respecting priority\n const addMiddleware = (m) => {\n const name = m.name || `anonymous_${Date.now()}`;\n const existing = map.get(name);\n if (!existing || (m.priority ?? 0) > (existing.priority ?? 0)) {\n map.set(name, m);\n }\n };\n // Add provider middlewares first (higher precedence)\n this.providerMiddlewares.forEach(addMiddleware);\n // Add manual middlewares\n Array.from(this.manualMiddlewares.values()).forEach(addMiddleware);\n // Return sorted by priority (highest first)\n return Array.from(map.values()).sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n }\n /**\n * Check if a middleware exists\n * @param name - The middleware name\n */\n exists(name) {\n return this.get(name) !== undefined;\n }\n /**\n * Clear all manually registered middlewares\n * Provider-based middlewares are not affected\n */\n clear() {\n this.manualMiddlewares.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPMenuMiddlewareRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPMenuMiddlewareRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPMenuMiddlewareRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1taWRkbGV3YXJlLnJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9tZW51LW1pZGRsZXdhcmUucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLG1CQUFtQixDQUFDOztBQUUzRSxnREFBZ0Q7QUFFaEQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUdJLDhCQUE4QjtRQUU5Qjs7V0FFRztRQUNjLHNCQUFpQixHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO1FBRTFFOztXQUVHO1FBQ2Msd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0tBdUZoRztJQXJGRyxZQUFZO0lBRVosNENBQTRDO0lBRTVDOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxVQUE2QjtRQUNsQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJLGNBQWMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBRTVFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsSUFBWTtRQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsSUFBWTtRQUNaLGdEQUFnRDtRQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CO2FBQ3hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7YUFDOUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlELElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixPQUFPLFlBQVksQ0FBQztRQUN4QixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJO1FBQ0EsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQTZCLENBQUM7UUFFakQsZ0RBQWdEO1FBQ2hELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBb0IsRUFBRSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksYUFBYSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNqRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM1RCxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYscURBQXFEO1FBQ3JELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFaEQseUJBQXlCO1FBQ3pCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRW5FLDRDQUE0QztRQUM1QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsSUFBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUs7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkMsQ0FBQzsrR0FoR1EseUJBQXlCO21IQUF6Qix5QkFBeUIsY0FEWixNQUFNOzs0RkFDbkIseUJBQXlCO2tCQURyQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX01FTlVfTUlERExFV0FSRSwgQVhQTWVudU1pZGRsZXdhcmUgfSBmcm9tICcuL21lbnUubWlkZGxld2FyZSc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgTWVudSBNaWRkbGV3YXJlIFJlZ2lzdHJ5ICAgLS0tLVxuXG4vKipcbiAqIENlbnRyYWwgc2VydmljZSBmb3IgbWFuYWdpbmcgbWVudSBtaWRkbGV3YXJlcyB3aXRoIHByaW9yaXR5LWJhc2VkIG9yZGVyaW5nXG4gKiBTaW1pbGFyIHRvIHRva2VuIHJlZ2lzdHJ5IHBhdHRlcm4gdXNlZCBpbiBpZGVudGlmaWVyLW1hbmFnZW1lbnRcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBNZW51TWlkZGxld2FyZVJlZ2lzdHJ5IHtcblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgRmllbGRzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogTWFudWFsbHkgcmVnaXN0ZXJlZCBtaWRkbGV3YXJlc1xuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFudWFsTWlkZGxld2FyZXMgPSBuZXcgTWFwPHN0cmluZywgQVhQTWVudU1pZGRsZXdhcmU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlci1iYXNlZCBtaWRkbGV3YXJlcyAobXVsdGktcHJvdmlkZXIgaW5qZWN0aW9uKVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZXJNaWRkbGV3YXJlcyA9IGluamVjdChBWFBfTUVOVV9NSURETEVXQVJFLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IFtdO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFJlZ2lzdHJhdGlvbiBNZXRob2RzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogTWFudWFsbHkgcmVnaXN0ZXIgYSBtaWRkbGV3YXJlXG4gICAgICogQHBhcmFtIG1pZGRsZXdhcmUgLSBUaGUgbWlkZGxld2FyZSB0byByZWdpc3RlclxuICAgICAqL1xuICAgIHJlZ2lzdGVyKG1pZGRsZXdhcmU6IEFYUE1lbnVNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBtaWRkbGV3YXJlLm5hbWUgfHwgYG1pZGRsZXdhcmVfJHtEYXRlLm5vdygpfV8ke01hdGgucmFuZG9tKCl9YDtcblxuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMubWFudWFsTWlkZGxld2FyZXMuZ2V0KG5hbWUpO1xuICAgICAgICBpZiAoIWV4aXN0aW5nIHx8IChtaWRkbGV3YXJlLnByaW9yaXR5ID8/IDApID4gKGV4aXN0aW5nLnByaW9yaXR5ID8/IDApKSB7XG4gICAgICAgICAgICB0aGlzLm1hbnVhbE1pZGRsZXdhcmVzLnNldChuYW1lLCBtaWRkbGV3YXJlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgYSBtaWRkbGV3YXJlIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtaWRkbGV3YXJlIHRvIHJlbW92ZVxuICAgICAqL1xuICAgIHVucmVnaXN0ZXIobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWFudWFsTWlkZGxld2FyZXMuZGVsZXRlKG5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIHNwZWNpZmljIG1pZGRsZXdhcmUgYnkgbmFtZVxuICAgICAqIEBwYXJhbSBuYW1lIC0gVGhlIG1pZGRsZXdhcmUgbmFtZVxuICAgICAqL1xuICAgIGdldChuYW1lOiBzdHJpbmcpOiBBWFBNZW51TWlkZGxld2FyZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIC8vIFByb3ZpZGVyLXByb3ZpZGVkIG1pZGRsZXdhcmVzIHRha2UgcHJlY2VkZW5jZVxuICAgICAgICBjb25zdCBmcm9tUHJvdmlkZXIgPSB0aGlzLnByb3ZpZGVyTWlkZGxld2FyZXNcbiAgICAgICAgICAgIC5maWx0ZXIoKG0pID0+IG0ubmFtZSA9PT0gbmFtZSlcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiAoYi5wcmlvcml0eSA/PyAwKSAtIChhLnByaW9yaXR5ID8/IDApKVswXTtcblxuICAgICAgICBpZiAoZnJvbVByb3ZpZGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbVByb3ZpZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWFudWFsTWlkZGxld2FyZXMuZ2V0KG5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhbGwgbWlkZGxld2FyZXMgc29ydGVkIGJ5IHByaW9yaXR5IChoaWdoZXN0IGZpcnN0KVxuICAgICAqIENvbWJpbmVzIHByb3ZpZGVyLWJhc2VkIGFuZCBtYW51YWxseSByZWdpc3RlcmVkIG1pZGRsZXdhcmVzXG4gICAgICovXG4gICAgbGlzdCgpOiBBWFBNZW51TWlkZGxld2FyZVtdIHtcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIEFYUE1lbnVNaWRkbGV3YXJlPigpO1xuXG4gICAgICAgIC8vIEhlbHBlciB0byBhZGQgbWlkZGxld2FyZSwgcmVzcGVjdGluZyBwcmlvcml0eVxuICAgICAgICBjb25zdCBhZGRNaWRkbGV3YXJlID0gKG06IEFYUE1lbnVNaWRkbGV3YXJlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gbS5uYW1lIHx8IGBhbm9ueW1vdXNfJHtEYXRlLm5vdygpfWA7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IG1hcC5nZXQobmFtZSk7XG4gICAgICAgICAgICBpZiAoIWV4aXN0aW5nIHx8IChtLnByaW9yaXR5ID8/IDApID4gKGV4aXN0aW5nLnByaW9yaXR5ID8/IDApKSB7XG4gICAgICAgICAgICAgICAgbWFwLnNldChuYW1lLCBtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBBZGQgcHJvdmlkZXIgbWlkZGxld2FyZXMgZmlyc3QgKGhpZ2hlciBwcmVjZWRlbmNlKVxuICAgICAgICB0aGlzLnByb3ZpZGVyTWlkZGxld2FyZXMuZm9yRWFjaChhZGRNaWRkbGV3YXJlKTtcblxuICAgICAgICAvLyBBZGQgbWFudWFsIG1pZGRsZXdhcmVzXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5tYW51YWxNaWRkbGV3YXJlcy52YWx1ZXMoKSkuZm9yRWFjaChhZGRNaWRkbGV3YXJlKTtcblxuICAgICAgICAvLyBSZXR1cm4gc29ydGVkIGJ5IHByaW9yaXR5IChoaWdoZXN0IGZpcnN0KVxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpLnNvcnQoKGEsIGIpID0+IChiLnByaW9yaXR5ID8/IDApIC0gKGEucHJpb3JpdHkgPz8gMCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgbWlkZGxld2FyZSBleGlzdHNcbiAgICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBtaWRkbGV3YXJlIG5hbWVcbiAgICAgKi9cbiAgICBleGlzdHMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChuYW1lKSAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFyIGFsbCBtYW51YWxseSByZWdpc3RlcmVkIG1pZGRsZXdhcmVzXG4gICAgICogUHJvdmlkZXItYmFzZWQgbWlkZGxld2FyZXMgYXJlIG5vdCBhZmZlY3RlZFxuICAgICAqL1xuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1hbnVhbE1pZGRsZXdhcmVzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { createMenuContext } from './menu.context';\nimport { AXPMenuMiddlewareRegistry } from './menu-middleware.registry';\nimport * as i0 from \"@angular/core\";\nexport const AXP_MENU_PROVIDER = new InjectionToken('AXP_MENU_PROVIDER');\nexport class AXPMenuProviderService {\n constructor() {\n //#region ---- Dependencies ----\n this.providers = inject(AXP_MENU_PROVIDER, { optional: true });\n this.middlewareRegistry = inject(AXPMenuMiddlewareRegistry);\n //#endregion\n //#region ---- State ----\n this.cache = null;\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n /**\n * Observable for menu reload events\n * Emits when menu cache is cleared and consumers should reload\n */\n this.menuReloadSubject = new Subject();\n this.menuReload$ = this.menuReloadSubject.asObservable();\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Get menu items with middlewares applied (for end-user display)\n */\n async items() {\n // Return cached items if available\n if (this.cache) {\n return this.cache;\n }\n const items = [];\n const context = this.createMenuProviderContext(items);\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n // Apply pending operations\n this.applyPendingOperations(items);\n // Sort items by priority\n items.sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n // Apply middlewares using registry (sorted by priority)\n await this.applyMiddlewares(items);\n // ADD level property to items\n setMenuItemMeta(items);\n // Cache the computed items\n this.cache = items;\n return items;\n }\n /**\n * Get raw menu items WITHOUT middleware applied (for management/editing)\n * Used by menu management pages to show original items before customization\n */\n async rawItems() {\n const items = [];\n const context = this.createMenuProviderContext(items);\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n // Apply pending operations\n this.applyPendingOperations(items);\n // Sort items by priority\n items.sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n // ADD level property to items (but NO middleware)\n setMenuItemMeta(items);\n return items;\n }\n /**\n * Clear the cache to force reload of menu items\n * Notifies all subscribers to reload their menu data\n */\n clearCache() {\n this.cache = null;\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n // Notify subscribers that menu should be reloaded\n this.menuReloadSubject.next();\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Apply middlewares in priority order using the enhanced context API\n */\n async applyMiddlewares(items) {\n const middlewares = this.middlewareRegistry.list();\n for (const middleware of middlewares) {\n try {\n const context = createMenuContext(items);\n await middleware.process(context);\n // The context mutates the items array, so no need to reassign\n }\n catch (error) {\n console.error(`Error in menu middleware ${middleware.name || 'anonymous'}:`, error);\n }\n }\n }\n /**\n * Create provider context for menu providers\n */\n createMenuProviderContext(items) {\n return {\n addItems: (newItems) => {\n items.push(...newItems);\n },\n find: (target) => {\n return {\n insert: (newItems, position) => {\n this.pendingInserts.push({ target, newItems, position });\n },\n remove: () => {\n this.pendingRemovals.push(target);\n },\n update: (updatedItem) => {\n this.pendingUpdates.push({ target, updatedItem });\n },\n addItems: (newItems) => {\n this.pendingAdditions.push({ target, newItems });\n }\n };\n }\n };\n }\n applyPendingOperations(items) {\n for (const { target, newItems, position } of this.pendingInserts) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, appending items.`);\n items.push(...newItems);\n }\n else {\n if (position == 'inside') {\n foundItem.children?.push(...newItems);\n }\n else {\n const index = parentItems.indexOf(foundItem);\n const insertPosition = position === 'before' ? index : index + 1;\n parentItems.splice(insertPosition, 0, ...newItems);\n }\n }\n }\n for (const target of this.pendingRemovals) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to remove.`);\n }\n else {\n const index = parentItems.indexOf(foundItem);\n parentItems.splice(index, 1);\n }\n }\n for (const { target, updatedItem } of this.pendingUpdates) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to update.`);\n }\n else {\n Object.assign(foundItem, updatedItem);\n }\n }\n for (const { target, newItems } of this.pendingAdditions) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to add items to.`);\n }\n else {\n if (!foundItem.children) {\n foundItem.children = [];\n }\n foundItem.children.push(...newItems);\n }\n }\n // Clear pending operations after applying them\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n findItemWithParent(items, target, parentItems = items) {\n for (const item of items) {\n if (item.name === target) {\n return { foundItem: item, parentItems };\n }\n if (item.children) {\n const result = this.findItemWithParent(item.children, target, item.children);\n if (result.foundItem) {\n return result;\n }\n }\n }\n return { foundItem: null, parentItems: items };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPMenuProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPMenuProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPMenuProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nfunction setMenuItemMeta(items, parentIndex = '', depth = 0) {\n items.forEach((item, index) => {\n const currentIndex = parentIndex ? `${parentIndex}-${index}` : `${index}`;\n const hasChildren = !!(item.children && Array.isArray(item.children) && item.children.length > 0);\n item.meta = {\n index: currentIndex,\n isRoot: depth === 0,\n hasChildren,\n depth\n };\n if (hasChildren) {\n setMenuItemMeta(item.children, currentIndex, depth + 1);\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvbGF5b3V0L21lbnUvbWVudS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFNdkUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQW9CLG1CQUFtQixDQUFDLENBQUM7QUFHNUYsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUdJLG9DQUFvQztRQUU1QixjQUFTLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFL0QsWUFBWTtRQUVaLDZCQUE2QjtRQUVyQixVQUFLLEdBQXlCLElBQUksQ0FBQztRQUNuQyxtQkFBYyxHQUFtRixFQUFFLENBQUM7UUFDcEcsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IsbUJBQWMsR0FBaUUsRUFBRSxDQUFDO1FBQ2xGLHFCQUFnQixHQUF1RCxFQUFFLENBQUM7UUFFbEY7OztXQUdHO1FBQ0ssc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQW1OdkU7SUFqTkcsWUFBWTtJQUVaLGtDQUFrQztJQUVsQzs7T0FFRztJ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K0dBdE9RLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBNE9sQyxTQUFTLGVBQWUsQ0FBQyxLQUFZLEVBQUUsY0FBc0IsRUFBRSxFQUFFLFFBQWdCLENBQUM7SUFDOUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMxQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQzFFLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFbEcsSUFBSSxDQUFDLElBQUksR0FBRztZQUNSLEtBQUssRUFBRSxZQUFZO1lBQ25CLE1BQU0sRUFBRSxLQUFLLEtBQUssQ0FBQztZQUNuQixXQUFXO1lBQ1gsS0FBSztTQUNSLENBQUE7UUFFRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2QsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQTWVudUZpbmRlclJlc3VsdCwgQVhQTWVudUluc2VydGlvbiwgQVhQTWVudUl0ZW0sIEFYUE1lbnVQcm92aWRlckNvbnRleHQgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlTWVudUNvbnRleHQgfSBmcm9tICcuL21lbnUuY29udGV4dCc7XG5pbXBvcnQgeyBBWFBNZW51TWlkZGxld2FyZVJlZ2lzdHJ5IH0gZnJvbSAnLi9tZW51LW1pZGRsZXdhcmUucmVnaXN0cnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUE1lbnVQcm92aWRlciB7XG4gICAgcHJvdmlkZShjb250ZXh0OiBBWFBNZW51UHJvdmlkZXJDb250ZXh0KTogUHJvbWlzZTx2b2lkPjtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9NRU5VX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUE1lbnVQcm92aWRlcltdPignQVhQX01FTlVfUFJPVklERVInKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBNZW51UHJvdmlkZXJTZXJ2aWNlIHtcblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSBwcm92aWRlcnMgPSBpbmplY3QoQVhQX01FTlVfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSBtaWRkbGV3YXJlUmVnaXN0cnkgPSBpbmplY3QoQVhQTWVudU1pZGRsZXdhcmVSZWdpc3RyeSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgU3RhdGUgICAtLS0tXG5cbiAgICBwcml2YXRlIGNhY2hlOiBBWFBNZW51SXRlbVtdIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBwZW5kaW5nSW5zZXJ0czogQXJyYXk8eyB0YXJnZXQ6IHN0cmluZzsgbmV3SXRlbXM6IEFYUE1lbnVJdGVtW107IHBvc2l0aW9uOiBBWFBNZW51SW5zZXJ0aW9uIH0+ID0gW107XG4gICAgcHJpdmF0ZSBwZW5kaW5nUmVtb3ZhbHM6IHN0cmluZ1tdID0gW107XG4gICAgcHJpdmF0ZSBwZW5kaW5nVXBkYXRlczogQXJyYXk8eyB0YXJnZXQ6IHN0cmluZzsgdXBkYXRlZEl0ZW06IFBhcnRpYWw8QVhQTWVudUl0ZW0+IH0+ID0gW107XG4gICAgcHJpdmF0ZSBwZW5kaW5nQWRkaXRpb25zOiBBcnJheTx7IHRhcmdldDogc3RyaW5nOyBuZXdJdGVtczogQVhQTWVudUl0ZW1bXSB9PiA9IFtdO1xuICAgIFxuICAgIC8qKlxuICAgICAqIE9ic2VydmFibGUgZm9yIG1lbnUgcmVsb2FkIGV2ZW50c1xuICAgICAqIEVtaXRzIHdoZW4gbWVudSBjYWNoZSBpcyBjbGVhcmVkIGFuZCBjb25zdW1lcnMgc2hvdWxkIHJlbG9hZFxuICAgICAqL1xuICAgIHByaXZhdGUgbWVudVJlbG9hZFN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBtZW51UmVsb2FkJCA9IHRoaXMubWVudVJlbG9hZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgUHVibGljIEFQSSAgIC0tLS1cblxuICAgIC8qKlxuICAgICAqIEdldCBtZW51IGl0ZW1zIHdpdGggbWlkZGxld2FyZXMgYXBwbGllZCAoZm9yIGVuZC11c2VyIGRpc3BsYXkpXG4gICAgICovXG4gICAgYXN5bmMgaXRlbXMoKTogUHJvbWlzZTxBWFBNZW51SXRlbVtdPiB7XG4gICAgICAgIC8vIFJldHVybiBjYWNoZWQgaXRlbXMgaWYgYXZhaWxhYmxlXG4gICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYWNoZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1zOiBBWFBNZW51SXRlbVtdID0gW107XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNyZWF0ZU1lbnVQcm92aWRlckNvbnRleHQoaXRlbXMpO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgICAgICAgICAgIGF3YWl0IHByb3ZpZGVyLnByb3ZpZGUoY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBwZW5kaW5nIG9wZXJhdGlvbnNcbiAgICAgICAgdGhpcy5hcHBseVBlbmRpbmdPcGVyYXRpb25zKGl0ZW1zKTtcblxuICAgICAgICAvLyBTb3J0IGl0ZW1zIGJ5IHByaW9yaXR5XG4gICAgICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+IChhLnByaW9yaXR5ID8/IDApIC0gKGIucHJpb3JpdHkgPz8gMCkpO1xuXG4gICAgICAgIC8vIEFwcGx5IG1pZGRsZXdhcmVzIHVzaW5nIHJlZ2lzdHJ5IChzb3J0ZWQgYnkgcHJpb3JpdHkpXG4gICAgICAgIGF3YWl0IHRoaXMuYXBwbHlNaWRkbGV3YXJlcyhpdGVtcyk7XG5cbiAgICAgICAgLy8gQUREIGxldmVsIHByb3BlcnR5IHRvIGl0ZW1zXG4gICAgICAgIHNldE1lbnVJdGVtTWV0YShpdGVtcyk7XG5cbiAgICAgICAgLy8gQ2FjaGUgdGhlIGNvbXB1dGVkIGl0ZW1zXG4gICAgICAgIHRoaXMuY2FjaGUgPSBpdGVtcztcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCByYXcgbWVudSBpdGVtcyBXSVRIT1VUIG1pZGRsZXdhcmUgYXBwbGllZCAoZm9yIG1hbmFnZW1lbnQvZWRpdGluZylcbiAgICAgKiBVc2VkIGJ5IG1lbnUgbWFuYWdlbWVudCBwYWdlcyB0byBzaG93IG9yaWdpbmFsIGl0ZW1zIGJlZm9yZSBjdXN0b21pemF0aW9uXG4gICAgICovXG4gICAgYXN5bmMgcmF3SXRlbXMoKTogUHJvbWlzZTxBWFBNZW51SXRlbVtdPiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBBWFBNZW51SXRlbVtdID0gW107XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNyZWF0ZU1lbnVQcm92aWRlckNvbnRleHQoaXRlbXMpO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgICAgICAgICAgIGF3YWl0IHByb3ZpZGVyLnByb3ZpZGUoY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBwZW5kaW5nIG9wZXJhdGlvbnNcbiAgICAgICAgdGhpcy5hcHBseVBlbmRpbmdPcGVyYXRpb25zKGl0ZW1zKTtcblxuICAgICAgICAvLyBTb3J0IGl0ZW1zIGJ5IHByaW9yaXR5XG4gICAgICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+IChhLnByaW9yaXR5ID8/IDApIC0gKGIucHJpb3JpdHkgPz8gMCkpO1xuXG4gICAgICAgIC8vIEFERCBsZXZlbCBwcm9wZXJ0eSB0byBpdGVtcyAoYnV0IE5PIG1pZGRsZXdhcmUpXG4gICAgICAgIHNldE1lbnVJdGVtTWV0YShpdGVtcyk7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFyIHRoZSBjYWNoZSB0byBmb3JjZSByZWxvYWQgb2YgbWVudSBpdGVtc1xuICAgICAqIE5vdGlmaWVzIGFsbCBzdWJzY3JpYmVycyB0byByZWxvYWQgdGhlaXIgbWVudSBkYXRhXG4gICAgICovXG4gICAgY2xlYXJDYWNoZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYWNoZSA9IG51bGw7XG4gICAgICAgIHRoaXMucGVuZGluZ0luc2VydHMgPSBbXTtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVtb3ZhbHMgPSBbXTtcbiAgICAgICAgdGhpcy5wZW5kaW5nVXBkYXRlcyA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdBZGRpdGlvbnMgPSBbXTtcbiAgICAgICAgXG4gICAgICAgIC8vIE5vdGlmeSBzdWJzY3JpYmVycyB0aGF0IG1lbnUgc2hvdWxkIGJlIHJlbG9hZGVkXG4gICAgICAgIHRoaXMubWVudVJlbG9hZFN1YmplY3QubmV4dCgpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQcml2YXRlIE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBBcHBseSBtaWRkbGV3YXJlcyBpbiBwcmlvcml0eSBvcmRlciB1c2luZyB0aGUgZW5oYW5jZWQgY29udGV4dCBBUElcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIGFwcGx5TWlkZGxld2FyZXMoaXRlbXM6IEFYUE1lbnVJdGVtW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgbWlkZGxld2FyZXMgPSB0aGlzLm1pZGRsZXdhcmVSZWdpc3RyeS5saXN0KCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBtaWRkbGV3YXJlIG9mIG1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVNZW51Q29udGV4dChpdGVtcyk7XG4gICAgICAgICAgICAgICAgYXdhaXQgbWlkZGxld2FyZS5wcm9jZXNzKGNvbnRleHQpO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlIGNvbnRleHQgbXV0YXRlcyB0aGUgaXRlbXMgYXJyYXksIHNvIG5vIG5lZWQgdG8gcmVhc3NpZ25cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYEVycm9yIGluIG1lbnUgbWlkZGxld2FyZSAke21pZGRsZXdhcmUubmFtZSB8fCAnYW5vbnltb3VzJ306YCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIHByb3ZpZGVyIGNvbnRleHQgZm9yIG1lbnUgcHJvdmlkZXJzXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVNZW51UHJvdmlkZXJDb250ZXh0KGl0ZW1zOiBBWFBNZW51SXRlbVtdKTogQVhQTWVudVByb3ZpZGVyQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhZGRJdGVtczogKG5ld0l0ZW1zOiBBWFBNZW51SXRlbVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCguLi5uZXdJdGVtcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmluZDogKHRhcmdldDogc3RyaW5nKTogQVhQTWVudUZpbmRlclJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0OiAobmV3SXRlbXM6IEFYUE1lbnVJdGVtW10sIHBvc2l0aW9uOiBBWFBNZW51SW5zZXJ0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdJbnNlcnRzLnB1c2goeyB0YXJnZXQsIG5ld0l0ZW1zLCBwb3NpdGlvbiB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdSZW1vdmFscy5wdXNoKHRhcmdldCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZTogKHVwZGF0ZWRJdGVtOiBQYXJ0aWFsPEFYUE1lbnVJdGVtPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nVXBkYXRlcy5wdXNoKHsgdGFyZ2V0LCB1cGRhdGVkSXRlbSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYWRkSXRlbXM6IChuZXdJdGVtczogQVhQTWVudUl0ZW1bXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQWRkaXRpb25zLnB1c2goeyB0YXJnZXQsIG5ld0l0ZW1zIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5UGVuZGluZ09wZXJhdGlvbnMoaXRlbXM6IEFYUE1lbnVJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCB7IHRhcmdldCwgbmV3SXRlbXMsIHBvc2l0aW9uIH0gb2YgdGhpcy5wZW5kaW5nSW5zZXJ0cykge1xuICAgICAgICAgICAgY29uc3QgZm91bmRJdGVtSW5mbyA9IHRoaXMuZmluZEl0ZW1XaXRoUGFyZW50KGl0ZW1zLCB0YXJnZXQpO1xuICAgICAgICAgICAgY29uc3QgeyBmb3VuZEl0ZW0sIHBhcmVudEl0ZW1zIH0gPSBmb3VuZEl0ZW1JbmZvO1xuICAgICAgICAgICAgaWYgKCFmb3VuZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFRhcmdldCBcIiR7dGFyZ2V0fVwiIG5vdCBmb3VuZCwgYXBwZW5kaW5nIGl0ZW1zLmApO1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goLi4ubmV3SXRlbXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPT0gJ2luc2lkZScpIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmRJdGVtLmNoaWxkcmVuPy5wdXNoKC4uLm5ld0l0ZW1zKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJlbnRJdGVtcy5pbmRleE9mKGZvdW5kSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydFBvc2l0aW9uID0gcG9zaXRpb24gPT09ICdiZWZvcmUnID8gaW5kZXggOiBpbmRleCArIDE7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudEl0ZW1zLnNwbGljZShpbnNlcnRQb3NpdGlvbiwgMCwgLi4ubmV3SXRlbXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRoaXMucGVuZGluZ1JlbW92YWxzKSB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZEl0ZW1JbmZvID0gdGhpcy5maW5kSXRlbVdpdGhQYXJlbnQoaXRlbXMsIHRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCB7IGZvdW5kSXRlbSwgcGFyZW50SXRlbXMgfSA9IGZvdW5kSXRlbUluZm87XG4gICAgICAgICAgICBpZiAoIWZvdW5kSXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVGFyZ2V0IFwiJHt0YXJnZXR9XCIgbm90IGZvdW5kLCBub3RoaW5nIHRvIHJlbW92ZS5gKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJlbnRJdGVtcy5pbmRleE9mKGZvdW5kSXRlbSk7XG4gICAgICAgICAgICAgICAgcGFyZW50SXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgeyB0YXJnZXQsIHVwZGF0ZWRJdGVtIH0gb2YgdGhpcy5wZW5kaW5nVXBkYXRlcykge1xuICAgICAgICAgICAgY29uc3QgZm91bmRJdGVtSW5mbyA9IHRoaXMuZmluZEl0ZW1XaXRoUGFyZW50KGl0ZW1zLCB0YXJnZXQpO1xuICAgICAgICAgICAgY29uc3QgeyBmb3VuZEl0ZW0gfSA9IGZvdW5kSXRlbUluZm87XG4gICAgICAgICAgICBpZiAoIWZvdW5kSXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVGFyZ2V0IFwiJHt0YXJnZXR9XCIgbm90IGZvdW5kLCBub3RoaW5nIHRvIHVwZGF0ZS5gKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihmb3VuZEl0ZW0sIHVwZGF0ZWRJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgeyB0YXJnZXQsIG5ld0l0ZW1zIH0gb2YgdGhpcy5wZW5kaW5nQWRkaXRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZEl0ZW1JbmZvID0gdGhpcy5maW5kSXRlbVdpdGhQYXJlbnQoaXRlbXMsIHRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCB7IGZvdW5kSXRlbSB9ID0gZm91bmRJdGVtSW5mbztcbiAgICAgICAgICAgIGlmICghZm91bmRJdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBUYXJnZXQgXCIke3RhcmdldH1cIiBub3QgZm91bmQsIG5vdGhpbmcgdG8gYWRkIGl0ZW1zIHRvLmApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZvdW5kSXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZEl0ZW0uY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm91bmRJdGVtLmNoaWxkcmVuLnB1c2goLi4ubmV3SXRlbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2xlYXIgcGVuZGluZyBvcGVyYXRpb25zIGFmdGVyIGFwcGx5aW5nIHRoZW1cbiAgICAgICAgdGhpcy5wZW5kaW5nSW5zZXJ0cyA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdSZW1vdmFscyA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdVcGRhdGVzID0gW107XG4gICAgICAgIHRoaXMucGVuZGluZ0FkZGl0aW9ucyA9IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZEl0ZW1XaXRoUGFyZW50KGl0ZW1zOiBBWFBNZW51SXRlbVtdLCB0YXJnZXQ6IHN0cmluZywgcGFyZW50SXRlbXM6IEFYUE1lbnVJdGVtW10gPSBpdGVtcyk6IHsgZm91bmRJdGVtOiBBWFBNZW51SXRlbSB8IG51bGwsIHBhcmVudEl0ZW1zOiBBWFBNZW51SXRlbVtdIH0ge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLm5hbWUgPT09IHRhcmdldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGZvdW5kSXRlbTogaXRlbSwgcGFyZW50SXRlbXMgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRJdGVtV2l0aFBhcmVudChpdGVtLmNoaWxkcmVuLCB0YXJnZXQsIGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZm91bmRJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGZvdW5kSXRlbTogbnVsbCwgcGFyZW50SXRlbXM6IGl0ZW1zIH07XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59XG5cbmZ1bmN0aW9uIHNldE1lbnVJdGVtTWV0YShpdGVtczogYW55W10sIHBhcmVudEluZGV4OiBzdHJpbmcgPSAnJywgZGVwdGg6IG51bWJlciA9IDApIHtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBwYXJlbnRJbmRleCA/IGAke3BhcmVudEluZGV4fS0ke2luZGV4fWAgOiBgJHtpbmRleH1gO1xuICAgICAgICBjb25zdCBoYXNDaGlsZHJlbiA9ICEhKGl0ZW0uY2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShpdGVtLmNoaWxkcmVuKSAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApO1xuXG4gICAgICAgIGl0ZW0ubWV0YSA9IHtcbiAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXgsXG4gICAgICAgICAgICBpc1Jvb3Q6IGRlcHRoID09PSAwLFxuICAgICAgICAgICAgaGFzQ2hpbGRyZW4sXG4gICAgICAgICAgICBkZXB0aFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICBzZXRNZW51SXRlbU1ldGEoaXRlbS5jaGlsZHJlbiwgY3VycmVudEluZGV4LCBkZXB0aCArIDEpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4iXX0=","import { makeEnvironmentProviders } from '@angular/core';\nimport { AXP_MENU_MIDDLEWARE } from './menu.middleware';\n//#region ---- Menu Middleware Provider Helper ----\n/**\n * Helper function to provide menu middlewares with proper DI setup\n * Similar to provideCommandMiddleware pattern\n *\n * @example\n * ```typescript\n * // In app.config.ts or module providers\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideMenuMiddleware([\n * customizationMiddleware,\n * securityMiddleware,\n * loggingMiddleware\n * ])\n * ]\n * };\n * ```\n */\nexport function provideMenuMiddleware(middlewares) {\n return makeEnvironmentProviders([\n ...middlewares.map((middleware) => ({\n provide: AXP_MENU_MIDDLEWARE,\n useValue: middleware,\n multi: true,\n })),\n ]);\n}\n/**\n * Helper to create a class-based middleware with priority\n *\n * @example\n * ```typescript\n * const myMiddleware = createMenuMiddleware({\n * name: 'my-middleware',\n * priority: 100,\n * process: async (context) => {\n * context.find('dashboard').setPriority(1);\n * }\n * });\n * ```\n */\nexport function createMenuMiddleware(config) {\n return {\n name: config.name,\n priority: config.priority ?? 0,\n process: config.process,\n };\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1tZW51LW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2xheW91dC9tZW51L3Byb3ZpZGUtbWVudS1taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0Isd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBRTNFLHVEQUF1RDtBQUV2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLFdBQWdDO0lBRWhDLE9BQU8sd0JBQXdCLENBQUM7UUFDNUIsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7S0FDTixDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUlwQztJQUNHLE9BQU87UUFDSCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQztRQUM5QixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87S0FDMUIsQ0FBQztBQUNOLENBQUM7QUFFRCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX01FTlVfTUlERExFV0FSRSwgQVhQTWVudU1pZGRsZXdhcmUgfSBmcm9tICcuL21lbnUubWlkZGxld2FyZSc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgTWVudSBNaWRkbGV3YXJlIFByb3ZpZGVyIEhlbHBlciAgIC0tLS1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcHJvdmlkZSBtZW51IG1pZGRsZXdhcmVzIHdpdGggcHJvcGVyIERJIHNldHVwXG4gKiBTaW1pbGFyIHRvIHByb3ZpZGVDb21tYW5kTWlkZGxld2FyZSBwYXR0ZXJuXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhcHAuY29uZmlnLnRzIG9yIG1vZHVsZSBwcm92aWRlcnNcbiAqIGV4cG9ydCBjb25zdCBhcHBDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlTWVudU1pZGRsZXdhcmUoW1xuICogICAgICAgY3VzdG9taXphdGlvbk1pZGRsZXdhcmUsXG4gKiAgICAgICBzZWN1cml0eU1pZGRsZXdhcmUsXG4gKiAgICAgICBsb2dnaW5nTWlkZGxld2FyZVxuICogICAgIF0pXG4gKiAgIF1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVNZW51TWlkZGxld2FyZShcbiAgICBtaWRkbGV3YXJlczogQVhQTWVudU1pZGRsZXdhcmVbXVxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICAuLi5taWRkbGV3YXJlcy5tYXAoKG1pZGRsZXdhcmUpID0+ICh7XG4gICAgICAgICAgICBwcm92aWRlOiBBWFBfTUVOVV9NSURETEVXQVJFLFxuICAgICAgICAgICAgdXNlVmFsdWU6IG1pZGRsZXdhcmUsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSkpLFxuICAgIF0pO1xufVxuXG4vKipcbiAqIEhlbHBlciB0byBjcmVhdGUgYSBjbGFzcy1iYXNlZCBtaWRkbGV3YXJlIHdpdGggcHJpb3JpdHlcbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG15TWlkZGxld2FyZSA9IGNyZWF0ZU1lbnVNaWRkbGV3YXJlKHtcbiAqICAgbmFtZTogJ215LW1pZGRsZXdhcmUnLFxuICogICBwcmlvcml0eTogMTAwLFxuICogICBwcm9jZXNzOiBhc3luYyAoY29udGV4dCkgPT4ge1xuICogICAgIGNvbnRleHQuZmluZCgnZGFzaGJvYXJkJykuc2V0UHJpb3JpdHkoMSk7XG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZW51TWlkZGxld2FyZShjb25maWc6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcHJpb3JpdHk/OiBudW1iZXI7XG4gICAgcHJvY2VzczogKGNvbnRleHQ6IGltcG9ydCgnLi9tZW51Lm1pZGRsZXdhcmUnKS5BWFBNZW51TWlkZGxld2FyZUNvbnRleHQpID0+IFByb21pc2U8dm9pZD47XG59KTogQVhQTWVudU1pZGRsZXdhcmUge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGNvbmZpZy5uYW1lLFxuICAgICAgICBwcmlvcml0eTogY29uZmlnLnByaW9yaXR5ID8/IDAsXG4gICAgICAgIHByb2Nlc3M6IGNvbmZpZy5wcm9jZXNzLFxuICAgIH07XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { AXPCommandExecutor } from '@acorex/platform/runtime';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { patchState, signalStore, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { AXPMenuProviderService } from './menu.provider';\nexport const AXPMenuService = signalStore({ providedIn: 'root' }, \n// Initial State\nwithState((router = inject(Router)) => {\n return {\n items: [],\n selectedMenuItem: {\n item: null,\n isFullMatch: false,\n },\n };\n}), \n// Methods for State Management\nwithMethods((store, router = inject(Router), workflow = inject(AXPWorkflowService), commandExecutor = inject(AXPCommandExecutor)) => {\n return {\n setMenuItems(items) {\n patchState(store, { items: items });\n },\n selectMenuItemByRoute(path) {\n const currentRawPath = path;\n const findItem = (items) => {\n for (const item of items) {\n // Recursively search children first\n if (item.children) {\n const foundChild = findItem(item.children);\n if (foundChild.item) {\n return foundChild;\n }\n }\n if (item.path) {\n // Check if the item path matches the current path (including query param subset if provided on item)\n const matchResult = pathsMatch(item.path, currentRawPath, ['list', 'view', 'edit', 'create']);\n if (matchResult.isMatch) {\n return { item, isPartialMatch: matchResult.isPartial };\n }\n }\n }\n return { item: null, isPartialMatch: false };\n };\n const pathsMatch = (itemPath, currentPath, trailingSegmentsToIgnore = []) => {\n // Split base and query/hash\n const itemNoHash = itemPath.split('#')[0];\n const currentNoHash = currentPath.split('#')[0];\n const [itemBase, itemQueryString = ''] = itemNoHash.split('?');\n const [currentBase, currentQueryString = ''] = currentNoHash.split('?');\n const itemSegments = itemBase.split('/').filter((segment) => segment.length > 0);\n const pathSegments = currentBase.split('/').filter((segment) => segment.length > 0);\n const menuLength = itemSegments.length;\n const pathLength = pathSegments.length;\n // Identify the effective base length for the menuPath\n let effectiveMenuLength = menuLength;\n if (menuLength > 0 && trailingSegmentsToIgnore.includes(itemSegments[menuLength - 1])) {\n effectiveMenuLength--; // Exclude trailing non-hierarchical segments\n }\n // Check if the menuPath (base segments) is a prefix of browserPath\n let isPrefix = true;\n if (pathLength < effectiveMenuLength) {\n return { isMatch: false, isPartial: false };\n }\n for (let i = 0; i < effectiveMenuLength; i++) {\n if (itemSegments[i] !== pathSegments[i]) {\n isPrefix = false;\n break;\n }\n }\n if (!isPrefix) {\n return { isMatch: false, isPartial: false };\n }\n // Partial match: menuPath base is a strict prefix of browserPath\n const isPartialMatch = effectiveMenuLength < pathLength;\n // Exact match: all segments match completely\n const isExactMatch = effectiveMenuLength === pathLength;\n // Query params subset match: if item defines any query params, require them to match\n const itemParams = new URLSearchParams(itemQueryString);\n const currentParams = new URLSearchParams(currentQueryString);\n let queryMatches = true;\n const itemParamPairs = [];\n itemParams.forEach((value, key) => {\n itemParamPairs.push([key, value]);\n });\n if (itemParamPairs.length > 0) {\n for (const [k, v] of itemParamPairs) {\n if (currentParams.get(k) !== v) {\n queryMatches = false;\n break;\n }\n }\n }\n return {\n isMatch: (isExactMatch || isPartialMatch) && queryMatches,\n isPartial: isPartialMatch && !isExactMatch,\n };\n };\n const items = store.items();\n const { item, isPartialMatch } = findItem(items);\n patchState(store, { selectedMenuItem: { item, isFullMatch: !isPartialMatch } });\n },\n executeCommand(item) {\n if (item.path) {\n workflow.execute('navigate', {\n type: 'router',\n options: { path: item.path },\n });\n patchState(store, { selectedMenuItem: { item, isFullMatch: true } });\n }\n if (item.command) {\n const command = item.command;\n if (workflow.exists(command?.name)) {\n workflow.execute(command.name, command.options);\n }\n else {\n commandExecutor.execute(command.name, command.options);\n }\n }\n },\n isItemOpen(item) {\n const selectedItem = store.selectedMenuItem();\n if (!selectedItem.item) {\n return false;\n }\n const findParent = (currentItem, targetItem) => {\n if (currentItem.children?.includes(targetItem)) {\n return true;\n }\n return currentItem.children?.some((child) => findParent(child, targetItem)) ?? false;\n };\n return item === selectedItem.item || findParent(item, selectedItem.item);\n },\n };\n}), withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => {\n let reloadSubscription;\n return {\n onInit() {\n // Load initial menu items\n (async () => {\n const items = await menuProviderService.items();\n patchState(store, { items: items });\n })();\n // Subscribe to menu reload events\n reloadSubscription = menuProviderService.menuReload$.subscribe(async () => {\n const items = await menuProviderService.items();\n patchState(store, { items: items });\n });\n },\n onDestroy() {\n // Clean up subscription\n if (reloadSubscription) {\n reloadSubscription.unsubscribe();\n }\n },\n };\n}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHekQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FDdkMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO0FBRXRCLGdCQUFnQjtBQUNoQixTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7SUFDcEMsT0FBTztRQUNMLEtBQUssRUFBRSxFQUFtQjtRQUMxQixnQkFBZ0IsRUFBRTtZQUNoQixJQUFJLEVBQUUsSUFBMEI7WUFDaEMsV0FBVyxFQUFFLEtBQUs7U0FDbkI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsK0JBQStCO0FBQy9CLFdBQVcsQ0FDVCxDQUNFLEtBQUssRUFDTCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUN2QixRQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLGVBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFDNUMsRUFBRTtJQUNGLE9BQU87UUFDTCxZQUFZLENBQUMsS0FBb0I7WUFDL0IsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxxQkFBcUIsQ0FBQyxJQUFZO1lBQ2hDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztZQUU1QixNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQW9CLEVBQXlELEVBQUU7Z0JBQy9GLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ3pCLG9DQUFvQztvQkFDcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2xCLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQzNDLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDOzRCQUNwQixPQUFPLFVBQVUsQ0FBQzt3QkFDcEIsQ0FBQztvQkFDSCxDQUFDO29CQUNELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUNkLHFHQUFxRzt3QkFDckcsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQzt3QkFDOUYsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7NEJBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQzt3QkFDekQsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7Z0JBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQy9DLENBQUMsQ0FBQztZQUVGLE1BQU0sVUFBVSxHQUFHLENBQ2pCLFFBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLDJCQUFxQyxFQUFFLEVBQ0csRUFBRTtnQkFDNUMsNEJBQTRCO2dCQUM1QixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVoRCxNQUFNLENBQUMsUUFBUSxFQUFFLGVBQWUsR0FBRyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvRCxNQUFNLENBQUMsV0FBVyxFQUFFLGtCQUFrQixHQUFHLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRXhFLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNqRixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFFcEYsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztnQkFDdkMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztnQkFFdkMsc0RBQXNEO2dCQUN0RCxJQUFJLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztnQkFDckMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdEYsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLDZDQUE2QztnQkFDdEUsQ0FBQztnQkFFRCxtRUFBbUU7Z0JBQ25FLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDcEIsSUFBSSxVQUFVLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztvQkFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUM5QyxDQUFDO2dCQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUM3QyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDeEMsUUFBUSxHQUFHLEtBQUssQ0FBQzt3QkFDakIsTUFBTTtvQkFDUixDQUFDO2dCQUNILENBQUM7Z0JBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNkLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDOUMsQ0FBQztnQkFFRCxpRUFBaUU7Z0JBQ2pFLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztnQkFFeEQsNkNBQTZDO2dCQUM3QyxNQUFNLFlBQVksR0FBRyxtQkFBbUIsS0FBSyxVQUFVLENBQUM7Z0JBRXhELHFGQUFxRjtnQkFDckYsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ3hELE1BQU0sYUFBYSxHQUFHLElBQUksZUFBZSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzlELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztnQkFDeEIsTUFBTSxjQUFjLEdBQTRCLEVBQUUsQ0FBQztnQkFDbkQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDaEMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzlCLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxjQUFjLEVBQUUsQ0FBQzt3QkFDcEMsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDOzRCQUMvQixZQUFZLEdBQUcsS0FBSyxDQUFDOzRCQUNyQixNQUFNO3dCQUNSLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO2dCQUVELE9BQU87b0JBQ0wsT0FBTyxFQUFFLENBQUMsWUFBWSxJQUFJLGNBQWMsQ0FBQyxJQUFJLFlBQVk7b0JBQ3pELFNBQVMsRUFBRSxjQUFjLElBQUksQ0FBQyxZQUFZO2lCQUMzQyxDQUFDO1lBQ0osQ0FBQyxDQUFDO1lBRUYsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pELFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUVELGNBQWMsQ0FBQyxJQUFpQjtZQUM5QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZCxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtvQkFDM0IsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7aUJBQ1MsQ0FBQyxDQUFDO2dCQUN6QyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUE0QixDQUFDO2dCQUNsRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ25DLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2xELENBQUM7cUJBQU0sQ0FBQztvQkFDTixlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN6RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxVQUFVLENBQUMsSUFBaUI7WUFDMUIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxXQUF3QixFQUFFLFVBQXVCLEVBQVcsRUFBRTtnQkFDaEYsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUMvQyxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELE9BQU8sV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDdkYsQ0FBQyxDQUFDO1lBRUYsT0FBTyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRSxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FDRixFQUNELFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsRUFBRSxFQUFFO0lBQ3hFLElBQUksa0JBQXVCLENBQUM7SUFFNUIsT0FBTztRQUNMLE1BQU07WUFDSiwwQkFBMEI7WUFDMUIsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDVixNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoRCxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUVMLGtDQUFrQztZQUNsQyxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUN4RSxNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoRCxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsU0FBUztZQUNQLHdCQUF3QjtZQUN4QixJQUFJLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3ZCLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZCwgQVhQTmF2aWdhdGVBY3Rpb25Db21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmRFeGVjdXRvciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHBhdGNoU3RhdGUsIHNpZ25hbFN0b3JlLCB3aXRoSG9va3MsIHdpdGhNZXRob2RzLCB3aXRoU3RhdGUgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IEFYUE1lbnVQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL21lbnUucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQTWVudUl0ZW0gfSBmcm9tICcuL21lbnUudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQVhQTWVudVNlcnZpY2UgPSBzaWduYWxTdG9yZShcbiAgeyBwcm92aWRlZEluOiAncm9vdCcgfSxcblxuICAvLyBJbml0aWFsIFN0YXRlXG4gIHdpdGhTdGF0ZSgocm91dGVyID0gaW5qZWN0KFJvdXRlcikpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IFtdIGFzIEFYUE1lbnVJdGVtW10sXG4gICAgICBzZWxlY3RlZE1lbnVJdGVtOiB7XG4gICAgICAgIGl0ZW06IG51bGwgYXMgQVhQTWVudUl0ZW0gfCBudWxsLFxuICAgICAgICBpc0Z1bGxNYXRjaDogZmFsc2UsXG4gICAgICB9LFxuICAgIH07XG4gIH0pLFxuXG4gIC8vIE1ldGhvZHMgZm9yIFN0YXRlIE1hbmFnZW1lbnRcbiAgd2l0aE1ldGhvZHMoXG4gICAgKFxuICAgICAgc3RvcmUsXG4gICAgICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKSxcbiAgICAgIHdvcmtmbG93ID0gaW5qZWN0KEFYUFdvcmtmbG93U2VydmljZSksXG4gICAgICBjb21tYW5kRXhlY3V0b3IgPSBpbmplY3QoQVhQQ29tbWFuZEV4ZWN1dG9yKSxcbiAgICApID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNldE1lbnVJdGVtcyhpdGVtczogQVhQTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgaXRlbXM6IGl0ZW1zIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIHNlbGVjdE1lbnVJdGVtQnlSb3V0ZShwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50UmF3UGF0aCA9IHBhdGg7XG5cbiAgICAgICAgICBjb25zdCBmaW5kSXRlbSA9IChpdGVtczogQVhQTWVudUl0ZW1bXSk6IHsgaXRlbTogQVhQTWVudUl0ZW0gfCBudWxsOyBpc1BhcnRpYWxNYXRjaDogYm9vbGVhbiB9ID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgICAvLyBSZWN1cnNpdmVseSBzZWFyY2ggY2hpbGRyZW4gZmlyc3RcbiAgICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZENoaWxkID0gZmluZEl0ZW0oaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgaWYgKGZvdW5kQ2hpbGQuaXRlbSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvdW5kQ2hpbGQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChpdGVtLnBhdGgpIHtcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgaXRlbSBwYXRoIG1hdGNoZXMgdGhlIGN1cnJlbnQgcGF0aCAoaW5jbHVkaW5nIHF1ZXJ5IHBhcmFtIHN1YnNldCBpZiBwcm92aWRlZCBvbiBpdGVtKVxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoUmVzdWx0ID0gcGF0aHNNYXRjaChpdGVtLnBhdGgsIGN1cnJlbnRSYXdQYXRoLCBbJ2xpc3QnLCAndmlldycsICdlZGl0JywgJ2NyZWF0ZSddKTtcbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hSZXN1bHQuaXNNYXRjaCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaXRlbSwgaXNQYXJ0aWFsTWF0Y2g6IG1hdGNoUmVzdWx0LmlzUGFydGlhbCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgaXRlbTogbnVsbCwgaXNQYXJ0aWFsTWF0Y2g6IGZhbHNlIH07XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHBhdGhzTWF0Y2ggPSAoXG4gICAgICAgICAgICBpdGVtUGF0aDogc3RyaW5nLFxuICAgICAgICAgICAgY3VycmVudFBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgIHRyYWlsaW5nU2VnbWVudHNUb0lnbm9yZTogc3RyaW5nW10gPSBbXSxcbiAgICAgICAgICApOiB7IGlzTWF0Y2g6IGJvb2xlYW47IGlzUGFydGlhbDogYm9vbGVhbiB9ID0+IHtcbiAgICAgICAgICAgIC8vIFNwbGl0IGJhc2UgYW5kIHF1ZXJ5L2hhc2hcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1Ob0hhc2ggPSBpdGVtUGF0aC5zcGxpdCgnIycpWzBdO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudE5vSGFzaCA9IGN1cnJlbnRQYXRoLnNwbGl0KCcjJylbMF07XG5cbiAgICAgICAgICAgIGNvbnN0IFtpdGVtQmFzZSwgaXRlbVF1ZXJ5U3RyaW5nID0gJyddID0gaXRlbU5vSGFzaC5zcGxpdCgnPycpO1xuICAgICAgICAgICAgY29uc3QgW2N1cnJlbnRCYXNlLCBjdXJyZW50UXVlcnlTdHJpbmcgPSAnJ10gPSBjdXJyZW50Tm9IYXNoLnNwbGl0KCc/Jyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGl0ZW1TZWdtZW50cyA9IGl0ZW1CYXNlLnNwbGl0KCcvJykuZmlsdGVyKChzZWdtZW50KSA9PiBzZWdtZW50Lmxlbmd0aCA+IDApO1xuICAgICAgICAgICAgY29uc3QgcGF0aFNlZ21lbnRzID0gY3VycmVudEJhc2Uuc3BsaXQoJy8nKS5maWx0ZXIoKHNlZ21lbnQpID0+IHNlZ21lbnQubGVuZ3RoID4gMCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1lbnVMZW5ndGggPSBpdGVtU2VnbWVudHMubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgcGF0aExlbmd0aCA9IHBhdGhTZWdtZW50cy5sZW5ndGg7XG5cbiAgICAgICAgICAgIC8vIElkZW50aWZ5IHRoZSBlZmZlY3RpdmUgYmFzZSBsZW5ndGggZm9yIHRoZSBtZW51UGF0aFxuICAgICAgICAgICAgbGV0IGVmZmVjdGl2ZU1lbnVMZW5ndGggPSBtZW51TGVuZ3RoO1xuICAgICAgICAgICAgaWYgKG1lbnVMZW5ndGggPiAwICYmIHRyYWlsaW5nU2VnbWVudHNUb0lnbm9yZS5pbmNsdWRlcyhpdGVtU2VnbWVudHNbbWVudUxlbmd0aCAtIDFdKSkge1xuICAgICAgICAgICAgICBlZmZlY3RpdmVNZW51TGVuZ3RoLS07IC8vIEV4Y2x1ZGUgdHJhaWxpbmcgbm9uLWhpZXJhcmNoaWNhbCBzZWdtZW50c1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgbWVudVBhdGggKGJhc2Ugc2VnbWVudHMpIGlzIGEgcHJlZml4IG9mIGJyb3dzZXJQYXRoXG4gICAgICAgICAgICBsZXQgaXNQcmVmaXggPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHBhdGhMZW5ndGggPCBlZmZlY3RpdmVNZW51TGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IGlzTWF0Y2g6IGZhbHNlLCBpc1BhcnRpYWw6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWZmZWN0aXZlTWVudUxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGlmIChpdGVtU2VnbWVudHNbaV0gIT09IHBhdGhTZWdtZW50c1tpXSkge1xuICAgICAgICAgICAgICAgIGlzUHJlZml4ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpc1ByZWZpeCkge1xuICAgICAgICAgICAgICByZXR1cm4geyBpc01hdGNoOiBmYWxzZSwgaXNQYXJ0aWFsOiBmYWxzZSB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBQYXJ0aWFsIG1hdGNoOiBtZW51UGF0aCBiYXNlIGlzIGEgc3RyaWN0IHByZWZpeCBvZiBicm93c2VyUGF0aFxuICAgICAgICAgICAgY29uc3QgaXNQYXJ0aWFsTWF0Y2ggPSBlZmZlY3RpdmVNZW51TGVuZ3RoIDwgcGF0aExlbmd0aDtcblxuICAgICAgICAgICAgLy8gRXhhY3QgbWF0Y2g6IGFsbCBzZWdtZW50cyBtYXRjaCBjb21wbGV0ZWx5XG4gICAgICAgICAgICBjb25zdCBpc0V4YWN0TWF0Y2ggPSBlZmZlY3RpdmVNZW51TGVuZ3RoID09PSBwYXRoTGVuZ3RoO1xuXG4gICAgICAgICAgICAvLyBRdWVyeSBwYXJhbXMgc3Vic2V0IG1hdGNoOiBpZiBpdGVtIGRlZmluZXMgYW55IHF1ZXJ5IHBhcmFtcywgcmVxdWlyZSB0aGVtIHRvIG1hdGNoXG4gICAgICAgICAgICBjb25zdCBpdGVtUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhpdGVtUXVlcnlTdHJpbmcpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoY3VycmVudFF1ZXJ5U3RyaW5nKTtcbiAgICAgICAgICAgIGxldCBxdWVyeU1hdGNoZXMgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3QgaXRlbVBhcmFtUGFpcnM6IEFycmF5PFtzdHJpbmcsIHN0cmluZ10+ID0gW107XG4gICAgICAgICAgICBpdGVtUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgaXRlbVBhcmFtUGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXRlbVBhcmFtUGFpcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBpdGVtUGFyYW1QYWlycykge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UGFyYW1zLmdldChrKSAhPT0gdikge1xuICAgICAgICAgICAgICAgICAgcXVlcnlNYXRjaGVzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaXNNYXRjaDogKGlzRXhhY3RNYXRjaCB8fCBpc1BhcnRpYWxNYXRjaCkgJiYgcXVlcnlNYXRjaGVzLFxuICAgICAgICAgICAgICBpc1BhcnRpYWw6IGlzUGFydGlhbE1hdGNoICYmICFpc0V4YWN0TWF0Y2gsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBpdGVtcyA9IHN0b3JlLml0ZW1zKCk7XG4gICAgICAgICAgY29uc3QgeyBpdGVtLCBpc1BhcnRpYWxNYXRjaCB9ID0gZmluZEl0ZW0oaXRlbXMpO1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgc2VsZWN0ZWRNZW51SXRlbTogeyBpdGVtLCBpc0Z1bGxNYXRjaDogIWlzUGFydGlhbE1hdGNoIH0gfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZXhlY3V0ZUNvbW1hbmQoaXRlbTogQVhQTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgICBpZiAoaXRlbS5wYXRoKSB7XG4gICAgICAgICAgICB3b3JrZmxvdy5leGVjdXRlKCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3JvdXRlcicsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHsgcGF0aDogaXRlbS5wYXRoIH0sXG4gICAgICAgICAgICB9IGFzIEFYUE5hdmlnYXRlQWN0aW9uQ29tbWFuZDwncm91dGVyJz4pO1xuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzZWxlY3RlZE1lbnVJdGVtOiB7IGl0ZW0sIGlzRnVsbE1hdGNoOiB0cnVlIH0gfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVtLmNvbW1hbmQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBpdGVtLmNvbW1hbmQgYXMgQVhQRXhlY3V0ZUNvbW1hbmQ7XG4gICAgICAgICAgICBpZiAod29ya2Zsb3cuZXhpc3RzKGNvbW1hbmQ/Lm5hbWUpKSB7XG4gICAgICAgICAgICAgIHdvcmtmbG93LmV4ZWN1dGUoY29tbWFuZC5uYW1lLCBjb21tYW5kLm9wdGlvbnMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29tbWFuZEV4ZWN1dG9yLmV4ZWN1dGUoY29tbWFuZC5uYW1lLCBjb21tYW5kLm9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpc0l0ZW1PcGVuKGl0ZW06IEFYUE1lbnVJdGVtKTogYm9vbGVhbiB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gc3RvcmUuc2VsZWN0ZWRNZW51SXRlbSgpO1xuICAgICAgICAgIGlmICghc2VsZWN0ZWRJdGVtLml0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBmaW5kUGFyZW50ID0gKGN1cnJlbnRJdGVtOiBBWFBNZW51SXRlbSwgdGFyZ2V0SXRlbTogQVhQTWVudUl0ZW0pOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbS5jaGlsZHJlbj8uaW5jbHVkZXModGFyZ2V0SXRlbSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudEl0ZW0uY2hpbGRyZW4/LnNvbWUoKGNoaWxkKSA9PiBmaW5kUGFyZW50KGNoaWxkLCB0YXJnZXRJdGVtKSkgPz8gZmFsc2U7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBpdGVtID09PSBzZWxlY3RlZEl0ZW0uaXRlbSB8fCBmaW5kUGFyZW50KGl0ZW0sIHNlbGVjdGVkSXRlbS5pdGVtKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgKSxcbiAgd2l0aEhvb2tzKChzdG9yZSwgbWVudVByb3ZpZGVyU2VydmljZSA9IGluamVjdChBWFBNZW51UHJvdmlkZXJTZXJ2aWNlKSkgPT4ge1xuICAgIGxldCByZWxvYWRTdWJzY3JpcHRpb246IGFueTtcblxuICAgIHJldHVybiB7XG4gICAgICBvbkluaXQoKSB7XG4gICAgICAgIC8vIExvYWQgaW5pdGlhbCBtZW51IGl0ZW1zXG4gICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCBtZW51UHJvdmlkZXJTZXJ2aWNlLml0ZW1zKCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBpdGVtczogaXRlbXMgfSk7XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIG1lbnUgcmVsb2FkIGV2ZW50c1xuICAgICAgICByZWxvYWRTdWJzY3JpcHRpb24gPSBtZW51UHJvdmlkZXJTZXJ2aWNlLm1lbnVSZWxvYWQkLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCBtZW51UHJvdmlkZXJTZXJ2aWNlLml0ZW1zKCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBpdGVtczogaXRlbXMgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIG9uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gQ2xlYW4gdXAgc3Vic2NyaXB0aW9uXG4gICAgICAgIGlmIChyZWxvYWRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICByZWxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9KSxcbik7XG4iXX0=","import { AXPSystemActionType } from '@acorex/platform/core';\nexport class AXPMenuSearchDefinitionProvider {\n async provide(context) {\n context.addDefinition('menu', 'Menu', 'menu', 'fa-thin fa-bars', 2, {\n format: {\n id: '{{data.name}}',\n },\n actions: [\n {\n name: 'navigate',\n type: AXPSystemActionType.View,\n priority: 'primary',\n },\n ],\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2xheW91dC9tZW51L3NlYXJjaC1kZWZpbml0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE1BQU0sT0FBTywrQkFBK0I7SUFDMUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQztRQUN2RCxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRTtZQUNsRSxNQUFNLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLGVBQWU7YUFDcEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO29CQUM5QixRQUFRLEVBQUUsU0FBUztpQkFDcEI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlciwgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB9IGZyb20gJy4uLy4uL3NlYXJjaCc7XG5pbXBvcnQgeyBBWFBTeXN0ZW1BY3Rpb25UeXBlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEFYUE1lbnVTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb250ZXh0LmFkZERlZmluaXRpb24oJ21lbnUnLCAnTWVudScsICdtZW51JywgJ2ZhLXRoaW4gZmEtYmFycycsIDIsIHtcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBpZDogJ3t7ZGF0YS5uYW1lfX0nLFxuICAgICAgfSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICduYXZpZ2F0ZScsXG4gICAgICAgICAgdHlwZTogQVhQU3lzdGVtQWN0aW9uVHlwZS5WaWV3LFxuICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { AXTranslationService } from '@acorex/core/translation';\nimport { inject } from '@angular/core';\nimport { omit, sortBy } from 'lodash-es';\nimport { AXPMenuProviderService } from './menu.provider';\nexport class AXPMenuSearchProvider {\n constructor() {\n this.menuService = inject(AXPMenuProviderService);\n this.translateService = inject(AXTranslationService);\n }\n async search(text) {\n const menuItems = await this.searchMenuItems(await this.menuService.items(), text);\n return sortBy(menuItems.map((item) => ({\n group: 'menu', // Use `name` or empty string if undefined\n title: item.text, // Use `text` for the `title`\n icon: item.icon, // Include the `icon` if present\n data: omit(item, ['parent', 'children']), // Include all data except `parent` and `children`\n command: item.path ? {\n name: 'navigate',\n options: {\n type: 'router',\n options: {\n path: item.path,\n },\n }\n } : item.command,\n parent: item.parent\n ? {\n title: item.parent.text,\n }\n : undefined,\n })), [(o) => this.translateService.translateSync(o.title)]);\n }\n /**\n * Recursively searches AXPMenuItem and its children for a matching text.\n *\n * @param menuItems - The array of AXPMenuItem to search in.\n * @param searchText - The text to search for (case-insensitive).\n * @returns An array of AXPMenuItem that match the search text.\n */\n async searchMenuItems(menuItems, searchText) {\n const result = [];\n for (const item of menuItems) {\n // Check if the current item's text matches the search text\n if (item.type != 'group' &&\n (item.children?.length ?? 0) == 0 &&\n (await this.translateService.translateAsync(item.text)).toLowerCase().includes(searchText.toLowerCase())) {\n result.push(item);\n }\n // Recursively search in children if they exist\n if (item.children && item.children.length > 0) {\n const childResults = await this.searchMenuItems(item.children, searchText);\n result.push(...childResults.map((x) => ({ ...x, parent: item })));\n }\n }\n return result;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9zZWFyY2gucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBQWxDO1FBQ0UsZ0JBQVcsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM3QyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQTBEbEQsQ0FBQztJQXhEQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRixPQUFPLE1BQU0sQ0FDWCxTQUFTLENBQUMsR0FBRyxDQUFrQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4QyxLQUFLLEVBQUUsTUFBTSxFQUFFLDBDQUEwQztZQUN6RCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSw2QkFBNkI7WUFDL0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0NBQWdDO1lBQ2pELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsa0RBQWtEO1lBQzVGLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxPQUFPLEVBQUU7d0JBQ1AsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3FCQUNoQjtpQkFDRjthQUNtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBNEI7WUFDMUQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNqQixDQUFDLENBQUM7b0JBQ0EsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtpQkFDeEI7Z0JBQ0QsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDLENBQUMsRUFDSCxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBd0IsRUFBRSxVQUFrQjtRQUN4RSxNQUFNLE1BQU0sR0FBNEIsRUFBRSxDQUFDO1FBRTNDLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsMkRBQTJEO1lBQzNELElBQ0UsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPO2dCQUNwQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pDLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsRUFDeEcsQ0FBQztnQkFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQTZCLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBRUQsK0NBQStDO1lBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQzNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBNEIsQ0FBQSxDQUFDLENBQUMsQ0FBQztZQUM3RixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb21pdCwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUFNlYXJjaFByb3ZpZGVyLCBBWFBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi9zZWFyY2gnO1xuaW1wb3J0IHsgQVhQTWVudVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vbWVudS5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBNZW51SXRlbSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5pbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQTWVudUl0ZW1XaXRoUGFyZW50IGV4dGVuZHMgQVhQTWVudUl0ZW0ge1xuICBwYXJlbnQ/OiBBWFBNZW51SXRlbTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUE1lbnVTZWFyY2hQcm92aWRlciBpbXBsZW1lbnRzIEFYUFNlYXJjaFByb3ZpZGVyIHtcbiAgbWVudVNlcnZpY2UgPSBpbmplY3QoQVhQTWVudVByb3ZpZGVyU2VydmljZSk7XG4gIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIGFzeW5jIHNlYXJjaCh0ZXh0OiBzdHJpbmcpOiBQcm9taXNlPEFYUFNlYXJjaFJlc3VsdFtdPiB7XG4gICAgY29uc3QgbWVudUl0ZW1zID0gYXdhaXQgdGhpcy5zZWFyY2hNZW51SXRlbXMoYXdhaXQgdGhpcy5tZW51U2VydmljZS5pdGVtcygpLCB0ZXh0KTtcbiAgICByZXR1cm4gc29ydEJ5PEFYUFNlYXJjaFJlc3VsdD4oXG4gICAgICBtZW51SXRlbXMubWFwPEFYUFNlYXJjaFJlc3VsdD4oKGl0ZW0pID0+ICh7XG4gICAgICAgIGdyb3VwOiAnbWVudScsIC8vIFVzZSBgbmFtZWAgb3IgZW1wdHkgc3RyaW5nIGlmIHVuZGVmaW5lZFxuICAgICAgICB0aXRsZTogaXRlbS50ZXh0LCAvLyBVc2UgYHRleHRgIGZvciB0aGUgYHRpdGxlYFxuICAgICAgICBpY29uOiBpdGVtLmljb24sIC8vIEluY2x1ZGUgdGhlIGBpY29uYCBpZiBwcmVzZW50XG4gICAgICAgIGRhdGE6IG9taXQoaXRlbSwgWydwYXJlbnQnLCAnY2hpbGRyZW4nXSksIC8vIEluY2x1ZGUgYWxsIGRhdGEgZXhjZXB0IGBwYXJlbnRgIGFuZCBgY2hpbGRyZW5gXG4gICAgICAgIGNvbW1hbmQ6IGl0ZW0ucGF0aCA/IHtcbiAgICAgICAgICBuYW1lOiAnbmF2aWdhdGUnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdyb3V0ZXInLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBwYXRoOiBpdGVtLnBhdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSBhcyBBWFBFeGVjdXRlQ29tbWFuZCA6IGl0ZW0uY29tbWFuZCBhcyBBWFBFeGVjdXRlQ29tbWFuZCxcbiAgICAgICAgcGFyZW50OiBpdGVtLnBhcmVudFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgdGl0bGU6IGl0ZW0ucGFyZW50LnRleHQsXG4gICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSkpLFxuICAgICAgWyhvKSA9PiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYyhvLnRpdGxlISldXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBzZWFyY2hlcyBBWFBNZW51SXRlbSBhbmQgaXRzIGNoaWxkcmVuIGZvciBhIG1hdGNoaW5nIHRleHQuXG4gICAqXG4gICAqIEBwYXJhbSBtZW51SXRlbXMgLSBUaGUgYXJyYXkgb2YgQVhQTWVudUl0ZW0gdG8gc2VhcmNoIGluLlxuICAgKiBAcGFyYW0gc2VhcmNoVGV4dCAtIFRoZSB0ZXh0IHRvIHNlYXJjaCBmb3IgKGNhc2UtaW5zZW5zaXRpdmUpLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBBWFBNZW51SXRlbSB0aGF0IG1hdGNoIHRoZSBzZWFyY2ggdGV4dC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc2VhcmNoTWVudUl0ZW1zKG1lbnVJdGVtczogQVhQTWVudUl0ZW1bXSwgc2VhcmNoVGV4dDogc3RyaW5nKTogUHJvbWlzZTxBWFBNZW51SXRlbVdpdGhQYXJlbnRbXT4ge1xuICAgIGNvbnN0IHJlc3VsdDogQVhQTWVudUl0ZW1XaXRoUGFyZW50W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBtZW51SXRlbXMpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGl0ZW0ncyB0ZXh0IG1hdGNoZXMgdGhlIHNlYXJjaCB0ZXh0XG4gICAgICBpZiAoXG4gICAgICAgIGl0ZW0udHlwZSAhPSAnZ3JvdXAnICYmXG4gICAgICAgIChpdGVtLmNoaWxkcmVuPy5sZW5ndGggPz8gMCkgPT0gMCAmJlxuICAgICAgICAoYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKGl0ZW0udGV4dCkpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0gYXMgQVhQTWVudUl0ZW1XaXRoUGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVjdXJzaXZlbHkgc2VhcmNoIGluIGNoaWxkcmVuIGlmIHRoZXkgZXhpc3RcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBjaGlsZFJlc3VsdHMgPSBhd2FpdCB0aGlzLnNlYXJjaE1lbnVJdGVtcyhpdGVtLmNoaWxkcmVuLCBzZWFyY2hUZXh0KTtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4uY2hpbGRSZXN1bHRzLm1hcCgoeCkgPT4gKHsgLi4ueCwgcGFyZW50OiBpdGVtIH0gYXMgQVhQTWVudUl0ZW1XaXRoUGFyZW50KSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==","import { Component, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPFooterTextSlotComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFooterTextSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.10\", type: AXPFooterTextSlotComponent, isStandalone: true, selector: \"ng-component\", inputs: { text: \"text\" }, ngImport: i0, template: `\n <small class=\"ax-text-sm\" [innerHTML]=\"text\"></small>\n `, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <small class=\"ax-text-sm\" [innerHTML]=\"text\"></small>\n `,\n standalone: true\n }]\n }], propDecorators: { text: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLXRleHQtc2xvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2xheW91dC90aGVtZS9jb21wb25lbnRzL3Nsb3RzL2Zvb3Rlci10ZXh0LXNsb3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFqRCxNQUFNLE9BQU8sMEJBQTBCOytHQUExQiwwQkFBMEI7bUdBQTFCLDBCQUEwQixrR0FMM0I7O0tBRVA7OzRGQUdRLDBCQUEwQjtrQkFOdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7O0tBRVA7b0JBQ0gsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztzQkFFRSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxzbWFsbCBjbGFzcz1cImF4LXRleHQtc21cIiBbaW5uZXJIVE1MXT1cInRleHRcIj48L3NtYWxsPlxuICAgIGAsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQVhQRm9vdGVyVGV4dFNsb3RDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGV4dCE6IHN0cmluZztcbn0iXX0=","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPNavBarSlotComponent {\n handleCommand(action) {\n // if (action)\n // this.store.dispatch(action)\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPNavBarSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.10\", type: AXPNavBarSlotComponent, isStandalone: true, selector: \"ng-component\", inputs: { items: \"items\" }, ngImport: i0, template: `\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-5\">\n @for (link of items; track link) {\n <a (click)=\"handleCommand(link.command)\" >{{ link.text }}</a>\n }\n </div>\n `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-5\">\n @for (link of items; track link) {\n <a (click)=\"handleCommand(link.command)\" >{{ link.text }}</a>\n }\n </div>\n `,\n imports: [],\n encapsulation: ViewEncapsulation.None\n }]\n }], propDecorators: { items: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLXNsb3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvdGhlbWUvY29tcG9uZW50cy9zbG90cy9uYXZiYXItc2xvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBYzVFLE1BQU0sT0FBTyxzQkFBc0I7SUFLckIsYUFBYSxDQUFDLE1BQTJCO1FBQy9DLGNBQWM7UUFDZCxrQ0FBa0M7SUFDdEMsQ0FBQzsrR0FSUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixvR0FWckI7Ozs7OztLQU1UOzs0RkFJUSxzQkFBc0I7a0JBWGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFOzs7Ozs7S0FNVDtvQkFDRCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDeEM7O3NCQUVJLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUE1lbnVJdGVtLCBBWFBNZW51SXRlbUNvbW1hbmQgfSBmcm9tICcuLi8uLi8uLi9tZW51JztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWdhcC01XCI+XG4gICAgICBAZm9yIChsaW5rIG9mIGl0ZW1zOyB0cmFjayBsaW5rKSB7XG4gICAgICAgIDxhIChjbGljayk9XCJoYW5kbGVDb21tYW5kKGxpbmsuY29tbWFuZClcIiA+e3sgbGluay50ZXh0IH19PC9hPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIGAsXG4gICAgaW1wb3J0czogW10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBWFBOYXZCYXJTbG90Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtcyE6IEFYUE1lbnVJdGVtW107XG5cblxuICAgIHByb3RlY3RlZCBoYW5kbGVDb21tYW5kKGFjdGlvbj86IEFYUE1lbnVJdGVtQ29tbWFuZCkge1xuICAgICAgICAvLyBpZiAoYWN0aW9uKVxuICAgICAgICAvLyAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChhY3Rpb24pXG4gICAgfVxufSJdfQ==","import { AXPSystemActionType } from '@acorex/platform/core';\nexport class AXPSearchDefinitionProviderContext {\n constructor() {\n this.definitions = [];\n this.definitionMap = new Map();\n }\n addDefinition(name, title, group, icon, order, options) {\n const definitionSearch = {\n name,\n title,\n group,\n icon,\n order,\n format: {\n title: options?.format?.title ?? '{{ title }}',\n description: options?.format?.description ?? undefined,\n icon: options?.format?.icon ?? undefined,\n id: options?.format?.id ?? '{{ id }}',\n },\n actions: options?.actions ?? [],\n };\n this.definitions.push(definitionSearch);\n this.definitionMap.set(name, definitionSearch); // Index by name\n return new AXPSearchDefinitionBuilder(this, definitionSearch);\n }\n getDefinitions() {\n return this.definitions;\n }\n // Expose groupMap for controlled access\n hasEntity(name) {\n return this.definitionMap.has(name);\n }\n getDefinition(name) {\n return this.definitionMap.get(name);\n }\n}\nexport class AXPSearchDefinitionBuilder {\n constructor(context, definition) {\n this.context = context;\n this.definition = definition;\n }\n addAction(name) {\n const newAction = {\n name,\n type: AXPSystemActionType.View,\n priority: 'primary',\n };\n this.definition.actions.push(newAction);\n return new AXPSearchDefinitionActionBuilder(this);\n }\n action(name) {\n const foundAction = this.definition.actions.find((action) => action.name === name);\n if (!foundAction) {\n throw new Error(`action with name \"${name}\" not found in entity \"${this.definition.name}\".`);\n }\n return new AXPSearchDefinitionActionBuilder(this);\n }\n endEntity() {\n return this.context;\n }\n}\nexport class AXPSearchDefinitionActionBuilder {\n constructor(entityBuilder) {\n this.entityBuilder = entityBuilder;\n }\n endAction() {\n return this.entityBuilder;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24uYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvc2VhcmNoL3NlYXJjaC1kZWZpbml0aW9uLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxPQUFPLGtDQUFrQztJQUEvQztRQUNVLGdCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUN4QyxrQkFBYSxHQUFxQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBOEN0RSxDQUFDO0lBNUNDLGFBQWEsQ0FDWCxJQUFZLEVBQ1osS0FBYSxFQUNiLEtBQWEsRUFDYixJQUFZLEVBQ1osS0FBYSxFQUNiLE9BR0M7UUFFRCxNQUFNLGdCQUFnQixHQUF3QjtZQUM1QyxJQUFJO1lBQ0osS0FBSztZQUNMLEtBQUs7WUFDTCxJQUFJO1lBQ0osS0FBSztZQUNMLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksYUFBYTtnQkFDOUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxJQUFJLFNBQVM7Z0JBQ3RELElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxTQUFTO2dCQUN4QyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksVUFBVTthQUN0QztZQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUU7U0FDaEMsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7UUFDaEUsT0FBTyxJQUFJLDBCQUEwQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFHRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsU0FBUyxDQUFDLElBQVk7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMEJBQTBCO0lBSXJDLFlBQVksT0FBMkMsRUFBRSxVQUErQjtRQUN0RixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDcEIsTUFBTSxTQUFTLEdBQW9CO1lBQ2pDLElBQUk7WUFDSixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtZQUM5QixRQUFRLEVBQUUsU0FBUztTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJLDBCQUEwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUNELE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0NBQWdDO0lBRzNDLFlBQVksYUFBeUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2VhcmNoQWN0aW9uLCBBWFBTZWFyY2hEZWZpbml0aW9uLCBBWFBTZWFyY2hEZWZpbml0aW9uRGlzcGxheUZvcm1hdCB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcbmltcG9ydCB7IEFYUFN5c3RlbUFjdGlvblR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB7XG4gIHByaXZhdGUgZGVmaW5pdGlvbnM6IEFYUFNlYXJjaERlZmluaXRpb25bXSA9IFtdO1xuICBwcml2YXRlIGRlZmluaXRpb25NYXA6IE1hcDxzdHJpbmcsIEFYUFNlYXJjaERlZmluaXRpb24+ID0gbmV3IE1hcCgpO1xuXG4gIGFkZERlZmluaXRpb24oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgZ3JvdXA6IHN0cmluZyxcbiAgICBpY29uOiBzdHJpbmcsXG4gICAgb3JkZXI6IG51bWJlcixcbiAgICBvcHRpb25zPzoge1xuICAgICAgZm9ybWF0PzogQVhQU2VhcmNoRGVmaW5pdGlvbkRpc3BsYXlGb3JtYXQ7XG4gICAgICBhY3Rpb25zPzogQVhQU2VhcmNoQWN0aW9uW107XG4gICAgfVxuICApOiBBWFBTZWFyY2hEZWZpbml0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgZGVmaW5pdGlvblNlYXJjaDogQVhQU2VhcmNoRGVmaW5pdGlvbiA9IHtcbiAgICAgIG5hbWUsXG4gICAgICB0aXRsZSxcbiAgICAgIGdyb3VwLFxuICAgICAgaWNvbixcbiAgICAgIG9yZGVyLFxuICAgICAgZm9ybWF0OiB7XG4gICAgICAgIHRpdGxlOiBvcHRpb25zPy5mb3JtYXQ/LnRpdGxlID8/ICd7eyB0aXRsZSB9fScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zPy5mb3JtYXQ/LmRlc2NyaXB0aW9uID8/IHVuZGVmaW5lZCxcbiAgICAgICAgaWNvbjogb3B0aW9ucz8uZm9ybWF0Py5pY29uID8/IHVuZGVmaW5lZCxcbiAgICAgICAgaWQ6IG9wdGlvbnM/LmZvcm1hdD8uaWQgPz8gJ3t7IGlkIH19JyxcbiAgICAgIH0sXG4gICAgICBhY3Rpb25zOiBvcHRpb25zPy5hY3Rpb25zID8/IFtdLFxuICAgIH07XG5cbiAgICB0aGlzLmRlZmluaXRpb25zLnB1c2goZGVmaW5pdGlvblNlYXJjaCk7XG4gICAgdGhpcy5kZWZpbml0aW9uTWFwLnNldChuYW1lLCBkZWZpbml0aW9uU2VhcmNoKTsgLy8gSW5kZXggYnkgbmFtZVxuICAgIHJldHVybiBuZXcgQVhQU2VhcmNoRGVmaW5pdGlvbkJ1aWxkZXIodGhpcywgZGVmaW5pdGlvblNlYXJjaCk7XG4gIH1cblxuXG4gIGdldERlZmluaXRpb25zKCk6IEFYUFNlYXJjaERlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvbnM7XG4gIH1cblxuICAvLyBFeHBvc2UgZ3JvdXBNYXAgZm9yIGNvbnRyb2xsZWQgYWNjZXNzXG4gIGhhc0VudGl0eShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uTWFwLmhhcyhuYW1lKTtcbiAgfVxuXG4gIGdldERlZmluaXRpb24obmFtZTogc3RyaW5nKTogQVhQU2VhcmNoRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvbk1hcC5nZXQobmFtZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFYUFNlYXJjaERlZmluaXRpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBjb250ZXh0OiBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0O1xuICBwcml2YXRlIGRlZmluaXRpb246IEFYUFNlYXJjaERlZmluaXRpb247XG5cbiAgY29uc3RydWN0b3IoY29udGV4dDogQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCwgZGVmaW5pdGlvbjogQVhQU2VhcmNoRGVmaW5pdGlvbikge1xuICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIGFkZEFjdGlvbihuYW1lOiBzdHJpbmcpOiBBWFBTZWFyY2hEZWZpbml0aW9uQWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgbmV3QWN0aW9uOiBBWFBTZWFyY2hBY3Rpb24gPSB7XG4gICAgICBuYW1lLFxuICAgICAgdHlwZTogQVhQU3lzdGVtQWN0aW9uVHlwZS5WaWV3LFxuICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICB9O1xuICAgIHRoaXMuZGVmaW5pdGlvbi5hY3Rpb25zLnB1c2gobmV3QWN0aW9uKTtcbiAgICByZXR1cm4gbmV3IEFYUFNlYXJjaERlZmluaXRpb25BY3Rpb25CdWlsZGVyKHRoaXMpO1xuICB9XG5cbiAgYWN0aW9uKG5hbWU6IHN0cmluZyk6IEFYUFNlYXJjaERlZmluaXRpb25BY3Rpb25CdWlsZGVyIHwgbnVsbCB7XG4gICAgY29uc3QgZm91bmRBY3Rpb24gPSB0aGlzLmRlZmluaXRpb24uYWN0aW9ucy5maW5kKChhY3Rpb24pID0+IGFjdGlvbi5uYW1lID09PSBuYW1lKTtcbiAgICBpZiAoIWZvdW5kQWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGFjdGlvbiB3aXRoIG5hbWUgXCIke25hbWV9XCIgbm90IGZvdW5kIGluIGVudGl0eSBcIiR7dGhpcy5kZWZpbml0aW9uLm5hbWV9XCIuYCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQVhQU2VhcmNoRGVmaW5pdGlvbkFjdGlvbkJ1aWxkZXIodGhpcyk7XG4gIH1cblxuICBlbmRFbnRpdHkoKTogQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhQU2VhcmNoRGVmaW5pdGlvbkFjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIGVudGl0eUJ1aWxkZXI6IEFYUFNlYXJjaERlZmluaXRpb25CdWlsZGVyO1xuXG4gIGNvbnN0cnVjdG9yKGVudGl0eUJ1aWxkZXI6IEFYUFNlYXJjaERlZmluaXRpb25CdWlsZGVyKSB7XG4gICAgdGhpcy5lbnRpdHlCdWlsZGVyID0gZW50aXR5QnVpbGRlcjtcbiAgfVxuXG4gIGVuZEFjdGlvbigpOiBBWFBTZWFyY2hEZWZpbml0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5QnVpbGRlcjtcbiAgfVxufVxuIl19","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport { AXPSearchDefinitionProviderContext } from './search-definition.builder';\nimport * as i0 from \"@angular/core\";\n// Injection token for setting providers\nexport const AXP_SEARCH_DEFINITION_PROVIDER = new InjectionToken('AXP_SEARCH_DEFINITION_PROVIDER');\nexport class AXPSearchDefinitionProviderService {\n constructor() {\n this.providers = inject(AXP_SEARCH_DEFINITION_PROVIDER, { optional: true });\n this.cache = null;\n }\n async load() {\n if (this.cache) {\n return;\n }\n const context = new AXPSearchDefinitionProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n this.cache = context.getDefinitions();\n }\n async getListAsync() {\n await this.load();\n return this.getList();\n }\n getList() {\n if (!this.cache) {\n return [];\n }\n else {\n return this.cache;\n }\n }\n findDefinition(definitionName) {\n const definition = this.getList().find((definition) => definition.name === definitionName);\n if (!definition) {\n throw new Error(`Definition with name ${definitionName} not found`);\n }\n return definition;\n }\n findDefinitionByGroup(definitionGroup) {\n const definition = this.getList().find((definition) => definition.group === definitionGroup);\n if (!definition) {\n throw new Error(`Definition with group ${definitionGroup} not found`);\n }\n return definition;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSearchDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSearchDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSearchDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3NlYXJjaC9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBUWpGLHdDQUF3QztBQUN4QyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FDOUQsZ0NBQWdDLENBQ2pDLENBQUM7QUFHRixNQUFNLE9BQU8sa0NBQWtDO0lBRC9DO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLFVBQUssR0FBaUMsSUFBSSxDQUFDO0tBMkNwRDtJQXpDUyxLQUFLLENBQUMsSUFBSTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQ0FBa0MsRUFBRSxDQUFDO1FBQ3pELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRU0sY0FBYyxDQUFDLGNBQXNCO1FBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLGNBQWMsWUFBWSxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxlQUF1QjtRQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixlQUFlLFlBQVksQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOytHQTVDVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyxjQURyQixNQUFNOzs0RkFDbkIsa0NBQWtDO2tCQUQ5QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQgfSBmcm9tICcuL3NlYXJjaC1kZWZpbml0aW9uLmJ1aWxkZXInO1xuaW1wb3J0IHsgQVhQU2VhcmNoRGVmaW5pdGlvbiB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcblxuLy8gSW50ZXJmYWNlIGZvciBzZXR0aW5nIHByb3ZpZGVyc1xuZXhwb3J0IGludGVyZmFjZSBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vLyBJbmplY3Rpb24gdG9rZW4gZm9yIHNldHRpbmcgcHJvdmlkZXJzXG5leHBvcnQgY29uc3QgQVhQX1NFQVJDSF9ERUZJTklUSU9OX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlcltdPihcbiAgJ0FYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUidcbik7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBjYWNoZTogQVhQU2VhcmNoRGVmaW5pdGlvbltdIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCgpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgICBhd2FpdCBwcm92aWRlci5wcm92aWRlKGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNhY2hlID0gY29udGV4dC5nZXREZWZpbml0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldExpc3RBc3luYygpOiBQcm9taXNlPEFYUFNlYXJjaERlZmluaXRpb25bXT4ge1xuICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIHJldHVybiB0aGlzLmdldExpc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMaXN0KCk6IEFYUFNlYXJjaERlZmluaXRpb25bXSB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kRGVmaW5pdGlvbihkZWZpbml0aW9uTmFtZTogc3RyaW5nKTogQVhQU2VhcmNoRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuZ2V0TGlzdCgpLmZpbmQoKGRlZmluaXRpb24pID0+IGRlZmluaXRpb24ubmFtZSA9PT0gZGVmaW5pdGlvbk5hbWUpO1xuICAgIGlmICghZGVmaW5pdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZWZpbml0aW9uIHdpdGggbmFtZSAke2RlZmluaXRpb25OYW1lfSBub3QgZm91bmRgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgZmluZERlZmluaXRpb25CeUdyb3VwKGRlZmluaXRpb25Hcm91cDogc3RyaW5nKTogQVhQU2VhcmNoRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuZ2V0TGlzdCgpLmZpbmQoKGRlZmluaXRpb24pID0+IGRlZmluaXRpb24uZ3JvdXAgPT09IGRlZmluaXRpb25Hcm91cCk7XG4gICAgaWYgKCFkZWZpbml0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERlZmluaXRpb24gd2l0aCBncm91cCAke2RlZmluaXRpb25Hcm91cH0gbm90IGZvdW5kYCk7XG4gICAgfVxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG59XG4iXX0=","export class AXPSearchCommandProvider {\n async search(text) {\n return this.commands.filter((command) => command.title.toLowerCase().includes(text.toLowerCase()));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBZ0Isd0JBQXdCO0lBRzVDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlYXJjaFJlc3VsdCB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcblxuLy8gSW50ZXJmYWNlIGZvciBzZXR0aW5nIHByb3ZpZGVyc1xuZXhwb3J0IGludGVyZmFjZSBBWFBTZWFyY2hQcm92aWRlciB7XG4gIHNlYXJjaCh0ZXh0OiBzdHJpbmcpOiBQcm9taXNlPEFYUFNlYXJjaFJlc3VsdFtdPjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFNlYXJjaENvbW1hbmRQcm92aWRlciB7XG4gIGFic3RyYWN0IGNvbW1hbmRzOiBBWFBTZWFyY2hSZXN1bHRbXTtcblxuICBhc3luYyBzZWFyY2godGV4dDogc3RyaW5nKTogUHJvbWlzZTxBWFBTZWFyY2hSZXN1bHRbXT4ge1xuICAgIHJldHVybiB0aGlzLmNvbW1hbmRzLmZpbHRlcigoY29tbWFuZCkgPT4gY29tbWFuZC50aXRsZSEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0LnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxufVxuIl19","import { AXFormatService } from '@acorex/core/format';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { omit } from 'lodash-es';\nimport { AXPSearchDefinitionProviderService } from './search-definition.provider';\nimport * as i0 from \"@angular/core\";\n// Injection token for setting providers\nexport const AXP_SEARCH_PROVIDER = new InjectionToken('AXP_SEARCH_PROVIDER');\nexport class AXPSearchService {\n constructor() {\n this.providers = inject(AXP_SEARCH_PROVIDER, { optional: true });\n this.definitionService = inject(AXPSearchDefinitionProviderService);\n this.formatService = inject(AXFormatService);\n }\n async search(text) {\n //TODO better handle this\n if (this.definitionService.getList().length == 0) {\n await this.definitionService.getListAsync();\n }\n if (!this.providers || (this.providers?.length || 0) === 0) {\n throw new Error('No search providers available'); // No providers available\n }\n const mergeData = [];\n const promises = this.providers.map((provider) => provider.search(text));\n const results = await Promise.all(promises);\n for (const resultArray of results) {\n for (const result of resultArray) {\n try {\n const definition = this.definitionService.findDefinition(result.group);\n mergeData.push({\n definitionName: definition.group,\n definitionTitle: definition.title,\n name: result.group,\n id: `${definition.name}:${this.formatService.format(definition.format.id, 'string', result)}`,\n title: result.title ??\n (definition.format.title\n ? this.formatService.format(definition.format.title, 'string', result.data)\n : 'Unknown'),\n description: result.description ??\n (definition.format.description\n ? this.formatService.format(definition.format.description, 'string', result.data)\n : undefined),\n icon: result.icon ??\n (result.icon\n ? this.formatService.format(definition.format.icon, 'string', result.data)\n : definition.icon),\n data: result.data,\n command: result.command,\n actions: definition.actions,\n parent: result.parent,\n order: definition.order,\n });\n }\n catch (e) {\n console.error(e);\n }\n }\n }\n // Group data\n const groupedData = [];\n const groupMap = {};\n // Create groups\n for (const item of mergeData) {\n const groupName = item.definitionName; // Change this to the property you want to group by\n if (!groupMap[groupName]) {\n groupMap[groupName] = {\n name: groupName,\n title: item.definitionTitle, // You can adjust the title logic if needed\n order: item.order, // Add order to the group\n children: [],\n };\n groupedData.push(groupMap[groupName]);\n }\n groupMap[groupName].children.push(omit(item, ['definitionName', 'definitionTitle', 'order']));\n }\n // Sort groups by order\n groupedData.sort((a, b) => a.order - b.order);\n return groupedData;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSearchService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPSearchService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3NlYXJjaC9zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBSWxGLHdDQUF3QztBQUN4QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IscUJBQXFCLENBQUMsQ0FBQztBQUdsRyxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVELHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQy9ELGtCQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBNEVqRDtJQTFFQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIseUJBQXlCO1FBQ3pCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVB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USxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRztvQkFDcEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFnQixFQUFFLDJDQUEyQztvQkFDekUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUseUJBQXlCO29CQUM1QyxRQUFRLEVBQUUsRUFBRTtpQkFDYixDQUFDO2dCQUNGLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELHVCQUF1QjtRQUN2QixXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzsrR0E5RVUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FESCxNQUFNOzs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb21pdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBTZWFyY2hQcm92aWRlciB9IGZyb20gJy4vc2VhcmNoLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUFNlYXJjaERpc3BsYXlHcm91cFJlc3VsdCwgQVhQU2VhcmNoRGlzcGxheVJlc3VsdCB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcblxuLy8gSW5qZWN0aW9uIHRva2VuIGZvciBzZXR0aW5nIHByb3ZpZGVyc1xuZXhwb3J0IGNvbnN0IEFYUF9TRUFSQ0hfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQU2VhcmNoUHJvdmlkZXJbXT4oJ0FYUF9TRUFSQ0hfUFJPVklERVInKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBTZWFyY2hTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwcm92aWRlcnMgPSBpbmplY3QoQVhQX1NFQVJDSF9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBkZWZpbml0aW9uU2VydmljZSA9IGluamVjdChBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG5cbiAgYXN5bmMgc2VhcmNoKHRleHQ6IHN0cmluZyk6IFByb21pc2U8QVhQU2VhcmNoRGlzcGxheUdyb3VwUmVzdWx0W10+IHtcbiAgICAvL1RPRE8gYmV0dGVyIGhhbmRsZSB0aGlzXG4gICAgaWYgKHRoaXMuZGVmaW5pdGlvblNlcnZpY2UuZ2V0TGlzdCgpLmxlbmd0aCA9PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlZmluaXRpb25TZXJ2aWNlLmdldExpc3RBc3luYygpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcm92aWRlcnMgfHwgKHRoaXMucHJvdmlkZXJzPy5sZW5ndGggfHwgMCkgPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc2VhcmNoIHByb3ZpZGVycyBhdmFpbGFibGUnKTsgLy8gTm8gcHJvdmlkZXJzIGF2YWlsYWJsZVxuICAgIH1cblxuICAgIGNvbnN0IG1lcmdlRGF0YTogQVhQU2VhcmNoRGlzcGxheVJlc3VsdFtdID0gW107XG4gICAgY29uc3QgcHJvbWlzZXMgPSB0aGlzLnByb3ZpZGVycy5tYXAoKHByb3ZpZGVyKSA9PiBwcm92aWRlci5zZWFyY2godGV4dCkpO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgZm9yIChjb25zdCByZXN1bHRBcnJheSBvZiByZXN1bHRzKSB7XG4gICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRBcnJheSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmRlZmluaXRpb25TZXJ2aWNlLmZpbmREZWZpbml0aW9uKHJlc3VsdC5ncm91cCk7XG5cbiAgICAgICAgICBtZXJnZURhdGEucHVzaCh7XG4gICAgICAgICAgICBkZWZpbml0aW9uTmFtZTogZGVmaW5pdGlvbi5ncm91cCxcbiAgICAgICAgICAgIGRlZmluaXRpb25UaXRsZTogZGVmaW5pdGlvbi50aXRsZSxcbiAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5ncm91cCxcbiAgICAgICAgICAgIGlkOiBgJHtkZWZpbml0aW9uLm5hbWV9OiR7dGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdChkZWZpbml0aW9uLmZvcm1hdC5pZCwgJ3N0cmluZycsIHJlc3VsdCl9YCxcbiAgICAgICAgICAgIHRpdGxlOlxuICAgICAgICAgICAgICByZXN1bHQudGl0bGUgPz9cbiAgICAgICAgICAgICAgKGRlZmluaXRpb24uZm9ybWF0LnRpdGxlXG4gICAgICAgICAgICAgICAgPyB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KGRlZmluaXRpb24uZm9ybWF0LnRpdGxlLCAnc3RyaW5nJywgcmVzdWx0LmRhdGEpXG4gICAgICAgICAgICAgICAgOiAnVW5rbm93bicpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIHJlc3VsdC5kZXNjcmlwdGlvbiA/P1xuICAgICAgICAgICAgICAoZGVmaW5pdGlvbi5mb3JtYXQuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQoZGVmaW5pdGlvbi5mb3JtYXQuZGVzY3JpcHRpb24sICdzdHJpbmcnLCByZXN1bHQuZGF0YSlcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICBpY29uOlxuICAgICAgICAgICAgICByZXN1bHQuaWNvbiA/P1xuICAgICAgICAgICAgICAocmVzdWx0Lmljb25cbiAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQoZGVmaW5pdGlvbi5mb3JtYXQuaWNvbiwgJ3N0cmluZycsIHJlc3VsdC5kYXRhKVxuICAgICAgICAgICAgICAgIDogZGVmaW5pdGlvbi5pY29uKSxcbiAgICAgICAgICAgIGRhdGE6IHJlc3VsdC5kYXRhLFxuICAgICAgICAgICAgY29tbWFuZDogcmVzdWx0LmNvbW1hbmQsXG4gICAgICAgICAgICBhY3Rpb25zOiBkZWZpbml0aW9uLmFjdGlvbnMsXG4gICAgICAgICAgICBwYXJlbnQ6IHJlc3VsdC5wYXJlbnQsXG4gICAgICAgICAgICBvcmRlcjogZGVmaW5pdGlvbi5vcmRlcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHcm91cCBkYXRhXG4gICAgY29uc3QgZ3JvdXBlZERhdGE6IEFYUFNlYXJjaERpc3BsYXlHcm91cFJlc3VsdFtdID0gW107XG4gICAgY29uc3QgZ3JvdXBNYXA6IHsgW2tleTogc3RyaW5nXTogQVhQU2VhcmNoRGlzcGxheUdyb3VwUmVzdWx0IH0gPSB7fTtcblxuICAgIC8vIENyZWF0ZSBncm91cHNcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgbWVyZ2VEYXRhKSB7XG4gICAgICBjb25zdCBncm91cE5hbWUgPSBpdGVtLmRlZmluaXRpb25OYW1lITsgLy8gQ2hhbmdlIHRoaXMgdG8gdGhlIHByb3BlcnR5IHlvdSB3YW50IHRvIGdyb3VwIGJ5XG4gICAgICBpZiAoIWdyb3VwTWFwW2dyb3VwTmFtZV0pIHtcbiAgICAgICAgZ3JvdXBNYXBbZ3JvdXBOYW1lXSA9IHtcbiAgICAgICAgICBuYW1lOiBncm91cE5hbWUsXG4gICAgICAgICAgdGl0bGU6IGl0ZW0uZGVmaW5pdGlvblRpdGxlISwgLy8gWW91IGNhbiBhZGp1c3QgdGhlIHRpdGxlIGxvZ2ljIGlmIG5lZWRlZFxuICAgICAgICAgIG9yZGVyOiBpdGVtLm9yZGVyLCAvLyBBZGQgb3JkZXIgdG8gdGhlIGdyb3VwXG4gICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICB9O1xuICAgICAgICBncm91cGVkRGF0YS5wdXNoKGdyb3VwTWFwW2dyb3VwTmFtZV0pO1xuICAgICAgfVxuICAgICAgZ3JvdXBNYXBbZ3JvdXBOYW1lXS5jaGlsZHJlbi5wdXNoKG9taXQoaXRlbSwgWydkZWZpbml0aW9uTmFtZScsICdkZWZpbml0aW9uVGl0bGUnLCAnb3JkZXInXSkpO1xuICAgIH1cblxuICAgIC8vIFNvcnQgZ3JvdXBzIGJ5IG9yZGVyXG4gICAgZ3JvdXBlZERhdGEuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuXG4gICAgcmV0dXJuIGdyb3VwZWREYXRhO1xuICB9XG59XG4iXX0=","export var AXPCommonSettings;\n(function (AXPCommonSettings) {\n AXPCommonSettings[\"EnableOperationToasts\"] = \"general:notifications:enable-operation-toasts\";\n AXPCommonSettings[\"EntityFilterApplyMode\"] = \"general:entity:filter-apply-mode\";\n})(AXPCommonSettings || (AXPCommonSettings = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXNldHRpbmdzLmtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvY29uZmlncy9jb21tb24tc2V0dGluZ3Mua2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGlCQUdYO0FBSEQsV0FBWSxpQkFBaUI7SUFDM0IsNEZBQXVFLENBQUE7SUFDdkUsK0VBQTBELENBQUE7QUFDNUQsQ0FBQyxFQUhXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFHNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBBWFBDb21tb25TZXR0aW5ncyB7XG4gIEVuYWJsZU9wZXJhdGlvblRvYXN0cyA9ICdnZW5lcmFsOm5vdGlmaWNhdGlvbnM6ZW5hYmxlLW9wZXJhdGlvbi10b2FzdHMnLFxuICBFbnRpdHlGaWx0ZXJBcHBseU1vZGUgPSAnZ2VuZXJhbDplbnRpdHk6ZmlsdGVyLWFwcGx5LW1vZGUnLFxufVxuIl19","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AXPCommonSettings } from '../configs/common-settings.key';\nimport { AXPSettingService } from '../settings';\nimport * as i0 from \"@angular/core\";\n//TODO Loading, Redirect, Drawer, Show toast\nexport const AXPRedirectEvent = createWorkFlowEvent('Redirect Event Fired');\nexport const AXPRefreshEvent = createWorkFlowEvent('Refresh Event Fired');\nexport const AXPReloadEvent = createWorkFlowEvent('Reload Event Fired');\nexport class AXPWorkflowNavigateAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.router = inject(Router);\n }\n async execute(context) {\n const payload = context.getVariable('payload');\n if (Array.isArray(payload.commands)) {\n this.router.navigate(payload.commands, payload.extras);\n }\n else {\n if (payload.commands.toLowerCase().startsWith('http') || payload.target == 'blank') {\n window.open(payload.commands, '_blank');\n }\n else\n this.router.navigate([payload.commands], payload.extras);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWorkflowNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWorkflowNavigateAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWorkflowNavigateAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPDialogConfirmAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.dialogService = inject(AXDialogService);\n this.translationService = inject(AXTranslationService);\n this.defaultAction = 'cancel';\n }\n async execute(context) {\n console.log('AXPDialogConfirmAction', this.title, this.message, this.type);\n context.setOutput('result', false);\n const dialogResult = await this.dialogService.confirm(await this.translationService.translateAsync(this.title), await this.translationService.translateAsync(this.message), (await this.translationService.translateAsync(this.type)), 'horizontal', false, 'cancel');\n context.setOutput('result', dialogResult.result);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDialogConfirmAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDialogConfirmAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDialogConfirmAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPToastAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.toastService = inject(AXToastService);\n this.translationService = inject(AXTranslationService);\n this.settingService = inject(AXPSettingService);\n }\n async execute(context) {\n const showResult = await this.settingService.get(AXPCommonSettings.EnableOperationToasts);\n if (showResult) {\n this.toastService.show({\n color: this.color,\n title: await this.translationService.translateAsync(this.title),\n content: await this.translationService.translateAsync(this.content),\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPToastAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPToastAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPToastAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPReloadAction extends AXPWorkflowAction {\n async execute(context) {\n this.dispatch(AXPReloadEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPReloadAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPReloadAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPReloadAction, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi93b3JrZmxvd3MvY29tbW9uLndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRWhELDRDQUE0QztBQUU1QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBa0Isc0JBQXNCLENBQUMsQ0FBQztBQUM3RixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQWlDLHFCQUFxQixDQUFDLENBQUM7QUFDMUcsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFpQyxvQkFBb0IsQ0FBQyxDQUFDO0FBR3hHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxpQkFBaUI7SUFEaEU7O1FBRVUsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQVdqQztJQVZDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDdkMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FB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Q0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNuRSxXQUFXLEVBQUUsSUFBSTtnQkFDakIsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsZUFBZSxFQUFFLElBQUk7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBdEJVLGNBQWM7bUhBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEMUIsVUFBVTs7QUEyQlgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQWlCO0lBQ3BELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBTSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDOytHQUhVLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b2FzdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0LCBjcmVhdGVXb3JrRmxvd0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBWFBDb21tb25TZXR0aW5ncyB9IGZyb20gJy4uL2NvbmZpZ3MvY29tbW9uLXNldHRpbmdzLmtleSc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nU2VydmljZSB9IGZyb20gJy4uL3NldHRpbmdzJztcblxuLy9UT0RPIExvYWRpbmcsIFJlZGlyZWN0LCBEcmF3ZXIsIFNob3cgdG9hc3RcblxuZXhwb3J0IGNvbnN0IEFYUFJlZGlyZWN0RXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgdXJsOiBzdHJpbmcgfT4oJ1JlZGlyZWN0IEV2ZW50IEZpcmVkJyk7XG5leHBvcnQgY29uc3QgQVhQUmVmcmVzaEV2ZW50ID0gY3JlYXRlV29ya0Zsb3dFdmVudDx7IGVudGl0eTogc3RyaW5nOyBtZXRhPzogYW55IH0+KCdSZWZyZXNoIEV2ZW50IEZpcmVkJyk7XG5leHBvcnQgY29uc3QgQVhQUmVsb2FkRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IG1ldGE/OiBhbnkgfT4oJ1JlbG9hZCBFdmVudCBGaXJlZCcpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gY29udGV4dC5nZXRWYXJpYWJsZSgncGF5bG9hZCcpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHBheWxvYWQuY29tbWFuZHMpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShwYXlsb2FkLmNvbW1hbmRzLCBwYXlsb2FkLmV4dHJhcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwYXlsb2FkLmNvbW1hbmRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgnaHR0cCcpIHx8IHBheWxvYWQudGFyZ2V0ID09ICdibGFuaycpIHtcbiAgICAgICAgd2luZG93Lm9wZW4ocGF5bG9hZC5jb21tYW5kcywgJ19ibGFuaycpO1xuICAgICAgfSBlbHNlIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXlsb2FkLmNvbW1hbmRzXSwgcGF5bG9hZC5leHRyYXMpO1xuICAgIH1cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRGlhbG9nQ29uZmlybUFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFYRGlhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICB0aXRsZSE6IHN0cmluZztcbiAgbWVzc2FnZSE6IHN0cmluZztcbiAgdHlwZSE6IEFYU3R5bGVDb2xvclR5cGU7XG5cbiAgZGVmYXVsdEFjdGlvbiA9ICdjYW5jZWwnO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5sb2coJ0FYUERpYWxvZ0NvbmZpcm1BY3Rpb24nLCB0aGlzLnRpdGxlLCB0aGlzLm1lc3NhZ2UsIHRoaXMudHlwZSk7XG4gICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIGZhbHNlKTtcbiAgICBjb25zdCBkaWFsb2dSZXN1bHQgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybShcbiAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKHRoaXMudGl0bGUpLFxuICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmModGhpcy5tZXNzYWdlKSxcbiAgICAgIChhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYyh0aGlzLnR5cGUpKSBhcyBBWFN0eWxlQ29sb3JUeXBlLFxuICAgICAgJ2hvcml6b250YWwnLFxuICAgICAgZmFsc2UsXG4gICAgICAnY2FuY2VsJyxcbiAgICApO1xuICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBkaWFsb2dSZXN1bHQucmVzdWx0KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQVG9hc3RBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlID0gaW5qZWN0KEFYUFNldHRpbmdTZXJ2aWNlKTtcblxuICBjb2xvciE6IEFYU3R5bGVDb2xvclR5cGU7XG4gIHRpdGxlITogc3RyaW5nO1xuICBjb250ZW50ITogc3RyaW5nO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2hvd1Jlc3VsdCA9IGF3YWl0IHRoaXMuc2V0dGluZ1NlcnZpY2UuZ2V0KEFYUENvbW1vblNldHRpbmdzLkVuYWJsZU9wZXJhdGlvblRvYXN0cyk7XG5cbiAgICBpZiAoc2hvd1Jlc3VsdCkge1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgIGNvbG9yOiB0aGlzLmNvbG9yLFxuICAgICAgICB0aXRsZTogYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmModGhpcy50aXRsZSksXG4gICAgICAgIGNvbnRlbnQ6IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKHRoaXMuY29udGVudCksXG4gICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICB0aW1lT3V0OiAzMDAwLFxuICAgICAgICB0aW1lT3V0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFJlbG9hZEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmRpc3BhdGNoKEFYUFJlbG9hZEV2ZW50KHsgZW50aXR5OiBjb250ZXh0LmdldFZhcmlhYmxlKCdlbnRpdHknKSwgbWV0YTogY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdtZXRhJykgfSkpO1xuICB9XG59XG4iXX0=","import { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.router = inject(Router);\n }\n async execute(context) {\n const command = context.getVariable();\n const path = command.options.path;\n if (path?.toLowerCase()?.startsWith('http') || command.options?.extras?.target === 'blank') {\n window.open(path, '_blank');\n }\n else {\n const [basePathAndFragment, queryString] = path.split('?');\n const [basePath, fragment] = basePathAndFragment.split('#'); // Extract fragment if present\n const queryParams = this.parseQueryParams(queryString);\n this.router.navigate([basePath], {\n ...command.options.extras,\n queryParams, // Pass query parameters separately\n fragment, // Pass fragment explicitly\n });\n }\n }\n /**\n * Parses query parameters from a query string into an object.\n */\n parseQueryParams(queryString) {\n if (!queryString)\n return undefined;\n return queryString\n .split('&')\n .map((pair) => pair.split('='))\n .reduce((params, [key, value]) => {\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n return params;\n }, {});\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWorkflowRouterNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWorkflowRouterNavigateAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPWorkflowRouterNavigateAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPNavigateWorkflow = {\n startStepId: 'start',\n steps: {\n start: {\n action: 'navigate-router',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGUud29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3dvcmtmbG93cy9uYXZpZ2F0ZS53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFDL0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUd6QyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsaUJBQWlCO0lBRHRFOztRQUVVLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0FtQ2pDO0lBakNDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDdkMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBc0MsQ0FBQztRQUMxRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUVsQyxJQUFJLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0QsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyw4QkFBOEI7WUFDM0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRXZELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQy9CLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUN6QixXQUFXLEVBQUUsbUNBQW1DO2dCQUNoRCxRQUFRLEVBQUUsMkJBQTJCO2FBQ3RDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FBQyxXQUErQjtRQUN0RCxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRW5DLE9BQU8sV0FBVzthQUNmLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDOUIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQTRCLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQW5DVSwrQkFBK0I7bUhBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVTs7QUF1Q1gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWdCO0lBQzlDLFdBQVcsRUFBRSxPQUFPO0lBQ3BCLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRSxpQkFBaUI7U0FDMUI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBOYXZpZ2F0ZUFjdGlvbkNvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFdvcmtmbG93Um91dGVyTmF2aWdhdGVBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb21tYW5kID0gY29udGV4dC5nZXRWYXJpYWJsZTxBWFBOYXZpZ2F0ZUFjdGlvbkNvbW1hbmQ8J3JvdXRlcic+PigpO1xuICAgIGNvbnN0IHBhdGggPSBjb21tYW5kLm9wdGlvbnMucGF0aDtcblxuICAgIGlmIChwYXRoPy50b0xvd2VyQ2FzZSgpPy5zdGFydHNXaXRoKCdodHRwJykgfHwgY29tbWFuZC5vcHRpb25zPy5leHRyYXM/LnRhcmdldCA9PT0gJ2JsYW5rJykge1xuICAgICAgd2luZG93Lm9wZW4ocGF0aCwgJ19ibGFuaycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBbYmFzZVBhdGhBbmRGcmFnbWVudCwgcXVlcnlTdHJpbmddID0gcGF0aC5zcGxpdCgnPycpO1xuICAgICAgY29uc3QgW2Jhc2VQYXRoLCBmcmFnbWVudF0gPSBiYXNlUGF0aEFuZEZyYWdtZW50LnNwbGl0KCcjJyk7IC8vIEV4dHJhY3QgZnJhZ21lbnQgaWYgcHJlc2VudFxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnBhcnNlUXVlcnlQYXJhbXMocXVlcnlTdHJpbmcpO1xuXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYmFzZVBhdGhdLCB7XG4gICAgICAgIC4uLmNvbW1hbmQub3B0aW9ucy5leHRyYXMsXG4gICAgICAgIHF1ZXJ5UGFyYW1zLCAvLyBQYXNzIHF1ZXJ5IHBhcmFtZXRlcnMgc2VwYXJhdGVseVxuICAgICAgICBmcmFnbWVudCwgLy8gUGFzcyBmcmFnbWVudCBleHBsaWNpdGx5XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIHF1ZXJ5IHBhcmFtZXRlcnMgZnJvbSBhIHF1ZXJ5IHN0cmluZyBpbnRvIGFuIG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgcGFyc2VRdWVyeVBhcmFtcyhxdWVyeVN0cmluZzogc3RyaW5nIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFxdWVyeVN0cmluZykgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBxdWVyeVN0cmluZ1xuICAgICAgLnNwbGl0KCcmJylcbiAgICAgIC5tYXAoKHBhaXIpID0+IHBhaXIuc3BsaXQoJz0nKSlcbiAgICAgIC5yZWR1Y2UoKHBhcmFtcywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIHBhcmFtc1tkZWNvZGVVUklDb21wb25lbnQoa2V5KV0gPSBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUE5hdmlnYXRlV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3N0YXJ0JyxcbiAgc3RlcHM6IHtcbiAgICBzdGFydDoge1xuICAgICAgYWN0aW9uOiAnbmF2aWdhdGUtcm91dGVyJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { Injectable, inject } from \"@angular/core\";\nimport { AXDialogService } from \"@acorex/components/dialog\";\nimport { AXPWorkflowError } from \"@acorex/platform/workflow\";\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowErrorHandler {\n constructor() {\n this.dialog = inject(AXDialogService);\n }\n handleError(error, next) {\n if (error instanceof AXPWorkflowError) {\n this.dialog.alert(\"Somthing is wrong!\", error.inner ? error.inner.message : error.message, 'danger');\n next(error);\n }\n else {\n next(error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXMWorkflowErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXMWorkflowErrorHandler }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXMWorkflowErrorHandler, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvd29ya2Zsb3dzL2Vycm9yLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUk3RCxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBRVksV0FBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztLQVc1QztJQVJHLFdBQVcsQ0FBQyxLQUFVLEVBQUUsSUFBMEI7UUFDOUMsSUFBSSxLQUFLLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7K0dBWFEsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIGluamVjdCwgaXNEZXZNb2RlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYRGlhbG9nU2VydmljZSB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvZGlhbG9nXCI7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0Vycm9yIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3dcIjtcbmltcG9ydCB7IEFYUEVycm9ySGFuZGxlciB9IGZyb20gXCIuLi9lcnJvcnNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVdvcmtmbG93RXJyb3JIYW5kbGVyIGltcGxlbWVudHMgQVhQRXJyb3JIYW5kbGVyIHtcbiAgICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChBWERpYWxvZ1NlcnZpY2UpO1xuXG5cbiAgICBoYW5kbGVFcnJvcihlcnJvcjogYW55LCBuZXh0OiAoZXJyb3I6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBWFBXb3JrZmxvd0Vycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZy5hbGVydChcIlNvbXRoaW5nIGlzIHdyb25nIVwiLCBlcnJvci5pbm5lciA/IGVycm9yLmlubmVyLm1lc3NhZ2UgOiBlcnJvci5tZXNzYWdlLCAnZGFuZ2VyJyk7XG4gICAgICAgICAgICBuZXh0KGVycm9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==","import { AXPopupModule } from '@acorex/components/popup';\nimport { AXToastModule } from '@acorex/components/toast';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXPAppStartUpProvider, AXPAppStartUpService, } from '@acorex/platform/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { ErrorHandler, inject, Inject, Injector, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, } from './data';\nimport { AXPErrorHandlerRegistryService, AXPGlobalErrorHandler } from './errors';\nimport { AXPGlobalVariableEvaluatorScopeProvider } from './global-variables';\nimport { AXPMenuSearchDefinitionProvider } from './layout';\nimport { AXPMenuSearchProvider } from './layout/menu/search.provider';\nimport { AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from './search';\nimport { AXP_SETTING_DEFINITION_PROVIDER, AXPSettingService } from './settings';\nimport { AXPDialogConfirmAction, AXPNavigateWorkflow, AXPReloadAction, AXPToastAction, AXPWorkflowRouterNavigateAction, } from './workflows';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/core\";\nimport * as i2 from \"./settings\";\nimport * as i3 from \"@acorex/platform/workflow\";\nexport class AXPCommonModule {\n static forRoot(configs) {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n static forChild(configs) {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * @ignore\n */\n constructor(instances, appInitService, settingsService) {\n instances.forEach((f) => {\n f();\n });\n appInitService.registerTask({\n name: 'Settings',\n statusText: 'Loading Settings ...',\n priority: 2,\n run: async () => {\n await settingsService.load();\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }, { token: i1.AXPAppStartUpService }, { token: i2.AXPSettingService }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCommonModule, imports: [i3.AXPWorkflowModule, AXPopupModule,\n AXDateTimeModule,\n AXToastModule], exports: [RouterModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCommonModule, providers: [\n AXPAppStartUpProvider,\n {\n provide: ErrorHandler,\n useClass: AXPGlobalErrorHandler,\n },\n {\n provide: AXPCustomOperatorService,\n useClass: AXPCustomOperatorServiceImpl,\n },\n {\n provide: AXPFilterOperatorMiddlewareService,\n useClass: AXPFilterOperatorMiddlewareServiceImpl,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXPMenuSearchProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPMenuSearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPGlobalVariableEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useFactory: async () => {\n const injector = inject(Injector);\n const provider = (await import('./configs/common-settings.provider')).AXPCommonSettingProvider;\n return new provider(injector);\n },\n multi: true,\n },\n ], imports: [AXPWorkflowModule.forChild({\n actions: {\n 'navigate-router': AXPWorkflowRouterNavigateAction,\n 'show-prompt-dialog': AXPDialogConfirmAction,\n 'show-toast': AXPToastAction,\n reload: AXPReloadAction,\n },\n workflows: {\n navigate: AXPNavigateWorkflow,\n },\n }),\n AXPopupModule,\n AXDateTimeModule,\n AXToastModule, RouterModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n 'navigate-router': AXPWorkflowRouterNavigateAction,\n 'show-prompt-dialog': AXPDialogConfirmAction,\n 'show-toast': AXPToastAction,\n reload: AXPReloadAction,\n },\n workflows: {\n navigate: AXPNavigateWorkflow,\n },\n }),\n AXPopupModule,\n AXDateTimeModule,\n AXToastModule,\n ],\n exports: [RouterModule],\n providers: [\n AXPAppStartUpProvider,\n {\n provide: ErrorHandler,\n useClass: AXPGlobalErrorHandler,\n },\n {\n provide: AXPCustomOperatorService,\n useClass: AXPCustomOperatorServiceImpl,\n },\n {\n provide: AXPFilterOperatorMiddlewareService,\n useClass: AXPFilterOperatorMiddlewareServiceImpl,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXPMenuSearchProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPMenuSearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPGlobalVariableEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useFactory: async () => {\n const injector = inject(Injector);\n const provider = (await import('./configs/common-settings.provider')).AXPCommonSettingProvider;\n return new provider(injector);\n },\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: ['AXPCommonModuleFactory']\n }] }, { type: i1.AXPAppStartUpService }, { type: i2.AXPSettingService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFDTCx1Q0FBdUMsRUFDdkMscUJBQXFCLEVBQ3JCLG9CQUFvQixHQUNyQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHNDQUFzQyxHQUN2QyxNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQW1CLDhCQUE4QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QUF3Qjs0QkFDakMsUUFBUSxFQUFFLDRCQUE0Qjt5QkFDdkM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGtDQUFrQzs0QkFDM0MsUUFBUSxFQUFFLHNDQUFzQzt5QkFDakQ7d0JBRUQ7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsUUFBUSxFQUFFLHFCQUFxQjs0QkFDL0IsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsUUFBUSxFQUFFLCtCQUErQjs0QkFDekMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHVDQUF1Qzs0QkFDaEQsUUFBUSxFQUFFLHVDQUF1Qzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFO2dDQUNyQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0NBQ2xDLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO2dDQUMvRixPQUFPLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUNoQyxDQUFDOzRCQUNELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzswQkF3Q0ksTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBvcHVwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYVG9hc3RNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuaW1wb3J0IHsgQVhEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHtcbiAgQVhQX0VYUFJFU1NJT05fRVZBTFVBVE9SX1NDT1BFX1BST1ZJREVSLFxuICBBWFBBcHBTdGFydFVwUHJvdmlkZXIsXG4gIEFYUEFwcFN0YXJ0VXBTZXJ2aWNlLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEVycm9ySGFuZGxlciwgaW5qZWN0LCBJbmplY3QsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFYUEN1c3RvbU9wZXJhdG9yU2VydmljZSxcbiAgQVhQQ3VzdG9tT3BlcmF0b3JTZXJ2aWNlSW1wbCxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZUltcGwsXG59IGZyb20gJy4vZGF0YSc7XG5pbXBvcnQgeyBBWFBFcnJvckhhbmRsZXIsIEFYUEVycm9ySGFuZGxlclJlZ2lzdHJ5U2VydmljZSwgQVhQR2xvYmFsRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQVhQR2xvYmFsVmFyaWFibGVFdmFsdWF0b3JTY29wZVByb3ZpZGVyIH0gZnJvbSAnLi9nbG9iYWwtdmFyaWFibGVzJztcbmltcG9ydCB7IEFYUE1lbnVTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICcuL2xheW91dCc7XG5pbXBvcnQgeyBBWFBNZW51U2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuL2xheW91dC9tZW51L3NlYXJjaC5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsIEFYUF9TRUFSQ0hfUFJPVklERVIgfSBmcm9tICcuL3NlYXJjaCc7XG5pbXBvcnQgeyBBWFBfU0VUVElOR19ERUZJTklUSU9OX1BST1ZJREVSLCBBWFBTZXR0aW5nU2VydmljZSB9IGZyb20gJy4vc2V0dGluZ3MnO1xuaW1wb3J0IHtcbiAgQVhQRGlhbG9nQ29uZmlybUFjdGlvbixcbiAgQVhQTmF2aWdhdGVXb3JrZmxvdyxcbiAgQVhQUmVsb2FkQWN0aW9uLFxuICBBWFBUb2FzdEFjdGlvbixcbiAgQVhQV29ya2Zsb3dSb3V0ZXJOYXZpZ2F0ZUFjdGlvbixcbn0gZnJvbSAnLi93b3JrZmxvd3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbW1vbk1vZHVsZUNvbmZpZ3Mge1xuICBlcnJvckhhbmRsZXJzOiAobmV3ICgpID0+IEFYUEVycm9ySGFuZGxlcilbXTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEFYUFdvcmtmbG93TW9kdWxlLmZvckNoaWxkKHtcbiAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgJ25hdmlnYXRlLXJvdXRlcic6IEFYUFdvcmtmbG93Um91dGVyTmF2aWdhdGVBY3Rpb24sXG4gICAgICAgICdzaG93LXByb21wdC1kaWFsb2cnOiBBWFBEaWFsb2dDb25maXJtQWN0aW9uLFxuICAgICAgICAnc2hvdy10b2FzdCc6IEFYUFRvYXN0QWN0aW9uLFxuICAgICAgICByZWxvYWQ6IEFYUFJlbG9hZEFjdGlvbixcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgbmF2aWdhdGU6IEFYUE5hdmlnYXRlV29ya2Zsb3csXG4gICAgICB9LFxuICAgIH0pLFxuICAgIEFYUG9wdXBNb2R1bGUsXG4gICAgQVhEYXRlVGltZU1vZHVsZSxcbiAgICBBWFRvYXN0TW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQVhQQXBwU3RhcnRVcFByb3ZpZGVyLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgIHVzZUNsYXNzOiBBWFBHbG9iYWxFcnJvckhhbmRsZXIsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBDdXN0b21PcGVyYXRvclNlcnZpY2UsXG4gICAgICB1c2VDbGFzczogQVhQQ3VzdG9tT3BlcmF0b3JTZXJ2aWNlSW1wbCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2UsXG4gICAgICB1c2VDbGFzczogQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZUltcGwsXG4gICAgfSxcblxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQTWVudVNlYXJjaFByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQTWVudVNlYXJjaERlZmluaXRpb25Qcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX0VYUFJFU1NJT05fRVZBTFVBVE9SX1NDT1BFX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYUEdsb2JhbFZhcmlhYmxlRXZhbHVhdG9yU2NvcGVQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUZhY3Rvcnk6IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IChhd2FpdCBpbXBvcnQoJy4vY29uZmlncy9jb21tb24tc2V0dGluZ3MucHJvdmlkZXInKSkuQVhQQ29tbW9uU2V0dGluZ1Byb3ZpZGVyO1xuICAgICAgICByZXR1cm4gbmV3IHByb3ZpZGVyKGluamVjdG9yKTtcbiAgICAgIH0sXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb21tb25Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWdzPzogQVhQQ29tbW9uTW9kdWxlQ29uZmlncyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhQQ29tbW9uTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWFBDb21tb25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLi4uKGNvbmZpZ3M/LmVycm9ySGFuZGxlcnMgfHwgW10pLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FYUENvbW1vbk1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhQRXJyb3JIYW5kbGVyUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlciguLi4oY29uZmlncz8uZXJyb3JIYW5kbGVycyB8fCBbXSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYUEVycm9ySGFuZGxlclJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoY29uZmlncz86IEFYUENvbW1vbk1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUENvbW1vbk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQVhQQ29tbW9uTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIC4uLihjb25maWdzPy5lcnJvckhhbmRsZXJzIHx8IFtdKSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWFBDb21tb25Nb2R1bGVGYWN0b3J5JyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYUEVycm9ySGFuZGxlclJlZ2lzdHJ5U2VydmljZSkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoLi4uKGNvbmZpZ3M/LmVycm9ySGFuZGxlcnMgfHwgW10pKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWFBFcnJvckhhbmRsZXJSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ0FYUENvbW1vbk1vZHVsZUZhY3RvcnknKSBpbnN0YW5jZXM6IGFueVtdLFxuICAgIGFwcEluaXRTZXJ2aWNlOiBBWFBBcHBTdGFydFVwU2VydmljZSxcbiAgICBzZXR0aW5nc1NlcnZpY2U6IEFYUFNldHRpbmdTZXJ2aWNlLFxuICApIHtcbiAgICBpbnN0YW5jZXMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgZigpO1xuICAgIH0pO1xuICAgIGFwcEluaXRTZXJ2aWNlLnJlZ2lzdGVyVGFzayh7XG4gICAgICBuYW1lOiAnU2V0dGluZ3MnLFxuICAgICAgc3RhdHVzVGV4dDogJ0xvYWRpbmcgU2V0dGluZ3MgLi4uJyxcbiAgICAgIHByaW9yaXR5OiAyLFxuICAgICAgcnVuOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHNldHRpbmdzU2VydmljZS5sb2FkKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nimport { merge } from 'lodash-es';\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\nexport const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken('AXP_PLATFORM_CONFIG_TOKEN', {\n providedIn: 'root',\n factory: () => {\n return AXPPlatformDefaultConfigs;\n },\n});\nexport const AXPPlatformDefaultConfigs = {\n copyright: 'ACoreX @ 2024',\n title: 'ACoreX Platform',\n network: {\n timeOut: 5000,\n },\n};\nexport function configPlatform(config = AXPPlatformDefaultConfigs) {\n return merge(AXPPlatformDefaultConfigs, config);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvY29uZmlncy9hcHAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQU0sYUFBYSxDQUFDLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQXFCLDJCQUEyQixFQUFFO0lBQzNHLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixPQUFPLHlCQUF5QixDQUFDO0lBQ25DLENBQUM7Q0FDRixDQUFDLENBQUM7QUF3QkgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQXVCO0lBQzNELFNBQVMsRUFBRSxlQUFlO0lBQzFCLEtBQUssRUFBRSxpQkFBaUI7SUFFeEIsT0FBTyxFQUFFO1FBQ1AsT0FBTyxFQUFFLElBQUk7S0FDZDtDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsY0FBYyxDQUFDLFNBQXNDLHlCQUF5QjtJQUM1RixPQUFPLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQTG9nb0NvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgY29uc3QgRU5WSVJPTk1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignRU5WSVJPTk1FTlQnKTtcblxuZXhwb3J0IGNvbnN0IEFYUF9QTEFURk9STV9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQUGxhdGZvcm1Db25maWdzPignQVhQX1BMQVRGT1JNX0NPTkZJR19UT0tFTicsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgcmV0dXJuIEFYUFBsYXRmb3JtRGVmYXVsdENvbmZpZ3M7XG4gIH0sXG59KTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBQbGF0Zm9ybUNvbmZpZ3Mge1xuICB0aXRsZT86IHN0cmluZztcbiAgY29weXJpZ2h0Pzogc3RyaW5nO1xuICBsb2dvPzoge1xuICAgIGljb246IHtcbiAgICAgIGxpZ2h0OiBBWFBMb2dvQ29uZmlnO1xuICAgICAgZGFyazogQVhQTG9nb0NvbmZpZztcbiAgICB9O1xuICAgIHRleHQ6IHtcbiAgICAgIGxpZ2h0OiBBWFBMb2dvQ29uZmlnO1xuICAgICAgZGFyazogQVhQTG9nb0NvbmZpZztcbiAgICB9O1xuICAgIGZ1bGw6IHtcbiAgICAgIGxpZ2h0OiBBWFBMb2dvQ29uZmlnO1xuICAgICAgZGFyazogQVhQTG9nb0NvbmZpZztcbiAgICB9O1xuICB9O1xuICBuZXR3b3JrPzoge1xuICAgIHRpbWVPdXQ/OiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBBWFBQbGF0Zm9ybURlZmF1bHRDb25maWdzOiBBWFBQbGF0Zm9ybUNvbmZpZ3MgPSB7XG4gIGNvcHlyaWdodDogJ0FDb3JlWCBAIDIwMjQnLFxuICB0aXRsZTogJ0FDb3JlWCBQbGF0Zm9ybScsXG5cbiAgbmV0d29yazoge1xuICAgIHRpbWVPdXQ6IDUwMDAsXG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnUGxhdGZvcm0oY29uZmlnOiBQYXJ0aWFsPEFYUFBsYXRmb3JtQ29uZmlncz4gPSBBWFBQbGF0Zm9ybURlZmF1bHRDb25maWdzKTogQVhQUGxhdGZvcm1Db25maWdzIHtcbiAgcmV0dXJuIG1lcmdlKEFYUFBsYXRmb3JtRGVmYXVsdENvbmZpZ3MsIGNvbmZpZyk7XG59XG4iXX0=","import { InjectionToken } from \"@angular/core\";\nexport const AXP_ROOT_CONFIG_TOKEN = new InjectionToken('AXP_ROOT_CONFIG_TOKEN');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9jb25maWdzL2NvbmZpZy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFpQix1QkFBdUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY29uc3QgQVhQX1JPT1RfQ09ORklHX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUFJvb3RDb25maWdzPignQVhQX1JPT1RfQ09ORklHX1RPS0VOJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQUm9vdENvbmZpZ3Mge1xuICAgIGJhc2VVcmw6IHN0cmluZztcbn0iXX0=","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPFileStorageService {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFileStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFileStorageService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFileStorageService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2ZpbGUtc3RvcmFnZS9maWxlLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQWdCLHFCQUFxQjsrR0FBckIscUJBQXFCO21IQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRDFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUEZpbGVTdG9yYWdlQ3JlYXRlUmVxdWVzdCwgQVhQRmlsZVN0b3JhZ2VJbmZvLCBBWFBGaWxlU3RvcmFnZVVwZGF0ZVJlcXVlc3QsIEFYUEZpbGVTdG9yYWdlRmluZFJlcXVlc3QsIEFYUEZpbGVNYW55U3RvcmFnZUluZm8gfSBmcm9tIFwiLi9maWxlLXN0b3JhZ2UudHlwZXNcIjtcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQRmlsZVN0b3JhZ2VTZXJ2aWNlIHtcblxuICAgIGFic3RyYWN0IHNhdmUocmVxdWVzdDogQVhQRmlsZVN0b3JhZ2VDcmVhdGVSZXF1ZXN0KTogUHJvbWlzZTxBWFBGaWxlU3RvcmFnZUluZm8+O1xuXG4gICAgYWJzdHJhY3QgdXBkYXRlKHJlcXVlc3Q6IEFYUEZpbGVTdG9yYWdlVXBkYXRlUmVxdWVzdCk6IFByb21pc2U8QVhQRmlsZVN0b3JhZ2VJbmZvPjtcblxuICAgIGFic3RyYWN0IGZpbmQocmVxdWVzdDogQVhQRmlsZVN0b3JhZ2VGaW5kUmVxdWVzdCk6IFByb21pc2U8QVhQRmlsZVN0b3JhZ2VJbmZvW10+O1xuXG4gICAgYWJzdHJhY3QgZmluZE1hbnkoaWRzIDogc3RyaW5nW10pOiBQcm9taXNlPEFYUEZpbGVNYW55U3RvcmFnZUluZm9bXT47XG5cbiAgICBhYnN0cmFjdCBnZXRJbmZvKGZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTxBWFBGaWxlU3RvcmFnZUluZm8+O1xuXG4gICAgYWJzdHJhY3QgcmVtb3ZlKGZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIGFic3RyYWN0IGNvbW1pdChmaWxlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgICBhYnN0cmFjdCBtYXJrRm9yRGVsZXRpb24oZmlsZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19","export var AXPFileStorageStatus;\n(function (AXPFileStorageStatus) {\n AXPFileStorageStatus[\"Temporary\"] = \"temporary\";\n AXPFileStorageStatus[\"Committed\"] = \"committed\";\n AXPFileStorageStatus[\"PendingDeletion\"] = \"pendingDeletion\";\n AXPFileStorageStatus[\"Archived\"] = \"archived\";\n AXPFileStorageStatus[\"Error\"] = \"error\";\n})(AXPFileStorageStatus || (AXPFileStorageStatus = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zdG9yYWdlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9maWxlLXN0b3JhZ2UvZmlsZS1zdG9yYWdlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLG9CQU1YO0FBTkQsV0FBWSxvQkFBb0I7SUFDOUIsK0NBQXVCLENBQUE7SUFDdkIsK0NBQXVCLENBQUE7SUFDdkIsMkRBQW1DLENBQUE7SUFDbkMsNkNBQXFCLENBQUE7SUFDckIsdUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQU0vQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUE1ldGFEYXRhIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuZXhwb3J0IGVudW0gQVhQRmlsZVN0b3JhZ2VTdGF0dXMge1xuICBUZW1wb3JhcnkgPSAndGVtcG9yYXJ5JywgLy8gRmlsZSBpcyBub3QgeWV0IGFzc29jaWF0ZWQgd2l0aCBhIHBhcmVudCBlbnRpdHlcbiAgQ29tbWl0dGVkID0gJ2NvbW1pdHRlZCcsIC8vIEZpbGUgaXMgZnVsbHkgYXNzb2NpYXRlZCBhbmQgaW4gdXNlXG4gIFBlbmRpbmdEZWxldGlvbiA9ICdwZW5kaW5nRGVsZXRpb24nLCAvLyBGaWxlIGlzIG1hcmtlZCBmb3IgZGVsZXRpb24gYnV0IG5vdCB5ZXQgcmVtb3ZlZFxuICBBcmNoaXZlZCA9ICdhcmNoaXZlZCcsIC8vIEZpbGUgaXMgYXJjaGl2ZWQgYW5kIG5vIGxvbmdlciBhY3RpdmVseSB1c2VkXG4gIEVycm9yID0gJ2Vycm9yJywgLy8gRmlsZSBlbmNvdW50ZXJlZCBhbiBlcnJvciBkdXJpbmcgcHJvY2Vzc2luZ1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBmaWxlIHN0b3JhZ2UgcmVxdWVzdCBpbiB0aGUgQWNvcmV4IHBsYXRmb3JtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEZpbGVTdG9yYWdlQ3JlYXRlUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0byBiZSBzdG9yZWQuXG4gICAqL1xuICBmaWxlOiBGaWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiByZWZlcmVuY2VkIGVudGl0eS5cbiAgICovXG4gIHJlZklkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgcmVmZXJlbmNlZCBlbnRpdHkuXG4gICAqL1xuICByZWZUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY2F0ZWdvcnkgb2YgdGhlIGZpbGUuIHByb2ZpbGUtcGljdHVyZSwgY29tcGFueS1sb2dvLCBwb2xpY3ksIGRvY3VtZW50LCBldGMuXG4gICAqL1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZvbGRlciBwYXRoIHdoZXJlIHRoZSBmaWxlIHNob3VsZCBiZSBzdG9yZWQuXG4gICAqIElmIG51bGwsIHRoZSBzZXJ2aWNlIHdpbGwgcmVzb2x2ZSB0aGUgcGF0aCBiYXNlZCBvbiBtZXRhZGF0YSwgdXNlciwgdGVuYW50LCBvciBkZWZhdWx0IHJ1bGVzLlxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS5cbiAgICovXG4gIG1ldGFkYXRhPzogQVhQTWV0YURhdGE7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWxlIGlzIHByaW1hcnkgb3Igbm90LlxuICAgKi9cbiAgaXNQcmltYXJ5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBzdGF0dXMgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBzdGF0dXM/OiBBWFBGaWxlU3RvcmFnZVN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBGaWxlU3RvcmFnZVVwZGF0ZVJlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc3RvcmVkIGZpbGUuXG4gICAqL1xuICBmaWxlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgcGF0aCB3aGVyZSB0aGUgZmlsZSBzaG91bGQgYmUgc3RvcmVkLlxuICAgKiBJZiBudWxsLCB0aGUgc2VydmljZSB3aWxsIHJlc29sdmUgdGhlIHBhdGggYmFzZWQgb24gbWV0YWRhdGEsIHVzZXIsIHRlbmFudCwgb3IgZGVmYXVsdCBydWxlcy5cbiAgICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqL1xuICBtZXRhZGF0YTogQVhQTWV0YURhdGE7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWxlIGlzIHByaW1hcnkgb3Igbm90LlxuICAgKi9cbiAgaXNQcmltYXJ5PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IGEgZmlsZSBzdG9yZWQgaW4gdGhlIEFYUCBmaWxlIHN0b3JhZ2Ugc3lzdGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEZpbGVTdG9yYWdlSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzdG9yZWQgZmlsZS5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc3RvcmVkIGZpbGUuXG4gICAqL1xuICBmaWxlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHJlZmVyZW5jZWQgZW50aXR5LlxuICAgKi9cbiAgcmVmSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSByZWZlcmVuY2VkIGVudGl0eS5cbiAgICovXG4gIHJlZlR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjYXRlZ29yeSBvZiB0aGUgZmlsZS4gcHJvZmlsZS1waWN0dXJlLCBjb21wYW55LWxvZ28sIHBvbGljeSwgZG9jdW1lbnQsIGV0Yy5cbiAgICovXG4gIGNhdGVnb3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgd2hlcmUgdGhlIGZpbGUgY2FuIGJlIGFjY2Vzc2VkLlxuICAgKi9cbiAgdXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgZmlsZSBpbiBieXRlcy5cbiAgICovXG4gIHNpemU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgTUlNRSB0eXBlIG9mIHRoZSBmaWxlLlxuICAgKi9cbiAgbWltZVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgZmlsZSB3YXMgdXBsb2FkZWQuXG4gICAqL1xuICB1cGxvYWRlZEF0OiBEYXRlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmlsZSBpcyBwdWJsaWMgb3IgcHJpdmF0ZS5cbiAgICovXG4gIGlzUHVibGljOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmlsZSBpcyBwcmltYXJ5IG9yIG5vdC5cbiAgICovXG4gIGlzUHJpbWFyeT86IGJvb2xlYW47XG5cbiAgc3RhdHVzOiBBWFBGaWxlU3RvcmFnZVN0YXR1czsgLy8gVXBkYXRlZCB0byB1c2UgZW51bVxuXG4gIGJpbmFyeTogRmlsZTtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEZpbGVNYW55U3RvcmFnZUluZm8ge1xuICAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHN0b3JlZCBmaWxlLlxuICAgKi9cbiAgIGlkPzogc3RyaW5nO1xuICAgLyoqXG4gICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzdG9yZWQgZmlsZS5cbiAgICAqL1xuICAgZmlsZUlkOiBzdHJpbmc7XG4gICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHJlZmVyZW5jZWQgZW50aXR5LlxuICAgKi9cbiAgcmVmSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSByZWZlcmVuY2VkIGVudGl0eS5cbiAgICovXG4gIHJlZlR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBmaWxlIGluIGJ5dGVzLlxuICAgKi9cbiAgc2l6ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRmlsZVN0b3JhZ2VJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHN0b3JlZCBmaWxlLlxuICAgKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzdG9yZWQgZmlsZS5cbiAgICovXG4gIGZpbGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgcmVmZXJlbmNlZCBlbnRpdHkuXG4gICAqL1xuICByZWZJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHJlZmVyZW5jZWQgZW50aXR5LlxuICAgKi9cbiAgcmVmVHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNhdGVnb3J5IG9mIHRoZSBmaWxlLiBwcm9maWxlLXBpY3R1cmUsIGNvbXBhbnktbG9nbywgcG9saWN5LCBkb2N1bWVudCwgZXRjLlxuICAgKi9cbiAgY2F0ZWdvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSTCB3aGVyZSB0aGUgZmlsZSBjYW4gYmUgYWNjZXNzZWQuXG4gICAqL1xuICB1cmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBmaWxlIGluIGJ5dGVzLlxuICAgKi9cbiAgc2l6ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBtaW1lVHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB3aGVuIHRoZSBmaWxlIHdhcyB1cGxvYWRlZC5cbiAgICovXG4gIHVwbG9hZGVkQXQ6IERhdGU7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWxlIGlzIHB1YmxpYyBvciBwcml2YXRlLlxuICAgKi9cbiAgaXNQdWJsaWM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWxlIGlzIHByaW1hcnkgb3Igbm90LlxuICAgKi9cbiAgaXNQcmltYXJ5PzogYm9vbGVhbjtcblxuICBzdGF0dXM6IEFYUEZpbGVTdG9yYWdlU3RhdHVzOyAvLyBVcGRhdGVkIHRvIHVzZSBlbnVtXG5cbiAgYmluYXJ5OiBGaWxlO1xufVxuXG5cbi8qKlxuICogUmVwcmVzZW50cyBpbmZvcm1hdGlvbiBhYm91dCBhIGZpbGUgc3RvcmVkIGluIHRoZSBBWFAgZmlsZSBzdG9yYWdlIHN5c3RlbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBGaWxlU3RvcmFnZUZpbmRSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiByZWZlcmVuY2VkIGVudGl0eS5cbiAgICovXG4gIHJlZklkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHJlZmVyZW5jZWQgZW50aXR5LlxuICAgKi9cbiAgcmVmVHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjYXRlZ29yeSBvZiB0aGUgZmlsZS4gcHJvZmlsZS1waWN0dXJlLCBjb21wYW55LWxvZ28sIHBvbGljeSwgZG9jdW1lbnQsIGV0Yy5cbiAgICovXG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIE1JTUUgdHlwZSBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG1pbWVUeXBlPzogc3RyaW5nO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpbGUgaXMgcHVibGljIG9yIHByaXZhdGUuXG4gICAqL1xuICBpc1B1YmxpYz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmlsZSBpcyBwcmltYXJ5IG9yIG5vdC5cbiAgICovXG4gIGlzUHJpbWFyeT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSByYW5nZSB3aGVuIHRoZSBmaWxlIHdhcyB1cGxvYWRlZC5cbiAgICovXG4gIHVwbG9hZGVkQXRSYW5nZT86IHsgZnJvbTogRGF0ZTsgdG86IERhdGUgfTtcbn1cbiJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_FILE_TYPE_INFO_PROVIDER = new InjectionToken('AXP_FILE_TYPE_INFO_PROVIDER');\nexport class AXPFileTypeProviderService {\n constructor() {\n this.providers = inject(AXP_FILE_TYPE_INFO_PROVIDER, { optional: true });\n }\n async items() {\n const items = [];\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n items.push(...(await provider.items()));\n }\n }\n return items;\n }\n async get(name) {\n return (await this.items()).find((c) => c.name == name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFileTypeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFileTypeProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPFileTypeProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS10eXBlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9maWxlLXR5cGUvZmlsZS10eXBlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPbkUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQTRCLDZCQUE2QixDQUFDLENBQUM7QUFHeEgsTUFBTSxPQUFPLDBCQUEwQjtJQUR2QztRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQWdCN0U7SUFkQyxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7UUFFaEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQVk7UUFDcEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBaEJVLDBCQUEwQjttSEFBMUIsMEJBQTBCLGNBRGIsTUFBTTs7NEZBQ25CLDBCQUEwQjtrQkFEdEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBGaWxlVHlwZSB9IGZyb20gJy4vZmlsZS10eXBlLnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBGaWxlVHlwZUluZm9Qcm92aWRlciB7XG4gIGl0ZW1zKCk6IFByb21pc2U8QVhQRmlsZVR5cGVbXT47XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfRklMRV9UWVBFX0lORk9fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRmlsZVR5cGVJbmZvUHJvdmlkZXJbXT4oJ0FYUF9GSUxFX1RZUEVfSU5GT19QUk9WSURFUicpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEZpbGVUeXBlUHJvdmlkZXJTZXJ2aWNlIGltcGxlbWVudHMgQVhQRmlsZVR5cGVJbmZvUHJvdmlkZXIge1xuICBwcml2YXRlIHByb3ZpZGVycyA9IGluamVjdChBWFBfRklMRV9UWVBFX0lORk9fUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgYXN5bmMgaXRlbXMoKTogUHJvbWlzZTxBWFBGaWxlVHlwZVtdPiB7XG4gICAgY29uc3QgaXRlbXM6IEFYUEZpbGVUeXBlW10gPSBbXTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgICBpdGVtcy5wdXNoKC4uLihhd2FpdCBwcm92aWRlci5pdGVtcygpKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIGFzeW5jIGdldChuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUEZpbGVUeXBlIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLml0ZW1zKCkpLmZpbmQoKGMpID0+IGMubmFtZSA9PSBuYW1lKTtcbiAgfVxufVxuIl19","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPLockService {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLockService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPLockService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sb2NrLXN5c3RlbS9sb2NrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFnQixjQUFjOytHQUFkLGNBQWM7bUhBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtBWFBMb2NrR2V0SW5mb1JlcXVlc3QsIEFYUExvY2tJbmZvLCBBWFBMb2NrUmVxdWVzdCwgQVhQVW5Mb2NrUmVxdWVzdCB9IGZyb20gXCIuL2xvY2sudHlwZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUExvY2tTZXJ2aWNlIHtcblxuICAgIGFic3RyYWN0IGxvY2socmVxdWVzdDogQVhQTG9ja1JlcXVlc3QpOiBQcm9taXNlPEFYUExvY2tJbmZvPjtcblxuICAgIGFic3RyYWN0IHVubG9jayhyZXF1ZXN0OiBBWFBVbkxvY2tSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPjtcblxuICAgIGFic3RyYWN0IGNoZWNrKHJlcXVlc3Q6IEFYUExvY2tHZXRJbmZvUmVxdWVzdCk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICBhYnN0cmFjdCBnZXRJbmZvKHJlcXVlc3Q6IEFYUExvY2tHZXRJbmZvUmVxdWVzdCk6IFByb21pc2U8QVhQTG9ja0luZm8+O1xufVxuIl19","import { AXToastService } from '@acorex/components/toast';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPClipBoardService {\n constructor() {\n this.toast = inject(AXToastService);\n }\n copy(title, value) {\n const copyText = document.createElement('input');\n copyText.type = 'text';\n copyText.select();\n copyText.setSelectionRange(0, 99999); // For mobile devices\n copyText.remove();\n navigator.clipboard.writeText(value);\n this.toast.success(`${title} copied!`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPClipBoardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPClipBoardService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPClipBoardService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3V0aWxzL2NsaXBib2FyZC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUlZLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7S0FZMUM7SUFWVSxJQUFJLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDcEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxRQUFRLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUN2QixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtRQUMzRCxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBWFEsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGaEIsTUFBTTs7NEZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDbGlwQm9hcmRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyBjb3B5KHRpdGxlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY29weVRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICBjb3B5VGV4dC50eXBlID0gJ3RleHQnO1xuICAgICAgICBjb3B5VGV4dC5zZWxlY3QoKTtcbiAgICAgICAgY29weVRleHQuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgOTk5OTkpOyAvLyBGb3IgbW9iaWxlIGRldmljZXNcbiAgICAgICAgY29weVRleHQucmVtb3ZlKCk7XG4gICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKGAke3RpdGxlfSBjb3BpZWQhYCk7XG4gICAgfVxuXG59Il19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { afterNextRender, Component, linkedSignal, model, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/number-box\";\nimport * as i3 from \"@acorex/components/label\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/button\";\nimport * as i6 from \"@acorex/components/color-box\";\nexport class AXMOrgChartPrintPage extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.ratio = signal(false, ...(ngDevMode ? [{ debugName: \"ratio\" }] : []));\n this.baseWidth = signal(undefined, ...(ngDevMode ? [{ debugName: \"baseWidth\" }] : []));\n this.baseHeight = signal(undefined, ...(ngDevMode ? [{ debugName: \"baseHeight\" }] : []));\n this.bgcolor = model(...(ngDevMode ? [undefined, { debugName: \"bgcolor\" }] : []));\n this.width = model(...(ngDevMode ? [undefined, { debugName: \"width\" }] : []));\n this.height = model(...(ngDevMode ? [undefined, { debugName: \"height\" }] : []));\n this.quality = model(...(ngDevMode ? [undefined, { debugName: \"quality\" }] : []));\n this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100, ...(ngDevMode ? [{ debugName: \"qualityComputed\" }] : []));\n this.scale = model(...(ngDevMode ? [undefined, { debugName: \"scale\" }] : []));\n this.#init = afterNextRender(() => {\n this.bgcolor.set(this.data.bgcolor);\n this.width.set(this.data.width);\n this.baseWidth.set(this.data.width);\n this.height.set(this.data.height);\n this.baseHeight.set(this.data.height);\n this.quality.set(this.data.quality);\n this.scale.set(this.data.scale);\n });\n }\n #init;\n calculateRatio(event, type) {\n if (!this.ratio() || !event.isUserInteraction)\n return;\n const value = event.value;\n if (type === 'width') {\n const newHeight = Math.round((value / this.baseWidth()) * this.baseHeight() * 100) / 100;\n this.height.set(newHeight);\n this.width.set(value);\n }\n else {\n const newWidth = Math.round((value / this.baseHeight()) * this.baseWidth() * 100) / 100;\n this.width.set(newWidth);\n this.height.set(value);\n }\n }\n async handleClose(isCanceled = false) {\n this.close({\n bgcolor: this.bgcolor(),\n width: this.width(),\n height: this.height(),\n quality: this.qualityComputed() / 100,\n scale: this.scale(),\n isCanceled,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXMOrgChartPrintPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.10\", type: AXMOrgChartPrintPage, isStandalone: true, selector: \"ng-component\", inputs: { bgcolor: { classPropertyName: \"bgcolor\", publicName: \"bgcolor\", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: \"height\", publicName: \"height\", isSignal: true, isRequired: false, transformFunction: null }, quality: { classPropertyName: \"quality\", publicName: \"quality\", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: \"scale\", publicName: \"scale\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { bgcolor: \"bgcolorChange\", width: \"widthChange\", height: \"heightChange\", quality: \"qualityChange\", scale: \"scaleChange\" }, usesInheritance: true, ngImport: i0, template: ` <div class=\"ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center\">\n <ax-label>Resolution (px)</ax-label>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <ax-number-box\n [changeOnScroll]=\"true\"\n [decimals]=\"4\"\n [value]=\"width()\"\n (onValueChanged)=\"calculateRatio($event, 'width')\"\n name=\"Width\"\n >\n </ax-number-box>\n <ax-button [toggleable]=\"true\" [(selected)]=\"ratio\"\n ><ax-icon><i class=\"fa-solid fa-vector-square\"></i></ax-icon\n ></ax-button>\n <ax-number-box\n [changeOnScroll]=\"true\"\n [decimals]=\"4\"\n [value]=\"height()\"\n (onValueChanged)=\"calculateRatio($event, 'height')\"\n name=\"Height\"\n >\n </ax-number-box>\n </div>\n\n <ax-label>Background color</ax-label>\n <ax-color-box [(ngModel)]=\"bgcolor\"></ax-color-box>\n\n <ax-label>Quality of image (50-100%)</ax-label>\n <ax-number-box\n [changeOnScroll]=\"true\"\n [minValue]=\"50\"\n [maxValue]=\"100\"\n [(ngModel)]=\"qualityComputed\"\n name=\"Quality\"\n >\n </ax-number-box>\n\n <ax-label>Scale</ax-label>\n <ax-number-box [changeOnScroll]=\"true\" [minValue]=\"1\" [(ngModel)]=\"scale\" name=\"scale\"> </ax-number-box>\n </div>\n\n <ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button text=\"Print\" look=\"solid\" color=\"primary\" (onClick)=\"handleClose()\">\n <ax-icon class=\"fa-solid fa-print\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>`, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXCheckBoxModule }, { kind: \"ngmodule\", type: AXNumberBoxModule }, { kind: \"component\", type: i2.AXNumberBoxComponent, selector: \"ax-number-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"minValue\", \"maxValue\", \"showSpinButtons\", \"thousandsSeparator\", \"decimals\", \"changeOnScroll\", \"step\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\", \"thousandsSeparatorChange\"] }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i3.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i5.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXColorBoxModule }, { kind: \"component\", type: i6.AXColorBoxComponent, selector: \"ax-color-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"showBadge\", \"showValue\", \"showClearButton\", \"showIcon\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXMOrgChartPrintPage, decorators: [{\n type: Component,\n args: [{\n template: ` <div class=\"ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center\">\n <ax-label>Resolution (px)</ax-label>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <ax-number-box\n [changeOnScroll]=\"true\"\n [decimals]=\"4\"\n [value]=\"width()\"\n (onValueChanged)=\"calculateRatio($event, 'width')\"\n name=\"Width\"\n >\n </ax-number-box>\n <ax-button [toggleable]=\"true\" [(selected)]=\"ratio\"\n ><ax-icon><i class=\"fa-solid fa-vector-square\"></i></ax-icon\n ></ax-button>\n <ax-number-box\n [changeOnScroll]=\"true\"\n [decimals]=\"4\"\n [value]=\"height()\"\n (onValueChanged)=\"calculateRatio($event, 'height')\"\n name=\"Height\"\n >\n </ax-number-box>\n </div>\n\n <ax-label>Background color</ax-label>\n <ax-color-box [(ngModel)]=\"bgcolor\"></ax-color-box>\n\n <ax-label>Quality of image (50-100%)</ax-label>\n <ax-number-box\n [changeOnScroll]=\"true\"\n [minValue]=\"50\"\n [maxValue]=\"100\"\n [(ngModel)]=\"qualityComputed\"\n name=\"Quality\"\n >\n </ax-number-box>\n\n <ax-label>Scale</ax-label>\n <ax-number-box [changeOnScroll]=\"true\" [minValue]=\"1\" [(ngModel)]=\"scale\" name=\"scale\"> </ax-number-box>\n </div>\n\n <ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button text=\"Print\" look=\"solid\" color=\"primary\" (onClick)=\"handleClose()\">\n <ax-icon class=\"fa-solid fa-print\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>`,\n imports: [\n FormsModule,\n AXCheckBoxModule,\n AXNumberBoxModule,\n AXTextBoxModule,\n AXLabelModule,\n AXDecoratorModule,\n AXButtonModule,\n AXColorBoxModule,\n ],\n }]\n }], propDecorators: { bgcolor: [{ type: i0.Input, args: [{ isSignal: true, alias: \"bgcolor\", required: false }] }, { type: i0.Output, args: [\"bgcolorChange\"] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: \"width\", required: false }] }, { type: i0.Output, args: [\"widthChange\"] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: \"height\", required: false }] }, { type: i0.Output, args: [\"heightChange\"] }], quality: [{ type: i0.Input, args: [{ isSignal: true, alias: \"quality\", required: false }] }, { type: i0.Output, args: [\"qualityChange\"] }], scale: [{ type: i0.Input, args: [{ isSignal: true, alias: \"scale\", required: false }] }, { type: i0.Output, args: [\"scaleChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXBvcHVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi91dGlscy9leHBvcnQtcG9wdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWlFN0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQTlEN0Q7O1FBaUVZLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxpREFBQyxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxNQUFNLENBQXFCLFNBQVMscURBQUMsQ0FBQztRQUNsRCxlQUFVLEdBQUcsTUFBTSxDQUFxQixTQUFTLHNEQUFDLENBQUM7UUFFbkQsWUFBTyxHQUFHLEtBQUssNkRBQVUsQ0FBQztRQUMxQixVQUFLLEdBQUcsS0FBSywyREFBVSxDQUFDO1FBQ3hCLFdBQU0sR0FBRyxL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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFpREssMkRBRWIsV0FBVyw4VkFDWCxnQkFBZ0IsOEJBQ2hCLGlCQUFpQixpZkFDakIsZUFBZSw4QkFDZixhQUFhLGdLQUNiLGlCQUFpQixzVkFDakIsY0FBYyw2WEFDZCxnQkFBZ0I7OzRGQUdQLG9CQUFvQjtrQkE5RGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQWlESztvQkFDZixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ2hlY2tCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2hlY2stYm94JztcbmltcG9ydCB7IEFYQ29sb3JCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29sb3ItYm94JztcbmltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYTnVtYmVyQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL251bWJlci1ib3gnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENvbXBvbmVudCwgbGlua2VkU2lnbmFsLCBtb2RlbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYUERvbVRvSW1hZ2VPcHRpb25zIH0gZnJvbSAnLi9leHBvcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYCA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtW2F1dG9fMThyZW1dIGF4LWdhcC00IGF4LWp1c3RpZnktY2VudGVyIGF4LXAtNCBheC1pdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxheC1sYWJlbD5SZXNvbHV0aW9uIChweCk8L2F4LWxhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTIgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxheC1udW1iZXItYm94XG4gICAgICAgICAgW2NoYW5nZU9uU2Nyb2xsXT1cInRydWVcIlxuICAgICAgICAgIFtkZWNpbWFsc109XCI0XCJcbiAgICAgICAgICBbdmFsdWVdPVwid2lkdGgoKVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImNhbGN1bGF0ZVJhdGlvKCRldmVudCwgJ3dpZHRoJylcIlxuICAgICAgICAgIG5hbWU9XCJXaWR0aFwiXG4gICAgICAgID5cbiAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICA8YXgtYnV0dG9uIFt0b2dnbGVhYmxlXT1cInRydWVcIiBbKHNlbGVjdGVkKV09XCJyYXRpb1wiXG4gICAgICAgICAgPjxheC1pY29uPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtdmVjdG9yLXNxdWFyZVwiPjwvaT48L2F4LWljb25cbiAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtbnVtYmVyLWJveFxuICAgICAgICAgIFtjaGFuZ2VPblNjcm9sbF09XCJ0cnVlXCJcbiAgICAgICAgICBbZGVjaW1hbHNdPVwiNFwiXG4gICAgICAgICAgW3ZhbHVlXT1cImhlaWdodCgpXCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiY2FsY3VsYXRlUmF0aW8oJGV2ZW50LCAnaGVpZ2h0JylcIlxuICAgICAgICAgIG5hbWU9XCJIZWlnaHRcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXgtbnVtYmVyLWJveD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YXgtbGFiZWw+QmFja2dyb3VuZCBjb2xvcjwvYXgtbGFiZWw+XG4gICAgICA8YXgtY29sb3ItYm94IFsobmdNb2RlbCldPVwiYmdjb2xvclwiPjwvYXgtY29sb3ItYm94PlxuXG4gICAgICA8YXgtbGFiZWw+UXVhbGl0eSBvZiBpbWFnZSAoNTAtMTAwJSk8L2F4LWxhYmVsPlxuICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgW2NoYW5nZU9uU2Nyb2xsXT1cInRydWVcIlxuICAgICAgICBbbWluVmFsdWVdPVwiNTBcIlxuICAgICAgICBbbWF4VmFsdWVdPVwiMTAwXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJxdWFsaXR5Q29tcHV0ZWRcIlxuICAgICAgICBuYW1lPVwiUXVhbGl0eVwiXG4gICAgICA+XG4gICAgICA8L2F4LW51bWJlci1ib3g+XG5cbiAgICAgIDxheC1sYWJlbD5TY2FsZTwvYXgtbGFiZWw+XG4gICAgICA8YXgtbnVtYmVyLWJveCBbY2hhbmdlT25TY3JvbGxdPVwidHJ1ZVwiIFttaW5WYWx1ZV09XCIxXCIgWyhuZ01vZGVsKV09XCJzY2FsZVwiIG5hbWU9XCJzY2FsZVwiPiA8L2F4LW51bWJlci1ib3g+XG4gICAgPC9kaXY+XG5cbiAgICA8YXgtZm9vdGVyPlxuICAgICAgPGF4LXByZWZpeD4gPC9heC1wcmVmaXg+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIHRleHQ9XCJDYW5jZWxcIiBsb29rPVwic29saWRcIiAob25DbGljayk9XCJoYW5kbGVDbG9zZSh0cnVlKVwiPiA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiUHJpbnRcIiBsb29rPVwic29saWRcIiBjb2xvcj1cInByaW1hcnlcIiAob25DbGljayk9XCJoYW5kbGVDbG9zZSgpXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1wcmludFwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1mb290ZXI+YCxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYQ2hlY2tCb3hNb2R1bGUsXG4gICAgQVhOdW1iZXJCb3hNb2R1bGUsXG4gICAgQVhUZXh0Qm94TW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhDb2xvckJveE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNT3JnQ2hhcnRQcmludFBhZ2UgZXh0ZW5kcyBBWEJhc2VQYWdlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBkYXRhOiBBWFBEb21Ub0ltYWdlT3B0aW9ucztcblxuICBwcm90ZWN0ZWQgcmF0aW8gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgYmFzZVdpZHRoID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGJhc2VIZWlnaHQgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByb3RlY3RlZCBiZ2NvbG9yID0gbW9kZWw8c3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgd2lkdGggPSBtb2RlbDxudW1iZXI+KCk7XG4gIHByb3RlY3RlZCBoZWlnaHQgPSBtb2RlbDxudW1iZXI+KCk7XG4gIHByb3RlY3RlZCBxdWFsaXR5ID0gbW9kZWw8bnVtYmVyPigpO1xuICBwcm90ZWN0ZWQgcXVhbGl0eUNvbXB1dGVkID0gbGlua2VkU2lnbmFsKCgpID0+ICh0aGlzLmRhdGEucXVhbGl0eSA/PyAxKSAqIDEwMCk7XG4gIHByb3RlY3RlZCBzY2FsZSA9IG1vZGVsPG51bWJlcj4oKTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5iZ2NvbG9yLnNldCh0aGlzLmRhdGEuYmdjb2xvcik7XG5cbiAgICB0aGlzLndpZHRoLnNldCh0aGlzLmRhdGEud2lkdGgpO1xuICAgIHRoaXMuYmFzZVdpZHRoLnNldCh0aGlzLmRhdGEud2lkdGgpO1xuXG4gICAgdGhpcy5oZWlnaHQuc2V0KHRoaXMuZGF0YS5oZWlnaHQpO1xuICAgIHRoaXMuYmFzZUhlaWdodC5zZXQodGhpcy5kYXRhLmhlaWdodCk7XG5cbiAgICB0aGlzLnF1YWxpdHkuc2V0KHRoaXMuZGF0YS5xdWFsaXR5KTtcbiAgICB0aGlzLnNjYWxlLnNldCh0aGlzLmRhdGEuc2NhbGUpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgY2FsY3VsYXRlUmF0aW8oZXZlbnQ6IEFYVmFsdWVDaGFuZ2VkRXZlbnQsIHR5cGU6ICd3aWR0aCcgfCAnaGVpZ2h0Jyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yYXRpbygpIHx8ICFldmVudC5pc1VzZXJJbnRlcmFjdGlvbikgcmV0dXJuO1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgaWYgKHR5cGUgPT09ICd3aWR0aCcpIHtcbiAgICAgIGNvbnN0IG5ld0hlaWdodCA9IE1hdGgucm91bmQoKHZhbHVlIC8gdGhpcy5iYXNlV2lkdGgoKSEpICogdGhpcy5iYXNlSGVpZ2h0KCkhICogMTAwKSAvIDEwMDtcbiAgICAgIHRoaXMuaGVpZ2h0LnNldChuZXdIZWlnaHQpO1xuICAgICAgdGhpcy53aWR0aC5zZXQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdXaWR0aCA9IE1hdGgucm91bmQoKHZhbHVlIC8gdGhpcy5iYXNlSGVpZ2h0KCkhKSAqIHRoaXMuYmFzZVdpZHRoKCkhICogMTAwKSAvIDEwMDtcbiAgICAgIHRoaXMud2lkdGguc2V0KG5ld1dpZHRoKTtcbiAgICAgIHRoaXMuaGVpZ2h0LnNldCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNsb3NlKGlzQ2FuY2VsZWQgPSBmYWxzZSkge1xuICAgIHRoaXMuY2xvc2Uoe1xuICAgICAgYmdjb2xvcjogdGhpcy5iZ2NvbG9yKCksXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCgpLFxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCgpLFxuICAgICAgcXVhbGl0eTogdGhpcy5xdWFsaXR5Q29tcHV0ZWQoKSAvIDEwMCxcbiAgICAgIHNjYWxlOiB0aGlzLnNjYWxlKCksXG4gICAgICBpc0NhbmNlbGVkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","// AXPPdfService\nimport { AXPopupService } from '@acorex/components/popup';\nimport { Injectable, inject } from '@angular/core';\nimport { AXMOrgChartPrintPage } from './export-popup';\nimport * as i0 from \"@angular/core\";\nexport class AXPExportService {\n constructor() {\n this.popupService = inject(AXPopupService);\n }\n async generateBlobFromElement(element, blobOptions) {\n const domtoimage = (await import('dom-to-image')).default;\n const originalWidth = element.scrollWidth;\n const originalHeight = element.scrollHeight;\n let popup, options = {}, newOptions = {};\n if (blobOptions) {\n ({ popup, ...options } = blobOptions);\n }\n if (popup) {\n const result = await this.popupService.open(AXMOrgChartPrintPage, {\n header: true,\n size: 'fit',\n draggable: true,\n hasBackdrop: true,\n title: 'Export Options',\n data: { data: options },\n });\n if (result.data.isCanceled) {\n throw new Error('Process is Canceled by User!');\n }\n else {\n newOptions = { ...options, ...result.data };\n }\n }\n return domtoimage.toBlob(element, {\n ...newOptions,\n width: (newOptions.width ?? originalWidth) * (newOptions?.scale ?? 1),\n height: (newOptions.height ?? originalHeight) * (newOptions?.scale ?? 1),\n style: {\n transform: `scale(${newOptions?.scale ?? 1})`,\n transformOrigin: 'top left',\n },\n });\n }\n download(blob, filename) {\n const link = document.createElement('a');\n link.href = URL.createObjectURL(blob);\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(link.href);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPExportService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPExportService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3V0aWxzL2V4cG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQUNoQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS3RELE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJRSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQW1EdkM7SUFsREMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLE9BQW9CLEVBQUUsV0FBa0M7UUFDcEYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUUxRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFFNUMsSUFBSSxLQUEwQixFQUM1QixPQUFPLEdBQXlCLEVBQUUsRUFDbEMsVUFBVSxHQUF5QixFQUFFLENBQUM7UUFFeEMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUNoRSxNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUUsSUFBSTtnQkFDZixXQUFXLEVBQUUsSUFBSTtnQkFDakIsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTthQUN4QixDQUFDLENBQUM7WUFDSCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sVUFBVSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2hDLEdBQUcsVUFBVTtZQUNiLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUNyRSxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDeEUsS0FBSyxFQUFFO2dCQUNMLFNBQVMsRUFBRSxTQUFTLFVBQVUsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHO2dCQUM3QyxlQUFlLEVBQUUsVUFBVTthQUM1QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVSxFQUFFLFFBQWdCO1FBQ25DLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBbkRVLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFYUFBkZlNlcnZpY2VcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNT3JnQ2hhcnRQcmludFBhZ2UgfSBmcm9tICcuL2V4cG9ydC1wb3B1cCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBFeHBvcnRTZXJ2aWNlIHtcbiAgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgYXN5bmMgZ2VuZXJhdGVCbG9iRnJvbUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJsb2JPcHRpb25zPzogQVhQRG9tVG9JbWFnZU9wdGlvbnMpOiBQcm9taXNlPEJsb2I+IHtcbiAgICBjb25zdCBkb210b2ltYWdlID0gKGF3YWl0IGltcG9ydCgnZG9tLXRvLWltYWdlJykpLmRlZmF1bHQ7XG5cbiAgICBjb25zdCBvcmlnaW5hbFdpZHRoID0gZWxlbWVudC5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCBvcmlnaW5hbEhlaWdodCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuXG4gICAgbGV0IHBvcHVwOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogQVhQRG9tVG9JbWFnZU9wdGlvbnMgPSB7fSxcbiAgICAgIG5ld09wdGlvbnM6IEFYUERvbVRvSW1hZ2VPcHRpb25zID0ge307XG5cbiAgICBpZiAoYmxvYk9wdGlvbnMpIHtcbiAgICAgICh7IHBvcHVwLCAuLi5vcHRpb25zIH0gPSBibG9iT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKHBvcHVwKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKEFYTU9yZ0NoYXJ0UHJpbnRQYWdlLCB7XG4gICAgICAgIGhlYWRlcjogdHJ1ZSxcbiAgICAgICAgc2l6ZTogJ2ZpdCcsXG4gICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHRpdGxlOiAnRXhwb3J0IE9wdGlvbnMnLFxuICAgICAgICBkYXRhOiB7IGRhdGE6IG9wdGlvbnMgfSxcbiAgICAgIH0pO1xuICAgICAgaWYgKHJlc3VsdC5kYXRhLmlzQ2FuY2VsZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm9jZXNzIGlzIENhbmNlbGVkIGJ5IFVzZXIhJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdPcHRpb25zID0geyAuLi5vcHRpb25zLCAuLi5yZXN1bHQuZGF0YSB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkb210b2ltYWdlLnRvQmxvYihlbGVtZW50LCB7XG4gICAgICAuLi5uZXdPcHRpb25zLFxuICAgICAgd2lkdGg6IChuZXdPcHRpb25zLndpZHRoID8/IG9yaWdpbmFsV2lkdGgpICogKG5ld09wdGlvbnM/LnNjYWxlID8/IDEpLFxuICAgICAgaGVpZ2h0OiAobmV3T3B0aW9ucy5oZWlnaHQgPz8gb3JpZ2luYWxIZWlnaHQpICogKG5ld09wdGlvbnM/LnNjYWxlID8/IDEpLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgdHJhbnNmb3JtOiBgc2NhbGUoJHtuZXdPcHRpb25zPy5zY2FsZSA/PyAxfSlgLFxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW46ICd0b3AgbGVmdCcsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZG93bmxvYWQoYmxvYjogQmxvYiwgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBsaW5rLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICBsaW5rLmNsaWNrKCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcbiAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGxpbmsuaHJlZik7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEb21Ub0ltYWdlT3B0aW9ucyB7XG4gIHBvcHVwPzogdHJ1ZTtcbiAgZmlsdGVyPzogKG5vZGU6IE5vZGUpID0+IGJvb2xlYW47XG4gIGJnY29sb3I/OiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIHN0eWxlPzoge307XG4gIHF1YWxpdHk/OiBudW1iZXI7XG4gIGltYWdlUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGNhY2hlQnVzdD86IGJvb2xlYW47XG4gIHNjYWxlPzogbnVtYmVyO1xufVxuIl19","export function AXPCleanNestedFilters(filters) {\n return filters\n .map((filter) => {\n if (!filter)\n return undefined;\n if (filter.filters?.length) {\n const cleanedNestedFilters = AXPCleanNestedFilters(filter.filters);\n if (!filter.field && !filter.operator && cleanedNestedFilters.length === 0) {\n return undefined;\n }\n return {\n ...filter,\n filters: cleanedNestedFilters.filter(Boolean),\n };\n }\n if ((!filter.value && filter.value != false) || filter.value === 'unknown') {\n return undefined;\n }\n return filter;\n })\n .filter(Boolean);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNsZWFuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3V0aWxzL2ZpbHRlci1jbGVhbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUFtQztJQUN2RSxPQUFPLE9BQU87U0FDWCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNkLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUIsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzNCLE1BQU0sb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzNFLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7WUFDRCxPQUFPO2dCQUNMLEdBQUcsTUFBTTtnQkFDVCxPQUFPLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUM5QyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNFLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsT0FBTyxDQUErQixDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gQVhQQ2xlYW5OZXN0ZWRGaWx0ZXJzKGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdKTogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10ge1xuICByZXR1cm4gZmlsdGVyc1xuICAgIC5tYXAoKGZpbHRlcikgPT4ge1xuICAgICAgaWYgKCFmaWx0ZXIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICBpZiAoZmlsdGVyLmZpbHRlcnM/Lmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjbGVhbmVkTmVzdGVkRmlsdGVycyA9IEFYUENsZWFuTmVzdGVkRmlsdGVycyhmaWx0ZXIuZmlsdGVycyk7XG4gICAgICAgIGlmICghZmlsdGVyLmZpZWxkICYmICFmaWx0ZXIub3BlcmF0b3IgJiYgY2xlYW5lZE5lc3RlZEZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICBmaWx0ZXJzOiBjbGVhbmVkTmVzdGVkRmlsdGVycy5maWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAoKCFmaWx0ZXIudmFsdWUgJiYgZmlsdGVyLnZhbHVlICE9IGZhbHNlKSB8fCBmaWx0ZXIudmFsdWUgPT09ICd1bmtub3duJykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9KVxuICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW107XG59XG4iXX0=","//#region ---- Versioning Types ----\nexport var AXVChangeType;\n(function (AXVChangeType) {\n AXVChangeType[\"Create\"] = \"Create\";\n AXVChangeType[\"Update\"] = \"Update\";\n AXVChangeType[\"Delete\"] = \"Delete\";\n})(AXVChangeType || (AXVChangeType = {}));\n//#endregion\n//#region ---- Service Contract ----\nexport class AXPVersioningService {\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3ZlcnNpb25pbmcvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBU3hDLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDdkIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBNENELFlBQVk7QUFFWix3Q0FBd0M7QUFFeEMsTUFBTSxPQUFnQixvQkFBb0I7Q0FJekM7QUFFRCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBWZXJzaW9uaW5nIFR5cGVzICAgLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZlcnNpb25TdHJlYW0ge1xuICBpZDogc3RyaW5nO1xuICBlbnRpdHlUeXBlOiBzdHJpbmc7XG4gIGVudGl0eUlkOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBBWFZDaGFuZ2VUeXBlIHtcbiAgQ3JlYXRlID0gJ0NyZWF0ZScsXG4gIFVwZGF0ZSA9ICdVcGRhdGUnLFxuICBEZWxldGUgPSAnRGVsZXRlJyxcbn1cblxuZXhwb3J0IHR5cGUgQ2Fub25pY2FsQ2hhbmdlT3AgPSAnYWRkJyB8ICdyZW1vdmUnIHwgJ3JlcGxhY2UnIHwgJ3JlbmFtZScgfCAnbWV0YWRhdGEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbm9uaWNhbENoYW5nZSB7XG4gIHBhdGg6IHN0cmluZztcbiAgb3A6IENhbm9uaWNhbENoYW5nZU9wO1xuICBvbGRWYWx1ZT86IHVua25vd247XG4gIG5ld1ZhbHVlPzogdW5rbm93bjtcbiAgbWV0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZlcnNpb25FbnRyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIHN0cmVhbUlkOiBzdHJpbmc7XG4gIHZlcnNpb25OdW1iZXI6IG51bWJlcjtcbiAgY2hhbmdlVHlwZTogQVhWQ2hhbmdlVHlwZTtcbiAgY2hhbmdlZEJ5OiBzdHJpbmc7XG4gIGNoYW5nZWRBdDogc3RyaW5nO1xuICBzbmFwc2hvdEpzb246IHVua25vd247XG4gIHBhdGNoRnJvbVByZXZKc29uOiBDYW5vbmljYWxDaGFuZ2VbXTtcbiAgc3VtbWFyeT86IHN0cmluZztcbiAgbWV0YWRhdGFKc29uPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBWZXJzaW9uQ2hhbmdlIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHZlcnNpb25FbnRyeUlkOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgb3A6IENhbm9uaWNhbENoYW5nZU9wO1xuICBvbGRWYWx1ZT86IHVua25vd247XG4gIG5ld1ZhbHVlPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uZWRGaWxlSW5mbyB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc2l6ZTogbnVtYmVyO1xuICBtaW1lOiBzdHJpbmc7XG4gIGhhc2g6IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICB0aHVtYlVybD86IHN0cmluZztcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgU2VydmljZSBDb250cmFjdCAgIC0tLS1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFZlcnNpb25pbmdTZXJ2aWNlIHtcbiAgYWJzdHJhY3QgZ2V0U3RyZWFtSWRJZkV4aXN0cyhlbnRpdHlUeXBlOiBzdHJpbmcsIGVudGl0eUlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xuICBhYnN0cmFjdCBsaXN0RW50cmllcyhzdHJlYW1JZDogc3RyaW5nLCBvcHRpb25zPzogeyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0pOiBQcm9taXNlPEFYUFZlcnNpb25FbnRyeVtdPjtcbiAgYWJzdHJhY3QgZ2V0VWlGcmllbmRseURpZmYoc3RyZWFtSWQ6IHN0cmluZywgdjE6IG51bWJlciwgdjI6IG51bWJlcik6IFByb21pc2U8QXJyYXk8eyBiYWRnZTogc3RyaW5nOyBwYXRoOiBzdHJpbmc7IHN1bW1hcnk6IHN0cmluZzsgb2xkVmFsdWU/OiB1bmtub3duOyBuZXdWYWx1ZT86IHVua25vd24gfT4+O1xufVxuXG4vLyNlbmRyZWdpb25cblxuXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9hY29yZXgtcGxhdGZvcm0tY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["merge","i1.AXPErrorHandlerRegistryService","i1","i2.AXPSettingService","i2","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-common.mjs","sources":["../tmp-esm2022/common/lib/app/app-version.provider.js","../tmp-esm2022/common/lib/app/application.types.js","../tmp-esm2022/common/lib/app/operators.js","../tmp-esm2022/common/lib/home-page/home-page.types.js","../tmp-esm2022/common/lib/settings/setting.builder.js","../tmp-esm2022/common/lib/settings/setting-definition.service.js","../tmp-esm2022/common/lib/settings/settings.provider.js","../tmp-esm2022/common/lib/settings/settings.service.js","../tmp-esm2022/common/lib/home-page/home-page-settings.key.js","../tmp-esm2022/common/lib/home-page/home-page.service.js","../tmp-esm2022/common/lib/home-page/home-page.routes.js","../tmp-esm2022/common/lib/home-page/home-page-settings.provider.js","../tmp-esm2022/common/lib/home-page/home-page.module.js","../tmp-esm2022/common/lib/data/data-provider.types.js","../tmp-esm2022/common/lib/data/operators.service.js","../tmp-esm2022/common/lib/data/filter-middleware.service.js","../tmp-esm2022/common/lib/errors/error-handler-registry.service.js","../tmp-esm2022/common/lib/errors/global-error-handler.js","../tmp-esm2022/common/lib/global-variables/global-variable-definition.provider.js","../tmp-esm2022/common/lib/global-variables/global-variable-definition.service.js","../tmp-esm2022/common/lib/global-variables/global-variable-evaluator-scope.provider.js","../tmp-esm2022/common/lib/layout/sticky.directive.js","../tmp-esm2022/common/lib/layout/logo/logo.component.js","../tmp-esm2022/common/lib/layout/menu/menu.context.js","../tmp-esm2022/common/lib/layout/menu/menu.middleware.js","../tmp-esm2022/common/lib/layout/menu/menu-middleware.registry.js","../tmp-esm2022/common/lib/layout/menu/menu.provider.js","../tmp-esm2022/common/lib/layout/menu/provide-menu-middleware.js","../tmp-esm2022/common/lib/layout/menu/menu.service.js","../tmp-esm2022/common/lib/layout/menu/search-definition.provider.js","../tmp-esm2022/common/lib/layout/menu/search.provider.js","../tmp-esm2022/common/lib/layout/theme/components/slots/footer-text-slot.component.js","../tmp-esm2022/common/lib/layout/theme/components/slots/navbar-slot.component.js","../tmp-esm2022/common/lib/search/search-definition.builder.js","../tmp-esm2022/common/lib/search/search-definition.provider.js","../tmp-esm2022/common/lib/search/search.provider.js","../tmp-esm2022/common/lib/search/search.service.js","../tmp-esm2022/common/lib/configs/common-settings.key.js","../tmp-esm2022/common/lib/workflows/common.workflow.js","../tmp-esm2022/common/lib/workflows/navigate.workflow.js","../tmp-esm2022/common/lib/workflows/error-handler.js","../tmp-esm2022/common/lib/common.module.js","../tmp-esm2022/common/lib/configs/app.config.js","../tmp-esm2022/common/lib/configs/config.types.js","../tmp-esm2022/common/lib/file-storage/file-storage.service.js","../tmp-esm2022/common/lib/file-storage/file-storage.types.js","../tmp-esm2022/common/lib/file-type/file-type.provider.js","../tmp-esm2022/common/lib/lock-system/lock.service.js","../tmp-esm2022/common/lib/utils/clipboard-service.js","../tmp-esm2022/common/lib/utils/export-popup.js","../tmp-esm2022/common/lib/utils/export.service.js","../tmp-esm2022/common/lib/utils/filter-cleaner.js","../tmp-esm2022/common/lib/versioning/types.js","../tmp-esm2022/common/acorex-platform-common.js"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_APP_VERSION_PROVIDER = new InjectionToken('AXP_APP_VERSION_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return new AXPAppVersionDefaultProvider();\n },\n});\nclass AXPAppVersionDefaultProvider {\n async provider() {\n return {\n version: '1.0.0',\n build: 1,\n date: new Date(),\n };\n }\n}\nexport class AXPAppVersionService {\n constructor() {\n this.provider = inject(AXP_APP_VERSION_PROVIDER);\n }\n async getAppVersion() {\n return this.provider.provider();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPAppVersionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPAppVersionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPAppVersionService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXZlcnNpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2FwcC9hcHAtdmVyc2lvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWW5FLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUF3QiwwQkFBMEIsRUFBRTtJQUM1RyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osT0FBTyxJQUFJLDRCQUE0QixFQUFFLENBQUM7SUFDNUMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sNEJBQTRCO0lBQ2hDLEtBQUssQ0FBQyxRQUFRO1FBQ1osT0FBTztZQUNMLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFO1NBQ2pCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSVUsYUFBUSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0tBS3JEO0lBSEMsS0FBSyxDQUFDLGFBQWE7UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7K0dBTFUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBBcHBWZXJzaW9uIHtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBidWlsZDogbnVtYmVyO1xuICBkYXRlOiBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFwcFZlcnNpb25Qcm92aWRlciB7XG4gIHByb3ZpZGVyKCk6IFByb21pc2U8QVhQQXBwVmVyc2lvbj47XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfQVBQX1ZFUlNJT05fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQQXBwVmVyc2lvblByb3ZpZGVyPignQVhQX0FQUF9WRVJTSU9OX1BST1ZJREVSJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEFYUEFwcFZlcnNpb25EZWZhdWx0UHJvdmlkZXIoKTtcbiAgfSxcbn0pO1xuXG5jbGFzcyBBWFBBcHBWZXJzaW9uRGVmYXVsdFByb3ZpZGVyIGltcGxlbWVudHMgQVhQQXBwVmVyc2lvblByb3ZpZGVyIHtcbiAgYXN5bmMgcHJvdmlkZXIoKTogUHJvbWlzZTxBWFBBcHBWZXJzaW9uPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICBidWlsZDogMSxcbiAgICAgIGRhdGU6IG5ldyBEYXRlKCksXG4gICAgfTtcbiAgfVxufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBBcHBWZXJzaW9uU2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXIgPSBpbmplY3QoQVhQX0FQUF9WRVJTSU9OX1BST1ZJREVSKTtcblxuICBhc3luYyBnZXRBcHBWZXJzaW9uKCk6IFByb21pc2U8QVhQQXBwVmVyc2lvbj4ge1xuICAgIHJldHVybiB0aGlzLnByb3ZpZGVyLnByb3ZpZGVyKCk7XG4gIH1cbn1cbiJdfQ==","import { kebabCase } from 'lodash-es';\nexport var AXPRelationshipKind;\n(function (AXPRelationshipKind) {\n AXPRelationshipKind[AXPRelationshipKind[\"Association\"] = 0] = \"Association\";\n AXPRelationshipKind[AXPRelationshipKind[\"Composition\"] = 1] = \"Composition\";\n AXPRelationshipKind[AXPRelationshipKind[\"Aggregation\"] = 2] = \"Aggregation\";\n})(AXPRelationshipKind || (AXPRelationshipKind = {}));\nexport var AXPRelationshipCardinality;\n(function (AXPRelationshipCardinality) {\n AXPRelationshipCardinality[AXPRelationshipCardinality[\"OneToOne\"] = 0] = \"OneToOne\";\n AXPRelationshipCardinality[AXPRelationshipCardinality[\"OneToMany\"] = 1] = \"OneToMany\";\n AXPRelationshipCardinality[AXPRelationshipCardinality[\"ManyToMany\"] = 2] = \"ManyToMany\";\n})(AXPRelationshipCardinality || (AXPRelationshipCardinality = {}));\nexport var AXPEntityCommandScope;\n(function (AXPEntityCommandScope) {\n AXPEntityCommandScope[\"TypeLevel\"] = \"typeLevel\";\n AXPEntityCommandScope[\"Selected\"] = \"selected\";\n AXPEntityCommandScope[\"Individual\"] = \"individual\";\n AXPEntityCommandScope[\"Section\"] = \"section\";\n})(AXPEntityCommandScope || (AXPEntityCommandScope = {}));\nexport var AXPEntityQueryType;\n(function (AXPEntityQueryType) {\n AXPEntityQueryType[\"Single\"] = \"single\";\n AXPEntityQueryType[\"List\"] = \"list\";\n})(AXPEntityQueryType || (AXPEntityQueryType = {}));\nexport function getEntityInfo(entity) {\n return {\n source: `${entity.module}.${entity.name}`,\n module: {\n route: kebabCase(entity.module),\n },\n entity: {\n route: kebabCase(entity.name),\n },\n };\n}\nexport function createQueryView(name, title, fixed, params = {\n columns: [],\n conditions: [],\n sorts: [],\n}) {\n params = Object.assign({ columns: [], sorts: [], conditions: [] }, params);\n return {\n name,\n title,\n fixed,\n columns: params.columns ?? [],\n conditions: params.conditions ?? [],\n sorts: params.sorts ?? [],\n };\n}\nexport function createAllQueryView(params = {\n columns: [],\n sorts: [],\n conditions: [],\n}) {\n params = Object.assign({ columns: [], sorts: [], conditions: [] }, params);\n return createQueryView('all', '@general:terms.interface.selection.all-items', true, {\n columns: params.columns ?? [],\n conditions: params.conditions ?? [],\n sorts: params.sorts ?? [],\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2FwcC9hcHBsaWNhdGlvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBY3RDLE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0IsMkVBQVcsQ0FBQTtJQUNYLDJFQUFXLENBQUE7SUFDWCwyRUFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUI7QUFFRCxNQUFNLENBQU4sSUFBWSwwQkFJWDtBQUpELFdBQVksMEJBQTBCO0lBQ3BDLG1GQUFRLENBQUE7SUFDUixxRkFBUyxDQUFBO0lBQ1QsdUZBQVUsQ0FBQTtBQUNaLENBQUMsRUFKVywwQkFBMEIsS0FBMUIsMEJBQTBCLFFBSXJDO0FBVUQsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUMvQixnREFBdUIsQ0FBQTtJQUN2Qiw4Q0FBcUIsQ0FBQTtJQUNyQixrREFBeUIsQ0FBQTtJQUN6Qiw0Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUtoQztBQUVELE1BQU0sQ0FBTixJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDNUIsdUNBQWlCLENBQUE7SUFDakIsbUNBQWEsQ0FBQTtBQUNmLENBQUMsRUFIVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBRzdCO0FBeU1ELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBaUI7SUFDN0MsT0FBTztRQUNMLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtRQUN6QyxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDaEM7UUFDRCxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDOUI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQzdCLElBQVksRUFDWixLQUFhLEVBQ2IsS0FBYyxFQUNkLFNBQTZFO0lBQzNFLE9BQU8sRUFBRSxFQUFFO0lBQ1gsVUFBVSxFQUFFLEVBQUU7SUFDZCxLQUFLLEVBQUUsRUFBRTtDQUNWO0lBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLE9BQU87UUFDTCxJQUFJO1FBQ0osS0FBSztRQUNMLEtBQUs7UUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1FBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUU7UUFDbkMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtLQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsU0FBb0c7SUFDbEcsT0FBTyxFQUFFLEVBQUU7SUFDWCxLQUFLLEVBQUUsRUFBRTtJQUNULFVBQVUsRUFBRSxFQUFFO0NBQ2Y7SUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0UsT0FBTyxlQUFlLENBQUMsS0FBSyxFQUFFLDhDQUE4QyxFQUFFLElBQUksRUFBRTtRQUNsRixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1FBQzdCLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUU7UUFDbkMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtLQUMxQixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlT3BlcmF0b3IsIEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3B1cFNpemVUeXBlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYUEdyaWRMYXlvdXRPcHRpb25zLCBBWFBNZXRhRGF0YSwgQVhQT3B0aW9uc0RhdGEsIEFYUFZhbGlkYXRpb25SdWxlcywgQVhQVmFsdWVUcmFuc2Zvcm1lckZ1bmN0aW9ucyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRUeXBlc01hcCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IGtlYmFiQ2FzZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhFbnRpdHlQcm9wZXJ0eVdpZGdldCB7XG4gIHR5cGU6IEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXSB8IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGZvcm11bGE/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogQVhFbnRpdHlQcm9wZXJ0eVdpZGdldFtdO1xuICBtb2RlOiAndmlldycgfCAnZWRpdCc7XG4gIG9wdGlvbnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICB0cmlnZ2Vycz86IHsgZXZlbnQ6IHN0cmluZzsgYWN0aW9uOiBzdHJpbmc7IGRpc2FibGVkPzogYm9vbGVhbiB9W107XG4gIHZhbHVlVHJhbnNmb3Jtcz86IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbnM7XG59XG5cbmV4cG9ydCBlbnVtIEFYUFJlbGF0aW9uc2hpcEtpbmQge1xuICBBc3NvY2lhdGlvbixcbiAgQ29tcG9zaXRpb24sXG4gIEFnZ3JlZ2F0aW9uLFxufVxuXG5leHBvcnQgZW51bSBBWFBSZWxhdGlvbnNoaXBDYXJkaW5hbGl0eSB7XG4gIE9uZVRvT25lLFxuICBPbmVUb01hbnksXG4gIE1hbnlUb01hbnksXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQUmVsYXRpb25zaGlwIHtcbiAgaWQ6IHN0cmluZztcbiAgZnJvbTogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xuICBraW5kOiBBWFBSZWxhdGlvbnNoaXBLaW5kO1xuICBjYXJkaW5hbGl0eTogQVhQUmVsYXRpb25zaGlwQ2FyZGluYWxpdHk7XG59XG5cbmV4cG9ydCBlbnVtIEFYUEVudGl0eUNvbW1hbmRTY29wZSB7XG4gIFR5cGVMZXZlbCA9ICd0eXBlTGV2ZWwnLFxuICBTZWxlY3RlZCA9ICdzZWxlY3RlZCcsXG4gIEluZGl2aWR1YWwgPSAnaW5kaXZpZHVhbCcsXG4gIFNlY3Rpb24gPSAnc2VjdGlvbicsXG59XG5cbmV4cG9ydCBlbnVtIEFYUEVudGl0eVF1ZXJ5VHlwZSB7XG4gIFNpbmdsZSA9ICdzaW5nbGUnLFxuICBMaXN0ID0gJ2xpc3QnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByb3BlcnR5TGF5b3V0Q29uZmlnIGV4dGVuZHMgQVhQR3JpZExheW91dE9wdGlvbnMge1xuICBsYWJlbD86IHtcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgfTtcbiAgb3JkZXI/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5UHJvcGVydHlHcm91cCB7XG4gIGlkOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByb3BlcnR5VmlldyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGF0YVBhdGg/OiBzdHJpbmc7XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIGxheW91dD86IEFYUEVudGl0eVByb3BlcnR5TGF5b3V0Q29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByb3BlcnR5VXBkYXRlVmlldyBleHRlbmRzIEFYUEVudGl0eVByb3BlcnR5VmlldyB7IH1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlQcm9wZXJ0eUNyZWF0ZVZpZXcgZXh0ZW5kcyBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcge1xuICBkZWZhdWx0VmFsdWU/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5U2VjdGlvblZpZXcge1xuICBpZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgb3JkZXI/OiBudW1iZXI7XG4gIGNvbGxhcHNlZD86IGJvb2xlYW47XG4gIGxheW91dD86IEFYUEVudGl0eVByb3BlcnR5TGF5b3V0Q29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByb3BlcnR5IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgZ3JvdXBJZD86IHN0cmluZztcbiAgc2NoZW1hOiB7XG4gICAgZGF0YVR5cGU6IHN0cmluZztcbiAgICBudWxsYWJsZT86IGJvb2xlYW47XG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xuICAgIGhpZGRlbj86IGJvb2xlYW4gfCBzdHJpbmc7XG4gICAgZGVmYXVsdFZhbHVlPzogYW55IHwgc3RyaW5nIHwgKChjb250ZXh0OiBhbnkgfCBudWxsKSA9PiBhbnkpO1xuICAgIHVuaXF1ZT86IHtcbiAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgfTtcbiAgICBpbnRlcmZhY2U/OiBQYXJ0aWFsPEFYRW50aXR5UHJvcGVydHlXaWRnZXQ+O1xuICB9O1xuICBvcHRpb25zPzoge1xuICAgIGZpbHRlcj86IHtcbiAgICAgIGFkdmFuY2U/OiB7XG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgICB3aWRnZXRUeXBlPzogQVhQV2lkZ2V0VHlwZXNNYXBba2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXBdO1xuICAgICAgfTtcbiAgICAgIGlubGluZT86IHtcbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW47XG4gICAgICB9O1xuICAgIH07XG4gICAgc29ydD86IHtcbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgIH07XG4gIH07XG4gIHZhbGlkYXRpb25zPzogQVhQVmFsaWRhdGlvblJ1bGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVRhYmxlQ29sdW1uIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgc2hvd0FzPzoge1xuICAgIHR5cGU6IEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXSB8IHN0cmluZztcbiAgICBvcHRpb25zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgfTtcbiAgc29ydD86IHtcbiAgICBlbmFibGVkPzogYm9vbGVhbjtcbiAgICBkaXI/OiAnYXNjJyB8ICdkZXNjJztcbiAgfTtcbiAgb3B0aW9ucz86IHtcbiAgICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgICB3aWR0aD86IHN0cmluZztcbiAgICBkYXRhUGF0aD86IHN0cmluZztcbiAgICBbbmFtZTogc3RyaW5nXTogYW55O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eUNvbW1hbmQge1xuICBleGVjdXRlOiBzdHJpbmcgfCBGdW5jdGlvbjsgLy8gQXMgcnVubmFibGUgZXhwcmVzc2lvblxuICBwZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVF1ZXJ5IHtcbiAgZXhlY3V0ZTogc3RyaW5nIHwgRnVuY3Rpb247IC8vIEFzIHJ1bm5hYmxlIGV4cHJlc3Npb25cbiAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlO1xufVxuXG5pbXBvcnQgeyBBWFBTeXN0ZW1BY3Rpb25UeXBlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuZXhwb3J0IHR5cGUgQVhQQ29tbWFuZEFjdGlvblR5cGUgPSBBWFBTeXN0ZW1BY3Rpb25UeXBlO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbW1hbmRBY3Rpb25Mb29rIHtcbiAgY29sb3I6IEFYU3R5bGVDb2xvclR5cGU7XG4gIGljb246IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVhQQ29tbWFuZEFjdGlvblByaW9yaXR5ID0gJ3ByaW1hcnknIHwgJ3NlY29uZGFyeSc7XG5cbi8vVE9ETzogcmVtb3ZlIGV4dHJhIHByb3BzXG5leHBvcnQgdHlwZSBBWFBDb21tYW5kQWN0aW9uQ2FsbGJhY2sgPVxuICB8IHN0cmluZ1xuICB8IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGRlY29yYXRpb24/OiB7XG4gICAgICAgIGhlYWRlcj86IHtcbiAgICAgICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgICBwcm9jZXNzPzoge1xuICAgICAgICBkYXRhPzogYW55O1xuICAgICAgICBbbmFtZTogc3RyaW5nXTogYW55O1xuICAgICAgfTtcbiAgICAgIGxheW91dD86IHtcbiAgICAgICAgc2l6ZT86IEFYUG9wdXBTaXplVHlwZTtcbiAgICAgIH07XG4gICAgICBbbmFtZTogc3RyaW5nXTogYW55O1xuICAgIH07XG4gICAgbWV0YWRhdGE/OiBBWFBNZXRhRGF0YTtcbiAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb21tYW5kQWN0aW9uRGlzcGxheSBleHRlbmRzIFBhcnRpYWw8QVhQQ29tbWFuZEFjdGlvbkxvb2s+IHtcbiAgbmFtZT86IHN0cmluZztcbiAgY29tbWFuZDogQVhQQ29tbWFuZEFjdGlvbkNhbGxiYWNrO1xuICB0aXRsZTogc3RyaW5nO1xuICB0eXBlOiBBWFBTeXN0ZW1BY3Rpb25UeXBlIHwgc3RyaW5nO1xuICBwcmlvcml0eTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeSc7XG4gIHNlcGFyYXRlZD86IGJvb2xlYW47XG4gIHBlcm1pc3Npb25zPzogc3RyaW5nW107XG4gIGhpZGRlbj86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbiB8IHN0cmluZztcbiAgZGVmYXVsdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5QWN0aW9uIGV4dGVuZHMgQVhQQ29tbWFuZEFjdGlvbkRpc3BsYXkge1xuICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eSB7XG4gIHBsdWdpbnM/OiB7IG5hbWU6IHN0cmluZzsgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhIH1bXTtcbiAgbW9kdWxlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgcGFyZW50S2V5Pzogc3RyaW5nO1xuICBjYXRlZ29yeT86IEFYUENhdGVnb3J5RW50aXR5O1xuICB0aXRsZTogc3RyaW5nO1xuICBmb3JtYXRzOiB7XG4gICAgaW5kaXZpZHVhbDogc3RyaW5nO1xuICAgIHBsdXJhbDogc3RyaW5nO1xuICAgIGxvb2t1cD86IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgICBzZWFyY2hSZXN1bHQ/OiB7XG4gICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgfTtcbiAgfTtcbiAgcmVsYXRlZEVudGl0aWVzPzogQVhQUmVsYXRlZEVudGl0eVtdO1xuICBncm91cHM/OiBBWFBFbnRpdHlQcm9wZXJ0eUdyb3VwW107XG4gIHByb3BlcnRpZXM6IEFYUEVudGl0eVByb3BlcnR5W107XG4gIGNvbHVtbnM/OiBBWFBFbnRpdHlUYWJsZUNvbHVtbltdO1xuICBjb21tYW5kcz86IHtcbiAgICBjcmVhdGU/OiBBWFBFbnRpdHlDb21tYW5kIHwgdW5kZWZpbmVkO1xuICAgIHVwZGF0ZT86IEFYUEVudGl0eUNvbW1hbmQgfCB1bmRlZmluZWQ7XG4gICAgZGVsZXRlPzogQVhQRW50aXR5Q29tbWFuZCB8IHVuZGVmaW5lZDtcbiAgICBbbmFtZTogc3RyaW5nXTogQVhQRW50aXR5Q29tbWFuZCB8IHVuZGVmaW5lZDtcbiAgfTtcbiAgcXVlcmllczoge1xuICAgIGJ5S2V5OiBBWFBFbnRpdHlRdWVyeTtcbiAgICBsaXN0PzogQVhQRW50aXR5UXVlcnk7XG4gICAgbG9va3VwPzogQVhQRW50aXR5UXVlcnk7XG4gICAgaGlzdG9yeT86IEFYUEVudGl0eVF1ZXJ5O1xuICAgIGNvbW1lbnRzPzogQVhQRW50aXR5UXVlcnk7XG4gICAgW25hbWU6IHN0cmluZ106IEFYUEVudGl0eVF1ZXJ5IHwgdW5kZWZpbmVkO1xuICB9O1xuICB2YWxpZGF0aW9ucz86IEFYUFZhbGlkYXRpb25SdWxlcztcbiAgaW50ZXJmYWNlcz86IHtcbiAgICBtYXN0ZXI/OiB7XG4gICAgICBzaW5nbGU/OiBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVMYXlvdXRWaWV3O1xuICAgICAgbGlzdD86IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3O1xuICAgICAgY3JlYXRlPzogQVhQRW50aXR5TWFzdGVyQ3JlYXRlTGF5b3V0VmlldztcbiAgICAgIHVwZGF0ZT86IEFYUEVudGl0eU1hc3RlclVwZGF0ZUxheW91dFZpZXc7XG4gICAgfTtcbiAgICBkZXRhaWw/OiB7XG4gICAgICBsaXN0PzogQVhQRW50aXR5RGV0YWlsTGlzdFZpZXc7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eUluZm8oZW50aXR5OiBBWFBFbnRpdHkpIHtcbiAgcmV0dXJuIHtcbiAgICBzb3VyY2U6IGAke2VudGl0eS5tb2R1bGV9LiR7ZW50aXR5Lm5hbWV9YCxcbiAgICBtb2R1bGU6IHtcbiAgICAgIHJvdXRlOiBrZWJhYkNhc2UoZW50aXR5Lm1vZHVsZSksXG4gICAgfSxcbiAgICBlbnRpdHk6IHtcbiAgICAgIHJvdXRlOiBrZWJhYkNhc2UoZW50aXR5Lm5hbWUpLFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVRdWVyeVZpZXcoXG4gIG5hbWU6IHN0cmluZyxcbiAgdGl0bGU6IHN0cmluZyxcbiAgZml4ZWQ6IGJvb2xlYW4sXG4gIHBhcmFtczogeyBjb2x1bW5zPzogc3RyaW5nW107IGNvbmRpdGlvbnM/OiBhbnlbXTsgc29ydHM/OiBBWFBRdWVyeVNvcnRbXSB9ID0ge1xuICAgIGNvbHVtbnM6IFtdLFxuICAgIGNvbmRpdGlvbnM6IFtdLFxuICAgIHNvcnRzOiBbXSxcbiAgfSxcbik6IEFYUFF1ZXJ5VmlldyB7XG4gIHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oeyBjb2x1bW5zOiBbXSwgc29ydHM6IFtdLCBjb25kaXRpb25zOiBbXSB9LCBwYXJhbXMpO1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdGl0bGUsXG4gICAgZml4ZWQsXG4gICAgY29sdW1uczogcGFyYW1zLmNvbHVtbnMgPz8gW10sXG4gICAgY29uZGl0aW9uczogcGFyYW1zLmNvbmRpdGlvbnMgPz8gW10sXG4gICAgc29ydHM6IHBhcmFtcy5zb3J0cyA/PyBbXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFsbFF1ZXJ5VmlldyhcbiAgcGFyYW1zOiB7IGNvbHVtbnM/OiBzdHJpbmdbXTsgY29uZGl0aW9ucz86IEFYUFF1ZXJ5RmlsdGVyW107IHNvcnRzPzogQVhQUXVlcnlTb3J0W10gfSB8IHVuZGVmaW5lZCA9IHtcbiAgICBjb2x1bW5zOiBbXSxcbiAgICBzb3J0czogW10sXG4gICAgY29uZGl0aW9uczogW10sXG4gIH0sXG4pOiBBWFBRdWVyeVZpZXcge1xuICBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHsgY29sdW1uczogW10sIHNvcnRzOiBbXSwgY29uZGl0aW9uczogW10gfSwgcGFyYW1zKTtcbiAgcmV0dXJuIGNyZWF0ZVF1ZXJ5VmlldygnYWxsJywgJ0BnZW5lcmFsOnRlcm1zLmludGVyZmFjZS5zZWxlY3Rpb24uYWxsLWl0ZW1zJywgdHJ1ZSwge1xuICAgIGNvbHVtbnM6IHBhcmFtcy5jb2x1bW5zID8/IFtdLFxuICAgIGNvbmRpdGlvbnM6IHBhcmFtcy5jb25kaXRpb25zID8/IFtdLFxuICAgIHNvcnRzOiBwYXJhbXMuc29ydHMgPz8gW10sXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFJlbGF0ZWRFbnRpdHkge1xuICBlbnRpdHk6IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNvbHVtbnM/OiBzdHJpbmdbXTtcbiAgbGF5b3V0Pzoge1xuICAgIHR5cGU6ICd0YWItZGV0YWlsJyB8ICd0YWItbGlzdCcgfCAncGFnZS1kZXRhaWwnIHwgJ3BhZ2UtbGlzdCcgfCAnbWVyZ2UtZGV0YWlsJztcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBwb3NpdGlvbj86ICdiZWZvcmUnIHwgJ2FmdGVyJyB8ICdtaWRkbGUnO1xuICB9O1xuICBjb25kaXRpb25zPzogQVhQUXVlcnlGaWx0ZXJbXTtcbiAgaGlkZGVuPzogYm9vbGVhbiB8IHN0cmluZztcbiAgYWN0aW9ucz86IEFYUEVudGl0eUFjdGlvbltdO1xuICAvKipcbiAgICogUmVsYXRpb25zaGlwLWxldmVsIHBlcnNpc3RlbmNlIHN0cmF0ZWd5IGZvciBtZXJnZS1kZXRhaWwgZGF0YS5cbiAgICogRGVmYXVsdHM6XG4gICAqIC0gc3RyYXRlZ3k6ICdlbWJlZGRlZCdcbiAgICogLSBpZEZpZWxkOiBsYXN0IHNlZ21lbnQgb2YgZGF0YVBhdGggKyAnSWQnIChvciAncmVsYXRlZElkJyB3aGVuIGRhdGFQYXRoIGlzIG1pc3NpbmcpXG4gICAqIC0gbWFwOiB1bmRlZmluZWQgKHBhc3MtdGhyb3VnaClcbiAgICogLSBoeWRyYXRlOiAnZWFnZXInIChhcHBsaWVzIHRvIGdldE9uZSBvbmx5IGluIG1vY2spXG4gICAqIC0gY2FzY2FkZS5kZWxldGU6ICdub25lJ1xuICAgKi9cbiAgcGVyc2lzdGVuY2U/OiB7XG4gICAgc3RyYXRlZ3k/OiAnZW1iZWRkZWQnIHwgJ3JlZmVyZW5jZWQnO1xuICAgIGlkRmllbGQ/OiBzdHJpbmc7XG4gICAgZGF0YVBhdGg/OiBzdHJpbmc7XG4gICAgbWFwPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBoeWRyYXRlPzogJ2VhZ2VyJyB8ICdsYXp5JztcbiAgICBjYXNjYWRlPzogeyBkZWxldGU/OiAnbm9uZScgfCAnb3JwaGFucycgfCAnYWxsJyB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENhdGVnb3J5RW50aXR5IHtcbiAgZW50aXR5OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0ZXh0RmllbGQ/OiBzdHJpbmc7XG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XG4gIGNvbmRpdGlvbnM/OiBBWFBRdWVyeUZpbHRlcltdO1xuICBhcHBseUNvbmRpdGlvbnM/OiBBWFBRdWVyeUZpbHRlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVZlcnNpb25IaXN0b3J5IHtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIHNob3dJbkxpc3Q/OiBib29sZWFuO1xuICBzaG93SW5EZXRhaWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFnZ3JlZ2F0ZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZW50aXRpZXM6IEFYUEVudGl0eVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUE1vZHVsZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgYWdncmVnYXRlczogQVhQQWdncmVnYXRlW107XG4gIHJlbGF0aW9uc2hpcHM/OiBBWFBSZWxhdGlvbnNoaXBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBBcHBsaWNhdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgbW9kdWxlczogQVhQTW9kdWxlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5TWFzdGVyTGF5b3V0VmlldyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBzZWN0aW9uczogQVhQRW50aXR5U2VjdGlvblZpZXdbXTtcbiAgcHJvcGVydGllcz86IEFYUEVudGl0eVByb3BlcnR5Vmlld1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3RlckNyZWF0ZUxheW91dFZpZXcgZXh0ZW5kcyBBWFBFbnRpdHlNYXN0ZXJMYXlvdXRWaWV3IHtcbiAgc3RlcHM/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3RlclVwZGF0ZUxheW91dFZpZXcgZXh0ZW5kcyBBWFBFbnRpdHlNYXN0ZXJMYXlvdXRWaWV3IHsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3RlclNpbmdsZUxheW91dFZpZXcgZXh0ZW5kcyBBWFBFbnRpdHlNYXN0ZXJMYXlvdXRWaWV3IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGFjdGlvbnM/OiBBWFBFbnRpdHlBY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlNYXN0ZXJMaXN0VmlldyB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYWN0aW9ucz86IEFYUEVudGl0eUFjdGlvbltdO1xuICB2aWV3czogQVhQUXVlcnlWaWV3W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXcge1xuICB0aXRsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGNvbHVtbnM6IEFYUEVudGl0eVRhYmxlQ29sdW1uW107XG4gIGFjdGlvbnM/OiBBWFBFbnRpdHlBY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBRdWVyeVZpZXcge1xuICBuYW1lOiBzdHJpbmc7XG4gIGZpeGVkOiBib29sZWFuO1xuICB0aXRsZTogc3RyaW5nO1xuICBjb2x1bW5zOiBzdHJpbmdbXTtcbiAgY29uZGl0aW9uczogQVhQUXVlcnlGaWx0ZXJbXTtcbiAgc29ydHM6IEFYUFF1ZXJ5U29ydFtdO1xuICBpbmRleENvbD86IGJvb2xlYW47XG4gIHBhZ2VTaXplPzogbnVtYmVyO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBRdWVyeUZpbHRlciB7XG4gIG5hbWU6IHN0cmluZzsgLy8gZW50aXR5IHByb3BlcnR5IG5hbWVcbiAgb3BlcmF0b3I6IEFYRGF0YVNvdXJjZU9wZXJhdG9yO1xuICB2YWx1ZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFF1ZXJ5U29ydCB7XG4gIG5hbWU6IHN0cmluZzsgLy8gZW50aXR5IHByb3BlcnR5IG5hbWVcbiAgZGlyOiAnYXNjJyB8ICdkZXNjJztcbn1cblxuXG4iXX0=","export const EQ_OPER = { name: 'equal', title: 'Equal', hasValue: true };\nexport const NOT_EQ_OPER = { name: 'notEqual', title: 'Not Equal', hasValue: true };\nexport const GT_OPER = { name: 'greaterThan', title: 'Greater Than', hasValue: true };\nexport const LT_OPER = { name: 'lessThan', title: 'Less Than', hasValue: true };\nexport const GTE_OPER = {\n name: 'greaterThanOrEqual',\n title: 'Greater Than or Equal',\n hasValue: true,\n};\nexport const LTE_OPER = { name: 'lessThanOrEqual', title: 'Less Than or Equal', hasValue: true };\nexport const CONTAINS_OPER = { name: 'contains', title: 'Contains', hasValue: true };\nexport const NOT_CONTAINS_OPER = { name: 'notContains', title: 'Does Not Contain', hasValue: true };\nexport const IN_OPER = { name: 'in', title: 'In', hasValue: true };\nexport const STARTS_WITH_OPER = { name: 'startsWith', title: 'Starts With', hasValue: true };\nexport const ENDS_WITH_OPER = { name: 'endsWith', title: 'Ends With', hasValue: true };\nexport const IS_EMPTY_OPER = { name: 'isEmpty', title: 'Is Empty', hasValue: false };\nexport const IS_NOT_EMPTY_OPER = { name: 'isNotEmpty', title: 'Is Not Empty', hasValue: false };\nexport const BETWEEN_OPER = { name: 'between', title: 'Between', hasValue: true };\nexport const STRING_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n CONTAINS_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n IN_OPER\n];\nexport const NUMBER_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n BETWEEN_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\nexport const BOOLEAN_OPERATORS = [EQ_OPER];\nexport const DATE_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n GTE_OPER,\n LT_OPER,\n LTE_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n];\nexport const ALL_DEFAULT_OPERATORS = [\n EQ_OPER,\n NOT_EQ_OPER,\n GT_OPER,\n LT_OPER,\n GTE_OPER,\n LTE_OPER,\n CONTAINS_OPER,\n IN_OPER,\n NOT_CONTAINS_OPER,\n STARTS_WITH_OPER,\n ENDS_WITH_OPER,\n IS_EMPTY_OPER,\n IS_NOT_EMPTY_OPER,\n BETWEEN_OPER,\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9hcHAvb3BlcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBc0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBc0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3ZHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBc0IsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3pHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBc0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ25HLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBc0I7SUFDekMsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixLQUFLLEVBQUUsdUJBQXVCO0lBQzlCLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBc0IsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNwSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQXNCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN4RyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBc0IsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDdkgsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFzQixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDdEYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQXNCLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNoSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXNCLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUMxRyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQXNCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUN4RyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBc0IsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ25ILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBc0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0FBRXJHLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLE9BQU87SUFDUCxXQUFXO0lBQ1gsYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGFBQWE7SUFDYixpQkFBaUI7SUFDakIsT0FBTztDQUNSLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixPQUFPO0lBQ1AsV0FBVztJQUNYLFlBQVk7SUFDWixPQUFPO0lBQ1AsUUFBUTtJQUNSLE9BQU87SUFDUCxRQUFRO0lBQ1IsYUFBYTtJQUNiLGlCQUFpQjtDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsT0FBTztJQUNQLFdBQVc7SUFDWCxPQUFPO0lBQ1AsUUFBUTtJQUNSLE9BQU87SUFDUCxRQUFRO0lBQ1IsYUFBYTtJQUNiLGlCQUFpQjtDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsT0FBTztJQUNQLFdBQVc7SUFDWCxPQUFPO0lBQ1AsT0FBTztJQUNQLFFBQVE7SUFDUixRQUFRO0lBQ1IsYUFBYTtJQUNiLE9BQU87SUFDUCxpQkFBaUI7SUFDakIsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLFlBQVk7Q0FDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWFBGaWx0ZXJPcGVyYXRvciB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgaGFzVmFsdWU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBFUV9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2VxdWFsJywgdGl0bGU6ICdFcXVhbCcsIGhhc1ZhbHVlOiB0cnVlIH07XG5leHBvcnQgY29uc3QgTk9UX0VRX09QRVI6IEFYUEZpbHRlck9wZXJhdG9yID0geyBuYW1lOiAnbm90RXF1YWwnLCB0aXRsZTogJ05vdCBFcXVhbCcsIGhhc1ZhbHVlOiB0cnVlIH07XG5leHBvcnQgY29uc3QgR1RfT1BFUjogQVhQRmlsdGVyT3BlcmF0b3IgPSB7IG5hbWU6ICdncmVhdGVyVGhhbicsIHRpdGxlOiAnR3JlYXRlciBUaGFuJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBMVF9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2xlc3NUaGFuJywgdGl0bGU6ICdMZXNzIFRoYW4nLCBoYXNWYWx1ZTogdHJ1ZSB9O1xuZXhwb3J0IGNvbnN0IEdURV9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHtcbiAgbmFtZTogJ2dyZWF0ZXJUaGFuT3JFcXVhbCcsXG4gIHRpdGxlOiAnR3JlYXRlciBUaGFuIG9yIEVxdWFsJyxcbiAgaGFzVmFsdWU6IHRydWUsXG59O1xuZXhwb3J0IGNvbnN0IExURV9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2xlc3NUaGFuT3JFcXVhbCcsIHRpdGxlOiAnTGVzcyBUaGFuIG9yIEVxdWFsJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBDT05UQUlOU19PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2NvbnRhaW5zJywgdGl0bGU6ICdDb250YWlucycsIGhhc1ZhbHVlOiB0cnVlIH07XG5leHBvcnQgY29uc3QgTk9UX0NPTlRBSU5TX09QRVI6IEFYUEZpbHRlck9wZXJhdG9yID0geyBuYW1lOiAnbm90Q29udGFpbnMnLCB0aXRsZTogJ0RvZXMgTm90IENvbnRhaW4nLCBoYXNWYWx1ZTogdHJ1ZSB9O1xuZXhwb3J0IGNvbnN0IElOX09QRVI6IEFYUEZpbHRlck9wZXJhdG9yID0geyBuYW1lOiAnaW4nLCB0aXRsZTogJ0luJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBTVEFSVFNfV0lUSF9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ3N0YXJ0c1dpdGgnLCB0aXRsZTogJ1N0YXJ0cyBXaXRoJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBFTkRTX1dJVEhfT1BFUjogQVhQRmlsdGVyT3BlcmF0b3IgPSB7IG5hbWU6ICdlbmRzV2l0aCcsIHRpdGxlOiAnRW5kcyBXaXRoJywgaGFzVmFsdWU6IHRydWUgfTtcbmV4cG9ydCBjb25zdCBJU19FTVBUWV9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2lzRW1wdHknLCB0aXRsZTogJ0lzIEVtcHR5JywgaGFzVmFsdWU6IGZhbHNlIH07XG5leHBvcnQgY29uc3QgSVNfTk9UX0VNUFRZX09QRVI6IEFYUEZpbHRlck9wZXJhdG9yID0geyBuYW1lOiAnaXNOb3RFbXB0eScsIHRpdGxlOiAnSXMgTm90IEVtcHR5JywgaGFzVmFsdWU6IGZhbHNlIH07XG5leHBvcnQgY29uc3QgQkVUV0VFTl9PUEVSOiBBWFBGaWx0ZXJPcGVyYXRvciA9IHsgbmFtZTogJ2JldHdlZW4nLCB0aXRsZTogJ0JldHdlZW4nLCBoYXNWYWx1ZTogdHJ1ZSB9O1xuXG5leHBvcnQgY29uc3QgU1RSSU5HX09QRVJBVE9SUyA9IFtcbiAgRVFfT1BFUixcbiAgTk9UX0VRX09QRVIsXG4gIENPTlRBSU5TX09QRVIsXG4gIE5PVF9DT05UQUlOU19PUEVSLFxuICBTVEFSVFNfV0lUSF9PUEVSLFxuICBFTkRTX1dJVEhfT1BFUixcbiAgSVNfRU1QVFlfT1BFUixcbiAgSVNfTk9UX0VNUFRZX09QRVIsXG4gIElOX09QRVJcbl07XG5cbmV4cG9ydCBjb25zdCBOVU1CRVJfT1BFUkFUT1JTID0gW1xuICBFUV9PUEVSLFxuICBOT1RfRVFfT1BFUixcbiAgQkVUV0VFTl9PUEVSLFxuICBHVF9PUEVSLFxuICBHVEVfT1BFUixcbiAgTFRfT1BFUixcbiAgTFRFX09QRVIsXG4gIElTX0VNUFRZX09QRVIsXG4gIElTX05PVF9FTVBUWV9PUEVSLFxuXTtcblxuZXhwb3J0IGNvbnN0IEJPT0xFQU5fT1BFUkFUT1JTID0gW0VRX09QRVJdO1xuXG5leHBvcnQgY29uc3QgREFURV9PUEVSQVRPUlMgPSBbXG4gIEVRX09QRVIsXG4gIE5PVF9FUV9PUEVSLFxuICBHVF9PUEVSLFxuICBHVEVfT1BFUixcbiAgTFRfT1BFUixcbiAgTFRFX09QRVIsXG4gIElTX0VNUFRZX09QRVIsXG4gIElTX05PVF9FTVBUWV9PUEVSLFxuXTtcblxuZXhwb3J0IGNvbnN0IEFMTF9ERUZBVUxUX09QRVJBVE9SUyA9IFtcbiAgRVFfT1BFUixcbiAgTk9UX0VRX09QRVIsXG4gIEdUX09QRVIsXG4gIExUX09QRVIsXG4gIEdURV9PUEVSLFxuICBMVEVfT1BFUixcbiAgQ09OVEFJTlNfT1BFUixcbiAgSU5fT1BFUixcbiAgTk9UX0NPTlRBSU5TX09QRVIsXG4gIFNUQVJUU19XSVRIX09QRVIsXG4gIEVORFNfV0lUSF9PUEVSLFxuICBJU19FTVBUWV9PUEVSLFxuICBJU19OT1RfRU1QVFlfT1BFUixcbiAgQkVUV0VFTl9PUEVSLFxuXTtcbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const AXP_HOME_PAGES = new InjectionToken('AXP_HOME_PAGES');\nexport const AXP_HOME_PAGE_DEFAULT_KEY = new InjectionToken('AXP_HOME_PAGE_DEFAULT_KEY', {\n factory: () => 'home'\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9ob21lLXBhZ2UvaG9tZS1wYWdlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVL0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUEwQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQzVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUFTLDJCQUEyQixFQUFFO0lBQzdGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNO0NBQ3hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQSG9tZVBhZ2VEZWZpbml0aW9uIHtcbiAgICBrZXk6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIHJvdXRlOiBSb3V0ZVxufVxuXG5cbmV4cG9ydCBjb25zdCBBWFBfSE9NRV9QQUdFUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBIb21lUGFnZURlZmluaXRpb25bXT4oJ0FYUF9IT01FX1BBR0VTJyk7XG5leHBvcnQgY29uc3QgQVhQX0hPTUVfUEFHRV9ERUZBVUxUX0tFWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdBWFBfSE9NRV9QQUdFX0RFRkFVTFRfS0VZJywge1xuICAgIGZhY3Rvcnk6ICgpID0+ICdob21lJ1xufSk7XG5cbiJdfQ==","import { merge } from 'lodash-es';\nexport class AXPSettingDefinitionProviderContext {\n constructor() {\n this.rootGroups = [];\n this.groupMap = new Map();\n }\n addGroup(name, title, description, icon) {\n const newGroup = {\n name,\n title,\n description,\n icon,\n groups: [],\n sections: [],\n };\n this.rootGroups.push(newGroup);\n this.groupMap.set(name, newGroup); // Index by name\n return new AXPSettingDefinitionGroupBuilder(this, newGroup);\n }\n group(name) {\n const foundGroup = this.groupMap.get(name);\n if (!foundGroup) {\n console.error(`Group with name \"${name}\" not found.`);\n return null;\n }\n return new AXPSettingDefinitionGroupBuilder(this, foundGroup);\n }\n getGroups() {\n return this.rootGroups;\n }\n // Expose groupMap for controlled access\n hasGroup(name) {\n return this.groupMap.has(name);\n }\n getGroup(name) {\n return this.groupMap.get(name);\n }\n}\nexport class AXPSettingDefinitionGroupBuilder {\n constructor(context, group) {\n this.context = context;\n this.group = group;\n }\n addSection(name, title, description) {\n const newSection = {\n name,\n title,\n description: description,\n settings: [],\n };\n this.group.sections.push(newSection);\n return new AXPSettingDefinitionSectionBuilder(this, newSection);\n }\n section(name) {\n const foundSection = this.group.sections.find((section) => section.name === name);\n if (!foundSection) {\n throw new Error(`Section with name \"${name}\" not found in group \"${this.group.name}\".`);\n }\n return new AXPSettingDefinitionSectionBuilder(this, foundSection);\n }\n addGroup(name, title, description, icon) {\n const newGroup = {\n name,\n title,\n description: description,\n icon,\n groups: [],\n sections: [],\n };\n this.group.groups.push(newGroup);\n if (this.context.hasGroup(name)) {\n throw new Error(`Group with name \"${name}\" already exists.`);\n }\n this.context['groupMap'].set(name, newGroup);\n return new AXPSettingDefinitionGroupBuilder(this.context, newGroup);\n }\n endGroup() {\n return this.context;\n }\n}\nexport class AXPSettingDefinitionSectionBuilder {\n constructor(groupBuilder, section) {\n this.groupBuilder = groupBuilder;\n this.section = section;\n }\n addSetting(setting) {\n const newSetting = {\n name: setting.key,\n title: setting.title,\n description: setting.description,\n isRequired: setting.isRequired ?? false,\n isInherited: setting.isInherited ?? false,\n isEncrypted: setting.isEncrypted ?? false,\n defaultValue: setting.defaultValue,\n scope: setting.scope ?? 'G',\n layout: setting.widget.layout,\n widget: {\n type: setting.widget.type,\n name: setting.key,\n path: setting.key,\n defaultValue: setting.defaultValue,\n options: merge(setting.widget.options ?? {}, {\n label: Object.keys(setting.widget.options ?? {}).includes('label') ? setting.widget.options?.['label'] : setting.title,\n validationRules: setting.validationRules ?? [],\n }),\n valueTransforms: setting.valueTransforms,\n triggers: setting.widget.triggers,\n },\n };\n this.section.settings.push(newSetting);\n return this;\n }\n endSection() {\n return this.groupBuilder;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9zZXR0aW5ncy9zZXR0aW5nLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlsQyxNQUFNLE9BQU8sbUNBQW1DO0lBQWhEO1FBQ1UsZUFBVSxHQUFnQyxFQUFFLENBQUM7UUFDN0MsYUFBUSxHQUEyQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBc0N2RSxDQUFDO0lBcENDLFFBQVEsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLFdBQW9CLEVBQUUsSUFBYTtRQUN2RSxNQUFNLFFBQVEsR0FBOEI7WUFDMUMsSUFBSTtZQUNKLEtBQUs7WUFDTCxXQUFXO1lBQ1gsSUFBSTtZQUNKLE1BQU0sRUFBRSxFQUFFO1lBQ1YsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCO1FBQ25ELE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFZO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixJQUFJLGNBQWMsQ0FBQyxDQUFDO1lBQ3RELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJ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SSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQT3B0aW9uc0RhdGEsIEFYUFZhbGlkYXRpb25SdWxlcywgQVhQVmFsdWVUcmFuc2Zvcm1lckZ1bmN0aW9ucywgQVhQV2lkZ2V0VHJpZ2dlcnMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0VHlwZXNNYXAgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nRGVmaW5pdGlvbiwgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCwgQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uIH0gZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgeyBBWFBQbGF0Zm9ybVNjb3BlS2V5LCBBWFBHcmlkTGF5b3V0T3B0aW9ucyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB7XG4gIHByaXZhdGUgcm9vdEdyb3VwczogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cFtdID0gW107XG4gIHByaXZhdGUgZ3JvdXBNYXA6IE1hcDxzdHJpbmcsIEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXA+ID0gbmV3IE1hcCgpO1xuXG4gIGFkZEdyb3VwKG5hbWU6IHN0cmluZywgdGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIGljb24/OiBzdHJpbmcpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlciB7XG4gICAgY29uc3QgbmV3R3JvdXA6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXAgPSB7XG4gICAgICBuYW1lLFxuICAgICAgdGl0bGUsXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGljb24sXG4gICAgICBncm91cHM6IFtdLFxuICAgICAgc2VjdGlvbnM6IFtdLFxuICAgIH07XG5cbiAgICB0aGlzLnJvb3RHcm91cHMucHVzaChuZXdHcm91cCk7XG4gICAgdGhpcy5ncm91cE1hcC5zZXQobmFtZSwgbmV3R3JvdXApOyAvLyBJbmRleCBieSBuYW1lXG4gICAgcmV0dXJuIG5ldyBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlcih0aGlzLCBuZXdHcm91cCk7XG4gIH1cblxuICBncm91cChuYW1lOiBzdHJpbmcpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlciB8IG51bGwge1xuICAgIGNvbnN0IGZvdW5kR3JvdXAgPSB0aGlzLmdyb3VwTWFwLmdldChuYW1lKTtcbiAgICBpZiAoIWZvdW5kR3JvdXApIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEdyb3VwIHdpdGggbmFtZSBcIiR7bmFtZX1cIiBub3QgZm91bmQuYCk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlcih0aGlzLCBmb3VuZEdyb3VwKTtcbiAgfVxuXG4gIGdldEdyb3VwcygpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10ge1xuICAgIHJldHVybiB0aGlzLnJvb3RHcm91cHM7XG4gIH1cblxuICAvLyBFeHBvc2UgZ3JvdXBNYXAgZm9yIGNvbnRyb2xsZWQgYWNjZXNzXG4gIGhhc0dyb3VwKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwTWFwLmhhcyhuYW1lKTtcbiAgfVxuXG4gIGdldEdyb3VwKG5hbWU6IHN0cmluZyk6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdyb3VwTWFwLmdldChuYW1lKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cEJ1aWxkZXIge1xuICBwcml2YXRlIGNvbnRleHQ6IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0O1xuICBwcml2YXRlIGdyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKGNvbnRleHQ6IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0LCBncm91cDogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCkge1xuICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgdGhpcy5ncm91cCA9IGdyb3VwO1xuICB9XG5cbiAgYWRkU2VjdGlvbihuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgbmV3U2VjdGlvbjogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uID0ge1xuICAgICAgbmFtZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICAgICAgc2V0dGluZ3M6IFtdLFxuICAgIH07XG4gICAgdGhpcy5ncm91cC5zZWN0aW9ucy5wdXNoKG5ld1NlY3Rpb24pO1xuICAgIHJldHVybiBuZXcgQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uQnVpbGRlcih0aGlzLCBuZXdTZWN0aW9uKTtcbiAgfVxuXG4gIHNlY3Rpb24obmFtZTogc3RyaW5nKTogQVhQU2V0dGluZ0RlZmluaXRpb25TZWN0aW9uQnVpbGRlciB8IG51bGwge1xuICAgIGNvbnN0IGZvdW5kU2VjdGlvbiA9IHRoaXMuZ3JvdXAuc2VjdGlvbnMuZmluZCgoc2VjdGlvbikgPT4gc2VjdGlvbi5uYW1lID09PSBuYW1lKTtcbiAgICBpZiAoIWZvdW5kU2VjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZWN0aW9uIHdpdGggbmFtZSBcIiR7bmFtZX1cIiBub3QgZm91bmQgaW4gZ3JvdXAgXCIke3RoaXMuZ3JvdXAubmFtZX1cIi5gKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBWFBTZXR0aW5nRGVmaW5pdGlvblNlY3Rpb25CdWlsZGVyKHRoaXMsIGZvdW5kU2VjdGlvbik7XG4gIH1cblxuICBhZGRHcm91cChuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nLCBpY29uPzogc3RyaW5nKTogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cEJ1aWxkZXIge1xuICAgIGNvbnN0IG5ld0dyb3VwOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwID0ge1xuICAgICAgbmFtZSxcbiAgICAgIHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICAgICAgaWNvbixcbiAgICAgIGdyb3VwczogW10sXG4gICAgICBzZWN0aW9uczogW10sXG4gICAgfTtcbiAgICB0aGlzLmdyb3VwLmdyb3Vwcy5wdXNoKG5ld0dyb3VwKTtcbiAgICBpZiAodGhpcy5jb250ZXh0Lmhhc0dyb3VwKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEdyb3VwIHdpdGggbmFtZSBcIiR7bmFtZX1cIiBhbHJlYWR5IGV4aXN0cy5gKTtcbiAgICB9XG4gICAgdGhpcy5jb250ZXh0Wydncm91cE1hcCddLnNldChuYW1lLCBuZXdHcm91cCk7XG4gICAgcmV0dXJuIG5ldyBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwQnVpbGRlcih0aGlzLmNvbnRleHQsIG5ld0dyb3VwKTtcbiAgfVxuXG4gIGVuZEdyb3VwKCk6IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBTZXR0aW5nRGVmaW5pdGlvblNlY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBncm91cEJ1aWxkZXI6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBCdWlsZGVyO1xuICBwcml2YXRlIHNlY3Rpb246IEFYUFNldHRpbmdEZWZpbml0aW9uU2VjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihncm91cEJ1aWxkZXI6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBCdWlsZGVyLCBzZWN0aW9uOiBBWFBTZXR0aW5nRGVmaW5pdGlvblNlY3Rpb24pIHtcbiAgICB0aGlzLmdyb3VwQnVpbGRlciA9IGdyb3VwQnVpbGRlcjtcbiAgICB0aGlzLnNlY3Rpb24gPSBzZWN0aW9uO1xuICB9XG5cbiAgYWRkU2V0dGluZyhzZXR0aW5nOiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBzY29wZTogQVhQUGxhdGZvcm1TY29wZUtleTtcbiAgICB3aWRnZXQ6IHtcbiAgICAgIHR5cGU6IEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXSB8IHN0cmluZztcbiAgICAgIG9wdGlvbnM/OiBBWFBPcHRpb25zRGF0YTtcbiAgICAgIHRyaWdnZXJzPzogQVhQV2lkZ2V0VHJpZ2dlcnM7XG4gICAgICBsYXlvdXQ/OiBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgICB9O1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGlzUmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIGlzSW5oZXJpdGVkPzogYm9vbGVhbjtcbiAgICBpc0VuY3J5cHRlZD86IGJvb2xlYW47XG4gICAgZGVmYXVsdFZhbHVlPzogdW5rbm93bjtcbiAgICB2YWx1ZVRyYW5zZm9ybXM/OiBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb25zO1xuICAgIHZhbGlkYXRpb25SdWxlcz86IEFYUFZhbGlkYXRpb25SdWxlcztcbiAgfSk6IHRoaXMge1xuICAgIGNvbnN0IG5ld1NldHRpbmc6IEFYUFNldHRpbmdEZWZpbml0aW9uID0ge1xuICAgICAgbmFtZTogc2V0dGluZy5rZXksXG4gICAgICB0aXRsZTogc2V0dGluZy50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBzZXR0aW5nLmRlc2NyaXB0aW9uLFxuICAgICAgaXNSZXF1aXJlZDogc2V0dGluZy5pc1JlcXVpcmVkID8/IGZhbHNlLFxuICAgICAgaXNJbmhlcml0ZWQ6IHNldHRpbmcuaXNJbmhlcml0ZWQgPz8gZmFsc2UsXG4gICAgICBpc0VuY3J5cHRlZDogc2V0dGluZy5pc0VuY3J5cHRlZCA/PyBmYWxzZSxcbiAgICAgIGRlZmF1bHRWYWx1ZTogc2V0dGluZy5kZWZhdWx0VmFsdWUsXG4gICAgICBzY29wZTogc2V0dGluZy5zY29wZSA/PyAnRycsXG4gICAgICBsYXlvdXQ6IHNldHRpbmcud2lkZ2V0LmxheW91dCxcbiAgICAgIHdpZGdldDoge1xuICAgICAgICB0eXBlOiBzZXR0aW5nLndpZGdldC50eXBlLFxuICAgICAgICBuYW1lOiBzZXR0aW5nLmtleSxcbiAgICAgICAgcGF0aDogc2V0dGluZy5rZXksXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogc2V0dGluZy5kZWZhdWx0VmFsdWUsXG4gICAgICAgIG9wdGlvbnM6IG1lcmdlKHNldHRpbmcud2lkZ2V0Lm9wdGlvbnMgPz8ge30sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IE9iamVjdC5rZXlzKHNldHRpbmcud2lkZ2V0Lm9wdGlvbnMgPz8ge30pLmluY2x1ZGVzKCdsYWJlbCcpID8gc2V0dGluZy53aWRnZXQub3B0aW9ucz8uWydsYWJlbCddIDogc2V0dGluZy50aXRsZSxcbiAgICAgICAgICAgIHZhbGlkYXRpb25SdWxlczogc2V0dGluZy52YWxpZGF0aW9uUnVsZXMgPz8gW10sXG4gICAgICAgICAgfSksXG4gICAgICAgIHZhbHVlVHJhbnNmb3Jtczogc2V0dGluZy52YWx1ZVRyYW5zZm9ybXMsXG4gICAgICAgIHRyaWdnZXJzOiBzZXR0aW5nLndpZGdldC50cmlnZ2VycyxcbiAgICAgIH0sXG4gICAgfSBhcyBBWFBTZXR0aW5nRGVmaW5pdGlvbjtcbiAgICB0aGlzLnNlY3Rpb24uc2V0dGluZ3MucHVzaChuZXdTZXR0aW5nKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGVuZFNlY3Rpb24oKTogQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cEJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmdyb3VwQnVpbGRlcjtcbiAgfVxufVxuIl19","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport { AXPSettingDefinitionProviderContext } from './setting.builder';\nimport { sortBy } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\n// Injection token for setting providers\nexport const AXP_SETTING_DEFINITION_PROVIDER = new InjectionToken('AXP_SETTING_DEFINITION_PROVIDER');\nexport class AXPSettingDefinitionProviderService {\n constructor() {\n this.providers = inject(AXP_SETTING_DEFINITION_PROVIDER, { optional: true });\n this.cache = null;\n }\n async load() {\n if (this.cache) {\n return;\n }\n const context = new AXPSettingDefinitionProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n if (provider instanceof Promise) {\n // If provider is a promise, resolve it\n const resolvedProvider = await provider;\n await resolvedProvider.provide(context);\n }\n else {\n // If provider is a direct instance, use it directly\n await provider.provide(context);\n }\n }\n }\n this.cache = context.getGroups();\n }\n async reload() {\n this.cache = null;\n await this.load();\n }\n async getListAsync(scope) {\n await this.load();\n return this.getList(scope);\n }\n getList(scope) {\n if (!this.cache) {\n return [];\n }\n const scopeOrder = ['C', 'G', 'T', 'U']; // Scopes hierarchy in ascending order\n const filterByScope = (groups, currentScope) => {\n const currentScopeIndex = scopeOrder.indexOf(currentScope);\n return groups\n .map((group) => ({\n ...group,\n sections: group.sections.map((section) => ({\n ...section,\n settings: section.settings.filter((setting) => {\n const settingScopeIndex = scopeOrder.indexOf(setting.scope);\n // Include settings where:\n // 1. The scope matches the requested scope.\n if (setting.scope === currentScope)\n return true;\n // 2. The setting scope is higher (closer to 'U') and is inherited.\n if (setting.isInherited &&\n settingScopeIndex > currentScopeIndex // Higher scope\n ) {\n return true;\n }\n // 3. Exclude settings with a lower or irrelevant scope.\n return false;\n }),\n })).filter((section) => section.settings.length > 0), // Keep only sections with settings\n groups: filterByScope(group.groups, currentScope), // Recursively filter nested groups\n }))\n .filter((group) => group.sections.length > 0 || group.groups.length > 0); // Keep groups with valid sections or nested groups\n };\n return sortBy(filterByScope(this.cache, scope), 'title');\n }\n async defaultValues() {\n const defaults = {};\n const collectDefaults = (groups) => {\n groups.forEach((group) => {\n group.sections.forEach((section) => {\n section.settings.forEach((setting) => {\n if (setting.defaultValue !== undefined) {\n defaults[setting.name] = setting.defaultValue;\n }\n });\n });\n collectDefaults(group.groups);\n });\n };\n if (!this.cache) {\n await this.load();\n }\n collectDefaults(this.cache);\n return defaults;\n }\n findGroup(scope, groupName) {\n return this.searchRecursive(this.getList(scope), groupName, []); // Initialize with an empty breadcrumb\n }\n searchRecursive(groups, groupName, breadcrumb) {\n for (const group of groups) {\n const currentBreadcrumb = [...breadcrumb, { name: group.name, title: group.title, description: group.description }];\n // If the group name matches, return its details\n if (group.name === groupName) {\n return {\n breadcrumb: currentBreadcrumb,\n sections: group.sections.length > 0 ? group.sections : null,\n groups: group.groups.length > 0 ? group.groups : null,\n };\n }\n // Recursively search in nested groups\n const nestedResult = this.searchRecursive(group.groups, groupName, currentBreadcrumb);\n if (nestedResult.breadcrumb.length > 0) {\n return nestedResult;\n }\n }\n // If no matching group is found\n return {\n breadcrumb: [],\n groups: [],\n sections: []\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSettingDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSettingDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSettingDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n// Multi-provider token for higher-layer default values\nexport const AXP_SETTING_DEFAULT_VALUES_PROVIDERS = new InjectionToken('AXP_SETTING_DEFAULT_VALUES_PROVIDERS', {\n providedIn: 'root',\n factory: () => [],\n});\n// Aggregator service that merges definition defaults with higher-layer providers (by priority)\nexport class AXPSettingDefaultValuesAggregatorService {\n constructor() {\n this.definitionService = inject(AXPSettingDefinitionProviderService);\n this.providers = inject(AXP_SETTING_DEFAULT_VALUES_PROVIDERS, { optional: true }) ?? [];\n }\n async getDefaults() {\n const baseDefaults = await this.definitionService.defaultValues();\n const ordered = [...this.providers].sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n const merged = { ...baseDefaults };\n for (const provider of ordered) {\n try {\n const overrideMap = await provider.provide();\n Object.assign(merged, overrideMap);\n }\n catch (err) {\n console.error('AXPSettingDefaultValuesProvider failed:', err);\n }\n }\n return merged;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSettingDefaultValuesAggregatorService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3NldHRpbmdzL3NldHRpbmctZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU1uRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU1uQyx3Q0FBd0M7QUFDeEMsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxjQUFjLENBQWlDLGlDQUFpQyxDQUFDLENBQUM7QUFHckksTUFBTSxPQUFPLG1DQUFtQztJQURoRDtRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsK0JBQStCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSxVQUFLLEdBQXVDLElBQUksQ0FBQztLQTJJMUQ7SUF6SVMsS0FBSyxDQUFDLElBQUk7UUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixPQUFNO1FBQ1IsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksbUNBQW1DLEVBQUUsQ0FBQztRQUMxRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEMsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksUUFBUSxZQUFZLE9BQU8sRUFBRSxDQUFDO29CQUNoQyx1Q0FBdUM7b0JBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxRQUFRLENBQUM7b0JBQ3hDLE1BQU0sZ0JBQWdCLENBQUMs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QUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWFBHcm91cFNlYXJjaFJlc3VsdCxcbiAgQVhQU2V0dGluZ0RlZmluaXRpb25Hcm91cCxcbiAgQVhQU2V0dGluZ0RlZmF1bHRWYWx1ZXNQcm92aWRlcixcbn0gZnJvbSAnLi9zZXR0aW5ncy50eXBlcyc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB9IGZyb20gJy4vc2V0dGluZy5idWlsZGVyJztcbmltcG9ydCB7IEFYUFBsYXRmb3JtU2NvcGUsIEFYUFBsYXRmb3JtU2NvcGVLZXkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbi8vIEludGVyZmFjZSBmb3Igc2V0dGluZyBwcm92aWRlcnNcbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlciB7XG4gIHByb3ZpZGUoY29udGV4dDogQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vLyBJbmplY3Rpb24gdG9rZW4gZm9yIHNldHRpbmcgcHJvdmlkZXJzXG5leHBvcnQgY29uc3QgQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyW10+KCdBWFBfU0VUVElOR19ERUZJTklUSU9OX1BST1ZJREVSJyk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlclNlcnZpY2Uge1xuICBwcml2YXRlIHByb3ZpZGVycyA9IGluamVjdChBWFBfU0VUVElOR19ERUZJTklUSU9OX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIGNhY2hlOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0KCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgIGlmIChwcm92aWRlciBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAvLyBJZiBwcm92aWRlciBpcyBhIHByb21pc2UsIHJlc29sdmUgaXRcbiAgICAgICAgICBjb25zdCByZXNvbHZlZFByb3ZpZGVyID0gYXdhaXQgcHJvdmlkZXI7XG4gICAgICAgICAgYXdhaXQgcmVzb2x2ZWRQcm92aWRlci5wcm92aWRlKGNvbnRleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIHByb3ZpZGVyIGlzIGEgZGlyZWN0IGluc3RhbmNlLCB1c2UgaXQgZGlyZWN0bHlcbiAgICAgICAgICBhd2FpdCBwcm92aWRlci5wcm92aWRlKGNvbnRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2FjaGUgPSBjb250ZXh0LmdldEdyb3VwcygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNhY2hlID0gbnVsbDtcbiAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRMaXN0QXN5bmMoc2NvcGU6IEFYUFBsYXRmb3JtU2NvcGVLZXkpOiBQcm9taXNlPEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXT4ge1xuICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIHJldHVybiB0aGlzLmdldExpc3Qoc2NvcGUpO1xuICB9XG5cbiAgcHVibGljIGdldExpc3Qoc2NvcGU6IEFYUFBsYXRmb3JtU2NvcGVLZXkpOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10ge1xuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHNjb3BlT3JkZXIgPSBbJ0MnLCAnRycsICdUJywgJ1UnXTsgLy8gU2NvcGVzIGhpZXJhcmNoeSBpbiBhc2NlbmRpbmcgb3JkZXJcblxuICAgIGNvbnN0IGZpbHRlckJ5U2NvcGUgPSAoXG4gICAgICBncm91cHM6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSxcbiAgICAgIGN1cnJlbnRTY29wZTogQVhQUGxhdGZvcm1TY29wZUtleVxuICAgICk6IEFYUFNldHRpbmdEZWZpbml0aW9uR3JvdXBbXSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50U2NvcGVJbmRleCA9IHNjb3BlT3JkZXIuaW5kZXhPZihjdXJyZW50U2NvcGUpO1xuXG4gICAgICByZXR1cm4gZ3JvdXBzXG4gICAgICAgIC5tYXAoKGdyb3VwKSA9PiAoe1xuICAgICAgICAgIC4uLmdyb3VwLFxuICAgICAgICAgIHNlY3Rpb25zOiBncm91cC5zZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+ICh7XG4gICAgICAgICAgICAuLi5zZWN0aW9uLFxuICAgICAgICAgICAgc2V0dGluZ3M6IHNlY3Rpb24uc2V0dGluZ3MuZmlsdGVyKChzZXR0aW5nKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNldHRpbmdTY29wZUluZGV4ID0gc2NvcGVPcmRlci5pbmRleE9mKHNldHRpbmcuc2NvcGUpO1xuXG4gICAgICAgICAgICAgIC8vIEluY2x1ZGUgc2V0dGluZ3Mgd2hlcmU6XG4gICAgICAgICAgICAgIC8vIDEuIFRoZSBzY29wZSBtYXRjaGVzIHRoZSByZXF1ZXN0ZWQgc2NvcGUuXG4gICAgICAgICAgICAgIGlmIChzZXR0aW5nLnNjb3BlID09PSBjdXJyZW50U2NvcGUpIHJldHVybiB0cnVlO1xuXG4gICAgICAgICAgICAgIC8vIDIuIFRoZSBzZXR0aW5nIHNjb3BlIGlzIGhpZ2hlciAoY2xvc2VyIHRvICdVJykgYW5kIGlzIGluaGVyaXRlZC5cbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHNldHRpbmcuaXNJbmhlcml0ZWQgJiZcbiAgICAgICAgICAgICAgICBzZXR0aW5nU2NvcGVJbmRleCA+IGN1cnJlbnRTY29wZUluZGV4IC8vIEhpZ2hlciBzY29wZVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIDMuIEV4Y2x1ZGUgc2V0dGluZ3Mgd2l0aCBhIGxvd2VyIG9yIGlycmVsZXZhbnQgc2NvcGUuXG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0pKS5maWx0ZXIoKHNlY3Rpb24pID0+IHNlY3Rpb24uc2V0dGluZ3MubGVuZ3RoID4gMCksIC8vIEtlZXAgb25seSBzZWN0aW9ucyB3aXRoIHNldHRpbmdzXG4gICAgICAgICAgZ3JvdXBzOiBmaWx0ZXJCeVNjb3BlKGdyb3VwLmdyb3VwcywgY3VycmVudFNjb3BlKSwgLy8gUmVjdXJzaXZlbHkgZmlsdGVyIG5lc3RlZCBncm91cHNcbiAgICAgICAgfSkpXG4gICAgICAgIC5maWx0ZXIoKGdyb3VwKSA9PiBncm91cC5zZWN0aW9ucy5sZW5ndGggPiAwIHx8IGdyb3VwLmdyb3Vwcy5sZW5ndGggPiAwKTsgLy8gS2VlcCBncm91cHMgd2l0aCB2YWxpZCBzZWN0aW9ucyBvciBuZXN0ZWQgZ3JvdXBzXG4gICAgfTtcblxuICAgIHJldHVybiBzb3J0QnkoZmlsdGVyQnlTY29wZSh0aGlzLmNhY2hlLCBzY29wZSksICd0aXRsZScpO1xuICB9XG5cblxuXG5cbiAgYXN5bmMgZGVmYXVsdFZhbHVlcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgY29uc3QgZGVmYXVsdHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgICBjb25zdCBjb2xsZWN0RGVmYXVsdHMgPSAoZ3JvdXBzOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10pID0+IHtcbiAgICAgIGdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICBncm91cC5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICAgICAgc2VjdGlvbi5zZXR0aW5ncy5mb3JFYWNoKChzZXR0aW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2V0dGluZy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBkZWZhdWx0c1tzZXR0aW5nLm5hbWVdID0gc2V0dGluZy5kZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb2xsZWN0RGVmYXVsdHMoZ3JvdXAuZ3JvdXBzKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIH1cbiAgICBjb2xsZWN0RGVmYXVsdHModGhpcy5jYWNoZSEpO1xuXG4gICAgcmV0dXJuIGRlZmF1bHRzO1xuICB9XG5cbiAgcHVibGljIGZpbmRHcm91cChzY29wZTogQVhQUGxhdGZvcm1TY29wZUtleSwgZ3JvdXBOYW1lOiBzdHJpbmcpOiBBWFBHcm91cFNlYXJjaFJlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoUmVjdXJzaXZlKHRoaXMuZ2V0TGlzdChzY29wZSksIGdyb3VwTmFtZSwgW10pOyAvLyBJbml0aWFsaXplIHdpdGggYW4gZW1wdHkgYnJlYWRjcnVtYlxuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hSZWN1cnNpdmUoXG4gICAgZ3JvdXBzOiBBWFBTZXR0aW5nRGVmaW5pdGlvbkdyb3VwW10sXG4gICAgZ3JvdXBOYW1lOiBzdHJpbmcsXG4gICAgYnJlYWRjcnVtYjogeyBuYW1lOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfVtdXG4gICk6IEFYUEdyb3VwU2VhcmNoUmVzdWx0IHtcbiAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIGdyb3Vwcykge1xuICAgICAgY29uc3QgY3VycmVudEJyZWFkY3J1bWIgPSBbLi4uYnJlYWRjcnVtYiwgeyBuYW1lOiBncm91cC5uYW1lLCB0aXRsZTogZ3JvdXAudGl0bGUsIGRlc2NyaXB0aW9uOiBncm91cC5kZXNjcmlwdGlvbiB9XTtcblxuICAgICAgLy8gSWYgdGhlIGdyb3VwIG5hbWUgbWF0Y2hlcywgcmV0dXJuIGl0cyBkZXRhaWxzXG4gICAgICBpZiAoZ3JvdXAubmFtZSA9PT0gZ3JvdXBOYW1lKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYnJlYWRjcnVtYjogY3VycmVudEJyZWFkY3J1bWIsXG4gICAgICAgICAgc2VjdGlvbnM6IGdyb3VwLnNlY3Rpb25zLmxlbmd0aCA+IDAgPyBncm91cC5zZWN0aW9ucyA6IG51bGwsXG4gICAgICAgICAgZ3JvdXBzOiBncm91cC5ncm91cHMubGVuZ3RoID4gMCA/IGdyb3VwLmdyb3VwcyA6IG51bGwsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIFJlY3Vyc2l2ZWx5IHNlYXJjaCBpbiBuZXN0ZWQgZ3JvdXBzXG4gICAgICBjb25zdCBuZXN0ZWRSZXN1bHQgPSB0aGlzLnNlYXJjaFJlY3Vyc2l2ZShncm91cC5ncm91cHMsIGdyb3VwTmFtZSwgY3VycmVudEJyZWFkY3J1bWIpO1xuICAgICAgaWYgKG5lc3RlZFJlc3VsdC5icmVhZGNydW1iLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIG5lc3RlZFJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiBubyBtYXRjaGluZyBncm91cCBpcyBmb3VuZFxuICAgIHJldHVybiB7XG4gICAgICBicmVhZGNydW1iOiBbXSxcbiAgICAgIGdyb3VwczogW10sXG4gICAgICBzZWN0aW9uczogW11cbiAgICB9O1xuICB9XG59XG5cbi8vIE11bHRpLXByb3ZpZGVyIHRva2VuIGZvciBoaWdoZXItbGF5ZXIgZGVmYXVsdCB2YWx1ZXNcbmV4cG9ydCBjb25zdCBBWFBfU0VUVElOR19ERUZBVUxUX1ZBTFVFU19QUk9WSURFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQU2V0dGluZ0RlZmF1bHRWYWx1ZXNQcm92aWRlcltdPlxuICAoJ0FYUF9TRVRUSU5HX0RFRkFVTFRfVkFMVUVTX1BST1ZJREVSUycsIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gW10sXG4gIH0pO1xuXG4vLyBBZ2dyZWdhdG9yIHNlcnZpY2UgdGhhdCBtZXJnZXMgZGVmaW5pdGlvbiBkZWZhdWx0cyB3aXRoIGhpZ2hlci1sYXllciBwcm92aWRlcnMgKGJ5IHByaW9yaXR5KVxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBTZXR0aW5nRGVmYXVsdFZhbHVlc0FnZ3JlZ2F0b3JTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZpbml0aW9uU2VydmljZSA9IGluamVjdChBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9TRVRUSU5HX0RFRkFVTFRfVkFMVUVTX1BST1ZJREVSUywgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBbXTtcblxuICBhc3luYyBnZXREZWZhdWx0cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgY29uc3QgYmFzZURlZmF1bHRzID0gYXdhaXQgdGhpcy5kZWZpbml0aW9uU2VydmljZS5kZWZhdWx0VmFsdWVzKCk7XG4gICAgY29uc3Qgb3JkZXJlZCA9IFsuLi50aGlzLnByb3ZpZGVyc10uc29ydCgoYSwgYikgPT4gKGEucHJpb3JpdHkgPz8gMCkgLSAoYi5wcmlvcml0eSA/PyAwKSk7XG4gICAgY29uc3QgbWVyZ2VkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHsgLi4uYmFzZURlZmF1bHRzIH07XG4gICAgZm9yIChjb25zdCBwcm92aWRlciBvZiBvcmRlcmVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBvdmVycmlkZU1hcCA9IGF3YWl0IHByb3ZpZGVyLnByb3ZpZGUoKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihtZXJnZWQsIG92ZXJyaWRlTWFwKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdBWFBTZXR0aW5nRGVmYXVsdFZhbHVlc1Byb3ZpZGVyIGZhaWxlZDonLCBlcnIpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VkO1xuICB9XG59Il19","import { inject, InjectionToken, Injector } from \"@angular/core\";\nimport { AXPPlatformScope } from \"@acorex/platform/core\";\nimport { AXPSessionService, AXPSessionStatus } from \"@acorex/platform/auth\";\nexport const AXP_SETTING_VALUE_PROVIDER = new InjectionToken('AXP_SETTING_VALUE_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n const injector = inject(Injector);\n return [\n new AXPSettingValueProviderDefault(AXPPlatformScope.Tenant, injector),\n new AXPSettingValueProviderDefault(AXPPlatformScope.User, injector)\n ];\n }\n});\nclass AXPSettingValueProviderDefault {\n constructor(_scope, injector) {\n this._scope = _scope;\n this.injector = injector;\n this.cache = new Map();\n this.localStorageKey = null;\n this.sessionService = this.injector.get(AXPSessionService);\n this.sessionService.status$.subscribe((status) => {\n if (status === AXPSessionStatus.Authorized || status === AXPSessionStatus.Authenticated) {\n if (this.scope === AXPPlatformScope.User) {\n this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.user?.id ?? 'U'})`;\n }\n else {\n this.localStorageKey = `AXP_SETTINGS_SCOPE(${this.sessionService.tenant?.id ?? 'T'})`;\n }\n }\n });\n }\n get scope() {\n return this._scope;\n }\n async load() {\n if (!this.localStorageKey) {\n return Promise.resolve([]);\n }\n // Load settings from localStorage as a single key\n const storedSettings = localStorage.getItem(this.localStorageKey);\n if (storedSettings) {\n const parsedSettings = JSON.parse(storedSettings);\n Object.entries(parsedSettings).forEach(([key, value]) => {\n this.cache.set(key, value);\n });\n return Promise.resolve(Array.from(this.cache.entries()).map(c => ({ key: c[0], value: c[1] })));\n }\n return Promise.resolve([]);\n }\n async set(keyOrValues, value) {\n if (typeof keyOrValues === 'string') {\n // Single value update\n this.cache.set(keyOrValues, value);\n }\n else {\n // Bulk update\n for (const [key, val] of Object.entries(keyOrValues)) {\n this.cache.set(key, val);\n }\n }\n await this.saveToLocalStorage();\n }\n async saveToLocalStorage() {\n if (!this.localStorageKey) {\n return;\n }\n const settingsObject = {};\n this.cache.forEach((value, key) => {\n settingsObject[key] = value;\n });\n localStorage.setItem(this.localStorageKey, JSON.stringify(settingsObject));\n }\n async clear() {\n if (!this.localStorageKey) {\n return;\n }\n localStorage.removeItem(this.localStorageKey);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3NldHRpbmdzL3NldHRpbmdzLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUs1RSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FBNEIsNEJBQTRCLEVBQUU7SUFDbEgsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxPQUFPO1lBQ0gsSUFBSSw4QkFBOEIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO1lBQ3JFLElBQUksOEJBQThCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztTQUN0RSxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUMsQ0FBQztBQUdILE1BQU0sOEJBQThCO0lBS2hDLFlBQW9CLE1BQXdCLEVBQVUsUUFBa0I7UUFBcEQsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSnZELFVBQUssR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3QyxvQkFBZSxHQUFrQixJQUFJLENBQUM7UUFDdEMsbUJBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBR3pELElBQUksQ0FBQyxjQUFjLENBQUMs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RUFBRSxFQUFFO1lBQzlCLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFHTyxLQUFLLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNYLENBQUM7UUFDRCxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZXR0aW5nVmFsdWUsIEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyIH0gZnJvbSBcIi4vc2V0dGluZ3MudHlwZXNcIjtcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUFBsYXRmb3JtU2NvcGUgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb3JlXCI7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSwgQVhQU2Vzc2lvblN0YXR1cyB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2F1dGhcIjtcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSBcInJ4anNcIjtcblxuXG5cbmV4cG9ydCBjb25zdCBBWFBfU0VUVElOR19WQUxVRV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBTZXR0aW5nVmFsdWVQcm92aWRlcltdPignQVhQX1NFVFRJTkdfVkFMVUVfUFJPVklERVInLCB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyRGVmYXVsdChBWFBQbGF0Zm9ybVNjb3BlLlRlbmFudCwgaW5qZWN0b3IpLFxuICAgICAgICAgICAgbmV3IEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyRGVmYXVsdChBWFBQbGF0Zm9ybVNjb3BlLlVzZXIsIGluamVjdG9yKVxuICAgICAgICBdO1xuICAgIH1cbn0pO1xuXG5cbmNsYXNzIEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyRGVmYXVsdCBpbXBsZW1lbnRzIEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQU2Vzc2lvblNlcnZpY2UpXG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zY29wZTogQVhQUGxhdGZvcm1TY29wZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5zdGF0dXMkLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhdHVzID09PSBBWFBTZXNzaW9uU3RhdHVzLkF1dGhvcml6ZWQgfHwgc3RhdHVzID09PSBBWFBTZXNzaW9uU3RhdHVzLkF1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zY29wZSA9PT0gQVhQUGxhdGZvcm1TY29wZS5Vc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlS2V5ID0gYEFYUF9TRVRUSU5HU19TQ09QRSgke3RoaXMuc2Vzc2lvblNlcnZpY2UudXNlcj8uaWQgPz8gJ1UnfSlgO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlS2V5ID0gYEFYUF9TRVRUSU5HU19TQ09QRSgke3RoaXMuc2Vzc2lvblNlcnZpY2UudGVuYW50Py5pZCA/PyAnVCd9KWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNjb3BlKCk6IEFYUFBsYXRmb3JtU2NvcGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2NvcGU7XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZCgpOiBQcm9taXNlPEFYUFNldHRpbmdWYWx1ZVtdPiB7XG4gICAgICAgIGlmICghdGhpcy5sb2NhbFN0b3JhZ2VLZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICAgICAgICB9XG4gICAgICAgIC8vIExvYWQgc2V0dGluZ3MgZnJvbSBsb2NhbFN0b3JhZ2UgYXMgYSBzaW5nbGUga2V5XG4gICAgICAgIGNvbnN0IHN0b3JlZFNldHRpbmdzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5sb2NhbFN0b3JhZ2VLZXkpO1xuICAgICAgICBpZiAoc3RvcmVkU2V0dGluZ3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZFNldHRpbmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gSlNPTi5wYXJzZShzdG9yZWRTZXR0aW5ncyk7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhwYXJzZWRTZXR0aW5ncykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoQXJyYXkuZnJvbSh0aGlzLmNhY2hlLmVudHJpZXMoKSkubWFwKGMgPT4gKHsga2V5OiBjWzBdLCB2YWx1ZTogY1sxXSB9KSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICAgIH1cblxuICAgIGFzeW5jIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IFByb21pc2U8dm9pZD47XG4gICAgYXN5bmMgc2V0KHZhbHVlczogUmVjb3JkPHN0cmluZywgYW55Pik6IFByb21pc2U8dm9pZD47XG4gICAgYXN5bmMgc2V0KGtleU9yVmFsdWVzOiBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB2YWx1ZT86IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodHlwZW9mIGtleU9yVmFsdWVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gU2luZ2xlIHZhbHVlIHVwZGF0ZVxuICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5T3JWYWx1ZXMsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEJ1bGsgdXBkYXRlXG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMoa2V5T3JWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoa2V5LCB2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZVRvTG9jYWxTdG9yYWdlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBzYXZlVG9Mb2NhbFN0b3JhZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICghdGhpcy5sb2NhbFN0b3JhZ2VLZXkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXR0aW5nc09iamVjdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgICAgICB0aGlzLmNhY2hlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHNldHRpbmdzT2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5LCBKU09OLnN0cmluZ2lmeShzZXR0aW5nc09iamVjdCkpO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBhc3luYyBjbGVhcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxvY2FsU3RvcmFnZUtleSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMubG9jYWxTdG9yYWdlS2V5KTtcbiAgICB9XG59Il19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPBroadcastEventService, AXPPlatformScope } from '@acorex/platform/core';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { cloneDeep, get } from 'lodash-es';\nimport { distinctUntilChanged, Subject } from 'rxjs';\nimport { AXP_SETTING_VALUE_PROVIDER } from './settings.provider';\nimport { AXPSettingDefaultValuesAggregatorService } from './setting-definition.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPSettingService {\n constructor() {\n this.providers = inject(AXP_SETTING_VALUE_PROVIDER);\n this.injector = inject(Injector);\n this.eventService = inject(AXPBroadcastEventService);\n this.sessionService = inject(AXPSessionService);\n this.scopedSettingsCache = new Map();\n this.onChanged = new Subject();\n this.onLoaded = new Subject();\n // Initialize scoped caches for dynamic scopes\n const staticScopes = [\n AXPPlatformScope.Environment,\n AXPPlatformScope.Global,\n AXPPlatformScope.Tenant,\n AXPPlatformScope.User,\n ];\n staticScopes.forEach((scope) => {\n if (!this.scopedSettingsCache.has(scope)) {\n this.scopedSettingsCache.set(scope, new Map());\n }\n });\n // Listen for setting changes from other tabs\n this.eventService.listen('AXPSettingChangedEvent').subscribe((event) => {\n const data = event.data;\n data.keys.forEach((key) => {\n this.scopedSettingsCache.get(data.scope)?.set(key, data.values[key]);\n });\n this.onChanged.next(data); // Notify subscribers in the current tab\n });\n // reload settings when user is authenticated\n this.sessionService.isAuthenticated$.pipe(distinctUntilChanged()).subscribe(async (isAuthenticated) => {\n if (isAuthenticated) {\n await this.reload();\n }\n });\n }\n async reload() {\n await this.load();\n }\n async load() {\n try {\n const settingsList = [];\n for (const provider of this.providers) {\n const scopeCache = this.scopedSettingsCache.get(provider.scope) ?? new Map();\n const providerSettings = await provider.load();\n providerSettings.forEach((setting) => {\n scopeCache.set(setting.key, setting.value);\n });\n settingsList.push(...providerSettings);\n }\n this.onLoaded.next();\n return settingsList;\n }\n catch (error) {\n console.error('Error loading settings', error);\n throw error;\n }\n }\n async get(key) {\n if (this.scopedSettingsCache.size === 0) {\n await this.load();\n }\n const scopeOrder = [\n AXPPlatformScope.User,\n AXPPlatformScope.Tenant,\n AXPPlatformScope.Global,\n AXPPlatformScope.Environment,\n ];\n for (const scope of scopeOrder) {\n const scopeCache = this.scopedSettingsCache.get(scope);\n if (scopeCache && scopeCache.has(key)) {\n const value = scopeCache.get(key);\n if (value !== undefined && value !== null) {\n return cloneDeep(value);\n }\n }\n }\n const defaults = await this.injector.get(AXPSettingDefaultValuesAggregatorService).getDefaults();\n return get(defaults, key); // Fallback if no value is found\n }\n async defaultValues(scope) {\n let scopeOrder = [\n AXPPlatformScope.Environment,\n AXPPlatformScope.Global,\n AXPPlatformScope.Tenant,\n AXPPlatformScope.User,\n ].reverse();\n const scopeIndex = scopeOrder.indexOf(scope);\n if (scopeIndex === -1) {\n throw new Error(`Invalid scope: ${scope}`);\n }\n scopeOrder = scopeOrder.slice(scopeIndex + 1);\n // Accumulate defaults from the current scope and higher scopes\n const accumulatedDefaults = {};\n for (let i = scopeIndex; i < scopeOrder.length; i++) {\n const currentScope = scopeOrder[i];\n const scopeCache = this.scopedSettingsCache.get(currentScope);\n if (scopeCache) {\n scopeCache.forEach((value, key) => {\n if (!(key in accumulatedDefaults)) {\n accumulatedDefaults[key] = value;\n }\n });\n }\n }\n // Merge with aggregated default values (definition + higher-layer providers)\n const globalDefaults = await this.injector.get(AXPSettingDefaultValuesAggregatorService).getDefaults();\n return { ...globalDefaults, ...accumulatedDefaults };\n }\n scope(scope) {\n const provider = this.providers.find((p) => p.scope === scope);\n if (!provider) {\n throw new Error(`No provider found for scope: ${scope}`);\n }\n return new ScopedSettingService(this, provider, this.scopedSettingsCache.get(scope));\n }\n invokeChangeEvent(event) {\n this.onChanged.next(event);\n this.eventService.publish('AXPSettingChangedEvent', event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSettingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSettingService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSettingService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\nclass ScopedSettingService {\n constructor(parent, provider, scopeCache) {\n this.parent = parent;\n this.provider = provider;\n this.scopeCache = scopeCache;\n }\n async get(key) {\n const settings = await this.provider.load();\n const setting = settings.find((s) => s.key === key);\n return setting ? cloneDeep(setting.value) : undefined;\n }\n async all() {\n const settings = await this.provider.load();\n return Object.fromEntries(settings.map((s) => [s.key, cloneDeep(s.value)]));\n }\n async defaultValues() {\n return this.parent.defaultValues(this.provider.scope);\n }\n async set(keyOrValues, value) {\n if (typeof keyOrValues === 'string') {\n // Single key-value pair\n await this.provider.set(keyOrValues, value);\n this.scopeCache.set(keyOrValues, value); // Sync the cache\n this.parent.invokeChangeEvent({\n scope: this.provider.scope,\n keys: [keyOrValues],\n values: { [keyOrValues]: value },\n entries: [{ key: keyOrValues, value }],\n });\n }\n else {\n // Multiple key-value pairs\n await this.provider.set(keyOrValues);\n Object.entries(keyOrValues).forEach(([key, val]) => this.scopeCache.set(key, val)); // Sync the cache\n const entries = Object.entries(keyOrValues).map(([key, val]) => ({ key, value: val }));\n this.parent.invokeChangeEvent({\n scope: this.provider.scope,\n keys: Object.keys(keyOrValues),\n values: keyOrValues,\n entries,\n });\n }\n }\n async update(key, updateFn) {\n const currentValue = await this.get(key);\n const newValue = updateFn(currentValue);\n await this.set(key, newValue);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFZeEYsTUFBTSxPQUFPLGlCQUFpQjtJQVM1QjtRQVJpQixjQUFTLEdBQThCLE1BQU0sQ0FBNEIsMEJBQTBCLENBQUMsQ0FBQztRQUNyRyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDaEQsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzQyx3QkFBbUIsR0FBa0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoRSxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7UUFDbEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHN0MsOENBQThDO1FBQzlDLE1BQU0sWUFBWSxHQUFHO1lBQ25CLGdCQUFnQixDQUFDLFdB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QUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtZQUNyRyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztnQkFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSztnQkFDMUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUM5QixNQUFNLEVBQUUsV0FBVztnQkFDbkIsT0FBTzthQUNSLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBVSxHQUFXLEVBQUUsUUFBZ0M7UUFDakUsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSwgQVhQUGxhdGZvcm1TY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ0RlZmluaXRpb25Qcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL3NldHRpbmctZGVmaW5pdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9TRVRUSU5HX1ZBTFVFX1BST1ZJREVSIH0gZnJvbSAnLi9zZXR0aW5ncy5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50LCBBWFBTZXR0aW5nVmFsdWUsIEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnLi9zZXR0aW5ncy50eXBlcyc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nRGVmYXVsdFZhbHVlc0FnZ3JlZ2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi9zZXR0aW5nLWRlZmluaXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2V0dGluZ1NlcnZpY2VJbnRlcmZhY2Uge1xuICBsb2FkKCk6IFByb21pc2U8QVhQU2V0dGluZ1ZhbHVlW10+O1xuICBnZXQ8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBQcm9taXNlPFQ+O1xuICBkZWZhdWx0VmFsdWVzKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG4gIHNjb3BlKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlKTogU2NvcGVkU2V0dGluZ1NlcnZpY2U7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBTZXR0aW5nU2VydmljZSBpbXBsZW1lbnRzIEFYUFNldHRpbmdTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlcnM6IEFYUFNldHRpbmdWYWx1ZVByb3ZpZGVyW10gPSBpbmplY3Q8QVhQU2V0dGluZ1ZhbHVlUHJvdmlkZXJbXT4oQVhQX1NFVFRJTkdfVkFMVUVfUFJPVklERVIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudFNlcnZpY2UgPSBpbmplY3QoQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2NvcGVkU2V0dGluZ3NDYWNoZTogTWFwPHN0cmluZywgTWFwPHN0cmluZywgYW55Pj4gPSBuZXcgTWFwKCk7XG4gIHB1YmxpYyByZWFkb25seSBvbkNoYW5nZWQgPSBuZXcgU3ViamVjdDxBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb25Mb2FkZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEluaXRpYWxpemUgc2NvcGVkIGNhY2hlcyBmb3IgZHluYW1pYyBzY29wZXNcbiAgICBjb25zdCBzdGF0aWNTY29wZXMgPSBbXG4gICAgICBBWFBQbGF0Zm9ybVNjb3BlLkVudmlyb25tZW50LFxuICAgICAgQVhQUGxhdGZvcm1TY29wZS5HbG9iYWwsXG4gICAgICBBWFBQbGF0Zm9ybVNjb3BlLlRlbmFudCxcbiAgICAgIEFYUFBsYXRmb3JtU2NvcGUuVXNlcixcbiAgICBdO1xuICAgIHN0YXRpY1Njb3Blcy5mb3JFYWNoKChzY29wZSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnNjb3BlZFNldHRpbmdzQ2FjaGUuaGFzKHNjb3BlKSkge1xuICAgICAgICB0aGlzLnNjb3BlZFNldHRpbmdzQ2FjaGUuc2V0KHNjb3BlLCBuZXcgTWFwKCkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gTGlzdGVuIGZvciBzZXR0aW5nIGNoYW5nZXMgZnJvbSBvdGhlciB0YWJzXG4gICAgdGhpcy5ldmVudFNlcnZpY2UubGlzdGVuPEFYUFNldHRpbmdDaGFuZ2VkRXZlbnQ+KCdBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50Jykuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGE7XG4gICAgICBkYXRhLmtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIHRoaXMuc2NvcGVkU2V0dGluZ3NDYWNoZS5nZXQoZGF0YS5zY29wZSk/LnNldChrZXksIGRhdGEudmFsdWVzW2tleV0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KGRhdGEpOyAvLyBOb3RpZnkgc3Vic2NyaWJlcnMgaW4gdGhlIGN1cnJlbnQgdGFiXG4gICAgfSk7XG4gICAgLy8gcmVsb2FkIHNldHRpbmdzIHdoZW4gdXNlciBpcyBhdXRoZW50aWNhdGVkXG4gICAgdGhpcy5zZXNzaW9uU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKGFzeW5jIChpc0F1dGhlbnRpY2F0ZWQpID0+IHtcbiAgICAgIGlmIChpc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHJlbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWQoKTogUHJvbWlzZTxBWFBTZXR0aW5nVmFsdWVbXT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZXR0aW5nc0xpc3Q6IEFYUFNldHRpbmdWYWx1ZVtdID0gW107XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgIGNvbnN0IHNjb3BlQ2FjaGUgPSB0aGlzLnNjb3BlZFNldHRpbmdzQ2FjaGUuZ2V0KHByb3ZpZGVyLnNjb3BlKSA/PyBuZXcgTWFwKCk7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyU2V0dGluZ3MgPSBhd2FpdCBwcm92aWRlci5sb2FkKCk7XG4gICAgICAgIHByb3ZpZGVyU2V0dGluZ3MuZm9yRWFjaCgoc2V0dGluZykgPT4ge1xuICAgICAgICAgIHNjb3BlQ2FjaGUuc2V0KHNldHRpbmcua2V5LCBzZXR0aW5nLnZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHNldHRpbmdzTGlzdC5wdXNoKC4uLnByb3ZpZGVyU2V0dGluZ3MpO1xuICAgICAgfVxuICAgICAgdGhpcy5vbkxvYWRlZC5uZXh0KCk7XG4gICAgICByZXR1cm4gc2V0dGluZ3NMaXN0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHNldHRpbmdzJywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0PFQgPSBhbnk+KGtleTogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgaWYgKHRoaXMuc2NvcGVkU2V0dGluZ3NDYWNoZS5zaXplID09PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICB9XG4gICAgY29uc3Qgc2NvcGVPcmRlciA9IFtcbiAgICAgIEFYUFBsYXRmb3JtU2NvcGUuVXNlcixcbiAgICAgIEFYUFBsYXRmb3JtU2NvcGUuVGVuYW50LFxuICAgICAgQVhQUGxhdGZvcm1TY29wZS5HbG9iYWwsXG4gICAgICBBWFBQbGF0Zm9ybVNjb3BlLkVudmlyb25tZW50LFxuICAgIF07XG4gICAgZm9yIChjb25zdCBzY29wZSBvZiBzY29wZU9yZGVyKSB7XG4gICAgICBjb25zdCBzY29wZUNhY2hlID0gdGhpcy5zY29wZWRTZXR0aW5nc0NhY2hlLmdldChzY29wZSk7XG4gICAgICBpZiAoc2NvcGVDYWNoZSAmJiBzY29wZUNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gc2NvcGVDYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gY2xvbmVEZWVwKHZhbHVlKSBhcyBUO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRzID0gYXdhaXQgdGhpcy5pbmplY3Rvci5nZXQoQVhQU2V0dGluZ0RlZmF1bHRWYWx1ZXNBZ2dyZWdhdG9yU2VydmljZSkuZ2V0RGVmYXVsdHMoKTtcbiAgICByZXR1cm4gZ2V0KGRlZmF1bHRzLCBrZXkpIGFzIFQ7IC8vIEZhbGxiYWNrIGlmIG5vIHZhbHVlIGlzIGZvdW5kXG4gIH1cblxuICBhc3luYyBkZWZhdWx0VmFsdWVzKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIGxldCBzY29wZU9yZGVyID0gW1xuICAgICAgQVhQUGxhdGZvcm1TY29wZS5FbnZpcm9ubWVudCxcbiAgICAgIEFYUFBsYXRmb3JtU2NvcGUuR2xvYmFsLFxuICAgICAgQVhQUGxhdGZvcm1TY29wZS5UZW5hbnQsXG4gICAgICBBWFBQbGF0Zm9ybVNjb3BlLlVzZXIsXG4gICAgXS5yZXZlcnNlKCk7XG4gICAgY29uc3Qgc2NvcGVJbmRleCA9IHNjb3BlT3JkZXIuaW5kZXhPZihzY29wZSk7XG5cbiAgICBpZiAoc2NvcGVJbmRleCA9PT0gLTEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzY29wZTogJHtzY29wZX1gKTtcbiAgICB9XG4gICAgc2NvcGVPcmRlciA9IHNjb3BlT3JkZXIuc2xpY2Uoc2NvcGVJbmRleCArIDEpO1xuICAgIC8vIEFjY3VtdWxhdGUgZGVmYXVsdHMgZnJvbSB0aGUgY3VycmVudCBzY29wZSBhbmQgaGlnaGVyIHNjb3Blc1xuICAgIGNvbnN0IGFjY3VtdWxhdGVkRGVmYXVsdHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG4gICAgZm9yIChsZXQgaSA9IHNjb3BlSW5kZXg7IGkgPCBzY29wZU9yZGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjdXJyZW50U2NvcGUgPSBzY29wZU9yZGVyW2ldO1xuICAgICAgY29uc3Qgc2NvcGVDYWNoZSA9IHRoaXMuc2NvcGVkU2V0dGluZ3NDYWNoZS5nZXQoY3VycmVudFNjb3BlKTtcblxuICAgICAgaWYgKHNjb3BlQ2FjaGUpIHtcbiAgICAgICAgc2NvcGVDYWNoZS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgaWYgKCEoa2V5IGluIGFjY3VtdWxhdGVkRGVmYXVsdHMpKSB7XG4gICAgICAgICAgICBhY2N1bXVsYXRlZERlZmF1bHRzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1lcmdlIHdpdGggYWdncmVnYXRlZCBkZWZhdWx0IHZhbHVlcyAoZGVmaW5pdGlvbiArIGhpZ2hlci1sYXllciBwcm92aWRlcnMpXG4gICAgY29uc3QgZ2xvYmFsRGVmYXVsdHMgPSBhd2FpdCB0aGlzLmluamVjdG9yLmdldChBWFBTZXR0aW5nRGVmYXVsdFZhbHVlc0FnZ3JlZ2F0b3JTZXJ2aWNlKS5nZXREZWZhdWx0cygpO1xuICAgIHJldHVybiB7IC4uLmdsb2JhbERlZmF1bHRzLCAuLi5hY2N1bXVsYXRlZERlZmF1bHRzIH07XG4gIH1cblxuICBzY29wZShzY29wZTogQVhQUGxhdGZvcm1TY29wZSk6IFNjb3BlZFNldHRpbmdTZXJ2aWNlIHtcbiAgICBjb25zdCBwcm92aWRlciA9IHRoaXMucHJvdmlkZXJzLmZpbmQoKHApID0+IHAuc2NvcGUgPT09IHNjb3BlKTtcbiAgICBpZiAoIXByb3ZpZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHByb3ZpZGVyIGZvdW5kIGZvciBzY29wZTogJHtzY29wZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBTY29wZWRTZXR0aW5nU2VydmljZSh0aGlzLCBwcm92aWRlciwgdGhpcy5zY29wZWRTZXR0aW5nc0NhY2hlLmdldChzY29wZSkhKTtcbiAgfVxuXG4gIGludm9rZUNoYW5nZUV2ZW50KGV2ZW50OiBBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5vbkNoYW5nZWQubmV4dChldmVudCk7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UucHVibGlzaDxBWFBTZXR0aW5nQ2hhbmdlZEV2ZW50PignQVhQU2V0dGluZ0NoYW5nZWRFdmVudCcsIGV2ZW50KTtcbiAgfVxufVxuXG5jbGFzcyBTY29wZWRTZXR0aW5nU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcGFyZW50OiBBWFBTZXR0aW5nU2VydmljZSxcbiAgICBwcml2YXRlIHByb3ZpZGVyOiBBWFBTZXR0aW5nVmFsdWVQcm92aWRlcixcbiAgICBwcml2YXRlIHNjb3BlQ2FjaGU6IE1hcDxzdHJpbmcsIGFueT4sXG4gICkgeyB9XG5cbiAgYXN5bmMgZ2V0PFQgPSBhbnk+KGtleTogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBhd2FpdCB0aGlzLnByb3ZpZGVyLmxvYWQoKTtcbiAgICBjb25zdCBzZXR0aW5nID0gc2V0dGluZ3MuZmluZCgocykgPT4gcy5rZXkgPT09IGtleSk7XG4gICAgcmV0dXJuIHNldHRpbmcgPyBjbG9uZURlZXAoc2V0dGluZy52YWx1ZSkgOiB1bmRlZmluZWQhO1xuICB9XG5cbiAgYXN5bmMgYWxsKCk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBhd2FpdCB0aGlzLnByb3ZpZGVyLmxvYWQoKTtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHNldHRpbmdzLm1hcCgocykgPT4gW3Mua2V5LCBjbG9uZURlZXAocy52YWx1ZSldKSk7XG4gIH1cblxuICBhc3luYyBkZWZhdWx0VmFsdWVzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuZGVmYXVsdFZhbHVlcyh0aGlzLnByb3ZpZGVyLnNjb3BlKTtcbiAgfVxuXG4gIGFzeW5jIHNldDxUID0gYW55PihrZXk6IHN0cmluZywgdmFsdWU6IFQpOiBQcm9taXNlPHZvaWQ+O1xuICBhc3luYyBzZXQ8VCA9IGFueT4odmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBUPik6IFByb21pc2U8dm9pZD47XG4gIGFzeW5jIHNldDxUID0gYW55PihrZXlPclZhbHVlczogc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgVD4sIHZhbHVlPzogVCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0eXBlb2Yga2V5T3JWYWx1ZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBTaW5nbGUga2V5LXZhbHVlIHBhaXJcbiAgICAgIGF3YWl0IHRoaXMucHJvdmlkZXIuc2V0KGtleU9yVmFsdWVzLCB2YWx1ZSk7XG4gICAgICB0aGlzLnNjb3BlQ2FjaGUuc2V0KGtleU9yVmFsdWVzLCB2YWx1ZSk7IC8vIFN5bmMgdGhlIGNhY2hlXG4gICAgICB0aGlzLnBhcmVudC5pbnZva2VDaGFuZ2VFdmVudCh7XG4gICAgICAgIHNjb3BlOiB0aGlzLnByb3ZpZGVyLnNjb3BlLFxuICAgICAgICBrZXlzOiBba2V5T3JWYWx1ZXNdLFxuICAgICAgICB2YWx1ZXM6IHsgW2tleU9yVmFsdWVzXTogdmFsdWUgfSxcbiAgICAgICAgZW50cmllczogW3sga2V5OiBrZXlPclZhbHVlcywgdmFsdWUgfV0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTXVsdGlwbGUga2V5LXZhbHVlIHBhaXJzXG4gICAgICBhd2FpdCB0aGlzLnByb3ZpZGVyLnNldChrZXlPclZhbHVlcyk7XG4gICAgICBPYmplY3QuZW50cmllcyhrZXlPclZhbHVlcykuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4gdGhpcy5zY29wZUNhY2hlLnNldChrZXksIHZhbCkpOyAvLyBTeW5jIHRoZSBjYWNoZVxuICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKGtleU9yVmFsdWVzKS5tYXAoKFtrZXksIHZhbF0pID0+ICh7IGtleSwgdmFsdWU6IHZhbCB9KSk7XG4gICAgICB0aGlzLnBhcmVudC5pbnZva2VDaGFuZ2VFdmVudCh7XG4gICAgICAgIHNjb3BlOiB0aGlzLnByb3ZpZGVyLnNjb3BlLFxuICAgICAgICBrZXlzOiBPYmplY3Qua2V5cyhrZXlPclZhbHVlcyksXG4gICAgICAgIHZhbHVlczoga2V5T3JWYWx1ZXMsXG4gICAgICAgIGVudHJpZXMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGU8VCA9IGFueT4oa2V5OiBzdHJpbmcsIHVwZGF0ZUZuOiAoY3VycmVudFZhbHVlOiBUKSA9PiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYXdhaXQgdGhpcy5nZXQ8VD4oa2V5KTtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHVwZGF0ZUZuKGN1cnJlbnRWYWx1ZSk7XG4gICAgYXdhaXQgdGhpcy5zZXQoa2V5LCBuZXdWYWx1ZSk7XG4gIH1cbn1cbiJdfQ==","export var AXPHomePageSettings;\n(function (AXPHomePageSettings) {\n AXPHomePageSettings[\"UserHomePath\"] = \"general:startup:home-page\";\n})(AXPHomePageSettings || (AXPHomePageSettings = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLXNldHRpbmdzLmtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvaG9tZS1wYWdlL2hvbWUtcGFnZS1zZXR0aW5ncy5rZXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksbUJBRVg7QUFGRCxXQUFZLG1CQUFtQjtJQUMzQixpRUFBMEMsQ0FBQTtBQUM5QyxDQUFDLEVBRlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUU5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEFYUEhvbWVQYWdlU2V0dGluZ3Mge1xuICAgIFVzZXJIb21lUGF0aCA9ICdnZW5lcmFsOnN0YXJ0dXA6aG9tZS1wYWdlJyxcbn0iXX0=","import { AXPSessionService } from '@acorex/platform/auth';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { merge } from 'rxjs';\nimport { AXPSettingService } from '../settings';\nimport { AXPHomePageSettings } from './home-page-settings.key';\nimport { AXP_HOME_PAGE_DEFAULT_KEY, AXP_HOME_PAGES } from './home-page.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPHomePageService {\n get flatCandidates() {\n return this.candidates.flatMap((c) => c);\n }\n constructor() {\n this.defaultHomePageKey = inject(AXP_HOME_PAGE_DEFAULT_KEY, { optional: true }) ?? 'home';\n this.userHomePageKey = null;\n this.candidates = inject(AXP_HOME_PAGES, { optional: true }) ?? [];\n this.settingsService = inject(AXPSettingService);\n this.sessionService = inject(AXPSessionService);\n this.injector = inject(Injector);\n this.originalConfig = null;\n this.loginPath = 'auth/login';\n // remove circular dependency\n setTimeout(async () => {\n await this.init();\n });\n }\n async init() {\n await this.load();\n //\n const keys = [AXPHomePageSettings.UserHomePath];\n this.settingsService.onChanged.subscribe(async (c) => {\n if (keys.some((k) => c.keys.includes(k))) {\n await this.load();\n this.refreshRoutes();\n }\n });\n //\n merge(this.sessionService.status$, this.sessionService.application$, this.sessionService.tenant$).subscribe(async (data) => {\n await this.load();\n this.refreshRoutes();\n });\n }\n async load() {\n this.userHomePageKey = await this.settingsService.get(AXPHomePageSettings.UserHomePath);\n }\n getRegisteredList() {\n return this.flatCandidates.filter((c) => c.route);\n }\n getRegisteredRoutes() {\n const defaultHomePage = this.flatCandidates.find((c) => c.key === this.defaultHomePageKey);\n const home = this.flatCandidates.find((c) => this.userHomePageKey && c.key === this.userHomePageKey) ?? defaultHomePage;\n if (home && home.route && this.sessionService.application?.name) {\n const fullPath = this.findPath(home.route);\n return [\n { path: '', redirectTo: fullPath, pathMatch: 'full' },\n { path: ':app', redirectTo: fullPath, pathMatch: 'full' },\n { ...home?.route, ...{ data: { key: home?.key, title: home?.title, path: fullPath } } },\n ];\n }\n return [\n { path: '', redirectTo: this.loginPath, pathMatch: 'full' },\n ];\n }\n getCurrent() {\n const key = this.userHomePageKey ?? this.defaultHomePageKey;\n const homePage = this.getRegisteredRoutes().find((c) => c.data?.['key'] === key);\n if (homePage) {\n return {\n path: homePage.data?.['path'],\n title: homePage.data?.['title'],\n };\n }\n return {\n path: this.loginPath,\n title: '',\n };\n }\n findPath(target) {\n const rawPath = this.buildFullPaths(target).join('/');\n const appName = this.sessionService.application?.name;\n if (appName) {\n return rawPath.replace(':app', appName);\n }\n return rawPath;\n }\n buildFullPaths(route, parentPath = []) {\n const segments = [...parentPath];\n if (route.path) {\n segments.push(route.path);\n }\n // Recursively search the first matched child (deepest first match)\n if (route.children?.length) {\n return this.buildFullPaths(route.children[0], segments);\n }\n return segments;\n }\n refreshRoutes() {\n const router = this.injector.get(Router);\n // 👇 On first call, remember what was there before:\n if (!this.originalConfig) {\n this.originalConfig = router.config;\n }\n this.applyMergedConfig(router);\n }\n applyMergedConfig(router) {\n const newHomeRoutes = this.getRegisteredRoutes(); // your 3 home entries\n // Filter the original routes to drop the old home placeholders.\n // We know your dynamic routes always have path === '' or ':app'\n // or carry a `data.key` matching one of your home-page keys.\n const otherRoutes = (this.originalConfig ?? [])\n .filter(r => r.path !== '' &&\n r.path !== ':app' &&\n !(r.data && typeof r.data['key'] === 'string'));\n // Build the new merged tree\n const merged = [\n ...newHomeRoutes,\n ...otherRoutes\n ];\n // TODO: check this for custom menu like :app/terms\n router.resetConfig(merged);\n }\n async navigateTo() {\n // wait for the router to be initialized \n setTimeout(() => {\n const router = this.injector.get(Router);\n const current = this.getCurrent();\n router.navigate([current.path]);\n }, 100);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2hvbWUtcGFnZS9ob21lLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFTLE1BQU0sRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxjQUFjLEVBQXlCLE1BQU0sbUJBQW1CLENBQUM7O0FBS3JHLE1BQU0sT0FBTyxrQkFBa0I7SUFVN0IsSUFBWSxjQUFjO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDtRQWJRLHVCQUFrQixHQUFHLE1BQU0sQ0FBUyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUM3RixvQkFBZSxHQUFrQixJQUFJLENBQUM7UUFDdEMsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZGLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsbUJBQWMsR0FB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TTtZQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQy9DLENBQUM7UUFFSiw0QkFBNEI7UUFDNUIsTUFBTSxNQUFNLEdBQVc7WUFDckIsR0FBRyxhQUFhO1lBQ2hCLEdBQUcsV0FBVztTQUNmLENBQUM7UUFDRixtREFBbUQ7UUFDbkQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZCwwQ0FBMEM7UUFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzsrR0FwSlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlLCBSb3V0ZXIsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQU2V0dGluZ1NlcnZpY2UgfSBmcm9tICcuLi9zZXR0aW5ncyc7XG5pbXBvcnQgeyBBWFBIb21lUGFnZVNldHRpbmdzIH0gZnJvbSAnLi9ob21lLXBhZ2Utc2V0dGluZ3Mua2V5JztcbmltcG9ydCB7IEFYUF9IT01FX1BBR0VfREVGQVVMVF9LRVksIEFYUF9IT01FX1BBR0VTLCBBWFBIb21lUGFnZURlZmluaXRpb24gfSBmcm9tICcuL2hvbWUtcGFnZS50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBIb21lUGFnZVNlcnZpY2Uge1xuICBwcml2YXRlIGRlZmF1bHRIb21lUGFnZUtleSA9IGluamVjdDxzdHJpbmc+KEFYUF9IT01FX1BBR0VfREVGQVVMVF9LRVksIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gJ2hvbWUnO1xuICBwcml2YXRlIHVzZXJIb21lUGFnZUtleTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2FuZGlkYXRlcyA9IGluamVjdDxBWFBIb21lUGFnZURlZmluaXRpb25bXT4oQVhQX0hPTUVfUEFHRVMsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG4gIHByaXZhdGUgc2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEFYUFNldHRpbmdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIG9yaWdpbmFsQ29uZmlnOiBSb3V0ZXMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBsb2dpblBhdGggPSAnYXV0aC9sb2dpbic7XG5cbiAgcHJpdmF0ZSBnZXQgZmxhdENhbmRpZGF0ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FuZGlkYXRlcy5mbGF0TWFwKChjKSA9PiBjKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIHJlbW92ZSBjaXJjdWxhciBkZXBlbmRlbmN5XG4gICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5pdCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICAvL1xuICAgIGNvbnN0IGtleXMgPSBbQVhQSG9tZVBhZ2VTZXR0aW5ncy5Vc2VySG9tZVBhdGhdO1xuICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLm9uQ2hhbmdlZC5zdWJzY3JpYmUoYXN5bmMgKGMpID0+IHtcbiAgICAgIGlmIChrZXlzLnNvbWUoKGspID0+IGMua2V5cy5pbmNsdWRlcyhrKSkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgICAgIHRoaXMucmVmcmVzaFJvdXRlcygpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vXG4gICAgbWVyZ2UoXG4gICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnN0YXR1cyQsXG4gICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLmFwcGxpY2F0aW9uJCxcbiAgICAgIHRoaXMuc2Vzc2lvblNlcnZpY2UudGVuYW50JCxcbiAgICApLnN1YnNjcmliZShcbiAgICAgIGFzeW5jIChkYXRhKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgICAgICB0aGlzLnJlZnJlc2hSb3V0ZXMoKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbG9hZCgpIHtcbiAgICB0aGlzLnVzZXJIb21lUGFnZUtleSA9IGF3YWl0IHRoaXMuc2V0dGluZ3NTZXJ2aWNlLmdldChBWFBIb21lUGFnZVNldHRpbmdzLlVzZXJIb21lUGF0aCk7XG4gIH1cblxuICBnZXRSZWdpc3RlcmVkTGlzdCgpOiBBWFBIb21lUGFnZURlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhdENhbmRpZGF0ZXMuZmlsdGVyKChjKSA9PiBjLnJvdXRlKTtcbiAgfVxuXG4gIGdldFJlZ2lzdGVyZWRSb3V0ZXMoKTogUm91dGVzIHtcbiAgICBjb25zdCBkZWZhdWx0SG9tZVBhZ2UgPSB0aGlzLmZsYXRDYW5kaWRhdGVzLmZpbmQoKGMpID0+IGMua2V5ID09PSB0aGlzLmRlZmF1bHRIb21lUGFnZUtleSk7XG5cbiAgICBjb25zdCBob21lID1cbiAgICAgIHRoaXMuZmxhdENhbmRpZGF0ZXMuZmluZCgoYykgPT4gdGhpcy51c2VySG9tZVBhZ2VLZXkgJiYgYy5rZXkgPT09IHRoaXMudXNlckhvbWVQYWdlS2V5KSA/PyBkZWZhdWx0SG9tZVBhZ2U7XG4gICAgaWYgKGhvbWUgJiYgaG9tZS5yb3V0ZSAmJiB0aGlzLnNlc3Npb25TZXJ2aWNlLmFwcGxpY2F0aW9uPy5uYW1lKSB7XG4gICAgICBjb25zdCBmdWxsUGF0aCA9IHRoaXMuZmluZFBhdGgoaG9tZS5yb3V0ZSk7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7IHBhdGg6ICcnLCByZWRpcmVjdFRvOiBmdWxsUGF0aCwgcGF0aE1hdGNoOiAnZnVsbCcgfSxcbiAgICAgICAgeyBwYXRoOiAnOmFwcCcsIHJlZGlyZWN0VG86IGZ1bGxQYXRoLCBwYXRoTWF0Y2g6ICdmdWxsJyB9LFxuICAgICAgICB7IC4uLmhvbWU/LnJvdXRlLCAuLi57IGRhdGE6IHsga2V5OiBob21lPy5rZXksIHRpdGxlOiBob21lPy50aXRsZSwgcGF0aDogZnVsbFBhdGggfSB9IH0sXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgeyBwYXRoOiAnJywgcmVkaXJlY3RUbzogdGhpcy5sb2dpblBhdGgsIHBhdGhNYXRjaDogJ2Z1bGwnIH0sXG4gICAgXTtcbiAgfVxuXG4gIGdldEN1cnJlbnQoKTogeyBwYXRoOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy51c2VySG9tZVBhZ2VLZXkgPz8gdGhpcy5kZWZhdWx0SG9tZVBhZ2VLZXk7XG4gICAgY29uc3QgaG9tZVBhZ2UgPSB0aGlzLmdldFJlZ2lzdGVyZWRSb3V0ZXMoKS5maW5kKChjKSA9PiBjLmRhdGE/Llsna2V5J10gPT09IGtleSkhO1xuICAgIGlmIChob21lUGFnZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0aDogaG9tZVBhZ2UuZGF0YT8uWydwYXRoJ10sXG4gICAgICAgIHRpdGxlOiBob21lUGFnZS5kYXRhPy5bJ3RpdGxlJ10sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogdGhpcy5sb2dpblBhdGgsXG4gICAgICB0aXRsZTogJycsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhdGgodGFyZ2V0OiBSb3V0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgcmF3UGF0aCA9IHRoaXMuYnVpbGRGdWxsUGF0aHModGFyZ2V0KS5qb2luKCcvJyk7XG4gICAgY29uc3QgYXBwTmFtZSA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWU7XG4gICAgaWYgKGFwcE5hbWUpIHtcbiAgICAgIHJldHVybiByYXdQYXRoLnJlcGxhY2UoJzphcHAnLCBhcHBOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIHJhd1BhdGg7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRnVsbFBhdGhzKHJvdXRlOiBSb3V0ZSwgcGFyZW50UGF0aDogc3RyaW5nW10gPSBbXSk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBzZWdtZW50cyA9IFsuLi5wYXJlbnRQYXRoXTtcbiAgICBpZiAocm91dGUucGF0aCkge1xuICAgICAgc2VnbWVudHMucHVzaChyb3V0ZS5wYXRoKTtcbiAgICB9XG5cbiAgICAvLyBSZWN1cnNpdmVseSBzZWFyY2ggdGhlIGZpcnN0IG1hdGNoZWQgY2hpbGQgKGRlZXBlc3QgZmlyc3QgbWF0Y2gpXG4gICAgaWYgKHJvdXRlLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkRnVsbFBhdGhzKHJvdXRlLmNoaWxkcmVuWzBdLCBzZWdtZW50cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlZ21lbnRzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoUm91dGVzKCkge1xuICAgIGNvbnN0IHJvdXRlciA9IHRoaXMuaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG5cbiAgICAvLyDwn5GHIE9uIGZpcnN0IGNhbGwsIHJlbWVtYmVyIHdoYXQgd2FzIHRoZXJlIGJlZm9yZTpcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxDb25maWcpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxDb25maWcgPSByb3V0ZXIuY29uZmlnO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbHlNZXJnZWRDb25maWcocm91dGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlNZXJnZWRDb25maWcocm91dGVyOiBSb3V0ZXIpIHtcbiAgICBjb25zdCBuZXdIb21lUm91dGVzID0gdGhpcy5nZXRSZWdpc3RlcmVkUm91dGVzKCk7ICAvLyB5b3VyIDMgaG9tZSBlbnRyaWVzXG5cbiAgICAvLyBGaWx0ZXIgdGhlIG9yaWdpbmFsIHJvdXRlcyB0byBkcm9wIHRoZSBvbGQgaG9tZSBwbGFjZWhvbGRlcnMuXG4gICAgLy8gV2Uga25vdyB5b3VyIGR5bmFtaWMgcm91dGVzIGFsd2F5cyBoYXZlIHBhdGggPT09ICcnIG9yICc6YXBwJ1xuICAgIC8vIG9yIGNhcnJ5IGEgYGRhdGEua2V5YCBtYXRjaGluZyBvbmUgb2YgeW91ciBob21lLXBhZ2Uga2V5cy5cbiAgICBjb25zdCBvdGhlclJvdXRlcyA9ICh0aGlzLm9yaWdpbmFsQ29uZmlnID8/IFtdKVxuICAgICAgLmZpbHRlcihyID0+XG4gICAgICAgIHIucGF0aCAhPT0gJycgJiZcbiAgICAgICAgci5wYXRoICE9PSAnOmFwcCcgJiZcbiAgICAgICAgIShyLmRhdGEgJiYgdHlwZW9mIHIuZGF0YVsna2V5J10gPT09ICdzdHJpbmcnKVxuICAgICAgKTtcblxuICAgIC8vIEJ1aWxkIHRoZSBuZXcgbWVyZ2VkIHRyZWVcbiAgICBjb25zdCBtZXJnZWQ6IFJvdXRlcyA9IFtcbiAgICAgIC4uLm5ld0hvbWVSb3V0ZXMsXG4gICAgICAuLi5vdGhlclJvdXRlc1xuICAgIF07XG4gICAgLy8gVE9ETzogY2hlY2sgdGhpcyBmb3IgY3VzdG9tIG1lbnUgbGlrZSA6YXBwL3Rlcm1zXG4gICAgcm91dGVyLnJlc2V0Q29uZmlnKG1lcmdlZCk7XG4gIH1cblxuICBhc3luYyBuYXZpZ2F0ZVRvKCkge1xuICAgIC8vIHdhaXQgZm9yIHRoZSByb3V0ZXIgdG8gYmUgaW5pdGlhbGl6ZWQgIFxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3Qgcm91dGVyID0gdGhpcy5pbmplY3Rvci5nZXQoUm91dGVyKTtcbiAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnQoKTtcbiAgICAgIHJvdXRlci5uYXZpZ2F0ZShbY3VycmVudC5wYXRoXSk7XG4gICAgfSwgMTAwKTtcbiAgfVxufVxuIl19","import { inject, makeEnvironmentProviders } from \"@angular/core\";\nimport { ROUTES } from \"@angular/router\";\nimport { AXPHomePageService } from \"./home-page.service\";\nfunction dynamicRoutesFactory() {\n const service = inject(AXPHomePageService);\n return service.getRegisteredRoutes();\n}\nexport function provideDynamicHomePage() {\n return makeEnvironmentProviders([\n {\n provide: ROUTES,\n useFactory: dynamicRoutesFactory,\n multi: true\n }\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvaG9tZS1wYWdlL2hvbWUtcGFnZS5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixNQUFNLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpELFNBQVMsb0JBQW9CO0lBQ3pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNDLE9BQU8sT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0I7SUFDbEMsT0FBTyx3QkFBd0IsQ0FBQztRQUM1QjtZQUNJLE9BQU8sRUFBRSxNQUFNO1lBQ2YsVUFBVSxFQUFFLG9CQUFvQjtZQUNoQyxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBpbmplY3QsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSb3V0ZXMsIFJPVVRFUyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IEFYUEhvbWVQYWdlU2VydmljZSB9IGZyb20gXCIuL2hvbWUtcGFnZS5zZXJ2aWNlXCI7XG5cbmZ1bmN0aW9uIGR5bmFtaWNSb3V0ZXNGYWN0b3J5KCk6IFJvdXRlcyB7XG4gICAgY29uc3Qgc2VydmljZSA9IGluamVjdChBWFBIb21lUGFnZVNlcnZpY2UpO1xuICAgIHJldHVybiBzZXJ2aWNlLmdldFJlZ2lzdGVyZWRSb3V0ZXMoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVEeW5hbWljSG9tZVBhZ2UoKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBST1VURVMsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBkeW5hbWljUm91dGVzRmFjdG9yeSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdKTtcbn0iXX0=","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPPlatformScope, objectKeyValueTransforms } from '@acorex/platform/core';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { inject, Injectable, Injector } from '@angular/core';\nimport { AXPHomePageSettings } from './home-page-settings.key';\nimport { AXPHomePageService } from './home-page.service';\nimport { AXP_HOME_PAGE_DEFAULT_KEY } from './home-page.types';\nimport * as i0 from \"@angular/core\";\nexport class AXPHomePageSettingProvider {\n constructor(injector) {\n this.injector = injector;\n this.translateService = this.injector.get(AXTranslationService);\n this.homePageService = this.injector.get(AXPHomePageService);\n this.defaultHomePageKey = inject(AXP_HOME_PAGE_DEFAULT_KEY, { optional: true }) ?? 'home';\n }\n async provide(context) {\n const trans = async (key) => await this.translateService.translateAsync(`@general:settings.${key}`);\n const list = await this.homePageService.getRegisteredList().map((c) => ({ id: c.key, title: c.title }));\n if (list.length === 0) {\n return;\n }\n // Define the 'General Settings' group\n context\n .addGroup('general', await trans('general.title'), await trans('general.description'), 'fa-light fa-palette')\n // Add the 'Startup' section\n .addSection('startup', await trans('general.startup.title'), await trans('general.startup.description'))\n // Add the 'Home Page' setting\n .addSetting({\n key: AXPHomePageSettings.UserHomePath,\n title: await trans('general.startup.home-page.title'),\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: this.defaultHomePageKey || list[0].id,\n valueTransforms: objectKeyValueTransforms('id'),\n widget: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'id',\n textField: 'title',\n dataSource: list,\n },\n },\n description: await trans('general.startup.home-page.description'),\n })\n // End the 'Startup' section\n .endSection()\n // End the 'General Settings' group\n .endGroup();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageSettingProvider, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageSettingProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageSettingProvider, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLXNldHRpbmdzLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9ob21lLXBhZ2UvaG9tZS1wYWdlLXNldHRpbmdzLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHOUQsTUFBTSxPQUFPLDBCQUEwQjtJQUtyQyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSnJCLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0Qsb0JBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pFLHVCQUFrQixHQUFHLE1BQU0sQ0FBUyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUUzRCxDQUFDO0lBRTNDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBNEM7UUFDeEQsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLEdBQVcsRUFBRSxFQUFFLENBQ2xDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV6RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTztRQUNULENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsT0FBTzthQUNKLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUMscUJBQXFCLENBQUMsRUFBRSxxQkFBcUIsQ0FBQztZQUU3Ryw0QkFBNEI7YUFDM0IsVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDeEcsOEJBQThCO2FBQzdCLFVBQVUsQ0FBQztZQUNWLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQyxZQUFZO1lBQ3JDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztZQUNyRCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtZQUM1QixXQUFXLEVBQUUsSUFBSTtZQUNqQixZQUFZLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25ELGVBQWUsRUFBRSx3QkFBd0IsQ0FBQyxJQUFJLENBQUM7WUFDL0MsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO2dCQUM5QixPQUFPLEVBQUU7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxPQUFPO29CQUNsQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7YUFDRjtZQUNELFdBQVcsRUFBRSxNQUFNLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQztTQUNsRSxDQUFDO1lBRUYsNEJBQTRCO2FBQzNCLFVBQVUsRUFBRTtZQUViLG1DQUFtQzthQUNsQyxRQUFRLEVBQUUsQ0FBQztJQUNoQixDQUFDOytHQTlDVSwwQkFBMEI7bUhBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFBsYXRmb3JtU2NvcGUsIG9iamVjdEtleVZhbHVlVHJhbnNmb3JtcyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRzQ2F0YWxvZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXIsIEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnLi4vc2V0dGluZ3MnO1xuaW1wb3J0IHsgQVhQSG9tZVBhZ2VTZXR0aW5ncyB9IGZyb20gJy4vaG9tZS1wYWdlLXNldHRpbmdzLmtleSc7XG5pbXBvcnQgeyBBWFBIb21lUGFnZVNlcnZpY2UgfSBmcm9tICcuL2hvbWUtcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9IT01FX1BBR0VfREVGQVVMVF9LRVkgfSBmcm9tICcuL2hvbWUtcGFnZS50eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBIb21lUGFnZVNldHRpbmdQcm92aWRlciBpbXBsZW1lbnRzIEFYUFNldHRpbmdEZWZpbml0aW9uUHJvdmlkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaG9tZVBhZ2VTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQSG9tZVBhZ2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkZWZhdWx0SG9tZVBhZ2VLZXkgPSBpbmplY3Q8c3RyaW5nPihBWFBfSE9NRV9QQUdFX0RFRkFVTFRfS0VZLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/ICdob21lJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcikgeyB9XG5cbiAgYXN5bmMgcHJvdmlkZShjb250ZXh0OiBBWFBTZXR0aW5nRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHRyYW5zID0gYXN5bmMgKGtleTogc3RyaW5nKSA9PlxuICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKGBAZ2VuZXJhbDpzZXR0aW5ncy4ke2tleX1gKTtcblxuICAgIGNvbnN0IGxpc3QgPSBhd2FpdCB0aGlzLmhvbWVQYWdlU2VydmljZS5nZXRSZWdpc3RlcmVkTGlzdCgpLm1hcCgoYykgPT4gKHsgaWQ6IGMua2V5LCB0aXRsZTogYy50aXRsZSB9KSk7XG4gICAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRGVmaW5lIHRoZSAnR2VuZXJhbCBTZXR0aW5ncycgZ3JvdXBcbiAgICBjb250ZXh0XG4gICAgICAuYWRkR3JvdXAoJ2dlbmVyYWwnLCBhd2FpdCB0cmFucygnZ2VuZXJhbC50aXRsZScpLCBhd2FpdCB0cmFucygnZ2VuZXJhbC5kZXNjcmlwdGlvbicpLCAnZmEtbGlnaHQgZmEtcGFsZXR0ZScpXG5cbiAgICAgIC8vIEFkZCB0aGUgJ1N0YXJ0dXAnIHNlY3Rpb25cbiAgICAgIC5hZGRTZWN0aW9uKCdzdGFydHVwJywgYXdhaXQgdHJhbnMoJ2dlbmVyYWwuc3RhcnR1cC50aXRsZScpLCBhd2FpdCB0cmFucygnZ2VuZXJhbC5zdGFydHVwLmRlc2NyaXB0aW9uJykpXG4gICAgICAvLyBBZGQgdGhlICdIb21lIFBhZ2UnIHNldHRpbmdcbiAgICAgIC5hZGRTZXR0aW5nKHtcbiAgICAgICAga2V5OiBBWFBIb21lUGFnZVNldHRpbmdzLlVzZXJIb21lUGF0aCxcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRyYW5zKCdnZW5lcmFsLnN0YXJ0dXAuaG9tZS1wYWdlLnRpdGxlJyksXG4gICAgICAgIHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlLlVzZXIsXG4gICAgICAgIGlzSW5oZXJpdGVkOiB0cnVlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZGVmYXVsdEhvbWVQYWdlS2V5IHx8IGxpc3RbMF0uaWQsXG4gICAgICAgIHZhbHVlVHJhbnNmb3Jtczogb2JqZWN0S2V5VmFsdWVUcmFuc2Zvcm1zKCdpZCcpLFxuICAgICAgICB3aWRnZXQ6IHtcbiAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgdmFsdWVGaWVsZDogJ2lkJyxcbiAgICAgICAgICAgIHRleHRGaWVsZDogJ3RpdGxlJyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IGxpc3QsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IGF3YWl0IHRyYW5zKCdnZW5lcmFsLnN0YXJ0dXAuaG9tZS1wYWdlLmRlc2NyaXB0aW9uJyksXG4gICAgICB9KVxuXG4gICAgICAvLyBFbmQgdGhlICdTdGFydHVwJyBzZWN0aW9uXG4gICAgICAuZW5kU2VjdGlvbigpXG5cbiAgICAgIC8vIEVuZCB0aGUgJ0dlbmVyYWwgU2V0dGluZ3MnIGdyb3VwXG4gICAgICAuZW5kR3JvdXAoKTtcbiAgfVxufVxuIl19","import { NgModule } from '@angular/core';\nimport { AXP_SETTING_DEFINITION_PROVIDER } from '../settings';\nimport { AXPHomePageSettingProvider } from './home-page-settings.provider';\nimport * as i0 from \"@angular/core\";\nexport class AXPHomePageModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageModule, providers: [\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXPHomePageSettingProvider,\n multi: true,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHomePageModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n providers: [\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXPHomePageSettingProvider,\n multi: true,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1wYWdlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvaG9tZS1wYWdlL2hvbWUtcGFnZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBWTNFLE1BQU0sT0FBTyxpQkFBaUI7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsYUFSakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsK0JBQStCO2dCQUN4QyxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7OzRGQUVVLGlCQUFpQjtrQkFWN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtvQkFDWCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsUUFBUSxFQUFFLDBCQUEwQjs0QkFDcEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUiB9IGZyb20gJy4uL3NldHRpbmdzJztcbmltcG9ydCB7IEFYUEhvbWVQYWdlU2V0dGluZ1Byb3ZpZGVyIH0gZnJvbSAnLi9ob21lLXBhZ2Utc2V0dGluZ3MucHJvdmlkZXInO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBIb21lUGFnZVNldHRpbmdQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEhvbWVQYWdlTW9kdWxlIHt9XG4iXX0=","export class AXPDataProvider {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wcm92aWRlci50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvZGF0YS9kYXRhLXByb3ZpZGVyLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBZ0IsZUFBZTtDQWFwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBEYXRhUHJvdmlkZXIge1xuICBhYnN0cmFjdCBpbnNlcnRPbmUoZW50aXR5OiBhbnksIGVudGl0eUl0ZW06IGFueSk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgaW5zZXJ0TWFueShlbnRpdHk6IGFueSwgZW50aXR5TGlzdDogYW55KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBnZXRPbmUoZW50aXR5OiBhbnksIGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGdldE1hbnkoZW50aXR5OiBhbnksIHBhcmFtcz86IGFueSk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgdXBkYXRlT25lKGVudGl0eTogYW55LCBpZD86IHN0cmluZywgZGF0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGRlbGV0ZU9uZShlbnRpdHk6IGFueSwgaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZ2V0Rmlyc3QoZW50aXR5OiBhbnkpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHVwbG9hZEZpbGUoZmlsZTogRmlsZSwgdGl0bGU6IHN0cmluZywgY3VzdG9tVXJsPzogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+O1xuICBhYnN0cmFjdCB1cGRhdGVGaWxlKGlkOnN0cmluZyxmaWxlOiBGaWxlLCB0aXRsZTogc3RyaW5nLCBjdXN0b21Vcmw/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz47XG4gIGFic3RyYWN0IHVwbG9hZE11bHRpcGxlRmlsZXMoZmlsZXM6IEZpbGVbXSwgdGl0bGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+O1xuICBhYnN0cmFjdCB2aWV3RmlsZShpZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEJsb2I+O1xuICBhYnN0cmFjdCBkb3dubG9hZEZpbGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKTogUHJvbWlzZTxCbG9iPjtcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPCustomOperatorService {\n}\nexport class AXPCustomOperatorServiceImpl extends AXPCustomOperatorService {\n getCustomOperators() {\n return {};\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCustomOperatorServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCustomOperatorServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCustomOperatorServiceImpl, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3JzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2RhdGEvb3BlcmF0b3JzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxPQUFnQix3QkFBd0I7Q0FFN0M7QUFHRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsd0JBQXdCO0lBQ3hFLGtCQUFrQjtRQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7K0dBSFUsNEJBQTRCO21IQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2VPcGVyYXRvciB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBDdXN0b21PcGVyYXRvclNlcnZpY2Uge1xuICBhYnN0cmFjdCBnZXRDdXN0b21PcGVyYXRvcnMoKTogeyBba2V5OiBzdHJpbmddOiBBWERhdGFTb3VyY2VPcGVyYXRvciB9O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQQ3VzdG9tT3BlcmF0b3JTZXJ2aWNlSW1wbCBleHRlbmRzIEFYUEN1c3RvbU9wZXJhdG9yU2VydmljZSB7XG4gIGdldEN1c3RvbU9wZXJhdG9ycygpOiB7IFtrZXk6IHN0cmluZ106IEFYRGF0YVNvdXJjZU9wZXJhdG9yIH0ge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { ALL_DEFAULT_OPERATORS } from '../app';\nimport { AXPCustomOperatorService } from './operators.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPFilterOperatorMiddlewareService {\n}\nexport class AXPFilterOperatorMiddlewareServiceImpl extends AXPFilterOperatorMiddlewareService {\n constructor() {\n super(...arguments);\n this.customOperatorService = inject(AXPCustomOperatorService);\n this.operators = {\n ...this.getDefaultOperators(),\n ...this.customOperatorService.getCustomOperators(),\n };\n }\n transformFilters(filters) {\n return filters.map((filter) => this.transformFilter(filter));\n }\n transformFilter(filter) {\n const { operator, value, filters, field } = filter;\n // Find the operator (either default or custom)\n const filterOperator = this.operators[operator?.type ?? ''] || null;\n // Start by transforming the filter itself\n const transformedFilter = {\n ...filter, // Keep the original filter structure\n operator: filterOperator ? filterOperator : operator, // Add operator name\n };\n // If the filter contains nested filters, recursively transform them\n if (filters && filters.length > 0) {\n transformedFilter.filters = this.transformFilters(filters); // Recursively transform nested filters\n }\n return transformedFilter;\n }\n getOperator(key) {\n return this.operators[key];\n }\n // Helper function to return the default operators\n getDefaultOperators() {\n return ALL_DEFAULT_OPERATORS.reduce((acc, operator) => {\n acc[operator.name] = {\n type: operator.name,\n };\n return acc;\n }, {});\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFilterOperatorMiddlewareServiceImpl, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW1pZGRsZXdhcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvZGF0YS9maWx0ZXItbWlkZGxld2FyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFL0QsTUFBTSxPQUFnQixrQ0FBa0M7Q0FpQnZEO0FBR0QsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLGtDQUFrQztJQUQ5Rjs7UUFFVSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUV6RCxjQUFTLEdBQTRDO1lBQzNELEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFO1NBQ25ELENBQUM7S0F5Q0g7SUF2Q0MsZ0JBQWdCLENBQUMsT0FBbUM7UUFDbEQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFnQztRQUM5QyxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ25ELCtDQUErQztRQUMvQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO1FBRXBFLDBDQUEwQztRQUMxQyxNQUFNLGlCQUFpQixHQUE2QjtZQUNsRCxHQUFHLE1BQU0sRUFBRSxxQ0FBcUM7WUFDaEQsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CO1NBQzNFLENBQUM7UUFFRixvRUFBb0U7UUFDcEUsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUNBQXVDO1FBQ3JHLENBQUM7UUFFRCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGtEQUFrRDtJQUMxQyxtQkFBbUI7UUFDekIsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLENBQ2pDLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsSUFBVzthQUMzQixDQUFDO1lBQ0YsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0QsRUFBNkMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7K0dBOUNVLHNDQUFzQzttSEFBdEMsc0NBQXNDOzs0RkFBdEMsc0NBQXNDO2tCQURsRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLCBBWERhdGFTb3VyY2VPcGVyYXRvciB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFMTF9ERUZBVUxUX09QRVJBVE9SUyB9IGZyb20gJy4uL2FwcCc7XG5pbXBvcnQgeyBBWFBDdXN0b21PcGVyYXRvclNlcnZpY2UgfSBmcm9tICcuL29wZXJhdG9ycy5zZXJ2aWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2Uge1xuICAvKipcbiAgICogTWlkZGxld2FyZSB0byB0cmFuc2Zvcm0gc2VsZWN0ZWQgZmlsdGVycyBpbnRvIGNvcnJlc3BvbmRpbmcgb3BlcmF0b3JzLlxuICAgKiBAcGFyYW0gZmlsdGVycyBBcnJheSBvZiBzZWxlY3RlZCBmaWx0ZXJzIChlLmcuLCB1c2VyIGlucHV0KS5cbiAgICogQHBhcmFtIGN1c3RvbU9wZXJhdG9ycyBPcHRpb25hbCBjdXN0b20gb3BlcmF0b3JzIG1hcCB0byBvdmVycmlkZSBkZWZhdWx0IG9wZXJhdG9ycy5cbiAgICogQHJldHVybnMgVHJhbnNmb3JtZWQgZmlsdGVycyBiYXNlZCBvbiBjdXN0b20gb3IgZGVmYXVsdCBvcGVyYXRvcnMuXG4gICAqL1xuICBhYnN0cmFjdCB0cmFuc2Zvcm1GaWx0ZXJzKGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdKTogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW107XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gdHJhbnNmb3JtIGEgc2luZ2xlIGZpbHRlci4gVGhpcyBoYW5kbGVzIHJlY3Vyc2lvbiBmb3IgbmVzdGVkIGZpbHRlcnMuXG4gICAqIEBwYXJhbSBmaWx0ZXIgQSBzaW5nbGUgZmlsdGVyIG9iamVjdC5cbiAgICogQHJldHVybnMgVHJhbnNmb3JtZWQgZmlsdGVyLlxuICAgKi9cbiAgYWJzdHJhY3QgdHJhbnNmb3JtRmlsdGVyKGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbik6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbjtcblxuICBhYnN0cmFjdCBnZXRPcGVyYXRvcihrZXk6IHN0cmluZyk6IEFYRGF0YVNvdXJjZU9wZXJhdG9yO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZUltcGwgZXh0ZW5kcyBBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjdXN0b21PcGVyYXRvclNlcnZpY2UgPSBpbmplY3QoQVhQQ3VzdG9tT3BlcmF0b3JTZXJ2aWNlKTtcblxuICBwcml2YXRlIG9wZXJhdG9yczogeyBba2V5OiBzdHJpbmddOiBBWERhdGFTb3VyY2VPcGVyYXRvciB9ID0ge1xuICAgIC4uLnRoaXMuZ2V0RGVmYXVsdE9wZXJhdG9ycygpLFxuICAgIC4uLnRoaXMuY3VzdG9tT3BlcmF0b3JTZXJ2aWNlLmdldEN1c3RvbU9wZXJhdG9ycygpLFxuICB9O1xuXG4gIHRyYW5zZm9ybUZpbHRlcnMoZmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10pOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb25bXSB7XG4gICAgcmV0dXJuIGZpbHRlcnMubWFwKChmaWx0ZXIpID0+IHRoaXMudHJhbnNmb3JtRmlsdGVyKGZpbHRlcikpO1xuICB9XG5cbiAgdHJhbnNmb3JtRmlsdGVyKGZpbHRlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uKTogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIHtcbiAgICBjb25zdCB7IG9wZXJhdG9yLCB2YWx1ZSwgZmlsdGVycywgZmllbGQgfSA9IGZpbHRlcjtcbiAgICAvLyBGaW5kIHRoZSBvcGVyYXRvciAoZWl0aGVyIGRlZmF1bHQgb3IgY3VzdG9tKVxuICAgIGNvbnN0IGZpbHRlck9wZXJhdG9yID0gdGhpcy5vcGVyYXRvcnNbb3BlcmF0b3I/LnR5cGUgPz8gJyddIHx8IG51bGw7XG5cbiAgICAvLyBTdGFydCBieSB0cmFuc2Zvcm1pbmcgdGhlIGZpbHRlciBpdHNlbGZcbiAgICBjb25zdCB0cmFuc2Zvcm1lZEZpbHRlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgICAgLi4uZmlsdGVyLCAvLyBLZWVwIHRoZSBvcmlnaW5hbCBmaWx0ZXIgc3RydWN0dXJlXG4gICAgICBvcGVyYXRvcjogZmlsdGVyT3BlcmF0b3IgPyBmaWx0ZXJPcGVyYXRvciA6IG9wZXJhdG9yLCAvLyBBZGQgb3BlcmF0b3IgbmFtZVxuICAgIH07XG5cbiAgICAvLyBJZiB0aGUgZmlsdGVyIGNvbnRhaW5zIG5lc3RlZCBmaWx0ZXJzLCByZWN1cnNpdmVseSB0cmFuc2Zvcm0gdGhlbVxuICAgIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgdHJhbnNmb3JtZWRGaWx0ZXIuZmlsdGVycyA9IHRoaXMudHJhbnNmb3JtRmlsdGVycyhmaWx0ZXJzKTsgLy8gUmVjdXJzaXZlbHkgdHJhbnNmb3JtIG5lc3RlZCBmaWx0ZXJzXG4gICAgfVxuXG4gICAgcmV0dXJuIHRyYW5zZm9ybWVkRmlsdGVyO1xuICB9XG5cbiAgZ2V0T3BlcmF0b3Ioa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRvcnNba2V5XTtcbiAgfVxuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byByZXR1cm4gdGhlIGRlZmF1bHQgb3BlcmF0b3JzXG4gIHByaXZhdGUgZ2V0RGVmYXVsdE9wZXJhdG9ycygpOiB7IFtrZXk6IHN0cmluZ106IEFYRGF0YVNvdXJjZU9wZXJhdG9yIH0ge1xuICAgIHJldHVybiBBTExfREVGQVVMVF9PUEVSQVRPUlMucmVkdWNlKFxuICAgICAgKGFjYywgb3BlcmF0b3IpID0+IHtcbiAgICAgICAgYWNjW29wZXJhdG9yLm5hbWVdID0ge1xuICAgICAgICAgIHR5cGU6IG9wZXJhdG9yLm5hbWUgYXMgYW55LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogQVhEYXRhU291cmNlT3BlcmF0b3IgfSxcbiAgICApO1xuICB9XG59XG4iXX0=","import { Injectable, Injector } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPErrorHandlerRegistryService {\n constructor(injector) {\n this.injector = injector;\n this.errorHandlers = [];\n }\n register(...plugins) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const handler = childInjector.get(t);\n if (handler) {\n this.errorHandlers.push(handler);\n }\n });\n }\n get handlers() {\n return this.errorHandlers;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPErrorHandlerRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPErrorHandlerRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPErrorHandlerRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9lcnJvcnMvZXJyb3ItaGFuZGxlci1yZWdpc3RyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1yRCxNQUFNLE9BQU8sOEJBQThCO0lBR3ZDLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFGOUIsa0JBQWEsR0FBc0IsRUFBRSxDQUFDO0lBRzlDLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRyxPQUFzQztRQUM5QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDckgsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFHRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQzsrR0FuQlEsOEJBQThCO21IQUE5Qiw4QkFBOEIsY0FGM0IsTUFBTTs7NEZBRVQsOEJBQThCO2tCQUgxQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUEVycm9ySGFuZGxlciB9IGZyb20gXCIuL2Vycm9yLWhhbmRsZXIudHlwZXNcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBWFBFcnJvckhhbmRsZXJSZWdpc3RyeVNlcnZpY2Uge1xuICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyczogQVhQRXJyb3JIYW5kbGVyW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXIoLi4ucGx1Z2luczogKG5ldyAoKSA9PiBBWFBFcnJvckhhbmRsZXIpW10pIHtcbiAgICAgICAgcGx1Z2lucy5mb3JFYWNoKHQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRJbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7IHByb3ZpZGVyczogW3sgcHJvdmlkZTogdCwgdXNlQ2xhc3M6IHQsIGRlcHM6IFtdIH1dLCBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IgfSk7XG4gICAgICAgICAgICBjb25zdCBoYW5kbGVyID0gY2hpbGRJbmplY3Rvci5nZXQodCk7XG4gICAgICAgICAgICBpZiAoaGFuZGxlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JIYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuXG4gICAgcHVibGljIGdldCBoYW5kbGVycygpOiBBWFBFcnJvckhhbmRsZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlcnM7XG4gICAgfVxufSJdfQ==","import { ErrorHandler, Injectable, Injector } from \"@angular/core\";\nimport { AXPErrorHandlerRegistryService } from \"./error-handler-registry.service\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./error-handler-registry.service\";\nexport class AXPGlobalErrorHandler extends ErrorHandler {\n constructor(injector, registry) {\n super();\n this.injector = injector;\n this.registry = registry;\n }\n handleError(error) {\n const handleErrorRecursively = (index, error) => {\n const errorHandlers = this.registry.handlers;\n if (index < errorHandlers.length) {\n errorHandlers[index].handleError(error, (err) => {\n handleErrorRecursively(index + 1, err);\n });\n }\n else {\n super.handleError(error); // Fallback to default handler\n }\n };\n if (error.message?.startsWith('NG0100')) {\n //ignore it\n return;\n }\n handleErrorRecursively(0, error);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGlobalErrorHandler, deps: [{ token: i0.Injector }, { token: i1.AXPErrorHandlerRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGlobalErrorHandler, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGlobalErrorHandler, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.AXPErrorHandlerRegistryService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWVycm9yLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2Vycm9ycy9nbG9iYWwtZXJyb3ItaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQUdsRixNQUFNLE9BQU8scUJBQXNCLFNBQVEsWUFBWTtJQUluRCxZQUFvQixRQUFrQixFQUFVLFFBQXdDO1FBQ3BGLEtBQUssRUFBRSxDQUFBO1FBRFMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdDO0lBRXhGLENBQUM7SUFFUSxXQUFXLENBQUMsS0FBWTtRQUM3QixNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBYSxFQUFFLEtBQVUsRUFBRSxFQUFFO1lBQ3pELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQzdDLElBQUksS0FBSyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDNUMsc0JBQXNCLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtZQUM1RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3RDLFdBQVc7WUFDWCxPQUFNO1FBQ1YsQ0FBQztRQUNELHNCQUFzQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQXhCUSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQURSLE1BQU07OzRGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBWFBFcnJvckhhbmRsZXJSZWdpc3RyeVNlcnZpY2UgfSBmcm9tIFwiLi9lcnJvci1oYW5kbGVyLXJlZ2lzdHJ5LnNlcnZpY2VcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBHbG9iYWxFcnJvckhhbmRsZXIgZXh0ZW5kcyBFcnJvckhhbmRsZXIge1xuXG5cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIHJlZ2lzdHJ5OiBBWFBFcnJvckhhbmRsZXJSZWdpc3RyeVNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGhhbmRsZUVycm9yKGVycm9yOiBFcnJvcikge1xuICAgICAgICBjb25zdCBoYW5kbGVFcnJvclJlY3Vyc2l2ZWx5ID0gKGluZGV4OiBudW1iZXIsIGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9ySGFuZGxlcnMgPSB0aGlzLnJlZ2lzdHJ5LmhhbmRsZXJzO1xuICAgICAgICAgICAgaWYgKGluZGV4IDwgZXJyb3JIYW5kbGVycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBlcnJvckhhbmRsZXJzW2luZGV4XS5oYW5kbGVFcnJvcihlcnJvciwgKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvclJlY3Vyc2l2ZWx5KGluZGV4ICsgMSwgZXJyKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc3VwZXIuaGFuZGxlRXJyb3IoZXJyb3IpOyAvLyBGYWxsYmFjayB0byBkZWZhdWx0IGhhbmRsZXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGVycm9yLm1lc3NhZ2U/LnN0YXJ0c1dpdGgoJ05HMDEwMCcpKSB7XG4gICAgICAgICAgICAvL2lnbm9yZSBpdFxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgaGFuZGxlRXJyb3JSZWN1cnNpdmVseSgwLCBlcnJvcik7XG4gICAgfVxufVxuIl19","import { InjectionToken } from '@angular/core';\nexport const AXP_GLOBAL_VARIABLE_DEFINITION_PROVIDER = new InjectionToken('AXP_GLOBAL_VARIABLE_DEFINITION_PROVIDER', {\n factory: () => [],\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXZhcmlhYmxlLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2dsb2JhbC12YXJpYWJsZXMvZ2xvYmFsLXZhcmlhYmxlLWRlZmluaXRpb24ucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDdkUseUNBQXlDLEVBQ3pDO0lBQ0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Q0FDbEIsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uUHJvdmlkZXJUb2tlbiA9XG4gIHwgQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uUHJvdmlkZXJcbiAgfCBQcm9taXNlPEFYUEdsb2JhbFZhcmlhYmxlRGVmaW5pdGlvblByb3ZpZGVyPjtcblxuZXhwb3J0IGNvbnN0IEFYUF9HTE9CQUxfVkFSSUFCTEVfREVGSU5JVElPTl9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb25Qcm92aWRlclRva2VuW10+KFxuICAnQVhQX0dMT0JBTF9WQVJJQUJMRV9ERUZJTklUSU9OX1BST1ZJREVSJyxcbiAge1xuICAgIGZhY3Rvcnk6ICgpID0+IFtdLFxuICB9LFxuKTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb25Qcm92aWRlcjxUID0gYW55PiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIG9yZGVyPzogbnVtYmVyO1xuXG4gIGV4ZWN1dGUoKTogUHJvbWlzZTxUPiB8IFQ7XG59XG4iXX0=","//#region ---- Imports ----\nimport { inject, Injectable } from '@angular/core';\nimport { AXP_GLOBAL_VARIABLE_DEFINITION_PROVIDER } from './global-variable-definition.provider';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class AXPGlobalVariableDefinitionService {\n constructor() {\n //#region ---- Providers & Caches ----\n this.definitionProviders = inject(AXP_GLOBAL_VARIABLE_DEFINITION_PROVIDER, { optional: true }) || [];\n /** Cache for definitions by name. */\n this.definitionsByName = new Map();\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Returns a report definition by its id.\n * First checks the cache, then queries all providers if not found.\n * @param name The global variable name.\n * @returns The global variable definition if found, undefined otherwise.\n */\n async getByName(name) {\n // Check cache first\n if (this.definitionsByName.has(name)) {\n return this.definitionsByName.get(name);\n }\n // Not in cache, query providers (each provider is itself a global variable definition)\n const resolvedProviders = await Promise.all(this.definitionProviders);\n const match = resolvedProviders.find(def => def?.name === name);\n if (match) {\n this.definitionsByName.set(name, match);\n return match;\n }\n return undefined;\n }\n async execute(name) {\n const definition = await this.getByName(name);\n if (definition) {\n return await definition.execute();\n }\n return undefined;\n }\n //#endregion\n //#region ---- Cache Management ----\n /** Clears the definitions by name cache. */\n clearDefinitionsCache() {\n this.definitionsByName.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGlobalVariableDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGlobalVariableDefinitionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGlobalVariableDefinitionService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXZhcmlhYmxlLWRlZmluaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvZ2xvYmFsLXZhcmlhYmxlcy9nbG9iYWwtdmFyaWFibGUtZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFHaEcsWUFBWTtBQUtaLE1BQU0sT0FBTyxrQ0FBa0M7SUFIL0M7UUFJRSwwQ0FBMEM7UUFFekIsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpILHFDQUFxQztRQUM3QixzQkFBaUIsR0FBNkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztLQTZDakY7SUE1Q0MsWUFBWTtJQUVaLGtDQUFrQztJQUVsQzs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUMxQixvQkFBb0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCx1RkFBdUY7UUFDdkYsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdEUsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNoRSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDeEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBWTtRQUN4QixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLE9BQU8sTUFBTSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUFZO0lBRVosd0NBQXdDO0lBRXhDLDRDQUE0QztJQUM1QyxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pDLENBQUM7K0dBaERVLGtDQUFrQzttSEFBbEMsa0NBQWtDLGNBRmpDLE1BQU07OzRGQUVQLGtDQUFrQztrQkFIOUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX0dMT0JBTF9WQVJJQUJMRV9ERUZJTklUSU9OX1BST1ZJREVSIH0gZnJvbSAnLi9nbG9iYWwtdmFyaWFibGUtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb24gfSBmcm9tICcuL2dsb2JhbC12YXJpYWJsZS50eXBlcyc7XG5cbi8vI2VuZHJlZ2lvblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uU2VydmljZSB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJvdmlkZXJzICYgQ2FjaGVzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmaW5pdGlvblByb3ZpZGVycyA9IGluamVjdChBWFBfR0xPQkFMX1ZBUklBQkxFX0RFRklOSVRJT05fUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgW107XG5cbiAgLyoqIENhY2hlIGZvciBkZWZpbml0aW9ucyBieSBuYW1lLiAqL1xuICBwcml2YXRlIGRlZmluaXRpb25zQnlOYW1lOiBNYXA8c3RyaW5nLCBBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb24+ID0gbmV3IE1hcCgpO1xuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBBUEkgICAtLS0tXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSByZXBvcnQgZGVmaW5pdGlvbiBieSBpdHMgaWQuXG4gICAqIEZpcnN0IGNoZWNrcyB0aGUgY2FjaGUsIHRoZW4gcXVlcmllcyBhbGwgcHJvdmlkZXJzIGlmIG5vdCBmb3VuZC5cbiAgICogQHBhcmFtIG5hbWUgVGhlIGdsb2JhbCB2YXJpYWJsZSBuYW1lLlxuICAgKiBAcmV0dXJucyBUaGUgZ2xvYmFsIHZhcmlhYmxlIGRlZmluaXRpb24gaWYgZm91bmQsIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAqL1xuICBhc3luYyBnZXRCeU5hbWUobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBHbG9iYWxWYXJpYWJsZURlZmluaXRpb24gfCB1bmRlZmluZWQ+IHtcbiAgICAvLyBDaGVjayBjYWNoZSBmaXJzdFxuICAgIGlmICh0aGlzLmRlZmluaXRpb25zQnlOYW1lLmhhcyhuYW1lKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvbnNCeU5hbWUuZ2V0KG5hbWUpO1xuICAgIH1cbiAgICAvLyBOb3QgaW4gY2FjaGUsIHF1ZXJ5IHByb3ZpZGVycyAoZWFjaCBwcm92aWRlciBpcyBpdHNlbGYgYSBnbG9iYWwgdmFyaWFibGUgZGVmaW5pdGlvbilcbiAgICBjb25zdCByZXNvbHZlZFByb3ZpZGVycyA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZGVmaW5pdGlvblByb3ZpZGVycyk7XG5cbiAgICBjb25zdCBtYXRjaCA9IHJlc29sdmVkUHJvdmlkZXJzLmZpbmQoZGVmID0+IGRlZj8ubmFtZSA9PT0gbmFtZSk7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICB0aGlzLmRlZmluaXRpb25zQnlOYW1lLnNldChuYW1lLCBtYXRjaCk7XG4gICAgICByZXR1cm4gbWF0Y2g7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBhc3luYyBleGVjdXRlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IGF3YWl0IHRoaXMuZ2V0QnlOYW1lKG5hbWUpO1xuICAgIGlmIChkZWZpbml0aW9uKSB7XG4gICAgICByZXR1cm4gYXdhaXQgZGVmaW5pdGlvbi5leGVjdXRlKCk7ICAgIFxuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDYWNoZSBNYW5hZ2VtZW50ICAgLS0tLVxuXG4gIC8qKiBDbGVhcnMgdGhlIGRlZmluaXRpb25zIGJ5IG5hbWUgY2FjaGUuICovXG4gIGNsZWFyRGVmaW5pdGlvbnNDYWNoZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlZmluaXRpb25zQnlOYW1lLmNsZWFyKCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiJdfQ==","import { inject } from \"@angular/core\";\nimport { AXPGlobalVariableDefinitionService } from \"./global-variable-definition.service\";\nexport class AXPGlobalVariableEvaluatorScopeProvider {\n constructor() {\n this.globalVariableService = inject(AXPGlobalVariableDefinitionService);\n }\n async provide(context) {\n context.addScope('variables', {\n execute: async (name) => {\n return await this.globalVariableService.execute(name);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXZhcmlhYmxlLWV2YWx1YXRvci1zY29wZS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvZ2xvYmFsLXZhcmlhYmxlcy9nbG9iYWwtdmFyaWFibGUtZXZhbHVhdG9yLXNjb3BlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFMUYsTUFBTSxPQUFPLHVDQUF1QztJQUFwRDtRQUVjLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBU2pGLENBQUM7SUFQRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQW1EO1FBQzdELE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFO1lBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBWSxFQUFFLEVBQUU7Z0JBQzVCLE9BQU8sTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFELENBQUM7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyLCBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb3JlXCI7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uU2VydmljZSB9IGZyb20gXCIuL2dsb2JhbC12YXJpYWJsZS1kZWZpbml0aW9uLnNlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEFYUEdsb2JhbFZhcmlhYmxlRXZhbHVhdG9yU2NvcGVQcm92aWRlciBpbXBsZW1lbnRzIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyIHtcblxuICAgIHByb3RlY3RlZCBnbG9iYWxWYXJpYWJsZVNlcnZpY2UgPSBpbmplY3QoQVhQR2xvYmFsVmFyaWFibGVEZWZpbml0aW9uU2VydmljZSk7XG5cbiAgICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb250ZXh0LmFkZFNjb3BlKCd2YXJpYWJsZXMnLCB7XG4gICAgICAgICAgICBleGVjdXRlOiBhc3luYyAobmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2xvYmFsVmFyaWFibGVTZXJ2aWNlLmV4ZWN1dGUobmFtZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxufSJdfQ==","import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, NgZone, Output, Renderer2, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPStickyDirective {\n get isSticky() {\n return this._isSticky;\n }\n set isSticky(value) {\n if (this._isSticky !== value) {\n this._isSticky = value;\n this.isStickyChange.emit(value);\n }\n }\n constructor(element, renderer, zone, cdr) {\n this.element = element;\n this.renderer = renderer;\n this.zone = zone;\n this.cdr = cdr;\n this.stickyOffset = 100;\n this.isStickyChange = new EventEmitter();\n this._isSticky = false;\n this.onParentScroll = () => {\n this.zone.runOutsideAngular(() => {\n const scrollTop = this.parentElement === window ? window.scrollY : this.parentElement.scrollTop;\n const shouldStick = scrollTop + this.stickyOffset >= this.topOffset;\n if (shouldStick !== this.isSticky) {\n this.zone.run(() => {\n this.isSticky = shouldStick;\n this.toggleStickyClasses(shouldStick);\n this.cdr.markForCheck();\n });\n }\n });\n };\n }\n ngAfterViewInit() {\n this.initSticky();\n // Add mutation observer for dynamic content\n this.mutationObserver = new MutationObserver(() => {\n this.updateTopOffset();\n });\n this.mutationObserver.observe(this.element.nativeElement, {\n childList: true,\n subtree: true,\n });\n // Add resize event listener\n window.addEventListener('resize', this.updateTopOffset.bind(this));\n }\n initSticky() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n }\n else {\n this.parentElement = document.querySelector(this.stickyParent) || window;\n }\n this.targetElement = document.querySelector(this.stickyTarget) || this.element.nativeElement;\n this.updateTopOffset();\n this.parentElement.addEventListener('scroll', this.onParentScroll);\n }\n updateTopOffset() {\n this.zone.runOutsideAngular(() => {\n const rect = this.targetElement.getBoundingClientRect();\n this.topOffset = rect.top + (window.scrollY || 0);\n });\n }\n toggleStickyClasses(isSticky) {\n const classes = this.stickyClass.split(' ').filter(Boolean);\n classes.forEach((className) => {\n if (isSticky) {\n this.renderer.addClass(this.targetElement, className);\n }\n else {\n this.renderer.removeClass(this.targetElement, className);\n }\n });\n }\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n window.removeEventListener('resize', this.updateTopOffset.bind(this));\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStickyDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPStickyDirective, isStandalone: true, selector: \"[axpSticky]\", inputs: { stickyClass: [\"axpSticky\", \"stickyClass\"], stickyOffset: \"stickyOffset\", stickyParent: \"stickyParent\", stickyTarget: \"stickyTarget\" }, outputs: { isStickyChange: \"isStickyChange\" }, exportAs: [\"axpSticky\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStickyDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axpSticky]',\n exportAs: 'axpSticky',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { stickyClass: [{\n type: Input,\n args: ['axpSticky']\n }], stickyOffset: [{\n type: Input,\n args: ['stickyOffset']\n }], isStickyChange: [{\n type: Output\n }], stickyParent: [{\n type: Input\n }], stickyTarget: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvbGF5b3V0L3N0aWNreS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7O0FBT3ZCLE1BQU0sT0FBTyxrQkFBa0I7SUFPN0IsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsS0FBYztRQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFVRCxZQUNVLE9BQW1DLEVBQ25DLFFBQW1CLEVBQ25CLElBQVksRUFDWixHQUFzQjtRQUh0QixZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTNCVCxpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQUV4QyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXRFLGNBQVMsR0FBWSxLQUFLLENBQUM7UUErRDNCLG1CQUFjLEdBQUcsR0FBUyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO2dCQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMs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Q04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMzRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RSxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7K0dBdkdVLGtCQUFrQjttR0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztzQkFFRSxLQUFLO3VCQUFDLFdBQVc7O3NCQUNqQixLQUFLO3VCQUFDLGNBQWM7O3NCQUVwQixNQUFNOztzQkFrQk4sS0FBSzs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhwU3RpY2t5XScsXG4gIGV4cG9ydEFzOiAnYXhwU3RpY2t5JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQU3RpY2t5RGlyZWN0aXZlIHtcbiAgQElucHV0KCdheHBTdGlja3knKSBzdGlja3lDbGFzcyE6IHN0cmluZztcbiAgQElucHV0KCdzdGlja3lPZmZzZXQnKSBzdGlja3lPZmZzZXQ6IG51bWJlciA9IDEwMDtcblxuICBAT3V0cHV0KCkgaXNTdGlja3lDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIF9pc1N0aWNreTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgZ2V0IGlzU3RpY2t5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc1N0aWNreTtcbiAgfVxuICBwdWJsaWMgc2V0IGlzU3RpY2t5KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX2lzU3RpY2t5ICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5faXNTdGlja3kgPSB2YWx1ZTtcbiAgICAgIHRoaXMuaXNTdGlja3lDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b3BPZmZzZXQhOiBudW1iZXI7XG4gIHByaXZhdGUgcGFyZW50RWxlbWVudCE6IEhUTUxFbGVtZW50IHwgV2luZG93O1xuICBwcml2YXRlIHRhcmdldEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBtdXRhdGlvbk9ic2VydmVyITogTXV0YXRpb25PYnNlcnZlcjtcblxuICBASW5wdXQoKSBzdGlja3lQYXJlbnQhOiBzdHJpbmcgfCBIVE1MRWxlbWVudDtcbiAgQElucHV0KCkgc3RpY2t5VGFyZ2V0ITogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmluaXRTdGlja3koKTtcblxuICAgIC8vIEFkZCBtdXRhdGlvbiBvYnNlcnZlciBmb3IgZHluYW1pYyBjb250ZW50XG4gICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVUb3BPZmZzZXQoKTtcbiAgICB9KTtcblxuICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICBzdWJ0cmVlOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIHJlc2l6ZSBldmVudCBsaXN0ZW5lclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnVwZGF0ZVRvcE9mZnNldC5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN0aWNreSgpIHtcbiAgICBpZiAodGhpcy5zdGlja3lQYXJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgdGhpcy5wYXJlbnRFbGVtZW50ID0gdGhpcy5zdGlja3lQYXJlbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFyZW50RWxlbWVudCA9IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc3RpY2t5UGFyZW50KSBhcyBIVE1MRWxlbWVudCkgfHwgd2luZG93O1xuICAgIH1cblxuICAgIHRoaXMudGFyZ2V0RWxlbWVudCA9IChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc3RpY2t5VGFyZ2V0KSBhcyBIVE1MRWxlbWVudCkgfHwgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLnVwZGF0ZVRvcE9mZnNldCgpO1xuICAgIHRoaXMucGFyZW50RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uUGFyZW50U2Nyb2xsKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVG9wT2Zmc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCByZWN0ID0gdGhpcy50YXJnZXRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdGhpcy50b3BPZmZzZXQgPSByZWN0LnRvcCArICh3aW5kb3cuc2Nyb2xsWSB8fCAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25QYXJlbnRTY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMucGFyZW50RWxlbWVudCA9PT0gd2luZG93ID8gd2luZG93LnNjcm9sbFkgOiAodGhpcy5wYXJlbnRFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxUb3A7XG5cbiAgICAgIGNvbnN0IHNob3VsZFN0aWNrID0gc2Nyb2xsVG9wICsgdGhpcy5zdGlja3lPZmZzZXQgPj0gdGhpcy50b3BPZmZzZXQ7XG5cbiAgICAgIGlmIChzaG91bGRTdGljayAhPT0gdGhpcy5pc1N0aWNreSkge1xuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzU3RpY2t5ID0gc2hvdWxkU3RpY2s7XG4gICAgICAgICAgdGhpcy50b2dnbGVTdGlja3lDbGFzc2VzKHNob3VsZFN0aWNrKTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH07XG5cbiAgcHJpdmF0ZSB0b2dnbGVTdGlja3lDbGFzc2VzKGlzU3RpY2t5OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY2xhc3NlcyA9IHRoaXMuc3RpY2t5Q2xhc3Muc3BsaXQoJyAnKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgY2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWUpID0+IHtcbiAgICAgIGlmIChpc1N0aWNreSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudGFyZ2V0RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50YXJnZXRFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25QYXJlbnRTY3JvbGwpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLnVwZGF0ZVRvcE9mZnNldC5iaW5kKHRoaXMpKTtcblxuICAgIGlmICh0aGlzLm11dGF0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXPComponentLogoConfig, AXPImageUrlLogoConfig } from '@acorex/platform/core';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/image\";\nexport class AXPLogoComponent {\n constructor() {\n this.platform = inject(AXPlatform);\n }\n ngOnInit() {\n this.setLogoType();\n this.platform.themeMode$.subscribe(() => {\n this.setLogoTheme();\n });\n }\n ngOnChanges() {\n this.setLogoTheme();\n }\n setLogoType() {\n switch (true) {\n case this.source instanceof AXPImageUrlLogoConfig:\n this.logoType = 'url';\n break;\n case this.source instanceof AXPComponentLogoConfig:\n this.logoType = 'component';\n break;\n default:\n break;\n }\n }\n setLogoTheme() {\n if (this.source && this.source.dark && this.source.light) {\n this.source = this.platform.isDark() ? this.source.dark : this.source.light;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLogoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPLogoComponent, isStandalone: true, selector: \"axp-logo\", inputs: { source: \"source\" }, host: { classAttribute: \"ax-flex ax-justify-center\" }, usesOnChanges: true, ngImport: i0, template: \"@switch (logoType) { @case ('url') {\\n<ax-image [width]=\\\"source.width\\\" [height]=\\\"source.height\\\" [src]=\\\"source.url\\\"></ax-image>\\n} @case ('component') {\\n<ng-container *ngComponentOutlet=\\\"source.component\\\"></ng-container>\\n} }\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletEnvironmentInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"ngmodule\", type: AXImageModule }, { kind: \"component\", type: i2.AXImageComponent, selector: \"ax-image\", inputs: [\"width\", \"height\", \"overlayMode\", \"src\", \"alt\", \"priority\", \"lazy\"], outputs: [\"onLoad\", \"onError\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLogoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-logo', imports: [CommonModule, AXImageModule, AXDecoratorModule], host: { class: 'ax-flex ax-justify-center' }, template: \"@switch (logoType) { @case ('url') {\\n<ax-image [width]=\\\"source.width\\\" [height]=\\\"source.height\\\" [src]=\\\"source.url\\\"></ax-image>\\n} @case ('component') {\\n<ng-container *ngComponentOutlet=\\\"source.component\\\"></ng-container>\\n} }\\n\" }]\n }], propDecorators: { source: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2xheW91dC9sb2dvL2xvZ28uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbG9nby9sb2dvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVF6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBTjdCO1FBWVUsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQWdDdkM7SUE5QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxXQUFXO1FBQ25CLFFBQVEsSUFBSSxFQUFFLENBQUM7WUFDYixLQUFLLElBQUksQ0FBQyxNQUFNLFlBQVkscUJBQXFCO2dCQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdEIsTUFBTTtZQUVSLEtBQUssSUFBSSxDQUFDLE1BQU0sWUFBWSxzQkFBc0I7Z0JBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO2dCQUM1QixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUssSUFBSSxDQUFDLE1BQWMsQ0FBQyxJQUFJLElBQUssSUFBSSxDQUFDLE1BQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxNQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQztRQUNoRyxDQUFDO0lBQ0gsQ0FBQzsrR0FyQ1UsZ0JBQWdCO21HQUFoQixnQkFBZ0IsOEtDZDdCLDZPQUtBLDJDRE1ZLFlBQVksK1dBQUUsYUFBYSxvTkFBRSxpQkFBaUI7OzRGQUc3QyxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsVUFBVSxXQUVYLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxRQUNuRCxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRTs7c0JBRzNDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYSW1hZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvaW1hZ2UnO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5cbmltcG9ydCB7IEFYUENvbXBvbmVudExvZ29Db25maWcsIEFYUEltYWdlVXJsTG9nb0NvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sb2dvJyxcbiAgdGVtcGxhdGVVcmw6IGBsb2dvLmNvbXBvbmVudC5odG1sYCxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhJbWFnZU1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGVdLFxuICBob3N0OiB7IGNsYXNzOiAnYXgtZmxleCBheC1qdXN0aWZ5LWNlbnRlcicgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQTG9nb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHNvdXJjZSE6IGFueTtcblxuICBwcm90ZWN0ZWQgbG9nb1R5cGUhOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBwbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldExvZ29UeXBlKCk7XG4gICAgdGhpcy5wbGF0Zm9ybS50aGVtZU1vZGUkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNldExvZ29UaGVtZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMb2dvVGhlbWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRMb2dvVHlwZSgpIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgdGhpcy5zb3VyY2UgaW5zdGFuY2VvZiBBWFBJbWFnZVVybExvZ29Db25maWc6XG4gICAgICAgIHRoaXMubG9nb1R5cGUgPSAndXJsJztcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgdGhpcy5zb3VyY2UgaW5zdGFuY2VvZiBBWFBDb21wb25lbnRMb2dvQ29uZmlnOlxuICAgICAgICB0aGlzLmxvZ29UeXBlID0gJ2NvbXBvbmVudCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNldExvZ29UaGVtZSgpIHtcbiAgICBpZiAodGhpcy5zb3VyY2UgJiYgKHRoaXMuc291cmNlIGFzIGFueSkuZGFyayAmJiAodGhpcy5zb3VyY2UgYXMgYW55KS5saWdodCkge1xuICAgICAgdGhpcy5zb3VyY2UgPSB0aGlzLnBsYXRmb3JtLmlzRGFyaygpID8gKHRoaXMuc291cmNlIGFzIGFueSkuZGFyayA6ICh0aGlzLnNvdXJjZSBhcyBhbnkpLmxpZ2h0O1xuICAgIH1cbiAgfVxufVxuIiwiQHN3aXRjaCAobG9nb1R5cGUpIHsgQGNhc2UgKCd1cmwnKSB7XG48YXgtaW1hZ2UgW3dpZHRoXT1cInNvdXJjZS53aWR0aFwiIFtoZWlnaHRdPVwic291cmNlLmhlaWdodFwiIFtzcmNdPVwic291cmNlLnVybFwiPjwvYXgtaW1hZ2U+XG59IEBjYXNlICgnY29tcG9uZW50Jykge1xuPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJzb3VyY2UuY29tcG9uZW50XCI+PC9uZy1jb250YWluZXI+XG59IH1cbiJdfQ==","//#region ---- Menu Context Builder ----\n/**\n * Creates a rich context for menu manipulation\n * Similar to entity modifier context pattern\n */\nexport function createMenuContext(items) {\n const context = {\n get items() {\n return items;\n },\n find(nameOrPattern) {\n if (typeof nameOrPattern === 'string') {\n return context.findByName(nameOrPattern);\n }\n const found = context.findByPattern(nameOrPattern);\n return found.length > 0 ? found[0] : createEmptyFinder();\n },\n findByName(name) {\n return createMenuItemFinder(items, name);\n },\n findByPattern(pattern) {\n const regex = typeof pattern === 'string' ? wildcardToRegex(pattern) : pattern;\n const results = [];\n const searchRecursive = (itemList) => {\n for (const item of itemList) {\n if (item.name && regex.test(item.name)) {\n results.push(createMenuItemFinder(items, item.name));\n }\n if (item.children) {\n searchRecursive(item.children);\n }\n }\n };\n searchRecursive(items);\n return results;\n },\n add(...newItems) {\n items.push(...newItems);\n return context;\n },\n remove(predicate) {\n removeRecursive(items, predicate);\n return context;\n },\n sort() {\n sortItemsRecursively(items);\n return context;\n },\n toArray() {\n return items;\n },\n };\n return context;\n}\n//#endregion\n//#region ---- Menu Item Finder Implementation ----\n/**\n * Creates a finder for a specific menu item\n */\nfunction createMenuItemFinder(rootItems, targetName) {\n const findItemWithParent = (items, name, parent = { items: rootItems }) => {\n for (const item of items) {\n if (item.name === name) {\n return { item, parent };\n }\n if (item.children) {\n const result = findItemWithParent(item.children, name, { items: item.children });\n if (result.item) {\n return result;\n }\n }\n }\n return { item: undefined, parent };\n };\n const finder = {\n get() {\n return findItemWithParent(rootItems, targetName).item;\n },\n exists() {\n return finder.get() !== undefined;\n },\n update(updater) {\n const { item } = findItemWithParent(rootItems, targetName);\n if (item) {\n const updates = typeof updater === 'function' ? updater(item) : updater;\n Object.assign(item, updates);\n }\n return finder;\n },\n remove() {\n const { item, parent } = findItemWithParent(rootItems, targetName);\n if (item) {\n const index = parent.items.indexOf(item);\n if (index !== -1) {\n parent.items.splice(index, 1);\n }\n }\n return finder;\n },\n hide() {\n // Hide by removing the item from menu\n return finder.remove();\n },\n show() {\n // Show is a no-op since items are visible by default\n // To truly implement show, we'd need to track removed items and re-add them\n console.warn('show() is not fully implemented - items are visible by default');\n return finder;\n },\n setPriority(priority) {\n return finder.update({ priority });\n },\n addChildren(...children) {\n const { item } = findItemWithParent(rootItems, targetName);\n if (item) {\n item.children = item.children || [];\n item.children.push(...children);\n }\n return finder;\n },\n removeChildren(predicate) {\n const { item } = findItemWithParent(rootItems, targetName);\n if (item && item.children) {\n item.children = item.children.filter((c) => !predicate(c));\n }\n return finder;\n },\n moveTo(parentName) {\n const { item, parent: oldParent } = findItemWithParent(rootItems, targetName);\n if (!item) {\n return finder;\n }\n // Remove from old parent\n const oldIndex = oldParent.items.indexOf(item);\n if (oldIndex !== -1) {\n oldParent.items.splice(oldIndex, 1);\n }\n // Add to new parent\n if (!parentName || parentName === '') {\n // Move to root (handles null, undefined, and empty string)\n rootItems.push(item);\n }\n else {\n const { item: newParentItem } = findItemWithParent(rootItems, parentName);\n if (newParentItem) {\n newParentItem.children = newParentItem.children || [];\n newParentItem.children.push(item);\n }\n }\n return finder;\n },\n insertBefore(...items) {\n const { item, parent } = findItemWithParent(rootItems, targetName);\n if (item) {\n const index = parent.items.indexOf(item);\n if (index !== -1) {\n parent.items.splice(index, 0, ...items);\n }\n }\n return finder;\n },\n insertAfter(...items) {\n const { item, parent } = findItemWithParent(rootItems, targetName);\n if (item) {\n const index = parent.items.indexOf(item);\n if (index !== -1) {\n parent.items.splice(index + 1, 0, ...items);\n }\n }\n return finder;\n },\n };\n return finder;\n}\n/**\n * Creates an empty finder for items not found\n */\nfunction createEmptyFinder() {\n return {\n get: () => undefined,\n exists: () => false,\n update: () => createEmptyFinder(),\n remove: () => createEmptyFinder(),\n hide: () => createEmptyFinder(),\n show: () => createEmptyFinder(),\n setPriority: () => createEmptyFinder(),\n addChildren: () => createEmptyFinder(),\n removeChildren: () => createEmptyFinder(),\n moveTo: () => createEmptyFinder(),\n insertBefore: () => createEmptyFinder(),\n insertAfter: () => createEmptyFinder(),\n };\n}\n//#endregion\n//#region ---- Helper Functions ----\n/**\n * Converts wildcard pattern to regex\n */\nfunction wildcardToRegex(pattern) {\n const escaped = pattern.replace(/[.+?^${}()|\\[\\]\\\\]/g, '\\\\$&');\n const regexStr = `^${escaped.replace(/\\*/g, '.*')}$`;\n return new RegExp(regexStr);\n}\n/**\n * Recursively removes items matching predicate\n */\nfunction removeRecursive(items, predicate) {\n for (let i = items.length - 1; i >= 0; i--) {\n const item = items[i];\n if (predicate(item)) {\n items.splice(i, 1);\n }\n else if (item.children) {\n removeRecursive(item.children, predicate);\n }\n }\n}\n/**\n * Recursively sorts items by priority\n */\nfunction sortItemsRecursively(items) {\n items.sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n items.forEach((item) => {\n if (item.children && item.children.length > 0) {\n sortItemsRecursively(item.children);\n }\n });\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9tZW51LmNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsNENBQTRDO0FBRTVDOzs7R0FHRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFvQjtJQUNsRCxNQUFNLE9BQU8sR0FBNkI7UUFDdEMsSUFBSSxLQUFLO1lBQ0wsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksQ0FBQyxhQUE4QjtZQUMvQixJQUFJLE9BQU8sYUFBYSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNwQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdELENBQUM7UUFFRCxVQUFVLENBQUMsSUFBWTtZQUNuQixPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsYUFBYSxDQUFDLE9BQXdCO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDL0UsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQztZQUV4QyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQXVCLEVBQUUsRUFBRTtnQkFDaEQsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUUs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QUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN2QixlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsb0JBQW9CLENBQUMsS0FBb0I7SUFDOUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUE1lbnVJdGVtIH0gZnJvbSAnLi9tZW51LnR5cGVzJztcbmltcG9ydCB7IEFYUE1lbnVJdGVtRmluZGVyLCBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQgfSBmcm9tICcuL21lbnUubWlkZGxld2FyZSc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgTWVudSBDb250ZXh0IEJ1aWxkZXIgICAtLS0tXG5cbi8qKlxuICogQ3JlYXRlcyBhIHJpY2ggY29udGV4dCBmb3IgbWVudSBtYW5pcHVsYXRpb25cbiAqIFNpbWlsYXIgdG8gZW50aXR5IG1vZGlmaWVyIGNvbnRleHQgcGF0dGVyblxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWVudUNvbnRleHQoaXRlbXM6IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUE1lbnVNaWRkbGV3YXJlQ29udGV4dCA9IHtcbiAgICAgICAgZ2V0IGl0ZW1zKCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmQobmFtZU9yUGF0dGVybjogc3RyaW5nIHwgUmVnRXhwKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBuYW1lT3JQYXR0ZXJuID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb250ZXh0LmZpbmRCeU5hbWUobmFtZU9yUGF0dGVybik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmb3VuZCA9IGNvbnRleHQuZmluZEJ5UGF0dGVybihuYW1lT3JQYXR0ZXJuKTtcbiAgICAgICAgICAgIHJldHVybiBmb3VuZC5sZW5ndGggPiAwID8gZm91bmRbMF0gOiBjcmVhdGVFbXB0eUZpbmRlcigpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGZpbmRCeU5hbWUobmFtZTogc3RyaW5nKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU1lbnVJdGVtRmluZGVyKGl0ZW1zLCBuYW1lKTtcbiAgICAgICAgfSxcblxuICAgICAgICBmaW5kQnlQYXR0ZXJuKHBhdHRlcm46IHN0cmluZyB8IFJlZ0V4cCk6IEFYUE1lbnVJdGVtRmluZGVyW10ge1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSB0eXBlb2YgcGF0dGVybiA9PT0gJ3N0cmluZycgPyB3aWxkY2FyZFRvUmVnZXgocGF0dGVybikgOiBwYXR0ZXJuO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0czogQVhQTWVudUl0ZW1GaW5kZXJbXSA9IFtdO1xuXG4gICAgICAgICAgICBjb25zdCBzZWFyY2hSZWN1cnNpdmUgPSAoaXRlbUxpc3Q6IEFYUE1lbnVJdGVtW10pID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbUxpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ubmFtZSAmJiByZWdleC50ZXN0KGl0ZW0ubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMucHVzaChjcmVhdGVNZW51SXRlbUZpbmRlcihpdGVtcywgaXRlbS5uYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaFJlY3Vyc2l2ZShpdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHNlYXJjaFJlY3Vyc2l2ZShpdGVtcyk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgfSxcblxuICAgICAgICBhZGQoLi4ubmV3SXRlbXM6IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgICAgICAgICAgaXRlbXMucHVzaCguLi5uZXdJdGVtcyk7XG4gICAgICAgICAgICByZXR1cm4gY29udGV4dDtcbiAgICAgICAgfSxcblxuICAgICAgICByZW1vdmUocHJlZGljYXRlOiAoaXRlbTogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlKGl0ZW1zLCBwcmVkaWNhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgc29ydCgpOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgICAgICAgICAgc29ydEl0ZW1zUmVjdXJzaXZlbHkoaXRlbXMpO1xuICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdG9BcnJheSgpOiBBWFBNZW51SXRlbVtdIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIE1lbnUgSXRlbSBGaW5kZXIgSW1wbGVtZW50YXRpb24gICAtLS0tXG5cbi8qKlxuICogQ3JlYXRlcyBhIGZpbmRlciBmb3IgYSBzcGVjaWZpYyBtZW51IGl0ZW1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTWVudUl0ZW1GaW5kZXIocm9vdEl0ZW1zOiBBWFBNZW51SXRlbVtdLCB0YXJnZXROYW1lOiBzdHJpbmcpOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgY29uc3QgZmluZEl0ZW1XaXRoUGFyZW50ID0gKFxuICAgICAgICBpdGVtczogQVhQTWVudUl0ZW1bXSxcbiAgICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgICBwYXJlbnQ6IHsgaXRlbXM6IEFYUE1lbnVJdGVtW10gfSA9IHsgaXRlbXM6IHJvb3RJdGVtcyB9XG4gICAgKTogeyBpdGVtOiBBWFBNZW51SXRlbSB8IHVuZGVmaW5lZDsgcGFyZW50OiB7IGl0ZW1zOiBBWFBNZW51SXRlbVtdIH0gfSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgaWYgKGl0ZW0ubmFtZSA9PT0gbmFtZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGl0ZW0sIHBhcmVudCB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBmaW5kSXRlbVdpdGhQYXJlbnQoaXRlbS5jaGlsZHJlbiwgbmFtZSwgeyBpdGVtczogaXRlbS5jaGlsZHJlbiB9KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0Lml0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaXRlbTogdW5kZWZpbmVkLCBwYXJlbnQgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgZmluZGVyOiBBWFBNZW51SXRlbUZpbmRlciA9IHtcbiAgICAgICAgZ2V0KCk6IEFYUE1lbnVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgICAgIHJldHVybiBmaW5kSXRlbVdpdGhQYXJlbnQocm9vdEl0ZW1zLCB0YXJnZXROYW1lKS5pdGVtO1xuICAgICAgICB9LFxuXG4gICAgICAgIGV4aXN0cygpOiBib29sZWFuIHtcbiAgICAgICAgICAgIHJldHVybiBmaW5kZXIuZ2V0KCkgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGUodXBkYXRlcjogUGFydGlhbDxBWFBNZW51SXRlbT4gfCAoKGl0ZW06IEFYUE1lbnVJdGVtKSA9PiBQYXJ0aWFsPEFYUE1lbnVJdGVtPikpOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0gfSA9IGZpbmRJdGVtV2l0aFBhcmVudChyb290SXRlbXMsIHRhcmdldE5hbWUpO1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVzID0gdHlwZW9mIHVwZGF0ZXIgPT09ICdmdW5jdGlvbicgPyB1cGRhdGVyKGl0ZW0pIDogdXBkYXRlcjtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGl0ZW0sIHVwZGF0ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICByZW1vdmUoKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgY29uc3QgeyBpdGVtLCBwYXJlbnQgfSA9IGZpbmRJdGVtV2l0aFBhcmVudChyb290SXRlbXMsIHRhcmdldE5hbWUpO1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcmVudC5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Lml0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICBoaWRlKCk6IEFYUE1lbnVJdGVtRmluZGVyIHtcbiAgICAgICAgICAgIC8vIEhpZGUgYnkgcmVtb3ZpbmcgdGhlIGl0ZW0gZnJvbSBtZW51XG4gICAgICAgICAgICByZXR1cm4gZmluZGVyLnJlbW92ZSgpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHNob3coKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgLy8gU2hvdyBpcyBhIG5vLW9wIHNpbmNlIGl0ZW1zIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHRcbiAgICAgICAgICAgIC8vIFRvIHRydWx5IGltcGxlbWVudCBzaG93LCB3ZSdkIG5lZWQgdG8gdHJhY2sgcmVtb3ZlZCBpdGVtcyBhbmQgcmUtYWRkIHRoZW1cbiAgICAgICAgICAgIGNvbnNvbGUud2Fybignc2hvdygpIGlzIG5vdCBmdWxseSBpbXBsZW1lbnRlZCAtIGl0ZW1zIGFyZSB2aXNpYmxlIGJ5IGRlZmF1bHQnKTtcbiAgICAgICAgICAgIHJldHVybiBmaW5kZXI7XG4gICAgICAgIH0sXG5cbiAgICAgICAgc2V0UHJpb3JpdHkocHJpb3JpdHk6IG51bWJlcik6IEFYUE1lbnVJdGVtRmluZGVyIHtcbiAgICAgICAgICAgIHJldHVybiBmaW5kZXIudXBkYXRlKHsgcHJpb3JpdHkgfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgYWRkQ2hpbGRyZW4oLi4uY2hpbGRyZW46IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0gfSA9IGZpbmRJdGVtV2l0aFBhcmVudChyb290SXRlbXMsIHRhcmdldE5hbWUpO1xuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuID0gaXRlbS5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBpdGVtLmNoaWxkcmVuLnB1c2goLi4uY2hpbGRyZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICByZW1vdmVDaGlsZHJlbihwcmVkaWNhdGU6IChjaGlsZDogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0gfSA9IGZpbmRJdGVtV2l0aFBhcmVudChyb290SXRlbXMsIHRhcmdldE5hbWUpO1xuICAgICAgICAgICAgaWYgKGl0ZW0gJiYgaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGl0ZW0uY2hpbGRyZW4gPSBpdGVtLmNoaWxkcmVuLmZpbHRlcigoYykgPT4gIXByZWRpY2F0ZShjKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmluZGVyO1xuICAgICAgICB9LFxuXG4gICAgICAgIG1vdmVUbyhwYXJlbnROYW1lOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogQVhQTWVudUl0ZW1GaW5kZXIge1xuICAgICAgICAgICAgY29uc3QgeyBpdGVtLCBwYXJlbnQ6IG9sZFBhcmVudCB9ID0gZmluZEl0ZW1XaXRoUGFyZW50KHJvb3RJdGVtcywgdGFyZ2V0TmFtZSk7XG4gICAgICAgICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmluZGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBSZW1vdmUgZnJvbSBvbGQgcGFyZW50XG4gICAgICAgICAgICBjb25zdCBvbGRJbmRleCA9IG9sZFBhcmVudC5pdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgICAgICAgICAgaWYgKG9sZEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIG9sZFBhcmVudC5pdGVtcy5zcGxpY2Uob2xkSW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBZGQgdG8gbmV3IHBhcmVudFxuICAgICAgICAgICAgaWYgKCFwYXJlbnROYW1lIHx8IHBhcmVudE5hbWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgLy8gTW92ZSB0byByb290IChoYW5kbGVzIG51bGwsIHVuZGVmaW5lZCwgYW5kIGVtcHR5IHN0cmluZylcbiAgICAgICAgICAgICAgICByb290SXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBpdGVtOiBuZXdQYXJlbnRJdGVtIH0gPSBmaW5kSXRlbVdpdGhQYXJlbnQocm9vdEl0ZW1zLCBwYXJlbnROYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAobmV3UGFyZW50SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBuZXdQYXJlbnRJdGVtLmNoaWxkcmVuID0gbmV3UGFyZW50SXRlbS5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgbmV3UGFyZW50SXRlbS5jaGlsZHJlbi5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICBpbnNlcnRCZWZvcmUoLi4uaXRlbXM6IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0sIHBhcmVudCB9ID0gZmluZEl0ZW1XaXRoUGFyZW50KHJvb3RJdGVtcywgdGFyZ2V0TmFtZSk7XG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gcGFyZW50Lml0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBwYXJlbnQuaXRlbXMuc3BsaWNlKGluZGV4LCAwLCAuLi5pdGVtcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcblxuICAgICAgICBpbnNlcnRBZnRlciguLi5pdGVtczogQVhQTWVudUl0ZW1bXSk6IEFYUE1lbnVJdGVtRmluZGVyIHtcbiAgICAgICAgICAgIGNvbnN0IHsgaXRlbSwgcGFyZW50IH0gPSBmaW5kSXRlbVdpdGhQYXJlbnQocm9vdEl0ZW1zLCB0YXJnZXROYW1lKTtcbiAgICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJlbnQuaXRlbXMuaW5kZXhPZihpdGVtKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudC5pdGVtcy5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi5pdGVtcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpbmRlcjtcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGZpbmRlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIGVtcHR5IGZpbmRlciBmb3IgaXRlbXMgbm90IGZvdW5kXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUVtcHR5RmluZGVyKCk6IEFYUE1lbnVJdGVtRmluZGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBnZXQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgZXhpc3RzOiAoKSA9PiBmYWxzZSxcbiAgICAgICAgdXBkYXRlOiAoKSA9PiBjcmVhdGVFbXB0eUZpbmRlcigpLFxuICAgICAgICByZW1vdmU6ICgpID0+IGNyZWF0ZUVtcHR5RmluZGVyKCksXG4gICAgICAgIGhpZGU6ICgpID0+IGNyZWF0ZUVtcHR5RmluZGVyKCksXG4gICAgICAgIHNob3c6ICgpID0+IGNyZWF0ZUVtcHR5RmluZGVyKCksXG4gICAgICAgIHNldFByaW9yaXR5OiAoKSA9PiBjcmVhdGVFbXB0eUZpbmRlcigpLFxuICAgICAgICBhZGRDaGlsZHJlbjogKCkgPT4gY3JlYXRlRW1wdHlGaW5kZXIoKSxcbiAgICAgICAgcmVtb3ZlQ2hpbGRyZW46ICgpID0+IGNyZWF0ZUVtcHR5RmluZGVyKCksXG4gICAgICAgIG1vdmVUbzogKCkgPT4gY3JlYXRlRW1wdHlGaW5kZXIoKSxcbiAgICAgICAgaW5zZXJ0QmVmb3JlOiAoKSA9PiBjcmVhdGVFbXB0eUZpbmRlcigpLFxuICAgICAgICBpbnNlcnRBZnRlcjogKCkgPT4gY3JlYXRlRW1wdHlGaW5kZXIoKSxcbiAgICB9O1xufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBIZWxwZXIgRnVuY3Rpb25zICAgLS0tLVxuXG4vKipcbiAqIENvbnZlcnRzIHdpbGRjYXJkIHBhdHRlcm4gdG8gcmVnZXhcbiAqL1xuZnVuY3Rpb24gd2lsZGNhcmRUb1JlZ2V4KHBhdHRlcm46IHN0cmluZyk6IFJlZ0V4cCB7XG4gICAgY29uc3QgZXNjYXBlZCA9IHBhdHRlcm4ucmVwbGFjZSgvWy4rP14ke30oKXxcXFtcXF1cXFxcXS9nLCAnXFxcXCQmJyk7XG4gICAgY29uc3QgcmVnZXhTdHIgPSBgXiR7ZXNjYXBlZC5yZXBsYWNlKC9cXCovZywgJy4qJyl9JGA7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXhTdHIpO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IHJlbW92ZXMgaXRlbXMgbWF0Y2hpbmcgcHJlZGljYXRlXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZVJlY3Vyc2l2ZShpdGVtczogQVhQTWVudUl0ZW1bXSwgcHJlZGljYXRlOiAoaXRlbTogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBmb3IgKGxldCBpID0gaXRlbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2ldO1xuICAgICAgICBpZiAocHJlZGljYXRlKGl0ZW0pKSB7XG4gICAgICAgICAgICBpdGVtcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgcmVtb3ZlUmVjdXJzaXZlKGl0ZW0uY2hpbGRyZW4sIHByZWRpY2F0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgc29ydHMgaXRlbXMgYnkgcHJpb3JpdHlcbiAqL1xuZnVuY3Rpb24gc29ydEl0ZW1zUmVjdXJzaXZlbHkoaXRlbXM6IEFYUE1lbnVJdGVtW10pOiB2b2lkIHtcbiAgICBpdGVtcy5zb3J0KChhLCBiKSA9PiAoYS5wcmlvcml0eSA/PyAwKSAtIChiLnByaW9yaXR5ID8/IDApKTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgc29ydEl0ZW1zUmVjdXJzaXZlbHkoaXRlbS5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { InjectionToken } from '@angular/core';\n/**\n * Injection token for menu middlewares (multi-provider)\n */\nexport const AXP_MENU_MIDDLEWARE = new InjectionToken('AXP_MENU_MIDDLEWARE');\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9tZW51Lm1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWdLL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IscUJBQXFCLENBQUMsQ0FBQztBQUVsRyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUE1lbnVJdGVtIH0gZnJvbSAnLi9tZW51LnR5cGVzJztcblxuLy8jcmVnaW9uIC0tLS0gICBNZW51IE1pZGRsZXdhcmUgQ29udGV4dCAgIC0tLS1cblxuLyoqXG4gKiBSaWNoIGNvbnRleHQgQVBJIGZvciBtYW5pcHVsYXRpbmcgbWVudSBpdGVtcyB3aXRoaW4gbWlkZGxld2FyZVxuICogUHJvdmlkZXMgaGVscGVyIG1ldGhvZHMgdG8gZmluZCwgdXBkYXRlLCByZW1vdmUsIGFuZCBhZGQgbWVudSBpdGVtcyBlYXNpbHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQge1xuICAgIC8qKlxuICAgICAqIEdldCBhbGwgbWVudSBpdGVtc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGl0ZW1zOiBBWFBNZW51SXRlbVtdO1xuXG4gICAgLyoqXG4gICAgICogRmluZCBtZW51IGl0ZW0ocykgYnkgbmFtZSBvciBwYXR0ZXJuXG4gICAgICovXG4gICAgZmluZChuYW1lT3JQYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHApOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIEZpbmQgbWVudSBpdGVtIGJ5IG5hbWUgKGV4YWN0IG1hdGNoKVxuICAgICAqL1xuICAgIGZpbmRCeU5hbWUobmFtZTogc3RyaW5nKTogQVhQTWVudUl0ZW1GaW5kZXI7XG5cbiAgICAvKipcbiAgICAgKiBGaW5kIG1lbnUgaXRlbXMgYnkgcGF0dGVybiAocmVnZXggb3Igd2lsZGNhcmQpXG4gICAgICovXG4gICAgZmluZEJ5UGF0dGVybihwYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHApOiBBWFBNZW51SXRlbUZpbmRlcltdO1xuXG4gICAgLyoqXG4gICAgICogQWRkIG5ldyBtZW51IGl0ZW1zIHRvIHJvb3QgbGV2ZWxcbiAgICAgKi9cbiAgICBhZGQoLi4uaXRlbXM6IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQ7XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgbWVudSBpdGVtcyBieSBwcmVkaWNhdGVcbiAgICAgKi9cbiAgICByZW1vdmUocHJlZGljYXRlOiAoaXRlbTogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQ7XG5cbiAgICAvKipcbiAgICAgKiBTb3J0IGFsbCBtZW51IGl0ZW1zIHJlY3Vyc2l2ZWx5IGJ5IHByaW9yaXR5XG4gICAgICovXG4gICAgc29ydCgpOiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQ7XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGZpbmFsIG1lbnUgaXRlbXMgYXJyYXlcbiAgICAgKi9cbiAgICB0b0FycmF5KCk6IEFYUE1lbnVJdGVtW107XG59XG5cbi8qKlxuICogSGVscGVyIGZvciBmaW5kaW5nIGFuZCBtYW5pcHVsYXRpbmcgYSBzcGVjaWZpYyBtZW51IGl0ZW1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBNZW51SXRlbUZpbmRlciB7XG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBmb3VuZCBtZW51IGl0ZW0gKG9yIHVuZGVmaW5lZClcbiAgICAgKi9cbiAgICBnZXQoKTogQVhQTWVudUl0ZW0gfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBtZW51IGl0ZW0gZXhpc3RzXG4gICAgICovXG4gICAgZXhpc3RzKCk6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgbWVudSBpdGVtIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICB1cGRhdGUodXBkYXRlcjogUGFydGlhbDxBWFBNZW51SXRlbT4gfCAoKGl0ZW06IEFYUE1lbnVJdGVtKSA9PiBQYXJ0aWFsPEFYUE1lbnVJdGVtPikpOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWVudSBpdGVtXG4gICAgICovXG4gICAgcmVtb3ZlKCk6IEFYUE1lbnVJdGVtRmluZGVyO1xuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgbWVudSBpdGVtIChyZW1vdmVzIGl0IGZyb20gdGhlIG1lbnUpXG4gICAgICovXG4gICAgaGlkZSgpOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG1lbnUgaXRlbSAoY3VycmVudGx5IGEgbm8tb3AgYXMgaXRlbXMgYXJlIHZpc2libGUgYnkgZGVmYXVsdClcbiAgICAgKiBOb3RlOiBUbyB0cnVseSBpbXBsZW1lbnQgc2hvdywgd2UnZCBuZWVkIHRvIHRyYWNrIHJlbW92ZWQgaXRlbXNcbiAgICAgKi9cbiAgICBzaG93KCk6IEFYUE1lbnVJdGVtRmluZGVyO1xuXG4gICAgLyoqXG4gICAgICogU2V0IHByaW9yaXR5XG4gICAgICovXG4gICAgc2V0UHJpb3JpdHkocHJpb3JpdHk6IG51bWJlcik6IEFYUE1lbnVJdGVtRmluZGVyO1xuXG4gICAgLyoqXG4gICAgICogQWRkIGNoaWxkcmVuIHRvIHRoaXMgbWVudSBpdGVtXG4gICAgICovXG4gICAgYWRkQ2hpbGRyZW4oLi4uY2hpbGRyZW46IEFYUE1lbnVJdGVtW10pOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBjaGlsZHJlbiBieSBwcmVkaWNhdGVcbiAgICAgKi9cbiAgICByZW1vdmVDaGlsZHJlbihwcmVkaWNhdGU6IChjaGlsZDogQVhQTWVudUl0ZW0pID0+IGJvb2xlYW4pOiBBWFBNZW51SXRlbUZpbmRlcjtcblxuICAgIC8qKlxuICAgICAqIE1vdmUgbWVudSBpdGVtIHRvIGEgZGlmZmVyZW50IHBhcmVudFxuICAgICAqL1xuICAgIG1vdmVUbyhwYXJlbnROYW1lOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogQVhQTWVudUl0ZW1GaW5kZXI7XG5cbiAgICAvKipcbiAgICAgKiBJbnNlcnQgbWVudSBpdGVtcyBiZWZvcmUgdGhpcyBpdGVtXG4gICAgICovXG4gICAgaW5zZXJ0QmVmb3JlKC4uLml0ZW1zOiBBWFBNZW51SXRlbVtdKTogQVhQTWVudUl0ZW1GaW5kZXI7XG5cbiAgICAvKipcbiAgICAgKiBJbnNlcnQgbWVudSBpdGVtcyBhZnRlciB0aGlzIGl0ZW1cbiAgICAgKi9cbiAgICBpbnNlcnRBZnRlciguLi5pdGVtczogQVhQTWVudUl0ZW1bXSk6IEFYUE1lbnVJdGVtRmluZGVyO1xufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBNZW51IE1pZGRsZXdhcmUgICAtLS0tXG5cbi8qKlxuICogTWlkZGxld2FyZSB0aGF0IHByb2Nlc3NlcyBtZW51IGl0ZW1zIGFmdGVyIGFsbCBwcm92aWRlcnMgaGF2ZSBleGVjdXRlZFxuICogTWlkZGxld2FyZXMgYXJlIGV4ZWN1dGVkIGluIG9yZGVyIGJhc2VkIG9uIHRoZWlyIHByaW9yaXR5IChoaWdoZXIgcHJpb3JpdHkgPSBlYXJsaWVyIGV4ZWN1dGlvbilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBNZW51TWlkZGxld2FyZSB7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgcHJpb3JpdHkgZm9yIGV4ZWN1dGlvbiBvcmRlciAoaGlnaGVyID0gZWFybGllcilcbiAgICAgKiBEZWZhdWx0OiAwXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJpb3JpdHk/OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBuYW1lIGZvciBkZWJ1Z2dpbmcgYW5kIGlkZW50aWZpY2F0aW9uXG4gICAgICovXG4gICAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3MgbWVudSBpdGVtcyB1c2luZyB0aGUgcmljaCBjb250ZXh0IEFQSVxuICAgICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIG1lbnUgbWlkZGxld2FyZSBjb250ZXh0IHdpdGggaGVscGVyIG1ldGhvZHNcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY29udGV4dCBvciB2b2lkIChjb250ZXh0IGlzIG11dGFibGUpXG4gICAgICovXG4gICAgcHJvY2Vzcyhjb250ZXh0OiBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQpOiBQcm9taXNlPHZvaWQgfCBBWFBNZW51TWlkZGxld2FyZUNvbnRleHQ+O1xufVxuXG4vKipcbiAqIFByb3ZpZGVyIGRlZmluaXRpb24gZm9yIHJlZ2lzdGVyaW5nIG1pZGRsZXdhcmUgdmlhIG11bHRpLXByb3ZpZGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQTWVudU1pZGRsZXdhcmVQcm92aWRlciB7XG4gICAgLyoqXG4gICAgICogVGhlIG1pZGRsZXdhcmUgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBtaWRkbGV3YXJlOiBBWFBNZW51TWlkZGxld2FyZTtcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIHByaW9yaXR5IG92ZXJyaWRlXG4gICAgICovXG4gICAgcHJpb3JpdHk/OiBudW1iZXI7XG59XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBtZW51IG1pZGRsZXdhcmVzIChtdWx0aS1wcm92aWRlcilcbiAqL1xuZXhwb3J0IGNvbnN0IEFYUF9NRU5VX01JRERMRVdBUkUgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQTWVudU1pZGRsZXdhcmVbXT4oJ0FYUF9NRU5VX01JRERMRVdBUkUnKTtcblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { AXP_MENU_MIDDLEWARE } from './menu.middleware';\nimport * as i0 from \"@angular/core\";\n//#region ---- Menu Middleware Registry ----\n/**\n * Central service for managing menu middlewares with priority-based ordering\n * Similar to token registry pattern used in identifier-management\n */\nexport class AXPMenuMiddlewareRegistry {\n constructor() {\n //#region ---- Fields ----\n /**\n * Manually registered middlewares\n */\n this.manualMiddlewares = new Map();\n /**\n * Provider-based middlewares (multi-provider injection)\n */\n this.providerMiddlewares = inject(AXP_MENU_MIDDLEWARE, { optional: true }) ?? [];\n }\n //#endregion\n //#region ---- Registration Methods ----\n /**\n * Manually register a middleware\n * @param middleware - The middleware to register\n */\n register(middleware) {\n const name = middleware.name || `middleware_${Date.now()}_${Math.random()}`;\n const existing = this.manualMiddlewares.get(name);\n if (!existing || (middleware.priority ?? 0) > (existing.priority ?? 0)) {\n this.manualMiddlewares.set(name, middleware);\n }\n }\n /**\n * Unregister a middleware by name\n * @param name - The name of the middleware to remove\n */\n unregister(name) {\n this.manualMiddlewares.delete(name);\n }\n /**\n * Get a specific middleware by name\n * @param name - The middleware name\n */\n get(name) {\n // Provider-provided middlewares take precedence\n const fromProvider = this.providerMiddlewares\n .filter((m) => m.name === name)\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))[0];\n if (fromProvider) {\n return fromProvider;\n }\n return this.manualMiddlewares.get(name);\n }\n /**\n * Get all middlewares sorted by priority (highest first)\n * Combines provider-based and manually registered middlewares\n */\n list() {\n const map = new Map();\n // Helper to add middleware, respecting priority\n const addMiddleware = (m) => {\n const name = m.name || `anonymous_${Date.now()}`;\n const existing = map.get(name);\n if (!existing || (m.priority ?? 0) > (existing.priority ?? 0)) {\n map.set(name, m);\n }\n };\n // Add provider middlewares first (higher precedence)\n this.providerMiddlewares.forEach(addMiddleware);\n // Add manual middlewares\n Array.from(this.manualMiddlewares.values()).forEach(addMiddleware);\n // Return sorted by priority (highest first)\n return Array.from(map.values()).sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n }\n /**\n * Check if a middleware exists\n * @param name - The middleware name\n */\n exists(name) {\n return this.get(name) !== undefined;\n }\n /**\n * Clear all manually registered middlewares\n * Provider-based middlewares are not affected\n */\n clear() {\n this.manualMiddlewares.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPMenuMiddlewareRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPMenuMiddlewareRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPMenuMiddlewareRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1taWRkbGV3YXJlLnJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9tZW51LW1pZGRsZXdhcmUucmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLG1CQUFtQixDQUFDOztBQUUzRSxnREFBZ0Q7QUFFaEQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUdJLDhCQUE4QjtRQUU5Qjs7V0FFRztRQUNjLHNCQUFpQixHQUFHLElBQUksR0FBRyxFQUE2QixDQUFDO1FBRTFFOztXQUVHO1FBQ2Msd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0tBdUZoRztJQXJGRyxZQUFZO0lBRVosNENBQTRDO0lBRTVDOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxVQUE2QjtRQUNsQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJLGNBQWMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBRTVFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsSUFBWTtRQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxHQUFHLENBQUMsSUFBWTtRQUNaLGdEQUFnRDtRQUNoRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CO2FBQ3hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7YUFDOUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlELElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixPQUFPLFlBQVksQ0FBQztRQUN4QixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJO1FBQ0EsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQTZCLENBQUM7UUFFakQsZ0RBQWdEO1FBQ2hELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBb0IsRUFBRSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksYUFBYSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNqRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM1RCxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYscURBQXFEO1FBQ3JELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFaEQseUJBQXlCO1FBQ3pCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRW5FLDRDQUE0QztRQUM1QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsSUFBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUs7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkMsQ0FBQzsrR0FoR1EseUJBQXlCO21IQUF6Qix5QkFBeUIsY0FEWixNQUFNOzs0RkFDbkIseUJBQXlCO2tCQURyQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX01FTlVfTUlERExFV0FSRSwgQVhQTWVudU1pZGRsZXdhcmUgfSBmcm9tICcuL21lbnUubWlkZGxld2FyZSc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgTWVudSBNaWRkbGV3YXJlIFJlZ2lzdHJ5ICAgLS0tLVxuXG4vKipcbiAqIENlbnRyYWwgc2VydmljZSBmb3IgbWFuYWdpbmcgbWVudSBtaWRkbGV3YXJlcyB3aXRoIHByaW9yaXR5LWJhc2VkIG9yZGVyaW5nXG4gKiBTaW1pbGFyIHRvIHRva2VuIHJlZ2lzdHJ5IHBhdHRlcm4gdXNlZCBpbiBpZGVudGlmaWVyLW1hbmFnZW1lbnRcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBNZW51TWlkZGxld2FyZVJlZ2lzdHJ5IHtcblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgRmllbGRzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogTWFudWFsbHkgcmVnaXN0ZXJlZCBtaWRkbGV3YXJlc1xuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFudWFsTWlkZGxld2FyZXMgPSBuZXcgTWFwPHN0cmluZywgQVhQTWVudU1pZGRsZXdhcmU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlci1iYXNlZCBtaWRkbGV3YXJlcyAobXVsdGktcHJvdmlkZXIgaW5qZWN0aW9uKVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZXJNaWRkbGV3YXJlcyA9IGluamVjdChBWFBfTUVOVV9NSURETEVXQVJFLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IFtdO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFJlZ2lzdHJhdGlvbiBNZXRob2RzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogTWFudWFsbHkgcmVnaXN0ZXIgYSBtaWRkbGV3YXJlXG4gICAgICogQHBhcmFtIG1pZGRsZXdhcmUgLSBUaGUgbWlkZGxld2FyZSB0byByZWdpc3RlclxuICAgICAqL1xuICAgIHJlZ2lzdGVyKG1pZGRsZXdhcmU6IEFYUE1lbnVNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBtaWRkbGV3YXJlLm5hbWUgfHwgYG1pZGRsZXdhcmVfJHtEYXRlLm5vdygpfV8ke01hdGgucmFuZG9tKCl9YDtcblxuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMubWFudWFsTWlkZGxld2FyZXMuZ2V0KG5hbWUpO1xuICAgICAgICBpZiAoIWV4aXN0aW5nIHx8IChtaWRkbGV3YXJlLnByaW9yaXR5ID8/IDApID4gKGV4aXN0aW5nLnByaW9yaXR5ID8/IDApKSB7XG4gICAgICAgICAgICB0aGlzLm1hbnVhbE1pZGRsZXdhcmVzLnNldChuYW1lLCBtaWRkbGV3YXJlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgYSBtaWRkbGV3YXJlIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtaWRkbGV3YXJlIHRvIHJlbW92ZVxuICAgICAqL1xuICAgIHVucmVnaXN0ZXIobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWFudWFsTWlkZGxld2FyZXMuZGVsZXRlKG5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIHNwZWNpZmljIG1pZGRsZXdhcmUgYnkgbmFtZVxuICAgICAqIEBwYXJhbSBuYW1lIC0gVGhlIG1pZGRsZXdhcmUgbmFtZVxuICAgICAqL1xuICAgIGdldChuYW1lOiBzdHJpbmcpOiBBWFBNZW51TWlkZGxld2FyZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIC8vIFByb3ZpZGVyLXByb3ZpZGVkIG1pZGRsZXdhcmVzIHRha2UgcHJlY2VkZW5jZVxuICAgICAgICBjb25zdCBmcm9tUHJvdmlkZXIgPSB0aGlzLnByb3ZpZGVyTWlkZGxld2FyZXNcbiAgICAgICAgICAgIC5maWx0ZXIoKG0pID0+IG0ubmFtZSA9PT0gbmFtZSlcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiAoYi5wcmlvcml0eSA/PyAwKSAtIChhLnByaW9yaXR5ID8/IDApKVswXTtcblxuICAgICAgICBpZiAoZnJvbVByb3ZpZGVyKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJvbVByb3ZpZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubWFudWFsTWlkZGxld2FyZXMuZ2V0KG5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhbGwgbWlkZGxld2FyZXMgc29ydGVkIGJ5IHByaW9yaXR5IChoaWdoZXN0IGZpcnN0KVxuICAgICAqIENvbWJpbmVzIHByb3ZpZGVyLWJhc2VkIGFuZCBtYW51YWxseSByZWdpc3RlcmVkIG1pZGRsZXdhcmVzXG4gICAgICovXG4gICAgbGlzdCgpOiBBWFBNZW51TWlkZGxld2FyZVtdIHtcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIEFYUE1lbnVNaWRkbGV3YXJlPigpO1xuXG4gICAgICAgIC8vIEhlbHBlciB0byBhZGQgbWlkZGxld2FyZSwgcmVzcGVjdGluZyBwcmlvcml0eVxuICAgICAgICBjb25zdCBhZGRNaWRkbGV3YXJlID0gKG06IEFYUE1lbnVNaWRkbGV3YXJlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gbS5uYW1lIHx8IGBhbm9ueW1vdXNfJHtEYXRlLm5vdygpfWA7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IG1hcC5nZXQobmFtZSk7XG4gICAgICAgICAgICBpZiAoIWV4aXN0aW5nIHx8IChtLnByaW9yaXR5ID8/IDApID4gKGV4aXN0aW5nLnByaW9yaXR5ID8/IDApKSB7XG4gICAgICAgICAgICAgICAgbWFwLnNldChuYW1lLCBtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBBZGQgcHJvdmlkZXIgbWlkZGxld2FyZXMgZmlyc3QgKGhpZ2hlciBwcmVjZWRlbmNlKVxuICAgICAgICB0aGlzLnByb3ZpZGVyTWlkZGxld2FyZXMuZm9yRWFjaChhZGRNaWRkbGV3YXJlKTtcblxuICAgICAgICAvLyBBZGQgbWFudWFsIG1pZGRsZXdhcmVzXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5tYW51YWxNaWRkbGV3YXJlcy52YWx1ZXMoKSkuZm9yRWFjaChhZGRNaWRkbGV3YXJlKTtcblxuICAgICAgICAvLyBSZXR1cm4gc29ydGVkIGJ5IHByaW9yaXR5IChoaWdoZXN0IGZpcnN0KVxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShtYXAudmFsdWVzKCkpLnNvcnQoKGEsIGIpID0+IChiLnByaW9yaXR5ID8/IDApIC0gKGEucHJpb3JpdHkgPz8gMCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgbWlkZGxld2FyZSBleGlzdHNcbiAgICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBtaWRkbGV3YXJlIG5hbWVcbiAgICAgKi9cbiAgICBleGlzdHMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldChuYW1lKSAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFyIGFsbCBtYW51YWxseSByZWdpc3RlcmVkIG1pZGRsZXdhcmVzXG4gICAgICogUHJvdmlkZXItYmFzZWQgbWlkZGxld2FyZXMgYXJlIG5vdCBhZmZlY3RlZFxuICAgICAqL1xuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1hbnVhbE1pZGRsZXdhcmVzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { createMenuContext } from './menu.context';\nimport { AXPMenuMiddlewareRegistry } from './menu-middleware.registry';\nimport * as i0 from \"@angular/core\";\nexport const AXP_MENU_PROVIDER = new InjectionToken('AXP_MENU_PROVIDER');\nexport class AXPMenuProviderService {\n constructor() {\n //#region ---- Dependencies ----\n this.providers = inject(AXP_MENU_PROVIDER, { optional: true });\n this.middlewareRegistry = inject(AXPMenuMiddlewareRegistry);\n //#endregion\n //#region ---- State ----\n this.cache = null;\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n /**\n * Observable for menu reload events\n * Emits when menu cache is cleared and consumers should reload\n */\n this.menuReloadSubject = new Subject();\n this.menuReload$ = this.menuReloadSubject.asObservable();\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Get menu items with middlewares applied (for end-user display)\n */\n async items() {\n // Return cached items if available\n if (this.cache) {\n return this.cache;\n }\n const items = [];\n const context = this.createMenuProviderContext(items);\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n // Apply pending operations\n this.applyPendingOperations(items);\n // Sort items by priority\n items.sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n // Apply middlewares using registry (sorted by priority)\n await this.applyMiddlewares(items);\n // ADD level property to items\n setMenuItemMeta(items);\n // Cache the computed items\n this.cache = items;\n return items;\n }\n /**\n * Get raw menu items WITHOUT middleware applied (for management/editing)\n * Used by menu management pages to show original items before customization\n */\n async rawItems() {\n const items = [];\n const context = this.createMenuProviderContext(items);\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n // Apply pending operations\n this.applyPendingOperations(items);\n // Sort items by priority\n items.sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n // ADD level property to items (but NO middleware)\n setMenuItemMeta(items);\n return items;\n }\n /**\n * Clear the cache to force reload of menu items\n * Notifies all subscribers to reload their menu data\n */\n clearCache() {\n this.cache = null;\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n // Notify subscribers that menu should be reloaded\n this.menuReloadSubject.next();\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Apply middlewares in priority order using the enhanced context API\n */\n async applyMiddlewares(items) {\n const middlewares = this.middlewareRegistry.list();\n for (const middleware of middlewares) {\n try {\n const context = createMenuContext(items);\n await middleware.process(context);\n // The context mutates the items array, so no need to reassign\n }\n catch (error) {\n console.error(`Error in menu middleware ${middleware.name || 'anonymous'}:`, error);\n }\n }\n }\n /**\n * Create provider context for menu providers\n */\n createMenuProviderContext(items) {\n return {\n addItems: (newItems) => {\n items.push(...newItems);\n },\n find: (target) => {\n return {\n insert: (newItems, position) => {\n this.pendingInserts.push({ target, newItems, position });\n },\n remove: () => {\n this.pendingRemovals.push(target);\n },\n update: (updatedItem) => {\n this.pendingUpdates.push({ target, updatedItem });\n },\n addItems: (newItems) => {\n this.pendingAdditions.push({ target, newItems });\n }\n };\n }\n };\n }\n applyPendingOperations(items) {\n for (const { target, newItems, position } of this.pendingInserts) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, appending items.`);\n items.push(...newItems);\n }\n else {\n if (position == 'inside') {\n foundItem.children?.push(...newItems);\n }\n else {\n const index = parentItems.indexOf(foundItem);\n const insertPosition = position === 'before' ? index : index + 1;\n parentItems.splice(insertPosition, 0, ...newItems);\n }\n }\n }\n for (const target of this.pendingRemovals) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem, parentItems } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to remove.`);\n }\n else {\n const index = parentItems.indexOf(foundItem);\n parentItems.splice(index, 1);\n }\n }\n for (const { target, updatedItem } of this.pendingUpdates) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to update.`);\n }\n else {\n Object.assign(foundItem, updatedItem);\n }\n }\n for (const { target, newItems } of this.pendingAdditions) {\n const foundItemInfo = this.findItemWithParent(items, target);\n const { foundItem } = foundItemInfo;\n if (!foundItem) {\n console.warn(`Target \"${target}\" not found, nothing to add items to.`);\n }\n else {\n if (!foundItem.children) {\n foundItem.children = [];\n }\n foundItem.children.push(...newItems);\n }\n }\n // Clear pending operations after applying them\n this.pendingInserts = [];\n this.pendingRemovals = [];\n this.pendingUpdates = [];\n this.pendingAdditions = [];\n }\n findItemWithParent(items, target, parentItems = items) {\n for (const item of items) {\n if (item.name === target) {\n return { foundItem: item, parentItems };\n }\n if (item.children) {\n const result = this.findItemWithParent(item.children, target, item.children);\n if (result.foundItem) {\n return result;\n }\n }\n }\n return { foundItem: null, parentItems: items };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPMenuProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPMenuProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPMenuProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nfunction setMenuItemMeta(items, parentIndex = '', depth = 0) {\n items.forEach((item, index) => {\n const currentIndex = parentIndex ? `${parentIndex}-${index}` : `${index}`;\n const hasChildren = !!(item.children && Array.isArray(item.children) && item.children.length > 0);\n item.meta = {\n index: currentIndex,\n isRoot: depth === 0,\n hasChildren,\n depth\n };\n if (hasChildren) {\n setMenuItemMeta(item.children, currentIndex, depth + 1);\n }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvbGF5b3V0L21lbnUvbWVudS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFNdkUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQW9CLG1CQUFtQixDQUFDLENBQUM7QUFHNUYsTUFBTSxPQUFPLHNCQUFzQjtJQURuQztRQUdJLG9DQUFvQztRQUU1QixjQUFTLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUQsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFL0QsWUFBWTtRQUVaLDZCQUE2QjtRQUVyQixVQUFLLEdBQXlCLElBQUksQ0FBQztRQUNuQyxtQkFBYyxHQUFtRixFQUFFLENBQUM7UUFDcEcsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDL0IsbUJBQWMsR0FBaUUsRUFBRSxDQUFDO1FBQ2xGLHFCQUFnQixHQUF1RCxFQUFFLENBQUM7UUFFbEY7OztXQUdHO1FBQ0ssc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQW1OdkU7SUFqTkcsWUFBWTtJQUVaLGtDQUFrQztJQUVsQzs7T0FFRztJ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K0dBdE9RLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBNE9sQyxTQUFTLGVBQWUsQ0FBQyxLQUFZLEVBQUUsY0FBc0IsRUFBRSxFQUFFLFFBQWdCLENBQUM7SUFDOUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMxQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQzFFLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFbEcsSUFBSSxDQUFDLElBQUksR0FBRztZQUNSLEtBQUssRUFBRSxZQUFZO1lBQ25CLE1BQU0sRUFBRSxLQUFLLEtBQUssQ0FBQztZQUNuQixXQUFXO1lBQ1gsS0FBSztTQUNSLENBQUE7UUFFRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2QsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQTWVudUZpbmRlclJlc3VsdCwgQVhQTWVudUluc2VydGlvbiwgQVhQTWVudUl0ZW0sIEFYUE1lbnVQcm92aWRlckNvbnRleHQgfSBmcm9tICcuL21lbnUudHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlTWVudUNvbnRleHQgfSBmcm9tICcuL21lbnUuY29udGV4dCc7XG5pbXBvcnQgeyBBWFBNZW51TWlkZGxld2FyZVJlZ2lzdHJ5IH0gZnJvbSAnLi9tZW51LW1pZGRsZXdhcmUucmVnaXN0cnknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUE1lbnVQcm92aWRlciB7XG4gICAgcHJvdmlkZShjb250ZXh0OiBBWFBNZW51UHJvdmlkZXJDb250ZXh0KTogUHJvbWlzZTx2b2lkPjtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9NRU5VX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUE1lbnVQcm92aWRlcltdPignQVhQX01FTlVfUFJPVklERVInKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBNZW51UHJvdmlkZXJTZXJ2aWNlIHtcblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSBwcm92aWRlcnMgPSBpbmplY3QoQVhQX01FTlVfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgcHJpdmF0ZSBtaWRkbGV3YXJlUmVnaXN0cnkgPSBpbmplY3QoQVhQTWVudU1pZGRsZXdhcmVSZWdpc3RyeSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgU3RhdGUgICAtLS0tXG5cbiAgICBwcml2YXRlIGNhY2hlOiBBWFBNZW51SXRlbVtdIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBwZW5kaW5nSW5zZXJ0czogQXJyYXk8eyB0YXJnZXQ6IHN0cmluZzsgbmV3SXRlbXM6IEFYUE1lbnVJdGVtW107IHBvc2l0aW9uOiBBWFBNZW51SW5zZXJ0aW9uIH0+ID0gW107XG4gICAgcHJpdmF0ZSBwZW5kaW5nUmVtb3ZhbHM6IHN0cmluZ1tdID0gW107XG4gICAgcHJpdmF0ZSBwZW5kaW5nVXBkYXRlczogQXJyYXk8eyB0YXJnZXQ6IHN0cmluZzsgdXBkYXRlZEl0ZW06IFBhcnRpYWw8QVhQTWVudUl0ZW0+IH0+ID0gW107XG4gICAgcHJpdmF0ZSBwZW5kaW5nQWRkaXRpb25zOiBBcnJheTx7IHRhcmdldDogc3RyaW5nOyBuZXdJdGVtczogQVhQTWVudUl0ZW1bXSB9PiA9IFtdO1xuICAgIFxuICAgIC8qKlxuICAgICAqIE9ic2VydmFibGUgZm9yIG1lbnUgcmVsb2FkIGV2ZW50c1xuICAgICAqIEVtaXRzIHdoZW4gbWVudSBjYWNoZSBpcyBjbGVhcmVkIGFuZCBjb25zdW1lcnMgc2hvdWxkIHJlbG9hZFxuICAgICAqL1xuICAgIHByaXZhdGUgbWVudVJlbG9hZFN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHB1YmxpYyByZWFkb25seSBtZW51UmVsb2FkJCA9IHRoaXMubWVudVJlbG9hZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgUHVibGljIEFQSSAgIC0tLS1cblxuICAgIC8qKlxuICAgICAqIEdldCBtZW51IGl0ZW1zIHdpdGggbWlkZGxld2FyZXMgYXBwbGllZCAoZm9yIGVuZC11c2VyIGRpc3BsYXkpXG4gICAgICovXG4gICAgYXN5bmMgaXRlbXMoKTogUHJvbWlzZTxBWFBNZW51SXRlbVtdPiB7XG4gICAgICAgIC8vIFJldHVybiBjYWNoZWQgaXRlbXMgaWYgYXZhaWxhYmxlXG4gICAgICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jYWNoZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1zOiBBWFBNZW51SXRlbVtdID0gW107XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNyZWF0ZU1lbnVQcm92aWRlckNvbnRleHQoaXRlbXMpO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgICAgICAgICAgIGF3YWl0IHByb3ZpZGVyLnByb3ZpZGUoY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBwZW5kaW5nIG9wZXJhdGlvbnNcbiAgICAgICAgdGhpcy5hcHBseVBlbmRpbmdPcGVyYXRpb25zKGl0ZW1zKTtcblxuICAgICAgICAvLyBTb3J0IGl0ZW1zIGJ5IHByaW9yaXR5XG4gICAgICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+IChhLnByaW9yaXR5ID8/IDApIC0gKGIucHJpb3JpdHkgPz8gMCkpO1xuXG4gICAgICAgIC8vIEFwcGx5IG1pZGRsZXdhcmVzIHVzaW5nIHJlZ2lzdHJ5IChzb3J0ZWQgYnkgcHJpb3JpdHkpXG4gICAgICAgIGF3YWl0IHRoaXMuYXBwbHlNaWRkbGV3YXJlcyhpdGVtcyk7XG5cbiAgICAgICAgLy8gQUREIGxldmVsIHByb3BlcnR5IHRvIGl0ZW1zXG4gICAgICAgIHNldE1lbnVJdGVtTWV0YShpdGVtcyk7XG5cbiAgICAgICAgLy8gQ2FjaGUgdGhlIGNvbXB1dGVkIGl0ZW1zXG4gICAgICAgIHRoaXMuY2FjaGUgPSBpdGVtcztcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCByYXcgbWVudSBpdGVtcyBXSVRIT1VUIG1pZGRsZXdhcmUgYXBwbGllZCAoZm9yIG1hbmFnZW1lbnQvZWRpdGluZylcbiAgICAgKiBVc2VkIGJ5IG1lbnUgbWFuYWdlbWVudCBwYWdlcyB0byBzaG93IG9yaWdpbmFsIGl0ZW1zIGJlZm9yZSBjdXN0b21pemF0aW9uXG4gICAgICovXG4gICAgYXN5bmMgcmF3SXRlbXMoKTogUHJvbWlzZTxBWFBNZW51SXRlbVtdPiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBBWFBNZW51SXRlbVtdID0gW107XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNyZWF0ZU1lbnVQcm92aWRlckNvbnRleHQoaXRlbXMpO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgICAgICAgICAgIGF3YWl0IHByb3ZpZGVyLnByb3ZpZGUoY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBwZW5kaW5nIG9wZXJhdGlvbnNcbiAgICAgICAgdGhpcy5hcHBseVBlbmRpbmdPcGVyYXRpb25zKGl0ZW1zKTtcblxuICAgICAgICAvLyBTb3J0IGl0ZW1zIGJ5IHByaW9yaXR5XG4gICAgICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+IChhLnByaW9yaXR5ID8/IDApIC0gKGIucHJpb3JpdHkgPz8gMCkpO1xuXG4gICAgICAgIC8vIEFERCBsZXZlbCBwcm9wZXJ0eSB0byBpdGVtcyAoYnV0IE5PIG1pZGRsZXdhcmUpXG4gICAgICAgIHNldE1lbnVJdGVtTWV0YShpdGVtcyk7XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFyIHRoZSBjYWNoZSB0byBmb3JjZSByZWxvYWQgb2YgbWVudSBpdGVtc1xuICAgICAqIE5vdGlmaWVzIGFsbCBzdWJzY3JpYmVycyB0byByZWxvYWQgdGhlaXIgbWVudSBkYXRhXG4gICAgICovXG4gICAgY2xlYXJDYWNoZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYWNoZSA9IG51bGw7XG4gICAgICAgIHRoaXMucGVuZGluZ0luc2VydHMgPSBbXTtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVtb3ZhbHMgPSBbXTtcbiAgICAgICAgdGhpcy5wZW5kaW5nVXBkYXRlcyA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdBZGRpdGlvbnMgPSBbXTtcbiAgICAgICAgXG4gICAgICAgIC8vIE5vdGlmeSBzdWJzY3JpYmVycyB0aGF0IG1lbnUgc2hvdWxkIGJlIHJlbG9hZGVkXG4gICAgICAgIHRoaXMubWVudVJlbG9hZFN1YmplY3QubmV4dCgpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQcml2YXRlIE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBBcHBseSBtaWRkbGV3YXJlcyBpbiBwcmlvcml0eSBvcmRlciB1c2luZyB0aGUgZW5oYW5jZWQgY29udGV4dCBBUElcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIGFwcGx5TWlkZGxld2FyZXMoaXRlbXM6IEFYUE1lbnVJdGVtW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgbWlkZGxld2FyZXMgPSB0aGlzLm1pZGRsZXdhcmVSZWdpc3RyeS5saXN0KCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBtaWRkbGV3YXJlIG9mIG1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVNZW51Q29udGV4dChpdGVtcyk7XG4gICAgICAgICAgICAgICAgYXdhaXQgbWlkZGxld2FyZS5wcm9jZXNzKGNvbnRleHQpO1xuXG4gICAgICAgICAgICAgICAgLy8gVGhlIGNvbnRleHQgbXV0YXRlcyB0aGUgaXRlbXMgYXJyYXksIHNvIG5vIG5lZWQgdG8gcmVhc3NpZ25cbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYEVycm9yIGluIG1lbnUgbWlkZGxld2FyZSAke21pZGRsZXdhcmUubmFtZSB8fCAnYW5vbnltb3VzJ306YCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIHByb3ZpZGVyIGNvbnRleHQgZm9yIG1lbnUgcHJvdmlkZXJzXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVNZW51UHJvdmlkZXJDb250ZXh0KGl0ZW1zOiBBWFBNZW51SXRlbVtdKTogQVhQTWVudVByb3ZpZGVyQ29udGV4dCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBhZGRJdGVtczogKG5ld0l0ZW1zOiBBWFBNZW51SXRlbVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCguLi5uZXdJdGVtcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZmluZDogKHRhcmdldDogc3RyaW5nKTogQVhQTWVudUZpbmRlclJlc3VsdCA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0OiAobmV3SXRlbXM6IEFYUE1lbnVJdGVtW10sIHBvc2l0aW9uOiBBWFBNZW51SW5zZXJ0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdJbnNlcnRzLnB1c2goeyB0YXJnZXQsIG5ld0l0ZW1zLCBwb3NpdGlvbiB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdSZW1vdmFscy5wdXNoKHRhcmdldCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZTogKHVwZGF0ZWRJdGVtOiBQYXJ0aWFsPEFYUE1lbnVJdGVtPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nVXBkYXRlcy5wdXNoKHsgdGFyZ2V0LCB1cGRhdGVkSXRlbSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgYWRkSXRlbXM6IChuZXdJdGVtczogQVhQTWVudUl0ZW1bXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQWRkaXRpb25zLnB1c2goeyB0YXJnZXQsIG5ld0l0ZW1zIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5UGVuZGluZ09wZXJhdGlvbnMoaXRlbXM6IEFYUE1lbnVJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCB7IHRhcmdldCwgbmV3SXRlbXMsIHBvc2l0aW9uIH0gb2YgdGhpcy5wZW5kaW5nSW5zZXJ0cykge1xuICAgICAgICAgICAgY29uc3QgZm91bmRJdGVtSW5mbyA9IHRoaXMuZmluZEl0ZW1XaXRoUGFyZW50KGl0ZW1zLCB0YXJnZXQpO1xuICAgICAgICAgICAgY29uc3QgeyBmb3VuZEl0ZW0sIHBhcmVudEl0ZW1zIH0gPSBmb3VuZEl0ZW1JbmZvO1xuICAgICAgICAgICAgaWYgKCFmb3VuZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFRhcmdldCBcIiR7dGFyZ2V0fVwiIG5vdCBmb3VuZCwgYXBwZW5kaW5nIGl0ZW1zLmApO1xuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goLi4ubmV3SXRlbXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPT0gJ2luc2lkZScpIHtcbiAgICAgICAgICAgICAgICAgICAgZm91bmRJdGVtLmNoaWxkcmVuPy5wdXNoKC4uLm5ld0l0ZW1zKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJlbnRJdGVtcy5pbmRleE9mKGZvdW5kSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydFBvc2l0aW9uID0gcG9zaXRpb24gPT09ICdiZWZvcmUnID8gaW5kZXggOiBpbmRleCArIDE7XG4gICAgICAgICAgICAgICAgICAgIHBhcmVudEl0ZW1zLnNwbGljZShpbnNlcnRQb3NpdGlvbiwgMCwgLi4ubmV3SXRlbXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRoaXMucGVuZGluZ1JlbW92YWxzKSB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZEl0ZW1JbmZvID0gdGhpcy5maW5kSXRlbVdpdGhQYXJlbnQoaXRlbXMsIHRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCB7IGZvdW5kSXRlbSwgcGFyZW50SXRlbXMgfSA9IGZvdW5kSXRlbUluZm87XG4gICAgICAgICAgICBpZiAoIWZvdW5kSXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVGFyZ2V0IFwiJHt0YXJnZXR9XCIgbm90IGZvdW5kLCBub3RoaW5nIHRvIHJlbW92ZS5gKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBwYXJlbnRJdGVtcy5pbmRleE9mKGZvdW5kSXRlbSk7XG4gICAgICAgICAgICAgICAgcGFyZW50SXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgeyB0YXJnZXQsIHVwZGF0ZWRJdGVtIH0gb2YgdGhpcy5wZW5kaW5nVXBkYXRlcykge1xuICAgICAgICAgICAgY29uc3QgZm91bmRJdGVtSW5mbyA9IHRoaXMuZmluZEl0ZW1XaXRoUGFyZW50KGl0ZW1zLCB0YXJnZXQpO1xuICAgICAgICAgICAgY29uc3QgeyBmb3VuZEl0ZW0gfSA9IGZvdW5kSXRlbUluZm87XG4gICAgICAgICAgICBpZiAoIWZvdW5kSXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVGFyZ2V0IFwiJHt0YXJnZXR9XCIgbm90IGZvdW5kLCBub3RoaW5nIHRvIHVwZGF0ZS5gKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihmb3VuZEl0ZW0sIHVwZGF0ZWRJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgeyB0YXJnZXQsIG5ld0l0ZW1zIH0gb2YgdGhpcy5wZW5kaW5nQWRkaXRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZEl0ZW1JbmZvID0gdGhpcy5maW5kSXRlbVdpdGhQYXJlbnQoaXRlbXMsIHRhcmdldCk7XG4gICAgICAgICAgICBjb25zdCB7IGZvdW5kSXRlbSB9ID0gZm91bmRJdGVtSW5mbztcbiAgICAgICAgICAgIGlmICghZm91bmRJdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBUYXJnZXQgXCIke3RhcmdldH1cIiBub3QgZm91bmQsIG5vdGhpbmcgdG8gYWRkIGl0ZW1zIHRvLmApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZvdW5kSXRlbS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgICBmb3VuZEl0ZW0uY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm91bmRJdGVtLmNoaWxkcmVuLnB1c2goLi4ubmV3SXRlbXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2xlYXIgcGVuZGluZyBvcGVyYXRpb25zIGFmdGVyIGFwcGx5aW5nIHRoZW1cbiAgICAgICAgdGhpcy5wZW5kaW5nSW5zZXJ0cyA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdSZW1vdmFscyA9IFtdO1xuICAgICAgICB0aGlzLnBlbmRpbmdVcGRhdGVzID0gW107XG4gICAgICAgIHRoaXMucGVuZGluZ0FkZGl0aW9ucyA9IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZEl0ZW1XaXRoUGFyZW50KGl0ZW1zOiBBWFBNZW51SXRlbVtdLCB0YXJnZXQ6IHN0cmluZywgcGFyZW50SXRlbXM6IEFYUE1lbnVJdGVtW10gPSBpdGVtcyk6IHsgZm91bmRJdGVtOiBBWFBNZW51SXRlbSB8IG51bGwsIHBhcmVudEl0ZW1zOiBBWFBNZW51SXRlbVtdIH0ge1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLm5hbWUgPT09IHRhcmdldCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGZvdW5kSXRlbTogaXRlbSwgcGFyZW50SXRlbXMgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZpbmRJdGVtV2l0aFBhcmVudChpdGVtLmNoaWxkcmVuLCB0YXJnZXQsIGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZm91bmRJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGZvdW5kSXRlbTogbnVsbCwgcGFyZW50SXRlbXM6IGl0ZW1zIH07XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59XG5cbmZ1bmN0aW9uIHNldE1lbnVJdGVtTWV0YShpdGVtczogYW55W10sIHBhcmVudEluZGV4OiBzdHJpbmcgPSAnJywgZGVwdGg6IG51bWJlciA9IDApIHtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSBwYXJlbnRJbmRleCA/IGAke3BhcmVudEluZGV4fS0ke2luZGV4fWAgOiBgJHtpbmRleH1gO1xuICAgICAgICBjb25zdCBoYXNDaGlsZHJlbiA9ICEhKGl0ZW0uY2hpbGRyZW4gJiYgQXJyYXkuaXNBcnJheShpdGVtLmNoaWxkcmVuKSAmJiBpdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApO1xuXG4gICAgICAgIGl0ZW0ubWV0YSA9IHtcbiAgICAgICAgICAgIGluZGV4OiBjdXJyZW50SW5kZXgsXG4gICAgICAgICAgICBpc1Jvb3Q6IGRlcHRoID09PSAwLFxuICAgICAgICAgICAgaGFzQ2hpbGRyZW4sXG4gICAgICAgICAgICBkZXB0aFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICBzZXRNZW51SXRlbU1ldGEoaXRlbS5jaGlsZHJlbiwgY3VycmVudEluZGV4LCBkZXB0aCArIDEpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG4iXX0=","import { makeEnvironmentProviders } from '@angular/core';\nimport { AXP_MENU_MIDDLEWARE } from './menu.middleware';\n//#region ---- Menu Middleware Provider Helper ----\n/**\n * Helper function to provide menu middlewares with proper DI setup\n * Similar to provideCommandMiddleware pattern\n *\n * @example\n * ```typescript\n * // In app.config.ts or module providers\n * export const appConfig: ApplicationConfig = {\n * providers: [\n * provideMenuMiddleware([\n * customizationMiddleware,\n * securityMiddleware,\n * loggingMiddleware\n * ])\n * ]\n * };\n * ```\n */\nexport function provideMenuMiddleware(middlewares) {\n return makeEnvironmentProviders([\n ...middlewares.map((middleware) => ({\n provide: AXP_MENU_MIDDLEWARE,\n useValue: middleware,\n multi: true,\n })),\n ]);\n}\n/**\n * Helper to create a class-based middleware with priority\n *\n * @example\n * ```typescript\n * const myMiddleware = createMenuMiddleware({\n * name: 'my-middleware',\n * priority: 100,\n * process: async (context) => {\n * context.find('dashboard').setPriority(1);\n * }\n * });\n * ```\n */\nexport function createMenuMiddleware(config) {\n return {\n name: config.name,\n priority: config.priority ?? 0,\n process: config.process,\n };\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1tZW51LW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2xheW91dC9tZW51L3Byb3ZpZGUtbWVudS1taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBd0Isd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLG1CQUFtQixDQUFDO0FBRTNFLHVEQUF1RDtBQUV2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLFdBQWdDO0lBRWhDLE9BQU8sd0JBQXdCLENBQUM7UUFDNUIsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsUUFBUSxFQUFFLFVBQVU7WUFDcEIsS0FBSyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7S0FDTixDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUlwQztJQUNHLE9BQU87UUFDSCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQztRQUM5QixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87S0FDMUIsQ0FBQztBQUNOLENBQUM7QUFFRCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX01FTlVfTUlERExFV0FSRSwgQVhQTWVudU1pZGRsZXdhcmUgfSBmcm9tICcuL21lbnUubWlkZGxld2FyZSc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgTWVudSBNaWRkbGV3YXJlIFByb3ZpZGVyIEhlbHBlciAgIC0tLS1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gcHJvdmlkZSBtZW51IG1pZGRsZXdhcmVzIHdpdGggcHJvcGVyIERJIHNldHVwXG4gKiBTaW1pbGFyIHRvIHByb3ZpZGVDb21tYW5kTWlkZGxld2FyZSBwYXR0ZXJuXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhcHAuY29uZmlnLnRzIG9yIG1vZHVsZSBwcm92aWRlcnNcbiAqIGV4cG9ydCBjb25zdCBhcHBDb25maWc6IEFwcGxpY2F0aW9uQ29uZmlnID0ge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlTWVudU1pZGRsZXdhcmUoW1xuICogICAgICAgY3VzdG9taXphdGlvbk1pZGRsZXdhcmUsXG4gKiAgICAgICBzZWN1cml0eU1pZGRsZXdhcmUsXG4gKiAgICAgICBsb2dnaW5nTWlkZGxld2FyZVxuICogICAgIF0pXG4gKiAgIF1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVNZW51TWlkZGxld2FyZShcbiAgICBtaWRkbGV3YXJlczogQVhQTWVudU1pZGRsZXdhcmVbXVxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICAgIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICAuLi5taWRkbGV3YXJlcy5tYXAoKG1pZGRsZXdhcmUpID0+ICh7XG4gICAgICAgICAgICBwcm92aWRlOiBBWFBfTUVOVV9NSURETEVXQVJFLFxuICAgICAgICAgICAgdXNlVmFsdWU6IG1pZGRsZXdhcmUsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSkpLFxuICAgIF0pO1xufVxuXG4vKipcbiAqIEhlbHBlciB0byBjcmVhdGUgYSBjbGFzcy1iYXNlZCBtaWRkbGV3YXJlIHdpdGggcHJpb3JpdHlcbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG15TWlkZGxld2FyZSA9IGNyZWF0ZU1lbnVNaWRkbGV3YXJlKHtcbiAqICAgbmFtZTogJ215LW1pZGRsZXdhcmUnLFxuICogICBwcmlvcml0eTogMTAwLFxuICogICBwcm9jZXNzOiBhc3luYyAoY29udGV4dCkgPT4ge1xuICogICAgIGNvbnRleHQuZmluZCgnZGFzaGJvYXJkJykuc2V0UHJpb3JpdHkoMSk7XG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZW51TWlkZGxld2FyZShjb25maWc6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcHJpb3JpdHk/OiBudW1iZXI7XG4gICAgcHJvY2VzczogKGNvbnRleHQ6IGltcG9ydCgnLi9tZW51Lm1pZGRsZXdhcmUnKS5BWFBNZW51TWlkZGxld2FyZUNvbnRleHQpID0+IFByb21pc2U8dm9pZD47XG59KTogQVhQTWVudU1pZGRsZXdhcmUge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGNvbmZpZy5uYW1lLFxuICAgICAgICBwcmlvcml0eTogY29uZmlnLnByaW9yaXR5ID8/IDAsXG4gICAgICAgIHByb2Nlc3M6IGNvbmZpZy5wcm9jZXNzLFxuICAgIH07XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { AXPCommandExecutor } from '@acorex/platform/runtime';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { patchState, signalStore, withHooks, withMethods, withState } from '@ngrx/signals';\nimport { AXPMenuProviderService } from './menu.provider';\nexport const AXPMenuService = signalStore({ providedIn: 'root' }, \n// Initial State\nwithState((router = inject(Router)) => {\n return {\n items: [],\n selectedMenuItem: {\n item: null,\n isFullMatch: false,\n },\n };\n}), \n// Methods for State Management\nwithMethods((store, router = inject(Router), workflow = inject(AXPWorkflowService), commandExecutor = inject(AXPCommandExecutor)) => {\n return {\n setMenuItems(items) {\n patchState(store, { items: items });\n },\n selectMenuItemByRoute(path) {\n const currentRawPath = path;\n const findItem = (items) => {\n for (const item of items) {\n // Recursively search children first\n if (item.children) {\n const foundChild = findItem(item.children);\n if (foundChild.item) {\n return foundChild;\n }\n }\n if (item.path) {\n // Check if the item path matches the current path (including query param subset if provided on item)\n const matchResult = pathsMatch(item.path, currentRawPath, ['list', 'view', 'edit', 'create']);\n if (matchResult.isMatch) {\n return { item, isPartialMatch: matchResult.isPartial };\n }\n }\n }\n return { item: null, isPartialMatch: false };\n };\n const pathsMatch = (itemPath, currentPath, trailingSegmentsToIgnore = []) => {\n // Split base and query/hash\n const itemNoHash = itemPath.split('#')[0];\n const currentNoHash = currentPath.split('#')[0];\n const [itemBase, itemQueryString = ''] = itemNoHash.split('?');\n const [currentBase, currentQueryString = ''] = currentNoHash.split('?');\n const itemSegments = itemBase.split('/').filter((segment) => segment.length > 0);\n const pathSegments = currentBase.split('/').filter((segment) => segment.length > 0);\n const menuLength = itemSegments.length;\n const pathLength = pathSegments.length;\n // Identify the effective base length for the menuPath\n let effectiveMenuLength = menuLength;\n if (menuLength > 0 && trailingSegmentsToIgnore.includes(itemSegments[menuLength - 1])) {\n effectiveMenuLength--; // Exclude trailing non-hierarchical segments\n }\n // Check if the menuPath (base segments) is a prefix of browserPath\n let isPrefix = true;\n if (pathLength < effectiveMenuLength) {\n return { isMatch: false, isPartial: false };\n }\n for (let i = 0; i < effectiveMenuLength; i++) {\n if (itemSegments[i] !== pathSegments[i]) {\n isPrefix = false;\n break;\n }\n }\n if (!isPrefix) {\n return { isMatch: false, isPartial: false };\n }\n // Partial match: menuPath base is a strict prefix of browserPath\n const isPartialMatch = effectiveMenuLength < pathLength;\n // Exact match: all segments match completely\n const isExactMatch = effectiveMenuLength === pathLength;\n // Query params subset match: if item defines any query params, require them to match\n const itemParams = new URLSearchParams(itemQueryString);\n const currentParams = new URLSearchParams(currentQueryString);\n let queryMatches = true;\n const itemParamPairs = [];\n itemParams.forEach((value, key) => {\n itemParamPairs.push([key, value]);\n });\n if (itemParamPairs.length > 0) {\n for (const [k, v] of itemParamPairs) {\n if (currentParams.get(k) !== v) {\n queryMatches = false;\n break;\n }\n }\n }\n return {\n isMatch: (isExactMatch || isPartialMatch) && queryMatches,\n isPartial: isPartialMatch && !isExactMatch,\n };\n };\n const items = store.items();\n const { item, isPartialMatch } = findItem(items);\n patchState(store, { selectedMenuItem: { item, isFullMatch: !isPartialMatch } });\n },\n executeCommand(item) {\n if (item.path) {\n workflow.execute('navigate', {\n type: 'router',\n options: { path: item.path },\n });\n patchState(store, { selectedMenuItem: { item, isFullMatch: true } });\n }\n if (item.command) {\n const command = item.command;\n if (workflow.exists(command?.name)) {\n workflow.execute(command.name, command.options);\n }\n else {\n commandExecutor.execute(command.name, command.options);\n }\n }\n },\n isItemOpen(item) {\n const selectedItem = store.selectedMenuItem();\n if (!selectedItem.item) {\n return false;\n }\n const findParent = (currentItem, targetItem) => {\n if (currentItem.children?.includes(targetItem)) {\n return true;\n }\n return currentItem.children?.some((child) => findParent(child, targetItem)) ?? false;\n };\n return item === selectedItem.item || findParent(item, selectedItem.item);\n },\n };\n}), withHooks((store, menuProviderService = inject(AXPMenuProviderService)) => {\n let reloadSubscription;\n return {\n onInit() {\n // Load initial menu items\n (async () => {\n const items = await menuProviderService.items();\n patchState(store, { items: items });\n })();\n // Subscribe to menu reload events\n reloadSubscription = menuProviderService.menuReload$.subscribe(async () => {\n const items = await menuProviderService.items();\n patchState(store, { items: items });\n });\n },\n onDestroy() {\n // Clean up subscription\n if (reloadSubscription) {\n reloadSubscription.unsubscribe();\n }\n },\n };\n}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHekQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FDdkMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO0FBRXRCLGdCQUFnQjtBQUNoQixTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7SUFDcEMsT0FBTztRQUNMLEtBQUssRUFBRSxFQUFtQjtRQUMxQixnQkFBZ0IsRUFBRTtZQUNoQixJQUFJLEVBQUUsSUFBMEI7WUFDaEMsV0FBVyxFQUFFLEtBQUs7U0FDbkI7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsK0JBQStCO0FBQy9CLFdBQVcsQ0FDVCxDQUNFLEtBQUssRUFDTCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUN2QixRQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLGVBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFDNUMsRUFBRTtJQUNG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QUM7SUFFNUIsT0FBTztRQUNMLE1BQU07WUFDSiwwQkFBMEI7WUFDMUIsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDVixNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoRCxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUVMLGtDQUFrQztZQUNsQyxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUN4RSxNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNoRCxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsU0FBUztZQUNQLHdCQUF3QjtZQUN4QixJQUFJLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3ZCLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25DLENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZCwgQVhQTmF2aWdhdGVBY3Rpb25Db21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmRFeGVjdXRvciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHBhdGNoU3RhdGUsIHNpZ25hbFN0b3JlLCB3aXRoSG9va3MsIHdpdGhNZXRob2RzLCB3aXRoU3RhdGUgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IEFYUE1lbnVQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL21lbnUucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQTWVudUl0ZW0gfSBmcm9tICcuL21lbnUudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQVhQTWVudVNlcnZpY2UgPSBzaWduYWxTdG9yZShcbiAgeyBwcm92aWRlZEluOiAncm9vdCcgfSxcblxuICAvLyBJbml0aWFsIFN0YXRlXG4gIHdpdGhTdGF0ZSgocm91dGVyID0gaW5qZWN0KFJvdXRlcikpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IFtdIGFzIEFYUE1lbnVJdGVtW10sXG4gICAgICBzZWxlY3RlZE1lbnVJdGVtOiB7XG4gICAgICAgIGl0ZW06IG51bGwgYXMgQVhQTWVudUl0ZW0gfCBudWxsLFxuICAgICAgICBpc0Z1bGxNYXRjaDogZmFsc2UsXG4gICAgICB9LFxuICAgIH07XG4gIH0pLFxuXG4gIC8vIE1ldGhvZHMgZm9yIFN0YXRlIE1hbmFnZW1lbnRcbiAgd2l0aE1ldGhvZHMoXG4gICAgKFxuICAgICAgc3RvcmUsXG4gICAgICByb3V0ZXIgPSBpbmplY3QoUm91dGVyKSxcbiAgICAgIHdvcmtmbG93ID0gaW5qZWN0KEFYUFdvcmtmbG93U2VydmljZSksXG4gICAgICBjb21tYW5kRXhlY3V0b3IgPSBpbmplY3QoQVhQQ29tbWFuZEV4ZWN1dG9yKSxcbiAgICApID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNldE1lbnVJdGVtcyhpdGVtczogQVhQTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgaXRlbXM6IGl0ZW1zIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIHNlbGVjdE1lbnVJdGVtQnlSb3V0ZShwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50UmF3UGF0aCA9IHBhdGg7XG5cbiAgICAgICAgICBjb25zdCBmaW5kSXRlbSA9IChpdGVtczogQVhQTWVudUl0ZW1bXSk6IHsgaXRlbTogQVhQTWVudUl0ZW0gfCBudWxsOyBpc1BhcnRpYWxNYXRjaDogYm9vbGVhbiB9ID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICAgICAgICAvLyBSZWN1cnNpdmVseSBzZWFyY2ggY2hpbGRyZW4gZmlyc3RcbiAgICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZENoaWxkID0gZmluZEl0ZW0oaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgaWYgKGZvdW5kQ2hpbGQuaXRlbSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGZvdW5kQ2hpbGQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChpdGVtLnBhdGgpIHtcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgaXRlbSBwYXRoIG1hdGNoZXMgdGhlIGN1cnJlbnQgcGF0aCAoaW5jbHVkaW5nIHF1ZXJ5IHBhcmFtIHN1YnNldCBpZiBwcm92aWRlZCBvbiBpdGVtKVxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoUmVzdWx0ID0gcGF0aHNNYXRjaChpdGVtLnBhdGgsIGN1cnJlbnRSYXdQYXRoLCBbJ2xpc3QnLCAndmlldycsICdlZGl0JywgJ2NyZWF0ZSddKTtcbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hSZXN1bHQuaXNNYXRjaCkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaXRlbSwgaXNQYXJ0aWFsTWF0Y2g6IG1hdGNoUmVzdWx0LmlzUGFydGlhbCB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgaXRlbTogbnVsbCwgaXNQYXJ0aWFsTWF0Y2g6IGZhbHNlIH07XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHBhdGhzTWF0Y2ggPSAoXG4gICAgICAgICAgICBpdGVtUGF0aDogc3RyaW5nLFxuICAgICAgICAgICAgY3VycmVudFBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgIHRyYWlsaW5nU2VnbWVudHNUb0lnbm9yZTogc3RyaW5nW10gPSBbXSxcbiAgICAgICAgICApOiB7IGlzTWF0Y2g6IGJvb2xlYW47IGlzUGFydGlhbDogYm9vbGVhbiB9ID0+IHtcbiAgICAgICAgICAgIC8vIFNwbGl0IGJhc2UgYW5kIHF1ZXJ5L2hhc2hcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1Ob0hhc2ggPSBpdGVtUGF0aC5zcGxpdCgnIycpWzBdO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudE5vSGFzaCA9IGN1cnJlbnRQYXRoLnNwbGl0KCcjJylbMF07XG5cbiAgICAgICAgICAgIGNvbnN0IFtpdGVtQmFzZSwgaXRlbVF1ZXJ5U3RyaW5nID0gJyddID0gaXRlbU5vSGFzaC5zcGxpdCgnPycpO1xuICAgICAgICAgICAgY29uc3QgW2N1cnJlbnRCYXNlLCBjdXJyZW50UXVlcnlTdHJpbmcgPSAnJ10gPSBjdXJyZW50Tm9IYXNoLnNwbGl0KCc/Jyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGl0ZW1TZWdtZW50cyA9IGl0ZW1CYXNlLnNwbGl0KCcvJykuZmlsdGVyKChzZWdtZW50KSA9PiBzZWdtZW50Lmxlbmd0aCA+IDApO1xuICAgICAgICAgICAgY29uc3QgcGF0aFNlZ21lbnRzID0gY3VycmVudEJhc2Uuc3BsaXQoJy8nKS5maWx0ZXIoKHNlZ21lbnQpID0+IHNlZ21lbnQubGVuZ3RoID4gMCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1lbnVMZW5ndGggPSBpdGVtU2VnbWVudHMubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgcGF0aExlbmd0aCA9IHBhdGhTZWdtZW50cy5sZW5ndGg7XG5cbiAgICAgICAgICAgIC8vIElkZW50aWZ5IHRoZSBlZmZlY3RpdmUgYmFzZSBsZW5ndGggZm9yIHRoZSBtZW51UGF0aFxuICAgICAgICAgICAgbGV0IGVmZmVjdGl2ZU1lbnVMZW5ndGggPSBtZW51TGVuZ3RoO1xuICAgICAgICAgICAgaWYgKG1lbnVMZW5ndGggPiAwICYmIHRyYWlsaW5nU2VnbWVudHNUb0lnbm9yZS5pbmNsdWRlcyhpdGVtU2VnbWVudHNbbWVudUxlbmd0aCAtIDFdKSkge1xuICAgICAgICAgICAgICBlZmZlY3RpdmVNZW51TGVuZ3RoLS07IC8vIEV4Y2x1ZGUgdHJhaWxpbmcgbm9uLWhpZXJhcmNoaWNhbCBzZWdtZW50c1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgbWVudVBhdGggKGJhc2Ugc2VnbWVudHMpIGlzIGEgcHJlZml4IG9mIGJyb3dzZXJQYXRoXG4gICAgICAgICAgICBsZXQgaXNQcmVmaXggPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHBhdGhMZW5ndGggPCBlZmZlY3RpdmVNZW51TGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IGlzTWF0Y2g6IGZhbHNlLCBpc1BhcnRpYWw6IGZhbHNlIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWZmZWN0aXZlTWVudUxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIGlmIChpdGVtU2VnbWVudHNbaV0gIT09IHBhdGhTZWdtZW50c1tpXSkge1xuICAgICAgICAgICAgICAgIGlzUHJlZml4ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpc1ByZWZpeCkge1xuICAgICAgICAgICAgICByZXR1cm4geyBpc01hdGNoOiBmYWxzZSwgaXNQYXJ0aWFsOiBmYWxzZSB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBQYXJ0aWFsIG1hdGNoOiBtZW51UGF0aCBiYXNlIGlzIGEgc3RyaWN0IHByZWZpeCBvZiBicm93c2VyUGF0aFxuICAgICAgICAgICAgY29uc3QgaXNQYXJ0aWFsTWF0Y2ggPSBlZmZlY3RpdmVNZW51TGVuZ3RoIDwgcGF0aExlbmd0aDtcblxuICAgICAgICAgICAgLy8gRXhhY3QgbWF0Y2g6IGFsbCBzZWdtZW50cyBtYXRjaCBjb21wbGV0ZWx5XG4gICAgICAgICAgICBjb25zdCBpc0V4YWN0TWF0Y2ggPSBlZmZlY3RpdmVNZW51TGVuZ3RoID09PSBwYXRoTGVuZ3RoO1xuXG4gICAgICAgICAgICAvLyBRdWVyeSBwYXJhbXMgc3Vic2V0IG1hdGNoOiBpZiBpdGVtIGRlZmluZXMgYW55IHF1ZXJ5IHBhcmFtcywgcmVxdWlyZSB0aGVtIHRvIG1hdGNoXG4gICAgICAgICAgICBjb25zdCBpdGVtUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhpdGVtUXVlcnlTdHJpbmcpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoY3VycmVudFF1ZXJ5U3RyaW5nKTtcbiAgICAgICAgICAgIGxldCBxdWVyeU1hdGNoZXMgPSB0cnVlO1xuICAgICAgICAgICAgY29uc3QgaXRlbVBhcmFtUGFpcnM6IEFycmF5PFtzdHJpbmcsIHN0cmluZ10+ID0gW107XG4gICAgICAgICAgICBpdGVtUGFyYW1zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgaXRlbVBhcmFtUGFpcnMucHVzaChba2V5LCB2YWx1ZV0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoaXRlbVBhcmFtUGFpcnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBpdGVtUGFyYW1QYWlycykge1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UGFyYW1zLmdldChrKSAhPT0gdikge1xuICAgICAgICAgICAgICAgICAgcXVlcnlNYXRjaGVzID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgaXNNYXRjaDogKGlzRXhhY3RNYXRjaCB8fCBpc1BhcnRpYWxNYXRjaCkgJiYgcXVlcnlNYXRjaGVzLFxuICAgICAgICAgICAgICBpc1BhcnRpYWw6IGlzUGFydGlhbE1hdGNoICYmICFpc0V4YWN0TWF0Y2gsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBpdGVtcyA9IHN0b3JlLml0ZW1zKCk7XG4gICAgICAgICAgY29uc3QgeyBpdGVtLCBpc1BhcnRpYWxNYXRjaCB9ID0gZmluZEl0ZW0oaXRlbXMpO1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHsgc2VsZWN0ZWRNZW51SXRlbTogeyBpdGVtLCBpc0Z1bGxNYXRjaDogIWlzUGFydGlhbE1hdGNoIH0gfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZXhlY3V0ZUNvbW1hbmQoaXRlbTogQVhQTWVudUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgICBpZiAoaXRlbS5wYXRoKSB7XG4gICAgICAgICAgICB3b3JrZmxvdy5leGVjdXRlKCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3JvdXRlcicsXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHsgcGF0aDogaXRlbS5wYXRoIH0sXG4gICAgICAgICAgICB9IGFzIEFYUE5hdmlnYXRlQWN0aW9uQ29tbWFuZDwncm91dGVyJz4pO1xuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBzZWxlY3RlZE1lbnVJdGVtOiB7IGl0ZW0sIGlzRnVsbE1hdGNoOiB0cnVlIH0gfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpdGVtLmNvbW1hbmQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQgPSBpdGVtLmNvbW1hbmQgYXMgQVhQRXhlY3V0ZUNvbW1hbmQ7XG4gICAgICAgICAgICBpZiAod29ya2Zsb3cuZXhpc3RzKGNvbW1hbmQ/Lm5hbWUpKSB7XG4gICAgICAgICAgICAgIHdvcmtmbG93LmV4ZWN1dGUoY29tbWFuZC5uYW1lLCBjb21tYW5kLm9wdGlvbnMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29tbWFuZEV4ZWN1dG9yLmV4ZWN1dGUoY29tbWFuZC5uYW1lLCBjb21tYW5kLm9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBpc0l0ZW1PcGVuKGl0ZW06IEFYUE1lbnVJdGVtKTogYm9vbGVhbiB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gc3RvcmUuc2VsZWN0ZWRNZW51SXRlbSgpO1xuICAgICAgICAgIGlmICghc2VsZWN0ZWRJdGVtLml0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBmaW5kUGFyZW50ID0gKGN1cnJlbnRJdGVtOiBBWFBNZW51SXRlbSwgdGFyZ2V0SXRlbTogQVhQTWVudUl0ZW0pOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbS5jaGlsZHJlbj8uaW5jbHVkZXModGFyZ2V0SXRlbSkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudEl0ZW0uY2hpbGRyZW4/LnNvbWUoKGNoaWxkKSA9PiBmaW5kUGFyZW50KGNoaWxkLCB0YXJnZXRJdGVtKSkgPz8gZmFsc2U7XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBpdGVtID09PSBzZWxlY3RlZEl0ZW0uaXRlbSB8fCBmaW5kUGFyZW50KGl0ZW0sIHNlbGVjdGVkSXRlbS5pdGVtKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgKSxcbiAgd2l0aEhvb2tzKChzdG9yZSwgbWVudVByb3ZpZGVyU2VydmljZSA9IGluamVjdChBWFBNZW51UHJvdmlkZXJTZXJ2aWNlKSkgPT4ge1xuICAgIGxldCByZWxvYWRTdWJzY3JpcHRpb246IGFueTtcblxuICAgIHJldHVybiB7XG4gICAgICBvbkluaXQoKSB7XG4gICAgICAgIC8vIExvYWQgaW5pdGlhbCBtZW51IGl0ZW1zXG4gICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCBtZW51UHJvdmlkZXJTZXJ2aWNlLml0ZW1zKCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBpdGVtczogaXRlbXMgfSk7XG4gICAgICAgIH0pKCk7XG5cbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIG1lbnUgcmVsb2FkIGV2ZW50c1xuICAgICAgICByZWxvYWRTdWJzY3JpcHRpb24gPSBtZW51UHJvdmlkZXJTZXJ2aWNlLm1lbnVSZWxvYWQkLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCBtZW51UHJvdmlkZXJTZXJ2aWNlLml0ZW1zKCk7XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgeyBpdGVtczogaXRlbXMgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIG9uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gQ2xlYW4gdXAgc3Vic2NyaXB0aW9uXG4gICAgICAgIGlmIChyZWxvYWRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICByZWxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9KSxcbik7XG4iXX0=","import { AXPSystemActionType } from '@acorex/platform/core';\nexport class AXPMenuSearchDefinitionProvider {\n async provide(context) {\n context.addDefinition('menu', 'Menu', 'menu', 'fa-thin fa-bars', 2, {\n format: {\n id: '{{data.name}}',\n },\n actions: [\n {\n name: 'navigate',\n type: AXPSystemActionType.View,\n priority: 'primary',\n },\n ],\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2xheW91dC9tZW51L3NlYXJjaC1kZWZpbml0aW9uLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELE1BQU0sT0FBTywrQkFBK0I7SUFDMUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQztRQUN2RCxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLENBQUMsRUFBRTtZQUNsRSxNQUFNLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLGVBQWU7YUFDcEI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxJQUFJO29CQUM5QixRQUFRLEVBQUUsU0FBUztpQkFDcEI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlciwgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB9IGZyb20gJy4uLy4uL3NlYXJjaCc7XG5pbXBvcnQgeyBBWFBTeXN0ZW1BY3Rpb25UeXBlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEFYUE1lbnVTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb250ZXh0LmFkZERlZmluaXRpb24oJ21lbnUnLCAnTWVudScsICdtZW51JywgJ2ZhLXRoaW4gZmEtYmFycycsIDIsIHtcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBpZDogJ3t7ZGF0YS5uYW1lfX0nLFxuICAgICAgfSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICduYXZpZ2F0ZScsXG4gICAgICAgICAgdHlwZTogQVhQU3lzdGVtQWN0aW9uVHlwZS5WaWV3LFxuICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { AXTranslationService } from '@acorex/core/translation';\nimport { inject } from '@angular/core';\nimport { omit, sortBy } from 'lodash-es';\nimport { AXPMenuProviderService } from './menu.provider';\nexport class AXPMenuSearchProvider {\n constructor() {\n this.menuService = inject(AXPMenuProviderService);\n this.translateService = inject(AXTranslationService);\n }\n async search(text) {\n const menuItems = await this.searchMenuItems(await this.menuService.items(), text);\n return sortBy(menuItems.map((item) => ({\n group: 'menu', // Use `name` or empty string if undefined\n title: item.text, // Use `text` for the `title`\n icon: item.icon, // Include the `icon` if present\n data: omit(item, ['parent', 'children']), // Include all data except `parent` and `children`\n command: item.path ? {\n name: 'navigate',\n options: {\n type: 'router',\n options: {\n path: item.path,\n },\n }\n } : item.command,\n parent: item.parent\n ? {\n title: item.parent.text,\n }\n : undefined,\n })), [(o) => this.translateService.translateSync(o.title)]);\n }\n /**\n * Recursively searches AXPMenuItem and its children for a matching text.\n *\n * @param menuItems - The array of AXPMenuItem to search in.\n * @param searchText - The text to search for (case-insensitive).\n * @returns An array of AXPMenuItem that match the search text.\n */\n async searchMenuItems(menuItems, searchText) {\n const result = [];\n for (const item of menuItems) {\n // Check if the current item's text matches the search text\n if (item.type != 'group' &&\n (item.children?.length ?? 0) == 0 &&\n (await this.translateService.translateAsync(item.text)).toLowerCase().includes(searchText.toLowerCase())) {\n result.push(item);\n }\n // Recursively search in children if they exist\n if (item.children && item.children.length > 0) {\n const childResults = await this.searchMenuItems(item.children, searchText);\n result.push(...childResults.map((x) => ({ ...x, parent: item })));\n }\n }\n return result;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvbWVudS9zZWFyY2gucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQVF6RCxNQUFNLE9BQU8scUJBQXFCO0lBQWxDO1FBQ0UsZ0JBQVcsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM3QyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQTBEbEQsQ0FBQztJQXhEQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNuRixPQUFPLE1BQU0sQ0FDWCxTQUFTLENBQUMsR0FBRyxDQUFrQixDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4QyxLQUFLLEVBQUUsTUFBTSxFQUFFLDBDQUEwQztZQUN6RCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSw2QkFBNkI7WUFDL0MsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0NBQWdDO1lBQ2pELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsa0RBQWtEO1lBQzVGLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsUUFBUTtvQkFDZCxPQUFPLEVBQUU7d0JBQ1AsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3FCQUNoQjtpQkFDRjthQUNtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBNEI7WUFDMUQsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNqQixDQUFDLENBQUM7b0JBQ0EsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtpQkFDeEI7Z0JBQ0QsQ0FBQyxDQUFDLFNBQVM7U0FDZCxDQUFDLENBQUMsRUFDSCxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBd0IsRUFBRSxVQUFrQjtRQUN4RSxNQUFNLE1BQU0sR0FBNEIsRUFBRSxDQUFDO1FBRTNDLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsMkRBQTJEO1lBQzNELElBQ0UsSUFBSSxDQUFDLElBQUksSUFBSSxPQUFPO2dCQUNwQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pDLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsRUFDeEcsQ0FBQztnQkFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQTZCLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBRUQsK0NBQStDO1lBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQzNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBNEIsQ0FBQSxDQUFDLENBQUMsQ0FBQztZQUM3RixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb21pdCwgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUFNlYXJjaFByb3ZpZGVyLCBBWFBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi9zZWFyY2gnO1xuaW1wb3J0IHsgQVhQTWVudVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vbWVudS5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBNZW51SXRlbSB9IGZyb20gJy4vbWVudS50eXBlcyc7XG5pbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQTWVudUl0ZW1XaXRoUGFyZW50IGV4dGVuZHMgQVhQTWVudUl0ZW0ge1xuICBwYXJlbnQ/OiBBWFBNZW51SXRlbTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUE1lbnVTZWFyY2hQcm92aWRlciBpbXBsZW1lbnRzIEFYUFNlYXJjaFByb3ZpZGVyIHtcbiAgbWVudVNlcnZpY2UgPSBpbmplY3QoQVhQTWVudVByb3ZpZGVyU2VydmljZSk7XG4gIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIGFzeW5jIHNlYXJjaCh0ZXh0OiBzdHJpbmcpOiBQcm9taXNlPEFYUFNlYXJjaFJlc3VsdFtdPiB7XG4gICAgY29uc3QgbWVudUl0ZW1zID0gYXdhaXQgdGhpcy5zZWFyY2hNZW51SXRlbXMoYXdhaXQgdGhpcy5tZW51U2VydmljZS5pdGVtcygpLCB0ZXh0KTtcbiAgICByZXR1cm4gc29ydEJ5PEFYUFNlYXJjaFJlc3VsdD4oXG4gICAgICBtZW51SXRlbXMubWFwPEFYUFNlYXJjaFJlc3VsdD4oKGl0ZW0pID0+ICh7XG4gICAgICAgIGdyb3VwOiAnbWVudScsIC8vIFVzZSBgbmFtZWAgb3IgZW1wdHkgc3RyaW5nIGlmIHVuZGVmaW5lZFxuICAgICAgICB0aXRsZTogaXRlbS50ZXh0LCAvLyBVc2UgYHRleHRgIGZvciB0aGUgYHRpdGxlYFxuICAgICAgICBpY29uOiBpdGVtLmljb24sIC8vIEluY2x1ZGUgdGhlIGBpY29uYCBpZiBwcmVzZW50XG4gICAgICAgIGRhdGE6IG9taXQoaXRlbSwgWydwYXJlbnQnLCAnY2hpbGRyZW4nXSksIC8vIEluY2x1ZGUgYWxsIGRhdGEgZXhjZXB0IGBwYXJlbnRgIGFuZCBgY2hpbGRyZW5gXG4gICAgICAgIGNvbW1hbmQ6IGl0ZW0ucGF0aCA/IHtcbiAgICAgICAgICBuYW1lOiAnbmF2aWdhdGUnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHR5cGU6ICdyb3V0ZXInLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBwYXRoOiBpdGVtLnBhdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSBhcyBBWFBFeGVjdXRlQ29tbWFuZCA6IGl0ZW0uY29tbWFuZCBhcyBBWFBFeGVjdXRlQ29tbWFuZCxcbiAgICAgICAgcGFyZW50OiBpdGVtLnBhcmVudFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgdGl0bGU6IGl0ZW0ucGFyZW50LnRleHQsXG4gICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSkpLFxuICAgICAgWyhvKSA9PiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYyhvLnRpdGxlISldXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBzZWFyY2hlcyBBWFBNZW51SXRlbSBhbmQgaXRzIGNoaWxkcmVuIGZvciBhIG1hdGNoaW5nIHRleHQuXG4gICAqXG4gICAqIEBwYXJhbSBtZW51SXRlbXMgLSBUaGUgYXJyYXkgb2YgQVhQTWVudUl0ZW0gdG8gc2VhcmNoIGluLlxuICAgKiBAcGFyYW0gc2VhcmNoVGV4dCAtIFRoZSB0ZXh0IHRvIHNlYXJjaCBmb3IgKGNhc2UtaW5zZW5zaXRpdmUpLlxuICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBBWFBNZW51SXRlbSB0aGF0IG1hdGNoIHRoZSBzZWFyY2ggdGV4dC5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc2VhcmNoTWVudUl0ZW1zKG1lbnVJdGVtczogQVhQTWVudUl0ZW1bXSwgc2VhcmNoVGV4dDogc3RyaW5nKTogUHJvbWlzZTxBWFBNZW51SXRlbVdpdGhQYXJlbnRbXT4ge1xuICAgIGNvbnN0IHJlc3VsdDogQVhQTWVudUl0ZW1XaXRoUGFyZW50W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBtZW51SXRlbXMpIHtcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGl0ZW0ncyB0ZXh0IG1hdGNoZXMgdGhlIHNlYXJjaCB0ZXh0XG4gICAgICBpZiAoXG4gICAgICAgIGl0ZW0udHlwZSAhPSAnZ3JvdXAnICYmXG4gICAgICAgIChpdGVtLmNoaWxkcmVuPy5sZW5ndGggPz8gMCkgPT0gMCAmJlxuICAgICAgICAoYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKGl0ZW0udGV4dCkpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpKVxuICAgICAgKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGl0ZW0gYXMgQVhQTWVudUl0ZW1XaXRoUGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gUmVjdXJzaXZlbHkgc2VhcmNoIGluIGNoaWxkcmVuIGlmIHRoZXkgZXhpc3RcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuICYmIGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBjaGlsZFJlc3VsdHMgPSBhd2FpdCB0aGlzLnNlYXJjaE1lbnVJdGVtcyhpdGVtLmNoaWxkcmVuLCBzZWFyY2hUZXh0KTtcbiAgICAgICAgcmVzdWx0LnB1c2goLi4uY2hpbGRSZXN1bHRzLm1hcCgoeCkgPT4gKHsgLi4ueCwgcGFyZW50OiBpdGVtIH0gYXMgQVhQTWVudUl0ZW1XaXRoUGFyZW50KSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==","import { Component, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPFooterTextSlotComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFooterTextSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPFooterTextSlotComponent, isStandalone: true, selector: \"ng-component\", inputs: { text: \"text\" }, ngImport: i0, template: `\n <small class=\"ax-text-sm\" [innerHTML]=\"text\"></small>\n `, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFooterTextSlotComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <small class=\"ax-text-sm\" [innerHTML]=\"text\"></small>\n `,\n standalone: true\n }]\n }], propDecorators: { text: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLXRleHQtc2xvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2xheW91dC90aGVtZS9jb21wb25lbnRzL3Nsb3RzL2Zvb3Rlci10ZXh0LXNsb3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFqRCxNQUFNLE9BQU8sMEJBQTBCOytHQUExQiwwQkFBMEI7bUdBQTFCLDBCQUEwQixrR0FMM0I7O0tBRVA7OzRGQUdRLDBCQUEwQjtrQkFOdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7O0tBRVA7b0JBQ0gsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztzQkFFRSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxzbWFsbCBjbGFzcz1cImF4LXRleHQtc21cIiBbaW5uZXJIVE1MXT1cInRleHRcIj48L3NtYWxsPlxuICAgIGAsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQVhQRm9vdGVyVGV4dFNsb3RDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgdGV4dCE6IHN0cmluZztcbn0iXX0=","import { Component, Input, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPNavBarSlotComponent {\n handleCommand(action) {\n // if (action)\n // this.store.dispatch(action)\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPNavBarSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: AXPNavBarSlotComponent, isStandalone: true, selector: \"ng-component\", inputs: { items: \"items\" }, ngImport: i0, template: `\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-5\">\n @for (link of items; track link) {\n <a (click)=\"handleCommand(link.command)\" >{{ link.text }}</a>\n }\n </div>\n `, isInline: true, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPNavBarSlotComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-5\">\n @for (link of items; track link) {\n <a (click)=\"handleCommand(link.command)\" >{{ link.text }}</a>\n }\n </div>\n `,\n imports: [],\n encapsulation: ViewEncapsulation.None\n }]\n }], propDecorators: { items: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLXNsb3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sYXlvdXQvdGhlbWUvY29tcG9uZW50cy9zbG90cy9uYXZiYXItc2xvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBYzVFLE1BQU0sT0FBTyxzQkFBc0I7SUFLckIsYUFBYSxDQUFDLE1BQTJCO1FBQy9DLGNBQWM7UUFDZCxrQ0FBa0M7SUFDdEMsQ0FBQzsrR0FSUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixvR0FWckI7Ozs7OztLQU1UOzs0RkFJUSxzQkFBc0I7a0JBWGxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFOzs7Ozs7S0FNVDtvQkFDRCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDeEM7O3NCQUVJLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUE1lbnVJdGVtLCBBWFBNZW51SXRlbUNvbW1hbmQgfSBmcm9tICcuLi8uLi8uLi9tZW51JztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LWdhcC01XCI+XG4gICAgICBAZm9yIChsaW5rIG9mIGl0ZW1zOyB0cmFjayBsaW5rKSB7XG4gICAgICAgIDxhIChjbGljayk9XCJoYW5kbGVDb21tYW5kKGxpbmsuY29tbWFuZClcIiA+e3sgbGluay50ZXh0IH19PC9hPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIGAsXG4gICAgaW1wb3J0czogW10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBWFBOYXZCYXJTbG90Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtcyE6IEFYUE1lbnVJdGVtW107XG5cblxuICAgIHByb3RlY3RlZCBoYW5kbGVDb21tYW5kKGFjdGlvbj86IEFYUE1lbnVJdGVtQ29tbWFuZCkge1xuICAgICAgICAvLyBpZiAoYWN0aW9uKVxuICAgICAgICAvLyAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChhY3Rpb24pXG4gICAgfVxufSJdfQ==","import { AXPSystemActionType } from '@acorex/platform/core';\nexport class AXPSearchDefinitionProviderContext {\n constructor() {\n this.definitions = [];\n this.definitionMap = new Map();\n }\n addDefinition(name, title, group, icon, order, options) {\n const definitionSearch = {\n name,\n title,\n group,\n icon,\n order,\n format: {\n title: options?.format?.title ?? '{{ title }}',\n description: options?.format?.description ?? undefined,\n icon: options?.format?.icon ?? undefined,\n id: options?.format?.id ?? '{{ id }}',\n },\n actions: options?.actions ?? [],\n };\n this.definitions.push(definitionSearch);\n this.definitionMap.set(name, definitionSearch); // Index by name\n return new AXPSearchDefinitionBuilder(this, definitionSearch);\n }\n getDefinitions() {\n return this.definitions;\n }\n // Expose groupMap for controlled access\n hasEntity(name) {\n return this.definitionMap.has(name);\n }\n getDefinition(name) {\n return this.definitionMap.get(name);\n }\n}\nexport class AXPSearchDefinitionBuilder {\n constructor(context, definition) {\n this.context = context;\n this.definition = definition;\n }\n addAction(name) {\n const newAction = {\n name,\n type: AXPSystemActionType.View,\n priority: 'primary',\n };\n this.definition.actions.push(newAction);\n return new AXPSearchDefinitionActionBuilder(this);\n }\n action(name) {\n const foundAction = this.definition.actions.find((action) => action.name === name);\n if (!foundAction) {\n throw new Error(`action with name \"${name}\" not found in entity \"${this.definition.name}\".`);\n }\n return new AXPSearchDefinitionActionBuilder(this);\n }\n endEntity() {\n return this.context;\n }\n}\nexport class AXPSearchDefinitionActionBuilder {\n constructor(entityBuilder) {\n this.entityBuilder = entityBuilder;\n }\n endAction() {\n return this.entityBuilder;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24uYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvc2VhcmNoL3NlYXJjaC1kZWZpbml0aW9uLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsTUFBTSxPQUFPLGtDQUFrQztJQUEvQztRQUNVLGdCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUN4QyxrQkFBYSxHQUFxQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBOEN0RSxDQUFDO0lBNUNDLGFBQWEsQ0FDWCxJQUFZLEVBQ1osS0FBYSxFQUNiLEtBQWEsRUFDYixJQUFZLEVBQ1osS0FBYSxFQUNiLE9BR0M7UUFFRCxNQUFNLGdCQUFnQixHQUF3QjtZQUM1QyxJQUFJO1lBQ0osS0FBSztZQUNMLEtBQUs7WUFDTCxJQUFJO1lBQ0osS0FBSztZQUNMLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksYUFBYTtnQkFDOUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxJQUFJLFNBQVM7Z0JBQ3RELElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxTQUFTO2dCQUN4QyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksVUFBVTthQUN0QztZQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLEVBQUU7U0FDaEMsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7UUFDaEUsT0FBTyxJQUFJLDBCQUEwQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFHRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsU0FBUyxDQUFDLElBQVk7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMEJBQTBCO0lBSXJDLFlBQVksT0FBMkMsRUFBRSxVQUErQjtRQUN0RixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDcEIsTUFBTSxTQUFTLEdBQW9CO1lBQ2pDLElBQUk7WUFDSixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtZQUM5QixRQUFRLEVBQUUsU0FBUztTQUNwQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVk7UUFDakIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixJQUFJLDBCQUEwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUNELE9BQU8sSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0NBQWdDO0lBRzNDLFlBQVksYUFBeUM7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2VhcmNoQWN0aW9uLCBBWFBTZWFyY2hEZWZpbml0aW9uLCBBWFBTZWFyY2hEZWZpbml0aW9uRGlzcGxheUZvcm1hdCB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcbmltcG9ydCB7IEFYUFN5c3RlbUFjdGlvblR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB7XG4gIHByaXZhdGUgZGVmaW5pdGlvbnM6IEFYUFNlYXJjaERlZmluaXRpb25bXSA9IFtdO1xuICBwcml2YXRlIGRlZmluaXRpb25NYXA6IE1hcDxzdHJpbmcsIEFYUFNlYXJjaERlZmluaXRpb24+ID0gbmV3IE1hcCgpO1xuXG4gIGFkZERlZmluaXRpb24oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgZ3JvdXA6IHN0cmluZyxcbiAgICBpY29uOiBzdHJpbmcsXG4gICAgb3JkZXI6IG51bWJlcixcbiAgICBvcHRpb25zPzoge1xuICAgICAgZm9ybWF0PzogQVhQU2VhcmNoRGVmaW5pdGlvbkRpc3BsYXlGb3JtYXQ7XG4gICAgICBhY3Rpb25zPzogQVhQU2VhcmNoQWN0aW9uW107XG4gICAgfVxuICApOiBBWFBTZWFyY2hEZWZpbml0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgZGVmaW5pdGlvblNlYXJjaDogQVhQU2VhcmNoRGVmaW5pdGlvbiA9IHtcbiAgICAgIG5hbWUsXG4gICAgICB0aXRsZSxcbiAgICAgIGdyb3VwLFxuICAgICAgaWNvbixcbiAgICAgIG9yZGVyLFxuICAgICAgZm9ybWF0OiB7XG4gICAgICAgIHRpdGxlOiBvcHRpb25zPy5mb3JtYXQ/LnRpdGxlID8/ICd7eyB0aXRsZSB9fScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zPy5mb3JtYXQ/LmRlc2NyaXB0aW9uID8/IHVuZGVmaW5lZCxcbiAgICAgICAgaWNvbjogb3B0aW9ucz8uZm9ybWF0Py5pY29uID8/IHVuZGVmaW5lZCxcbiAgICAgICAgaWQ6IG9wdGlvbnM/LmZvcm1hdD8uaWQgPz8gJ3t7IGlkIH19JyxcbiAgICAgIH0sXG4gICAgICBhY3Rpb25zOiBvcHRpb25zPy5hY3Rpb25zID8/IFtdLFxuICAgIH07XG5cbiAgICB0aGlzLmRlZmluaXRpb25zLnB1c2goZGVmaW5pdGlvblNlYXJjaCk7XG4gICAgdGhpcy5kZWZpbml0aW9uTWFwLnNldChuYW1lLCBkZWZpbml0aW9uU2VhcmNoKTsgLy8gSW5kZXggYnkgbmFtZVxuICAgIHJldHVybiBuZXcgQVhQU2VhcmNoRGVmaW5pdGlvbkJ1aWxkZXIodGhpcywgZGVmaW5pdGlvblNlYXJjaCk7XG4gIH1cblxuXG4gIGdldERlZmluaXRpb25zKCk6IEFYUFNlYXJjaERlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvbnM7XG4gIH1cblxuICAvLyBFeHBvc2UgZ3JvdXBNYXAgZm9yIGNvbnRyb2xsZWQgYWNjZXNzXG4gIGhhc0VudGl0eShuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kZWZpbml0aW9uTWFwLmhhcyhuYW1lKTtcbiAgfVxuXG4gIGdldERlZmluaXRpb24obmFtZTogc3RyaW5nKTogQVhQU2VhcmNoRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGVmaW5pdGlvbk1hcC5nZXQobmFtZSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFYUFNlYXJjaERlZmluaXRpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBjb250ZXh0OiBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0O1xuICBwcml2YXRlIGRlZmluaXRpb246IEFYUFNlYXJjaERlZmluaXRpb247XG5cbiAgY29uc3RydWN0b3IoY29udGV4dDogQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCwgZGVmaW5pdGlvbjogQVhQU2VhcmNoRGVmaW5pdGlvbikge1xuICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIGFkZEFjdGlvbihuYW1lOiBzdHJpbmcpOiBBWFBTZWFyY2hEZWZpbml0aW9uQWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgbmV3QWN0aW9uOiBBWFBTZWFyY2hBY3Rpb24gPSB7XG4gICAgICBuYW1lLFxuICAgICAgdHlwZTogQVhQU3lzdGVtQWN0aW9uVHlwZS5WaWV3LFxuICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICB9O1xuICAgIHRoaXMuZGVmaW5pdGlvbi5hY3Rpb25zLnB1c2gobmV3QWN0aW9uKTtcbiAgICByZXR1cm4gbmV3IEFYUFNlYXJjaERlZmluaXRpb25BY3Rpb25CdWlsZGVyKHRoaXMpO1xuICB9XG5cbiAgYWN0aW9uKG5hbWU6IHN0cmluZyk6IEFYUFNlYXJjaERlZmluaXRpb25BY3Rpb25CdWlsZGVyIHwgbnVsbCB7XG4gICAgY29uc3QgZm91bmRBY3Rpb24gPSB0aGlzLmRlZmluaXRpb24uYWN0aW9ucy5maW5kKChhY3Rpb24pID0+IGFjdGlvbi5uYW1lID09PSBuYW1lKTtcbiAgICBpZiAoIWZvdW5kQWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGFjdGlvbiB3aXRoIG5hbWUgXCIke25hbWV9XCIgbm90IGZvdW5kIGluIGVudGl0eSBcIiR7dGhpcy5kZWZpbml0aW9uLm5hbWV9XCIuYCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQVhQU2VhcmNoRGVmaW5pdGlvbkFjdGlvbkJ1aWxkZXIodGhpcyk7XG4gIH1cblxuICBlbmRFbnRpdHkoKTogQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhQU2VhcmNoRGVmaW5pdGlvbkFjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIGVudGl0eUJ1aWxkZXI6IEFYUFNlYXJjaERlZmluaXRpb25CdWlsZGVyO1xuXG4gIGNvbnN0cnVjdG9yKGVudGl0eUJ1aWxkZXI6IEFYUFNlYXJjaERlZmluaXRpb25CdWlsZGVyKSB7XG4gICAgdGhpcy5lbnRpdHlCdWlsZGVyID0gZW50aXR5QnVpbGRlcjtcbiAgfVxuXG4gIGVuZEFjdGlvbigpOiBBWFBTZWFyY2hEZWZpbml0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5QnVpbGRlcjtcbiAgfVxufVxuIl19","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport { AXPSearchDefinitionProviderContext } from './search-definition.builder';\nimport * as i0 from \"@angular/core\";\n// Injection token for setting providers\nexport const AXP_SEARCH_DEFINITION_PROVIDER = new InjectionToken('AXP_SEARCH_DEFINITION_PROVIDER');\nexport class AXPSearchDefinitionProviderService {\n constructor() {\n this.providers = inject(AXP_SEARCH_DEFINITION_PROVIDER, { optional: true });\n this.cache = null;\n }\n async load() {\n if (this.cache) {\n return;\n }\n const context = new AXPSearchDefinitionProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n this.cache = context.getDefinitions();\n }\n async getListAsync() {\n await this.load();\n return this.getList();\n }\n getList() {\n if (!this.cache) {\n return [];\n }\n else {\n return this.cache;\n }\n }\n findDefinition(definitionName) {\n const definition = this.getList().find((definition) => definition.name === definitionName);\n if (!definition) {\n throw new Error(`Definition with name ${definitionName} not found`);\n }\n return definition;\n }\n findDefinitionByGroup(definitionGroup) {\n const definition = this.getList().find((definition) => definition.group === definitionGroup);\n if (!definition) {\n throw new Error(`Definition with group ${definitionGroup} not found`);\n }\n return definition;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSearchDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSearchDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSearchDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3NlYXJjaC9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBUWpGLHdDQUF3QztBQUN4QyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FDOUQsZ0NBQWdDLENBQ2pDLENBQUM7QUFHRixNQUFNLE9BQU8sa0NBQWtDO0lBRC9DO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLFVBQUssR0FBaUMsSUFBSSxDQUFDO0tBMkNwRDtJQXpDUyxLQUFLLENBQUMsSUFBSTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQ0FBa0MsRUFBRSxDQUFDO1FBQ3pELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRU0sY0FBYyxDQUFDLGNBQXNCO1FBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLGNBQWMsWUFBWSxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxlQUF1QjtRQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLGVBQWUsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixlQUFlLFlBQVksQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOytHQTVDVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQyxjQURyQixNQUFNOzs0RkFDbkIsa0NBQWtDO2tCQUQ5QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQgfSBmcm9tICcuL3NlYXJjaC1kZWZpbml0aW9uLmJ1aWxkZXInO1xuaW1wb3J0IHsgQVhQU2VhcmNoRGVmaW5pdGlvbiB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcblxuLy8gSW50ZXJmYWNlIGZvciBzZXR0aW5nIHByb3ZpZGVyc1xuZXhwb3J0IGludGVyZmFjZSBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG4vLyBJbmplY3Rpb24gdG9rZW4gZm9yIHNldHRpbmcgcHJvdmlkZXJzXG5leHBvcnQgY29uc3QgQVhQX1NFQVJDSF9ERUZJTklUSU9OX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlcltdPihcbiAgJ0FYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUidcbik7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBjYWNoZTogQVhQU2VhcmNoRGVmaW5pdGlvbltdIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmNhY2hlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCgpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgICBhd2FpdCBwcm92aWRlci5wcm92aWRlKGNvbnRleHQpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNhY2hlID0gY29udGV4dC5nZXREZWZpbml0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldExpc3RBc3luYygpOiBQcm9taXNlPEFYUFNlYXJjaERlZmluaXRpb25bXT4ge1xuICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIHJldHVybiB0aGlzLmdldExpc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMaXN0KCk6IEFYUFNlYXJjaERlZmluaXRpb25bXSB7XG4gICAgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kRGVmaW5pdGlvbihkZWZpbml0aW9uTmFtZTogc3RyaW5nKTogQVhQU2VhcmNoRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuZ2V0TGlzdCgpLmZpbmQoKGRlZmluaXRpb24pID0+IGRlZmluaXRpb24ubmFtZSA9PT0gZGVmaW5pdGlvbk5hbWUpO1xuICAgIGlmICghZGVmaW5pdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZWZpbml0aW9uIHdpdGggbmFtZSAke2RlZmluaXRpb25OYW1lfSBub3QgZm91bmRgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgZmluZERlZmluaXRpb25CeUdyb3VwKGRlZmluaXRpb25Hcm91cDogc3RyaW5nKTogQVhQU2VhcmNoRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuZ2V0TGlzdCgpLmZpbmQoKGRlZmluaXRpb24pID0+IGRlZmluaXRpb24uZ3JvdXAgPT09IGRlZmluaXRpb25Hcm91cCk7XG4gICAgaWYgKCFkZWZpbml0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYERlZmluaXRpb24gd2l0aCBncm91cCAke2RlZmluaXRpb25Hcm91cH0gbm90IGZvdW5kYCk7XG4gICAgfVxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG59XG4iXX0=","export class AXPSearchCommandProvider {\n async search(text) {\n return this.commands.filter((command) => command.title.toLowerCase().includes(text.toLowerCase()));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9zZWFyY2gvc2VhcmNoLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE1BQU0sT0FBZ0Isd0JBQXdCO0lBRzVDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlYXJjaFJlc3VsdCB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcblxuLy8gSW50ZXJmYWNlIGZvciBzZXR0aW5nIHByb3ZpZGVyc1xuZXhwb3J0IGludGVyZmFjZSBBWFBTZWFyY2hQcm92aWRlciB7XG4gIHNlYXJjaCh0ZXh0OiBzdHJpbmcpOiBQcm9taXNlPEFYUFNlYXJjaFJlc3VsdFtdPjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFNlYXJjaENvbW1hbmRQcm92aWRlciB7XG4gIGFic3RyYWN0IGNvbW1hbmRzOiBBWFBTZWFyY2hSZXN1bHRbXTtcblxuICBhc3luYyBzZWFyY2godGV4dDogc3RyaW5nKTogUHJvbWlzZTxBWFBTZWFyY2hSZXN1bHRbXT4ge1xuICAgIHJldHVybiB0aGlzLmNvbW1hbmRzLmZpbHRlcigoY29tbWFuZCkgPT4gY29tbWFuZC50aXRsZSEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXh0LnRvTG93ZXJDYXNlKCkpKTtcbiAgfVxufVxuIl19","import { AXFormatService } from '@acorex/core/format';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { omit } from 'lodash-es';\nimport { AXPSearchDefinitionProviderService } from './search-definition.provider';\nimport * as i0 from \"@angular/core\";\n// Injection token for setting providers\nexport const AXP_SEARCH_PROVIDER = new InjectionToken('AXP_SEARCH_PROVIDER');\nexport class AXPSearchService {\n constructor() {\n this.providers = inject(AXP_SEARCH_PROVIDER, { optional: true });\n this.definitionService = inject(AXPSearchDefinitionProviderService);\n this.formatService = inject(AXFormatService);\n }\n async search(text) {\n //TODO better handle this\n if (this.definitionService.getList().length == 0) {\n await this.definitionService.getListAsync();\n }\n if (!this.providers || (this.providers?.length || 0) === 0) {\n throw new Error('No search providers available'); // No providers available\n }\n const mergeData = [];\n const promises = this.providers.map((provider) => provider.search(text));\n const results = await Promise.all(promises);\n for (const resultArray of results) {\n for (const result of resultArray) {\n try {\n const definition = this.definitionService.findDefinition(result.group);\n mergeData.push({\n definitionName: definition.group,\n definitionTitle: definition.title,\n name: result.group,\n id: `${definition.name}:${this.formatService.format(definition.format.id, 'string', result)}`,\n title: result.title ??\n (definition.format.title\n ? this.formatService.format(definition.format.title, 'string', result.data)\n : 'Unknown'),\n description: result.description ??\n (definition.format.description\n ? this.formatService.format(definition.format.description, 'string', result.data)\n : undefined),\n icon: result.icon ??\n (result.icon\n ? this.formatService.format(definition.format.icon, 'string', result.data)\n : definition.icon),\n data: result.data,\n command: result.command,\n actions: definition.actions,\n parent: result.parent,\n order: definition.order,\n });\n }\n catch (e) {\n console.error(e);\n }\n }\n }\n // Group data\n const groupedData = [];\n const groupMap = {};\n // Create groups\n for (const item of mergeData) {\n const groupName = item.definitionName; // Change this to the property you want to group by\n if (!groupMap[groupName]) {\n groupMap[groupName] = {\n name: groupName,\n title: item.definitionTitle, // You can adjust the title logic if needed\n order: item.order, // Add order to the group\n children: [],\n };\n groupedData.push(groupMap[groupName]);\n }\n groupMap[groupName].children.push(omit(item, ['definitionName', 'definitionTitle', 'order']));\n }\n // Sort groups by order\n groupedData.sort((a, b) => a.order - b.order);\n return groupedData;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSearchService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPSearchService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3NlYXJjaC9zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBSWxGLHdDQUF3QztBQUN4QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IscUJBQXFCLENBQUMsQ0FBQztBQUdsRyxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVELHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQy9ELGtCQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBNEVqRDtJQTFFQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQVk7UUFDdkIseUJBQXlCO1FBQ3pCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqRCxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzRCxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyx5QkFBeUI7UUFDN0UsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUE2QixFQUFFLENBQUM7UUFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RSxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsS0FBSyxNQUFNLFdBQVcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNsQyxLQUFLLE1BQU0sTUFBTSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUM7b0JBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRXZFLFNBQVMsQ0FBQyxJQUFJLENBQUM7d0JBQ2IsY0FBYyxFQUFFLFVBQVUsQ0FBQyxLQUFLO3dCQUNoQyxlQUFlLEVBQUUsVUFBVSxDQUFDLEtBQUs7d0JBQ2pDLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSzt3QkFDbEIsRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7d0JBQzdGLEtBQUssRUFDSCxNQUFNLENBQUMsS0FBSzs0QkFDWixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSztnQ0FDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO2dDQUMzRSxDQUFDLENBQUMsU0FBUyxDQUFDO3dCQUNoQixXQUFXLEVBQ1QsTUFBTSxDQUFDLFdBQVc7NEJBQ2xCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXO2dDQUM1QixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0NBQ2pGLENBQUMsQ0FBQyxTQUFTLENBQUM7d0JBQ2hCLElBQUksRUFDRixNQUFNLENBQUMsSUFBSTs0QkFDWCxDQUFDLE1BQU0sQ0FBQyxJQUFJO2dDQUNWLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztnQ0FDMUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7d0JBQ3RCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTt3QkFDakIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO3dCQUN2QixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87d0JBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTt3QkFDckIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO3FCQUN4QixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztnQkFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELGFBQWE7UUFDYixNQUFNLFdBQVcsR0FBa0MsRUFBRSxDQUFDO1FBQ3RELE1BQU0sUUFBUSxHQUFtRCxFQUFFLENBQUM7UUFFcEUsZ0JBQWdCO1FBQ2hCLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWUsQ0FBQyxDQUFDLG1EQUFtRDtZQUMzRixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRztvQkFDcEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFnQixFQUFFLDJDQUEyQztvQkFDekUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUseUJBQXlCO29CQUM1QyxRQUFRLEVBQUUsRUFBRTtpQkFDYixDQUFDO2dCQUNGLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEcsQ0FBQztRQUVELHVCQUF1QjtRQUN2QixXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzsrR0E5RVUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FESCxNQUFNOzs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb21pdCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBTZWFyY2hQcm92aWRlciB9IGZyb20gJy4vc2VhcmNoLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUFNlYXJjaERpc3BsYXlHcm91cFJlc3VsdCwgQVhQU2VhcmNoRGlzcGxheVJlc3VsdCB9IGZyb20gJy4vc2VhcmNoLnR5cGVzJztcblxuLy8gSW5qZWN0aW9uIHRva2VuIGZvciBzZXR0aW5nIHByb3ZpZGVyc1xuZXhwb3J0IGNvbnN0IEFYUF9TRUFSQ0hfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQU2VhcmNoUHJvdmlkZXJbXT4oJ0FYUF9TRUFSQ0hfUFJPVklERVInKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBTZWFyY2hTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwcm92aWRlcnMgPSBpbmplY3QoQVhQX1NFQVJDSF9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBkZWZpbml0aW9uU2VydmljZSA9IGluamVjdChBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG5cbiAgYXN5bmMgc2VhcmNoKHRleHQ6IHN0cmluZyk6IFByb21pc2U8QVhQU2VhcmNoRGlzcGxheUdyb3VwUmVzdWx0W10+IHtcbiAgICAvL1RPRE8gYmV0dGVyIGhhbmRsZSB0aGlzXG4gICAgaWYgKHRoaXMuZGVmaW5pdGlvblNlcnZpY2UuZ2V0TGlzdCgpLmxlbmd0aCA9PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLmRlZmluaXRpb25TZXJ2aWNlLmdldExpc3RBc3luYygpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wcm92aWRlcnMgfHwgKHRoaXMucHJvdmlkZXJzPy5sZW5ndGggfHwgMCkgPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc2VhcmNoIHByb3ZpZGVycyBhdmFpbGFibGUnKTsgLy8gTm8gcHJvdmlkZXJzIGF2YWlsYWJsZVxuICAgIH1cblxuICAgIGNvbnN0IG1lcmdlRGF0YTogQVhQU2VhcmNoRGlzcGxheVJlc3VsdFtdID0gW107XG4gICAgY29uc3QgcHJvbWlzZXMgPSB0aGlzLnByb3ZpZGVycy5tYXAoKHByb3ZpZGVyKSA9PiBwcm92aWRlci5zZWFyY2godGV4dCkpO1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgZm9yIChjb25zdCByZXN1bHRBcnJheSBvZiByZXN1bHRzKSB7XG4gICAgICBmb3IgKGNvbnN0IHJlc3VsdCBvZiByZXN1bHRBcnJheSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmRlZmluaXRpb25TZXJ2aWNlLmZpbmREZWZpbml0aW9uKHJlc3VsdC5ncm91cCk7XG5cbiAgICAgICAgICBtZXJnZURhdGEucHVzaCh7XG4gICAgICAgICAgICBkZWZpbml0aW9uTmFtZTogZGVmaW5pdGlvbi5ncm91cCxcbiAgICAgICAgICAgIGRlZmluaXRpb25UaXRsZTogZGVmaW5pdGlvbi50aXRsZSxcbiAgICAgICAgICAgIG5hbWU6IHJlc3VsdC5ncm91cCxcbiAgICAgICAgICAgIGlkOiBgJHtkZWZpbml0aW9uLm5hbWV9OiR7dGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdChkZWZpbml0aW9uLmZvcm1hdC5pZCwgJ3N0cmluZycsIHJlc3VsdCl9YCxcbiAgICAgICAgICAgIHRpdGxlOlxuICAgICAgICAgICAgICByZXN1bHQudGl0bGUgPz9cbiAgICAgICAgICAgICAgKGRlZmluaXRpb24uZm9ybWF0LnRpdGxlXG4gICAgICAgICAgICAgICAgPyB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KGRlZmluaXRpb24uZm9ybWF0LnRpdGxlLCAnc3RyaW5nJywgcmVzdWx0LmRhdGEpXG4gICAgICAgICAgICAgICAgOiAnVW5rbm93bicpLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIHJlc3VsdC5kZXNjcmlwdGlvbiA/P1xuICAgICAgICAgICAgICAoZGVmaW5pdGlvbi5mb3JtYXQuZGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQoZGVmaW5pdGlvbi5mb3JtYXQuZGVzY3JpcHRpb24sICdzdHJpbmcnLCByZXN1bHQuZGF0YSlcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICBpY29uOlxuICAgICAgICAgICAgICByZXN1bHQuaWNvbiA/P1xuICAgICAgICAgICAgICAocmVzdWx0Lmljb25cbiAgICAgICAgICAgICAgICA/IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQoZGVmaW5pdGlvbi5mb3JtYXQuaWNvbiwgJ3N0cmluZycsIHJlc3VsdC5kYXRhKVxuICAgICAgICAgICAgICAgIDogZGVmaW5pdGlvbi5pY29uKSxcbiAgICAgICAgICAgIGRhdGE6IHJlc3VsdC5kYXRhLFxuICAgICAgICAgICAgY29tbWFuZDogcmVzdWx0LmNvbW1hbmQsXG4gICAgICAgICAgICBhY3Rpb25zOiBkZWZpbml0aW9uLmFjdGlvbnMsXG4gICAgICAgICAgICBwYXJlbnQ6IHJlc3VsdC5wYXJlbnQsXG4gICAgICAgICAgICBvcmRlcjogZGVmaW5pdGlvbi5vcmRlcixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBHcm91cCBkYXRhXG4gICAgY29uc3QgZ3JvdXBlZERhdGE6IEFYUFNlYXJjaERpc3BsYXlHcm91cFJlc3VsdFtdID0gW107XG4gICAgY29uc3QgZ3JvdXBNYXA6IHsgW2tleTogc3RyaW5nXTogQVhQU2VhcmNoRGlzcGxheUdyb3VwUmVzdWx0IH0gPSB7fTtcblxuICAgIC8vIENyZWF0ZSBncm91cHNcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgbWVyZ2VEYXRhKSB7XG4gICAgICBjb25zdCBncm91cE5hbWUgPSBpdGVtLmRlZmluaXRpb25OYW1lITsgLy8gQ2hhbmdlIHRoaXMgdG8gdGhlIHByb3BlcnR5IHlvdSB3YW50IHRvIGdyb3VwIGJ5XG4gICAgICBpZiAoIWdyb3VwTWFwW2dyb3VwTmFtZV0pIHtcbiAgICAgICAgZ3JvdXBNYXBbZ3JvdXBOYW1lXSA9IHtcbiAgICAgICAgICBuYW1lOiBncm91cE5hbWUsXG4gICAgICAgICAgdGl0bGU6IGl0ZW0uZGVmaW5pdGlvblRpdGxlISwgLy8gWW91IGNhbiBhZGp1c3QgdGhlIHRpdGxlIGxvZ2ljIGlmIG5lZWRlZFxuICAgICAgICAgIG9yZGVyOiBpdGVtLm9yZGVyLCAvLyBBZGQgb3JkZXIgdG8gdGhlIGdyb3VwXG4gICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICB9O1xuICAgICAgICBncm91cGVkRGF0YS5wdXNoKGdyb3VwTWFwW2dyb3VwTmFtZV0pO1xuICAgICAgfVxuICAgICAgZ3JvdXBNYXBbZ3JvdXBOYW1lXS5jaGlsZHJlbi5wdXNoKG9taXQoaXRlbSwgWydkZWZpbml0aW9uTmFtZScsICdkZWZpbml0aW9uVGl0bGUnLCAnb3JkZXInXSkpO1xuICAgIH1cblxuICAgIC8vIFNvcnQgZ3JvdXBzIGJ5IG9yZGVyXG4gICAgZ3JvdXBlZERhdGEuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuXG4gICAgcmV0dXJuIGdyb3VwZWREYXRhO1xuICB9XG59XG4iXX0=","export var AXPCommonSettings;\n(function (AXPCommonSettings) {\n AXPCommonSettings[\"EnableOperationToasts\"] = \"general:notifications:enable-operation-toasts\";\n AXPCommonSettings[\"EntityFilterApplyMode\"] = \"general:entity:filter-apply-mode\";\n})(AXPCommonSettings || (AXPCommonSettings = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXNldHRpbmdzLmtleS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvY29uZmlncy9jb21tb24tc2V0dGluZ3Mua2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGlCQUdYO0FBSEQsV0FBWSxpQkFBaUI7SUFDM0IsNEZBQXVFLENBQUE7SUFDdkUsK0VBQTBELENBQUE7QUFDNUQsQ0FBQyxFQUhXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFHNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBBWFBDb21tb25TZXR0aW5ncyB7XG4gIEVuYWJsZU9wZXJhdGlvblRvYXN0cyA9ICdnZW5lcmFsOm5vdGlmaWNhdGlvbnM6ZW5hYmxlLW9wZXJhdGlvbi10b2FzdHMnLFxuICBFbnRpdHlGaWx0ZXJBcHBseU1vZGUgPSAnZ2VuZXJhbDplbnRpdHk6ZmlsdGVyLWFwcGx5LW1vZGUnLFxufVxuIl19","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AXPCommonSettings } from '../configs/common-settings.key';\nimport { AXPSettingService } from '../settings';\nimport * as i0 from \"@angular/core\";\n//TODO Loading, Redirect, Drawer, Show toast\nexport const AXPRedirectEvent = createWorkFlowEvent('Redirect Event Fired');\nexport const AXPRefreshEvent = createWorkFlowEvent('Refresh Event Fired');\nexport const AXPReloadEvent = createWorkFlowEvent('Reload Event Fired');\nexport class AXPWorkflowNavigateAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.router = inject(Router);\n }\n async execute(context) {\n const payload = context.getVariable('payload');\n if (Array.isArray(payload.commands)) {\n this.router.navigate(payload.commands, payload.extras);\n }\n else {\n if (payload.commands.toLowerCase().startsWith('http') || payload.target == 'blank') {\n window.open(payload.commands, '_blank');\n }\n else\n this.router.navigate([payload.commands], payload.extras);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowNavigateAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowNavigateAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPDialogConfirmAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.dialogService = inject(AXDialogService);\n this.translationService = inject(AXTranslationService);\n this.defaultAction = 'cancel';\n }\n async execute(context) {\n console.log('AXPDialogConfirmAction', this.title, this.message, this.type);\n context.setOutput('result', false);\n const dialogResult = await this.dialogService.confirm(await this.translationService.translateAsync(this.title), await this.translationService.translateAsync(this.message), (await this.translationService.translateAsync(this.type)), 'horizontal', false, 'cancel');\n context.setOutput('result', dialogResult.result);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDialogConfirmAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDialogConfirmAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDialogConfirmAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPToastAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.toastService = inject(AXToastService);\n this.translationService = inject(AXTranslationService);\n this.settingService = inject(AXPSettingService);\n }\n async execute(context) {\n const showResult = await this.settingService.get(AXPCommonSettings.EnableOperationToasts);\n if (showResult) {\n this.toastService.show({\n color: this.color,\n title: await this.translationService.translateAsync(this.title),\n content: await this.translationService.translateAsync(this.content),\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPToastAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPToastAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPToastAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPReloadAction extends AXPWorkflowAction {\n async execute(context) {\n this.dispatch(AXPReloadEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPReloadAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPReloadAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPReloadAction, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi93b3JrZmxvd3MvY29tbW9uLndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRWhELDRDQUE0QztBQUU1QyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBa0Isc0JBQXNCLENBQUMsQ0FBQztBQUM3RixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsbUJBQW1CLENBQWlDLHFCQUFxQixDQUFDLENBQUM7QUFDMUcsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFpQyxvQkFBb0IsQ0FBQyxDQUFDO0FBR3hHLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxpQkFBaUI7SUFEaEU7O1FBRVUsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQVdqQztJQVZDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDdkMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ25GLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMxQyxDQUFDOztnQkFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7K0dBWFUseUJBQXlCO21IQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVU7O0FBZ0JYLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxpQkFBaUI7SUFEN0Q7O1FBRVUsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFNMUQsa0JBQWEsR0FBRyxRQUFRLENBQUM7S0FlMUI7SUFiQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJCO1FBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzRSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuQyxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUNuRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUN4RCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUMxRCxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQXFCLEVBQzdFLFlBQVksRUFDWixLQUFLLEVBQ0wsUUFBUSxDQUNULENBQUM7UUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQzsrR0F0QlUsc0JBQXNCO21IQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVU7O0FBMkJYLE1BQU0sT0FBTyxjQUFlLFNBQVEsaUJBQWlCO0lBRHJEOztRQUVVLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FvQnBEO0lBZEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUN2QyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFMUYsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDL0QsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNuRSxXQUFXLEVBQUUsSUFBSTtnQkFDakIsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsZUFBZSxFQUFFLElBQUk7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7K0dBdEJVLGNBQWM7bUhBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEMUIsVUFBVTs7QUEyQlgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQWlCO0lBQ3BELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBTSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDOytHQUhVLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b2FzdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0LCBjcmVhdGVXb3JrRmxvd0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBWFBDb21tb25TZXR0aW5ncyB9IGZyb20gJy4uL2NvbmZpZ3MvY29tbW9uLXNldHRpbmdzLmtleSc7XG5pbXBvcnQgeyBBWFBTZXR0aW5nU2VydmljZSB9IGZyb20gJy4uL3NldHRpbmdzJztcblxuLy9UT0RPIExvYWRpbmcsIFJlZGlyZWN0LCBEcmF3ZXIsIFNob3cgdG9hc3RcblxuZXhwb3J0IGNvbnN0IEFYUFJlZGlyZWN0RXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgdXJsOiBzdHJpbmcgfT4oJ1JlZGlyZWN0IEV2ZW50IEZpcmVkJyk7XG5leHBvcnQgY29uc3QgQVhQUmVmcmVzaEV2ZW50ID0gY3JlYXRlV29ya0Zsb3dFdmVudDx7IGVudGl0eTogc3RyaW5nOyBtZXRhPzogYW55IH0+KCdSZWZyZXNoIEV2ZW50IEZpcmVkJyk7XG5leHBvcnQgY29uc3QgQVhQUmVsb2FkRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IG1ldGE/OiBhbnkgfT4oJ1JlbG9hZCBFdmVudCBGaXJlZCcpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gY29udGV4dC5nZXRWYXJpYWJsZSgncGF5bG9hZCcpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHBheWxvYWQuY29tbWFuZHMpKSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShwYXlsb2FkLmNvbW1hbmRzLCBwYXlsb2FkLmV4dHJhcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwYXlsb2FkLmNvbW1hbmRzLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgnaHR0cCcpIHx8IHBheWxvYWQudGFyZ2V0ID09ICdibGFuaycpIHtcbiAgICAgICAgd2luZG93Lm9wZW4ocGF5bG9hZC5jb21tYW5kcywgJ19ibGFuaycpO1xuICAgICAgfSBlbHNlIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXlsb2FkLmNvbW1hbmRzXSwgcGF5bG9hZC5leHRyYXMpO1xuICAgIH1cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRGlhbG9nQ29uZmlybUFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFYRGlhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICB0aXRsZSE6IHN0cmluZztcbiAgbWVzc2FnZSE6IHN0cmluZztcbiAgdHlwZSE6IEFYU3R5bGVDb2xvclR5cGU7XG5cbiAgZGVmYXVsdEFjdGlvbiA9ICdjYW5jZWwnO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc29sZS5sb2coJ0FYUERpYWxvZ0NvbmZpcm1BY3Rpb24nLCB0aGlzLnRpdGxlLCB0aGlzLm1lc3NhZ2UsIHRoaXMudHlwZSk7XG4gICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIGZhbHNlKTtcbiAgICBjb25zdCBkaWFsb2dSZXN1bHQgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybShcbiAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKHRoaXMudGl0bGUpLFxuICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmModGhpcy5tZXNzYWdlKSxcbiAgICAgIChhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYyh0aGlzLnR5cGUpKSBhcyBBWFN0eWxlQ29sb3JUeXBlLFxuICAgICAgJ2hvcml6b250YWwnLFxuICAgICAgZmFsc2UsXG4gICAgICAnY2FuY2VsJyxcbiAgICApO1xuICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBkaWFsb2dSZXN1bHQucmVzdWx0KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQVG9hc3RBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlID0gaW5qZWN0KEFYUFNldHRpbmdTZXJ2aWNlKTtcblxuICBjb2xvciE6IEFYU3R5bGVDb2xvclR5cGU7XG4gIHRpdGxlITogc3RyaW5nO1xuICBjb250ZW50ITogc3RyaW5nO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc2hvd1Jlc3VsdCA9IGF3YWl0IHRoaXMuc2V0dGluZ1NlcnZpY2UuZ2V0KEFYUENvbW1vblNldHRpbmdzLkVuYWJsZU9wZXJhdGlvblRvYXN0cyk7XG5cbiAgICBpZiAoc2hvd1Jlc3VsdCkge1xuICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgIGNvbG9yOiB0aGlzLmNvbG9yLFxuICAgICAgICB0aXRsZTogYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmModGhpcy50aXRsZSksXG4gICAgICAgIGNvbnRlbnQ6IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKHRoaXMuY29udGVudCksXG4gICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICB0aW1lT3V0OiAzMDAwLFxuICAgICAgICB0aW1lT3V0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFJlbG9hZEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmRpc3BhdGNoKEFYUFJlbG9hZEV2ZW50KHsgZW50aXR5OiBjb250ZXh0LmdldFZhcmlhYmxlKCdlbnRpdHknKSwgbWV0YTogY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdtZXRhJykgfSkpO1xuICB9XG59XG4iXX0=","import { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowRouterNavigateAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.router = inject(Router);\n }\n async execute(context) {\n const command = context.getVariable();\n const path = command.options.path;\n if (path?.toLowerCase()?.startsWith('http') || command.options?.extras?.target === 'blank') {\n window.open(path, '_blank');\n }\n else {\n const [basePathAndFragment, queryString] = path.split('?');\n const [basePath, fragment] = basePathAndFragment.split('#'); // Extract fragment if present\n const queryParams = this.parseQueryParams(queryString);\n this.router.navigate([basePath], {\n ...command.options.extras,\n queryParams, // Pass query parameters separately\n fragment, // Pass fragment explicitly\n });\n }\n }\n /**\n * Parses query parameters from a query string into an object.\n */\n parseQueryParams(queryString) {\n if (!queryString)\n return undefined;\n return queryString\n .split('&')\n .map((pair) => pair.split('='))\n .reduce((params, [key, value]) => {\n params[decodeURIComponent(key)] = decodeURIComponent(value);\n return params;\n }, {});\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowRouterNavigateAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowRouterNavigateAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowRouterNavigateAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPNavigateWorkflow = {\n startStepId: 'start',\n steps: {\n start: {\n action: 'navigate-router',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGUud29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3dvcmtmbG93cy9uYXZpZ2F0ZS53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFDL0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUd6QyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsaUJBQWlCO0lBRHRFOztRQUVVLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0FtQ2pDO0lBakNDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDdkMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBc0MsQ0FBQztRQUMxRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUVsQyxJQUFJLElBQUksRUFBRSxXQUFXLEVBQUUsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0QsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyw4QkFBOEI7WUFDM0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRXZELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQy9CLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUN6QixXQUFXLEVBQUUsbUNBQW1DO2dCQUNoRCxRQUFRLEVBQUUsMkJBQTJCO2FBQ3RDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FBQyxXQUErQjtRQUN0RCxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRW5DLE9BQU8sV0FBVzthQUNmLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDOUIsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLEVBQTRCLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQW5DVSwrQkFBK0I7bUhBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVTs7QUF1Q1gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWdCO0lBQzlDLFdBQVcsRUFBRSxPQUFPO0lBQ3BCLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRSxpQkFBaUI7U0FDMUI7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBOYXZpZ2F0ZUFjdGlvbkNvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFdvcmtmbG93Um91dGVyTmF2aWdhdGVBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb21tYW5kID0gY29udGV4dC5nZXRWYXJpYWJsZTxBWFBOYXZpZ2F0ZUFjdGlvbkNvbW1hbmQ8J3JvdXRlcic+PigpO1xuICAgIGNvbnN0IHBhdGggPSBjb21tYW5kLm9wdGlvbnMucGF0aDtcblxuICAgIGlmIChwYXRoPy50b0xvd2VyQ2FzZSgpPy5zdGFydHNXaXRoKCdodHRwJykgfHwgY29tbWFuZC5vcHRpb25zPy5leHRyYXM/LnRhcmdldCA9PT0gJ2JsYW5rJykge1xuICAgICAgd2luZG93Lm9wZW4ocGF0aCwgJ19ibGFuaycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBbYmFzZVBhdGhBbmRGcmFnbWVudCwgcXVlcnlTdHJpbmddID0gcGF0aC5zcGxpdCgnPycpO1xuICAgICAgY29uc3QgW2Jhc2VQYXRoLCBmcmFnbWVudF0gPSBiYXNlUGF0aEFuZEZyYWdtZW50LnNwbGl0KCcjJyk7IC8vIEV4dHJhY3QgZnJhZ21lbnQgaWYgcHJlc2VudFxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnBhcnNlUXVlcnlQYXJhbXMocXVlcnlTdHJpbmcpO1xuXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYmFzZVBhdGhdLCB7XG4gICAgICAgIC4uLmNvbW1hbmQub3B0aW9ucy5leHRyYXMsXG4gICAgICAgIHF1ZXJ5UGFyYW1zLCAvLyBQYXNzIHF1ZXJ5IHBhcmFtZXRlcnMgc2VwYXJhdGVseVxuICAgICAgICBmcmFnbWVudCwgLy8gUGFzcyBmcmFnbWVudCBleHBsaWNpdGx5XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIHF1ZXJ5IHBhcmFtZXRlcnMgZnJvbSBhIHF1ZXJ5IHN0cmluZyBpbnRvIGFuIG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgcGFyc2VRdWVyeVBhcmFtcyhxdWVyeVN0cmluZzogc3RyaW5nIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFxdWVyeVN0cmluZykgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBxdWVyeVN0cmluZ1xuICAgICAgLnNwbGl0KCcmJylcbiAgICAgIC5tYXAoKHBhaXIpID0+IHBhaXIuc3BsaXQoJz0nKSlcbiAgICAgIC5yZWR1Y2UoKHBhcmFtcywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIHBhcmFtc1tkZWNvZGVVUklDb21wb25lbnQoa2V5KV0gPSBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpO1xuICAgICAgICByZXR1cm4gcGFyYW1zO1xuICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUE5hdmlnYXRlV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3N0YXJ0JyxcbiAgc3RlcHM6IHtcbiAgICBzdGFydDoge1xuICAgICAgYWN0aW9uOiAnbmF2aWdhdGUtcm91dGVyJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { Injectable, inject } from \"@angular/core\";\nimport { AXDialogService } from \"@acorex/components/dialog\";\nimport { AXPWorkflowError } from \"@acorex/platform/workflow\";\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowErrorHandler {\n constructor() {\n this.dialog = inject(AXDialogService);\n }\n handleError(error, next) {\n if (error instanceof AXPWorkflowError) {\n this.dialog.alert(\"Somthing is wrong!\", error.inner ? error.inner.message : error.message, 'danger');\n next(error);\n }\n else {\n next(error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowErrorHandler, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowErrorHandler }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowErrorHandler, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvd29ya2Zsb3dzL2Vycm9yLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUk3RCxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBRVksV0FBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztLQVc1QztJQVJHLFdBQVcsQ0FBQyxLQUFVLEVBQUUsSUFBMEI7UUFDOUMsSUFBSSxLQUFLLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7K0dBWFEsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIGluamVjdCwgaXNEZXZNb2RlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYRGlhbG9nU2VydmljZSB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvZGlhbG9nXCI7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0Vycm9yIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3dcIjtcbmltcG9ydCB7IEFYUEVycm9ySGFuZGxlciB9IGZyb20gXCIuLi9lcnJvcnNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVdvcmtmbG93RXJyb3JIYW5kbGVyIGltcGxlbWVudHMgQVhQRXJyb3JIYW5kbGVyIHtcbiAgICBwcml2YXRlIGRpYWxvZyA9IGluamVjdChBWERpYWxvZ1NlcnZpY2UpO1xuXG5cbiAgICBoYW5kbGVFcnJvcihlcnJvcjogYW55LCBuZXh0OiAoZXJyb3I6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBBWFBXb3JrZmxvd0Vycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZy5hbGVydChcIlNvbXRoaW5nIGlzIHdyb25nIVwiLCBlcnJvci5pbm5lciA/IGVycm9yLmlubmVyLm1lc3NhZ2UgOiBlcnJvci5tZXNzYWdlLCAnZGFuZ2VyJyk7XG4gICAgICAgICAgICBuZXh0KGVycm9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5leHQoZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ==","import { AXPopupModule } from '@acorex/components/popup';\nimport { AXToastModule } from '@acorex/components/toast';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXPAppStartUpProvider, AXPAppStartUpService, } from '@acorex/platform/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { ErrorHandler, inject, Inject, Injector, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { AXPCustomOperatorService, AXPCustomOperatorServiceImpl, AXPFilterOperatorMiddlewareService, AXPFilterOperatorMiddlewareServiceImpl, } from './data';\nimport { AXPErrorHandlerRegistryService, AXPGlobalErrorHandler } from './errors';\nimport { AXPGlobalVariableEvaluatorScopeProvider } from './global-variables';\nimport { AXPMenuSearchDefinitionProvider } from './layout';\nimport { AXPMenuSearchProvider } from './layout/menu/search.provider';\nimport { AXP_SEARCH_DEFINITION_PROVIDER, AXP_SEARCH_PROVIDER } from './search';\nimport { AXP_SETTING_DEFINITION_PROVIDER, AXPSettingService } from './settings';\nimport { AXPDialogConfirmAction, AXPNavigateWorkflow, AXPReloadAction, AXPToastAction, AXPWorkflowRouterNavigateAction, } from './workflows';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/core\";\nimport * as i2 from \"./settings\";\nimport * as i3 from \"@acorex/platform/workflow\";\nexport class AXPCommonModule {\n static forRoot(configs) {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n static forChild(configs) {\n return {\n ngModule: AXPCommonModule,\n providers: [\n ...(configs?.errorHandlers || []),\n {\n provide: 'AXPCommonModuleFactory',\n useFactory: (registry) => () => {\n registry.register(...(configs?.errorHandlers || []));\n },\n deps: [AXPErrorHandlerRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * @ignore\n */\n constructor(instances, appInitService, settingsService) {\n instances.forEach((f) => {\n f();\n });\n appInitService.registerTask({\n name: 'Settings',\n statusText: 'Loading Settings ...',\n priority: 2,\n run: async () => {\n await settingsService.load();\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommonModule, deps: [{ token: 'AXPCommonModuleFactory' }, { token: i1.AXPAppStartUpService }, { token: i2.AXPSettingService }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommonModule, imports: [i3.AXPWorkflowModule, AXPopupModule,\n AXDateTimeModule,\n AXToastModule], exports: [RouterModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommonModule, providers: [\n AXPAppStartUpProvider,\n {\n provide: ErrorHandler,\n useClass: AXPGlobalErrorHandler,\n },\n {\n provide: AXPCustomOperatorService,\n useClass: AXPCustomOperatorServiceImpl,\n },\n {\n provide: AXPFilterOperatorMiddlewareService,\n useClass: AXPFilterOperatorMiddlewareServiceImpl,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXPMenuSearchProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPMenuSearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPGlobalVariableEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useFactory: async () => {\n const injector = inject(Injector);\n const provider = (await import('./configs/common-settings.provider')).AXPCommonSettingProvider;\n return new provider(injector);\n },\n multi: true,\n },\n ], imports: [AXPWorkflowModule.forChild({\n actions: {\n 'navigate-router': AXPWorkflowRouterNavigateAction,\n 'show-prompt-dialog': AXPDialogConfirmAction,\n 'show-toast': AXPToastAction,\n reload: AXPReloadAction,\n },\n workflows: {\n navigate: AXPNavigateWorkflow,\n },\n }),\n AXPopupModule,\n AXDateTimeModule,\n AXToastModule, RouterModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n 'navigate-router': AXPWorkflowRouterNavigateAction,\n 'show-prompt-dialog': AXPDialogConfirmAction,\n 'show-toast': AXPToastAction,\n reload: AXPReloadAction,\n },\n workflows: {\n navigate: AXPNavigateWorkflow,\n },\n }),\n AXPopupModule,\n AXDateTimeModule,\n AXToastModule,\n ],\n exports: [RouterModule],\n providers: [\n AXPAppStartUpProvider,\n {\n provide: ErrorHandler,\n useClass: AXPGlobalErrorHandler,\n },\n {\n provide: AXPCustomOperatorService,\n useClass: AXPCustomOperatorServiceImpl,\n },\n {\n provide: AXPFilterOperatorMiddlewareService,\n useClass: AXPFilterOperatorMiddlewareServiceImpl,\n },\n {\n provide: AXP_SEARCH_PROVIDER,\n useClass: AXPMenuSearchProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPMenuSearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPGlobalVariableEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useFactory: async () => {\n const injector = inject(Injector);\n const provider = (await import('./configs/common-settings.provider')).AXPCommonSettingProvider;\n return new provider(injector);\n },\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: ['AXPCommonModuleFactory']\n }] }, { type: i1.AXPAppStartUpService }, { type: i2.AXPSettingService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFDTCx1Q0FBdUMsRUFDdkMscUJBQXFCLEVBQ3JCLG9CQUFvQixHQUNyQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLHNDQUFzQyxHQUN2QyxNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQW1CLDhCQUE4QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0UsT0FBTyxFQUFFLCtCQUErQixFQUFFLGlCQUFpQixFQUFFLE1BQU0s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QUF3Qjs0QkFDakMsUUFBUSxFQUFFLDRCQUE0Qjt5QkFDdkM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGtDQUFrQzs0QkFDM0MsUUFBUSxFQUFFLHNDQUFzQzt5QkFDakQ7d0JBRUQ7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsUUFBUSxFQUFFLHFCQUFxQjs0QkFDL0IsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsUUFBUSxFQUFFLCtCQUErQjs0QkFDekMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHVDQUF1Qzs0QkFDaEQsUUFBUSxFQUFFLHVDQUF1Qzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFO2dDQUNyQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0NBQ2xDLE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxNQUFNLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO2dDQUMvRixPQUFPLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzRCQUNoQyxDQUFDOzRCQUNELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzswQkF3Q0ksTUFBTTsyQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBvcHVwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYVG9hc3RNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuaW1wb3J0IHsgQVhEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHtcbiAgQVhQX0VYUFJFU1NJT05fRVZBTFVBVE9SX1NDT1BFX1BST1ZJREVSLFxuICBBWFBBcHBTdGFydFVwUHJvdmlkZXIsXG4gIEFYUEFwcFN0YXJ0VXBTZXJ2aWNlLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEVycm9ySGFuZGxlciwgaW5qZWN0LCBJbmplY3QsIEluamVjdG9yLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFYUEN1c3RvbU9wZXJhdG9yU2VydmljZSxcbiAgQVhQQ3VzdG9tT3BlcmF0b3JTZXJ2aWNlSW1wbCxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZUltcGwsXG59IGZyb20gJy4vZGF0YSc7XG5pbXBvcnQgeyBBWFBFcnJvckhhbmRsZXIsIEFYUEVycm9ySGFuZGxlclJlZ2lzdHJ5U2VydmljZSwgQVhQR2xvYmFsRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQVhQR2xvYmFsVmFyaWFibGVFdmFsdWF0b3JTY29wZVByb3ZpZGVyIH0gZnJvbSAnLi9nbG9iYWwtdmFyaWFibGVzJztcbmltcG9ydCB7IEFYUE1lbnVTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICcuL2xheW91dCc7XG5pbXBvcnQgeyBBWFBNZW51U2VhcmNoUHJvdmlkZXIgfSBmcm9tICcuL2xheW91dC9tZW51L3NlYXJjaC5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsIEFYUF9TRUFSQ0hfUFJPVklERVIgfSBmcm9tICcuL3NlYXJjaCc7XG5pbXBvcnQgeyBBWFBfU0VUVElOR19ERUZJTklUSU9OX1BST1ZJREVSLCBBWFBTZXR0aW5nU2VydmljZSB9IGZyb20gJy4vc2V0dGluZ3MnO1xuaW1wb3J0IHtcbiAgQVhQRGlhbG9nQ29uZmlybUFjdGlvbixcbiAgQVhQTmF2aWdhdGVXb3JrZmxvdyxcbiAgQVhQUmVsb2FkQWN0aW9uLFxuICBBWFBUb2FzdEFjdGlvbixcbiAgQVhQV29ya2Zsb3dSb3V0ZXJOYXZpZ2F0ZUFjdGlvbixcbn0gZnJvbSAnLi93b3JrZmxvd3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbW1vbk1vZHVsZUNvbmZpZ3Mge1xuICBlcnJvckhhbmRsZXJzOiAobmV3ICgpID0+IEFYUEVycm9ySGFuZGxlcilbXTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEFYUFdvcmtmbG93TW9kdWxlLmZvckNoaWxkKHtcbiAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgJ25hdmlnYXRlLXJvdXRlcic6IEFYUFdvcmtmbG93Um91dGVyTmF2aWdhdGVBY3Rpb24sXG4gICAgICAgICdzaG93LXByb21wdC1kaWFsb2cnOiBBWFBEaWFsb2dDb25maXJtQWN0aW9uLFxuICAgICAgICAnc2hvdy10b2FzdCc6IEFYUFRvYXN0QWN0aW9uLFxuICAgICAgICByZWxvYWQ6IEFYUFJlbG9hZEFjdGlvbixcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgbmF2aWdhdGU6IEFYUE5hdmlnYXRlV29ya2Zsb3csXG4gICAgICB9LFxuICAgIH0pLFxuICAgIEFYUG9wdXBNb2R1bGUsXG4gICAgQVhEYXRlVGltZU1vZHVsZSxcbiAgICBBWFRvYXN0TW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQVhQQXBwU3RhcnRVcFByb3ZpZGVyLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgIHVzZUNsYXNzOiBBWFBHbG9iYWxFcnJvckhhbmRsZXIsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBDdXN0b21PcGVyYXRvclNlcnZpY2UsXG4gICAgICB1c2VDbGFzczogQVhQQ3VzdG9tT3BlcmF0b3JTZXJ2aWNlSW1wbCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2UsXG4gICAgICB1c2VDbGFzczogQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZUltcGwsXG4gICAgfSxcblxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQTWVudVNlYXJjaFByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQTWVudVNlYXJjaERlZmluaXRpb25Qcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX0VYUFJFU1NJT05fRVZBTFVBVE9SX1NDT1BFX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYUEdsb2JhbFZhcmlhYmxlRXZhbHVhdG9yU2NvcGVQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX1NFVFRJTkdfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUZhY3Rvcnk6IGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IChhd2FpdCBpbXBvcnQoJy4vY29uZmlncy9jb21tb24tc2V0dGluZ3MucHJvdmlkZXInKSkuQVhQQ29tbW9uU2V0dGluZ1Byb3ZpZGVyO1xuICAgICAgICByZXR1cm4gbmV3IHByb3ZpZGVyKGluamVjdG9yKTtcbiAgICAgIH0sXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb21tb25Nb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWdzPzogQVhQQ29tbW9uTW9kdWxlQ29uZmlncyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhQQ29tbW9uTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWFBDb21tb25Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLi4uKGNvbmZpZ3M/LmVycm9ySGFuZGxlcnMgfHwgW10pLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FYUENvbW1vbk1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhQRXJyb3JIYW5kbGVyUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlciguLi4oY29uZmlncz8uZXJyb3JIYW5kbGVycyB8fCBbXSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYUEVycm9ySGFuZGxlclJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoY29uZmlncz86IEFYUENvbW1vbk1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUENvbW1vbk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQVhQQ29tbW9uTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIC4uLihjb25maWdzPy5lcnJvckhhbmRsZXJzIHx8IFtdKSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWFBDb21tb25Nb2R1bGVGYWN0b3J5JyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYUEVycm9ySGFuZGxlclJlZ2lzdHJ5U2VydmljZSkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoLi4uKGNvbmZpZ3M/LmVycm9ySGFuZGxlcnMgfHwgW10pKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWFBFcnJvckhhbmRsZXJSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ0FYUENvbW1vbk1vZHVsZUZhY3RvcnknKSBpbnN0YW5jZXM6IGFueVtdLFxuICAgIGFwcEluaXRTZXJ2aWNlOiBBWFBBcHBTdGFydFVwU2VydmljZSxcbiAgICBzZXR0aW5nc1NlcnZpY2U6IEFYUFNldHRpbmdTZXJ2aWNlLFxuICApIHtcbiAgICBpbnN0YW5jZXMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgZigpO1xuICAgIH0pO1xuICAgIGFwcEluaXRTZXJ2aWNlLnJlZ2lzdGVyVGFzayh7XG4gICAgICBuYW1lOiAnU2V0dGluZ3MnLFxuICAgICAgc3RhdHVzVGV4dDogJ0xvYWRpbmcgU2V0dGluZ3MgLi4uJyxcbiAgICAgIHByaW9yaXR5OiAyLFxuICAgICAgcnVuOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHNldHRpbmdzU2VydmljZS5sb2FkKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nimport { merge } from 'lodash-es';\nexport const ENVIRONMENT = new InjectionToken('ENVIRONMENT');\nexport const AXP_PLATFORM_CONFIG_TOKEN = new InjectionToken('AXP_PLATFORM_CONFIG_TOKEN', {\n providedIn: 'root',\n factory: () => {\n return AXPPlatformDefaultConfigs;\n },\n});\nexport const AXPPlatformDefaultConfigs = {\n copyright: 'ACoreX @ 2024',\n title: 'ACoreX Platform',\n network: {\n timeOut: 5000,\n },\n};\nexport function configPlatform(config = AXPPlatformDefaultConfigs) {\n return merge(AXPPlatformDefaultConfigs, config);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9saWIvY29uZmlncy9hcHAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQU0sYUFBYSxDQUFDLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxjQUFjLENBQXFCLDJCQUEyQixFQUFFO0lBQzNHLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixPQUFPLHlCQUF5QixDQUFDO0lBQ25DLENBQUM7Q0FDRixDQUFDLENBQUM7QUF3QkgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQXVCO0lBQzNELFNBQVMsRUFBRSxlQUFlO0lBQzFCLEtBQUssRUFBRSxpQkFBaUI7SUFFeEIsT0FBTyxFQUFFO1FBQ1AsT0FBTyxFQUFFLElBQUk7S0FDZDtDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUsY0FBYyxDQUFDLFNBQXNDLHlCQUF5QjtJQUM1RixPQUFPLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQTG9nb0NvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgY29uc3QgRU5WSVJPTk1FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignRU5WSVJPTk1FTlQnKTtcblxuZXhwb3J0IGNvbnN0IEFYUF9QTEFURk9STV9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQUGxhdGZvcm1Db25maWdzPignQVhQX1BMQVRGT1JNX0NPTkZJR19UT0tFTicsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgcmV0dXJuIEFYUFBsYXRmb3JtRGVmYXVsdENvbmZpZ3M7XG4gIH0sXG59KTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBQbGF0Zm9ybUNvbmZpZ3Mge1xuICB0aXRsZT86IHN0cmluZztcbiAgY29weXJpZ2h0Pzogc3RyaW5nO1xuICBsb2dvPzoge1xuICAgIGljb246IHtcbiAgICAgIGxpZ2h0OiBBWFBMb2dvQ29uZmlnO1xuICAgICAgZGFyazogQVhQTG9nb0NvbmZpZztcbiAgICB9O1xuICAgIHRleHQ6IHtcbiAgICAgIGxpZ2h0OiBBWFBMb2dvQ29uZmlnO1xuICAgICAgZGFyazogQVhQTG9nb0NvbmZpZztcbiAgICB9O1xuICAgIGZ1bGw6IHtcbiAgICAgIGxpZ2h0OiBBWFBMb2dvQ29uZmlnO1xuICAgICAgZGFyazogQVhQTG9nb0NvbmZpZztcbiAgICB9O1xuICB9O1xuICBuZXR3b3JrPzoge1xuICAgIHRpbWVPdXQ/OiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBBWFBQbGF0Zm9ybURlZmF1bHRDb25maWdzOiBBWFBQbGF0Zm9ybUNvbmZpZ3MgPSB7XG4gIGNvcHlyaWdodDogJ0FDb3JlWCBAIDIwMjQnLFxuICB0aXRsZTogJ0FDb3JlWCBQbGF0Zm9ybScsXG5cbiAgbmV0d29yazoge1xuICAgIHRpbWVPdXQ6IDUwMDAsXG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnUGxhdGZvcm0oY29uZmlnOiBQYXJ0aWFsPEFYUFBsYXRmb3JtQ29uZmlncz4gPSBBWFBQbGF0Zm9ybURlZmF1bHRDb25maWdzKTogQVhQUGxhdGZvcm1Db25maWdzIHtcbiAgcmV0dXJuIG1lcmdlKEFYUFBsYXRmb3JtRGVmYXVsdENvbmZpZ3MsIGNvbmZpZyk7XG59XG4iXX0=","import { InjectionToken } from \"@angular/core\";\nexport const AXP_ROOT_CONFIG_TOKEN = new InjectionToken('AXP_ROOT_CONFIG_TOKEN');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9jb25maWdzL2NvbmZpZy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFpQix1QkFBdUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY29uc3QgQVhQX1JPT1RfQ09ORklHX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUFJvb3RDb25maWdzPignQVhQX1JPT1RfQ09ORklHX1RPS0VOJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQUm9vdENvbmZpZ3Mge1xuICAgIGJhc2VVcmw6IHN0cmluZztcbn0iXX0=","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPFileStorageService {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFileStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFileStorageService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFileStorageService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL2ZpbGUtc3RvcmFnZS9maWxlLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQWdCLHFCQUFxQjsrR0FBckIscUJBQXFCO21IQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRDFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUEZpbGVTdG9yYWdlQ3JlYXRlUmVxdWVzdCwgQVhQRmlsZVN0b3JhZ2VJbmZvLCBBWFBGaWxlU3RvcmFnZVVwZGF0ZVJlcXVlc3QsIEFYUEZpbGVTdG9yYWdlRmluZFJlcXVlc3QsIEFYUEZpbGVNYW55U3RvcmFnZUluZm8gfSBmcm9tIFwiLi9maWxlLXN0b3JhZ2UudHlwZXNcIjtcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQRmlsZVN0b3JhZ2VTZXJ2aWNlIHtcblxuICAgIGFic3RyYWN0IHNhdmUocmVxdWVzdDogQVhQRmlsZVN0b3JhZ2VDcmVhdGVSZXF1ZXN0KTogUHJvbWlzZTxBWFBGaWxlU3RvcmFnZUluZm8+O1xuXG4gICAgYWJzdHJhY3QgdXBkYXRlKHJlcXVlc3Q6IEFYUEZpbGVTdG9yYWdlVXBkYXRlUmVxdWVzdCk6IFByb21pc2U8QVhQRmlsZVN0b3JhZ2VJbmZvPjtcblxuICAgIGFic3RyYWN0IGZpbmQocmVxdWVzdDogQVhQRmlsZVN0b3JhZ2VGaW5kUmVxdWVzdCk6IFByb21pc2U8QVhQRmlsZVN0b3JhZ2VJbmZvW10+O1xuXG4gICAgYWJzdHJhY3QgZmluZE1hbnkoaWRzIDogc3RyaW5nW10pOiBQcm9taXNlPEFYUEZpbGVNYW55U3RvcmFnZUluZm9bXT47XG5cbiAgICBhYnN0cmFjdCBnZXRJbmZvKGZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTxBWFBGaWxlU3RvcmFnZUluZm8+O1xuXG4gICAgYWJzdHJhY3QgcmVtb3ZlKGZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIGFic3RyYWN0IGNvbW1pdChmaWxlSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgICBhYnN0cmFjdCBtYXJrRm9yRGVsZXRpb24oZmlsZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19","export var AXPFileStorageStatus;\n(function (AXPFileStorageStatus) {\n AXPFileStorageStatus[\"Temporary\"] = \"temporary\";\n AXPFileStorageStatus[\"Committed\"] = \"committed\";\n AXPFileStorageStatus[\"PendingDeletion\"] = \"pendingDeletion\";\n AXPFileStorageStatus[\"Archived\"] = \"archived\";\n AXPFileStorageStatus[\"Error\"] = \"error\";\n})(AXPFileStorageStatus || (AXPFileStorageStatus = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zdG9yYWdlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9maWxlLXN0b3JhZ2UvZmlsZS1zdG9yYWdlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLG9CQU1YO0FBTkQsV0FBWSxvQkFBb0I7SUFDOUIsK0NBQXVCLENBQUE7SUFDdkIsK0NBQXVCLENBQUE7SUFDdkIsMkRBQW1DLENBQUE7SUFDbkMsNkNBQXFCLENBQUE7SUFDckIsdUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQU0vQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUE1ldGFEYXRhIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuZXhwb3J0IGVudW0gQVhQRmlsZVN0b3JhZ2VTdGF0dXMge1xuICBUZW1wb3JhcnkgPSAndGVtcG9yYXJ5JywgLy8gRmlsZSBpcyBub3QgeWV0IGFzc29jaWF0ZWQgd2l0aCBhIHBhcmVudCBlbnRpdHlcbiAgQ29tbWl0dGVkID0gJ2NvbW1pdHRlZCcsIC8vIEZpbGUgaXMgZnVsbHkgYXNzb2NpYXRlZCBhbmQgaW4gdXNlXG4gIFBlbmRpbmdEZWxldGlvbiA9ICdwZW5kaW5nRGVsZXRpb24nLCAvLyBGaWxlIGlzIG1hcmtlZCBmb3IgZGVsZXRpb24gYnV0IG5vdCB5ZXQgcmVtb3ZlZFxuICBBcmNoaXZlZCA9ICdhcmNoaXZlZCcsIC8vIEZpbGUgaXMgYXJjaGl2ZWQgYW5kIG5vIGxvbmdlciBhY3RpdmVseSB1c2VkXG4gIEVycm9yID0gJ2Vycm9yJywgLy8gRmlsZSBlbmNvdW50ZXJlZCBhbiBlcnJvciBkdXJpbmcgcHJvY2Vzc2luZ1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBmaWxlIHN0b3JhZ2UgcmVxdWVzdCBpbiB0aGUgQWNvcmV4IHBsYXRmb3JtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEZpbGVTdG9yYWdlQ3JlYXRlUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0byBiZSBzdG9yZWQuXG4gICAqL1xuICBmaWxlOiBGaWxlO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiByZWZlcmVuY2VkIGVudGl0eS5cbiAgICovXG4gIHJlZklkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgcmVmZXJlbmNlZCBlbnRpdHkuXG4gICAqL1xuICByZWZUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY2F0ZWdvcnkgb2YgdGhlIGZpbGUuIHByb2ZpbGUtcGljdHVyZSwgY29tcGFueS1sb2dvLCBwb2xpY3ksIGRvY3VtZW50LCBldGMuXG4gICAqL1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGZvbGRlciBwYXRoIHdoZXJlIHRoZSBmaWxlIHNob3VsZCBiZSBzdG9yZWQuXG4gICAqIElmIG51bGwsIHRoZSBzZXJ2aWNlIHdpbGwgcmVzb2x2ZSB0aGUgcGF0aCBiYXNlZCBvbiBtZXRhZGF0YSwgdXNlciwgdGVuYW50LCBvciBkZWZhdWx0IHJ1bGVzLlxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqXG4gICAqIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmlsZS5cbiAgICovXG4gIG1ldGFkYXRhPzogQVhQTWV0YURhdGE7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWxlIGlzIHByaW1hcnkgb3Igbm90LlxuICAgKi9cbiAgaXNQcmltYXJ5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoZSBzdGF0dXMgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBzdGF0dXM/OiBBWFBGaWxlU3RvcmFnZVN0YXR1cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBGaWxlU3RvcmFnZVVwZGF0ZVJlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc3RvcmVkIGZpbGUuXG4gICAqL1xuICBmaWxlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBmb2xkZXIgcGF0aCB3aGVyZSB0aGUgZmlsZSBzaG91bGQgYmUgc3RvcmVkLlxuICAgKiBJZiBudWxsLCB0aGUgc2VydmljZSB3aWxsIHJlc29sdmUgdGhlIHBhdGggYmFzZWQgb24gbWV0YWRhdGEsIHVzZXIsIHRlbmFudCwgb3IgZGVmYXVsdCBydWxlcy5cbiAgICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpbGUuXG4gICAqL1xuICBtZXRhZGF0YTogQVhQTWV0YURhdGE7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWxlIGlzIHByaW1hcnkgb3Igbm90LlxuICAgKi9cbiAgaXNQcmltYXJ5PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IGEgZmlsZSBzdG9yZWQgaW4gdGhlIEFYUCBmaWxlIHN0b3JhZ2Ugc3lzdGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEZpbGVTdG9yYWdlSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzdG9yZWQgZmlsZS5cbiAgICovXG4gIGlkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc3RvcmVkIGZpbGUuXG4gICAqL1xuICBmaWxlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHJlZmVyZW5jZWQgZW50aXR5LlxuICAgKi9cbiAgcmVmSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSByZWZlcmVuY2VkIGVudGl0eS5cbiAgICovXG4gIHJlZlR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjYXRlZ29yeSBvZiB0aGUgZmlsZS4gcHJvZmlsZS1waWN0dXJlLCBjb21wYW55LWxvZ28sIHBvbGljeSwgZG9jdW1lbnQsIGV0Yy5cbiAgICovXG4gIGNhdGVnb3J5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgd2hlcmUgdGhlIGZpbGUgY2FuIGJlIGFjY2Vzc2VkLlxuICAgKi9cbiAgdXJsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgZmlsZSBpbiBieXRlcy5cbiAgICovXG4gIHNpemU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgTUlNRSB0eXBlIG9mIHRoZSBmaWxlLlxuICAgKi9cbiAgbWltZVR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgZmlsZSB3YXMgdXBsb2FkZWQuXG4gICAqL1xuICB1cGxvYWRlZEF0OiBEYXRlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmlsZSBpcyBwdWJsaWMgb3IgcHJpdmF0ZS5cbiAgICovXG4gIGlzUHVibGljOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmlsZSBpcyBwcmltYXJ5IG9yIG5vdC5cbiAgICovXG4gIGlzUHJpbWFyeT86IGJvb2xlYW47XG5cbiAgc3RhdHVzOiBBWFBGaWxlU3RvcmFnZVN0YXR1czsgLy8gVXBkYXRlZCB0byB1c2UgZW51bVxuXG4gIGJpbmFyeTogRmlsZTtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEZpbGVNYW55U3RvcmFnZUluZm8ge1xuICAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHN0b3JlZCBmaWxlLlxuICAgKi9cbiAgIGlkPzogc3RyaW5nO1xuICAgLyoqXG4gICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzdG9yZWQgZmlsZS5cbiAgICAqL1xuICAgZmlsZUlkOiBzdHJpbmc7XG4gICAvKipcbiAgICogVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHJlZmVyZW5jZWQgZW50aXR5LlxuICAgKi9cbiAgcmVmSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSByZWZlcmVuY2VkIGVudGl0eS5cbiAgICovXG4gIHJlZlR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBmaWxlIGluIGJ5dGVzLlxuICAgKi9cbiAgc2l6ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRmlsZVN0b3JhZ2VJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHN0b3JlZCBmaWxlLlxuICAgKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBzdG9yZWQgZmlsZS5cbiAgICovXG4gIGZpbGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgcmVmZXJlbmNlZCBlbnRpdHkuXG4gICAqL1xuICByZWZJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHJlZmVyZW5jZWQgZW50aXR5LlxuICAgKi9cbiAgcmVmVHlwZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGNhdGVnb3J5IG9mIHRoZSBmaWxlLiBwcm9maWxlLXBpY3R1cmUsIGNvbXBhbnktbG9nbywgcG9saWN5LCBkb2N1bWVudCwgZXRjLlxuICAgKi9cbiAgY2F0ZWdvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSTCB3aGVyZSB0aGUgZmlsZSBjYW4gYmUgYWNjZXNzZWQuXG4gICAqL1xuICB1cmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBmaWxlIGluIGJ5dGVzLlxuICAgKi9cbiAgc2l6ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBNSU1FIHR5cGUgb2YgdGhlIGZpbGUuXG4gICAqL1xuICBtaW1lVHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSB3aGVuIHRoZSBmaWxlIHdhcyB1cGxvYWRlZC5cbiAgICovXG4gIHVwbG9hZGVkQXQ6IERhdGU7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWxlIGlzIHB1YmxpYyBvciBwcml2YXRlLlxuICAgKi9cbiAgaXNQdWJsaWM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWxlIGlzIHByaW1hcnkgb3Igbm90LlxuICAgKi9cbiAgaXNQcmltYXJ5PzogYm9vbGVhbjtcblxuICBzdGF0dXM6IEFYUEZpbGVTdG9yYWdlU3RhdHVzOyAvLyBVcGRhdGVkIHRvIHVzZSBlbnVtXG5cbiAgYmluYXJ5OiBGaWxlO1xufVxuXG5cbi8qKlxuICogUmVwcmVzZW50cyBpbmZvcm1hdGlvbiBhYm91dCBhIGZpbGUgc3RvcmVkIGluIHRoZSBBWFAgZmlsZSBzdG9yYWdlIHN5c3RlbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBGaWxlU3RvcmFnZUZpbmRSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiByZWZlcmVuY2VkIGVudGl0eS5cbiAgICovXG4gIHJlZklkPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHJlZmVyZW5jZWQgZW50aXR5LlxuICAgKi9cbiAgcmVmVHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBjYXRlZ29yeSBvZiB0aGUgZmlsZS4gcHJvZmlsZS1waWN0dXJlLCBjb21wYW55LWxvZ28sIHBvbGljeSwgZG9jdW1lbnQsIGV0Yy5cbiAgICovXG4gIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIE1JTUUgdHlwZSBvZiB0aGUgZmlsZS5cbiAgICovXG4gIG1pbWVUeXBlPzogc3RyaW5nO1xuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpbGUgaXMgcHVibGljIG9yIHByaXZhdGUuXG4gICAqL1xuICBpc1B1YmxpYz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmlsZSBpcyBwcmltYXJ5IG9yIG5vdC5cbiAgICovXG4gIGlzUHJpbWFyeT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgZGF0ZSBhbmQgdGltZSByYW5nZSB3aGVuIHRoZSBmaWxlIHdhcyB1cGxvYWRlZC5cbiAgICovXG4gIHVwbG9hZGVkQXRSYW5nZT86IHsgZnJvbTogRGF0ZTsgdG86IERhdGUgfTtcbn1cbiJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_FILE_TYPE_INFO_PROVIDER = new InjectionToken('AXP_FILE_TYPE_INFO_PROVIDER');\nexport class AXPFileTypeProviderService {\n constructor() {\n this.providers = inject(AXP_FILE_TYPE_INFO_PROVIDER, { optional: true });\n }\n async items() {\n const items = [];\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n items.push(...(await provider.items()));\n }\n }\n return items;\n }\n async get(name) {\n return (await this.items()).find((c) => c.name == name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFileTypeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFileTypeProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPFileTypeProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS10eXBlLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9maWxlLXR5cGUvZmlsZS10eXBlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPbkUsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQTRCLDZCQUE2QixDQUFDLENBQUM7QUFHeEgsTUFBTSxPQUFPLDBCQUEwQjtJQUR2QztRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQWdCN0U7SUFkQyxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7UUFFaEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQVk7UUFDcEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBaEJVLDBCQUEwQjttSEFBMUIsMEJBQTBCLGNBRGIsTUFBTTs7NEZBQ25CLDBCQUEwQjtrQkFEdEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBGaWxlVHlwZSB9IGZyb20gJy4vZmlsZS10eXBlLnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBGaWxlVHlwZUluZm9Qcm92aWRlciB7XG4gIGl0ZW1zKCk6IFByb21pc2U8QVhQRmlsZVR5cGVbXT47XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfRklMRV9UWVBFX0lORk9fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRmlsZVR5cGVJbmZvUHJvdmlkZXJbXT4oJ0FYUF9GSUxFX1RZUEVfSU5GT19QUk9WSURFUicpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEZpbGVUeXBlUHJvdmlkZXJTZXJ2aWNlIGltcGxlbWVudHMgQVhQRmlsZVR5cGVJbmZvUHJvdmlkZXIge1xuICBwcml2YXRlIHByb3ZpZGVycyA9IGluamVjdChBWFBfRklMRV9UWVBFX0lORk9fUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgYXN5bmMgaXRlbXMoKTogUHJvbWlzZTxBWFBGaWxlVHlwZVtdPiB7XG4gICAgY29uc3QgaXRlbXM6IEFYUEZpbGVUeXBlW10gPSBbXTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgZm9yIChjb25zdCBwcm92aWRlciBvZiB0aGlzLnByb3ZpZGVycykge1xuICAgICAgICBpdGVtcy5wdXNoKC4uLihhd2FpdCBwcm92aWRlci5pdGVtcygpKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIGFzeW5jIGdldChuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUEZpbGVUeXBlIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLml0ZW1zKCkpLmZpbmQoKGMpID0+IGMubmFtZSA9PSBuYW1lKTtcbiAgfVxufVxuIl19","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPLockService {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLockService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPLockService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi9sb2NrLXN5c3RlbS9sb2NrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFnQixjQUFjOytHQUFkLGNBQWM7bUhBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtBWFBMb2NrR2V0SW5mb1JlcXVlc3QsIEFYUExvY2tJbmZvLCBBWFBMb2NrUmVxdWVzdCwgQVhQVW5Mb2NrUmVxdWVzdCB9IGZyb20gXCIuL2xvY2sudHlwZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUExvY2tTZXJ2aWNlIHtcblxuICAgIGFic3RyYWN0IGxvY2socmVxdWVzdDogQVhQTG9ja1JlcXVlc3QpOiBQcm9taXNlPEFYUExvY2tJbmZvPjtcblxuICAgIGFic3RyYWN0IHVubG9jayhyZXF1ZXN0OiBBWFBVbkxvY2tSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPjtcblxuICAgIGFic3RyYWN0IGNoZWNrKHJlcXVlc3Q6IEFYUExvY2tHZXRJbmZvUmVxdWVzdCk6IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICBhYnN0cmFjdCBnZXRJbmZvKHJlcXVlc3Q6IEFYUExvY2tHZXRJbmZvUmVxdWVzdCk6IFByb21pc2U8QVhQTG9ja0luZm8+O1xufVxuIl19","import { AXToastService } from '@acorex/components/toast';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPClipBoardService {\n constructor() {\n this.toast = inject(AXToastService);\n }\n copy(title, value) {\n const copyText = document.createElement('input');\n copyText.type = 'text';\n copyText.select();\n copyText.setSelectionRange(0, 99999); // For mobile devices\n copyText.remove();\n navigator.clipboard.writeText(value);\n this.toast.success(`${title} copied!`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPClipBoardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPClipBoardService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPClipBoardService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3V0aWxzL2NsaXBib2FyZC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUlZLFVBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7S0FZMUM7SUFWVSxJQUFJLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDcEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxRQUFRLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUN2QixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtRQUMzRCxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBWFEsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGaEIsTUFBTTs7NEZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDbGlwQm9hcmRTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcblxuICAgIHB1YmxpYyBjb3B5KHRpdGxlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgY29weVRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgICBjb3B5VGV4dC50eXBlID0gJ3RleHQnO1xuICAgICAgICBjb3B5VGV4dC5zZWxlY3QoKTtcbiAgICAgICAgY29weVRleHQuc2V0U2VsZWN0aW9uUmFuZ2UoMCwgOTk5OTkpOyAvLyBGb3IgbW9iaWxlIGRldmljZXNcbiAgICAgICAgY29weVRleHQucmVtb3ZlKCk7XG4gICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKGAke3RpdGxlfSBjb3BpZWQhYCk7XG4gICAgfVxuXG59Il19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXColorBoxModule } from '@acorex/components/color-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXNumberBoxModule } from '@acorex/components/number-box';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { afterNextRender, Component, linkedSignal, model, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/number-box\";\nimport * as i3 from \"@acorex/components/label\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/button\";\nimport * as i6 from \"@acorex/components/color-box\";\nexport class AXMOrgChartPrintPage extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.ratio = signal(false, ...(ngDevMode ? [{ debugName: \"ratio\" }] : []));\n this.baseWidth = signal(undefined, ...(ngDevMode ? [{ debugName: \"baseWidth\" }] : []));\n this.baseHeight = signal(undefined, ...(ngDevMode ? [{ debugName: \"baseHeight\" }] : []));\n this.bgcolor = model(...(ngDevMode ? [undefined, { debugName: \"bgcolor\" }] : []));\n this.width = model(...(ngDevMode ? [undefined, { debugName: \"width\" }] : []));\n this.height = model(...(ngDevMode ? [undefined, { debugName: \"height\" }] : []));\n this.quality = model(...(ngDevMode ? [undefined, { debugName: \"quality\" }] : []));\n this.qualityComputed = linkedSignal(() => (this.data.quality ?? 1) * 100, ...(ngDevMode ? [{ debugName: \"qualityComputed\" }] : []));\n this.scale = model(...(ngDevMode ? [undefined, { debugName: \"scale\" }] : []));\n this.#init = afterNextRender(() => {\n this.bgcolor.set(this.data.bgcolor);\n this.width.set(this.data.width);\n this.baseWidth.set(this.data.width);\n this.height.set(this.data.height);\n this.baseHeight.set(this.data.height);\n this.quality.set(this.data.quality);\n this.scale.set(this.data.scale);\n });\n }\n #init;\n calculateRatio(event, type) {\n if (!this.ratio() || !event.isUserInteraction)\n return;\n const value = event.value;\n if (type === 'width') {\n const newHeight = Math.round((value / this.baseWidth()) * this.baseHeight() * 100) / 100;\n this.height.set(newHeight);\n this.width.set(value);\n }\n else {\n const newWidth = Math.round((value / this.baseHeight()) * this.baseWidth() * 100) / 100;\n this.width.set(newWidth);\n this.height.set(value);\n }\n }\n async handleClose(isCanceled = false) {\n this.close({\n bgcolor: this.bgcolor(),\n width: this.width(),\n height: this.height(),\n quality: this.qualityComputed() / 100,\n scale: this.scale(),\n isCanceled,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMOrgChartPrintPage, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXMOrgChartPrintPage, isStandalone: true, selector: \"ng-component\", inputs: { bgcolor: { classPropertyName: \"bgcolor\", publicName: \"bgcolor\", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: \"width\", publicName: \"width\", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: \"height\", publicName: \"height\", isSignal: true, isRequired: false, transformFunction: null }, quality: { classPropertyName: \"quality\", publicName: \"quality\", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: \"scale\", publicName: \"scale\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { bgcolor: \"bgcolorChange\", width: \"widthChange\", height: \"heightChange\", quality: \"qualityChange\", scale: \"scaleChange\" }, usesInheritance: true, ngImport: i0, template: ` <div class=\"ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center\">\n <ax-label>Resolution (px)</ax-label>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <ax-number-box\n [changeOnScroll]=\"true\"\n [decimals]=\"4\"\n [value]=\"width()\"\n (onValueChanged)=\"calculateRatio($event, 'width')\"\n name=\"Width\"\n >\n </ax-number-box>\n <ax-button [toggleable]=\"true\" [(selected)]=\"ratio\"\n ><ax-icon><i class=\"fa-solid fa-vector-square\"></i></ax-icon\n ></ax-button>\n <ax-number-box\n [changeOnScroll]=\"true\"\n [decimals]=\"4\"\n [value]=\"height()\"\n (onValueChanged)=\"calculateRatio($event, 'height')\"\n name=\"Height\"\n >\n </ax-number-box>\n </div>\n\n <ax-label>Background color</ax-label>\n <ax-color-box [(ngModel)]=\"bgcolor\"></ax-color-box>\n\n <ax-label>Quality of image (50-100%)</ax-label>\n <ax-number-box\n [changeOnScroll]=\"true\"\n [minValue]=\"50\"\n [maxValue]=\"100\"\n [(ngModel)]=\"qualityComputed\"\n name=\"Quality\"\n >\n </ax-number-box>\n\n <ax-label>Scale</ax-label>\n <ax-number-box [changeOnScroll]=\"true\" [minValue]=\"1\" [(ngModel)]=\"scale\" name=\"scale\"> </ax-number-box>\n </div>\n\n <ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button text=\"Print\" look=\"solid\" color=\"primary\" (onClick)=\"handleClose()\">\n <ax-icon class=\"fa-solid fa-print\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>`, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXCheckBoxModule }, { kind: \"ngmodule\", type: AXNumberBoxModule }, { kind: \"component\", type: i2.AXNumberBoxComponent, selector: \"ax-number-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"minValue\", \"maxValue\", \"showSpinButtons\", \"thousandsSeparator\", \"decimals\", \"changeOnScroll\", \"step\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\", \"thousandsSeparatorChange\"] }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i3.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i5.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXColorBoxModule }, { kind: \"component\", type: i6.AXColorBoxComponent, selector: \"ax-color-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"showBadge\", \"showValue\", \"showClearButton\", \"showIcon\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMOrgChartPrintPage, decorators: [{\n type: Component,\n args: [{\n template: ` <div class=\"ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center\">\n <ax-label>Resolution (px)</ax-label>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <ax-number-box\n [changeOnScroll]=\"true\"\n [decimals]=\"4\"\n [value]=\"width()\"\n (onValueChanged)=\"calculateRatio($event, 'width')\"\n name=\"Width\"\n >\n </ax-number-box>\n <ax-button [toggleable]=\"true\" [(selected)]=\"ratio\"\n ><ax-icon><i class=\"fa-solid fa-vector-square\"></i></ax-icon\n ></ax-button>\n <ax-number-box\n [changeOnScroll]=\"true\"\n [decimals]=\"4\"\n [value]=\"height()\"\n (onValueChanged)=\"calculateRatio($event, 'height')\"\n name=\"Height\"\n >\n </ax-number-box>\n </div>\n\n <ax-label>Background color</ax-label>\n <ax-color-box [(ngModel)]=\"bgcolor\"></ax-color-box>\n\n <ax-label>Quality of image (50-100%)</ax-label>\n <ax-number-box\n [changeOnScroll]=\"true\"\n [minValue]=\"50\"\n [maxValue]=\"100\"\n [(ngModel)]=\"qualityComputed\"\n name=\"Quality\"\n >\n </ax-number-box>\n\n <ax-label>Scale</ax-label>\n <ax-number-box [changeOnScroll]=\"true\" [minValue]=\"1\" [(ngModel)]=\"scale\" name=\"scale\"> </ax-number-box>\n </div>\n\n <ax-footer>\n <ax-prefix> </ax-prefix>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button text=\"Print\" look=\"solid\" color=\"primary\" (onClick)=\"handleClose()\">\n <ax-icon class=\"fa-solid fa-print\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>`,\n imports: [\n FormsModule,\n AXCheckBoxModule,\n AXNumberBoxModule,\n AXTextBoxModule,\n AXLabelModule,\n AXDecoratorModule,\n AXButtonModule,\n AXColorBoxModule,\n ],\n }]\n }], propDecorators: { bgcolor: [{ type: i0.Input, args: [{ isSignal: true, alias: \"bgcolor\", required: false }] }, { type: i0.Output, args: [\"bgcolorChange\"] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: \"width\", required: false }] }, { type: i0.Output, args: [\"widthChange\"] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: \"height\", required: false }] }, { type: i0.Output, args: [\"heightChange\"] }], quality: [{ type: i0.Input, args: [{ isSignal: true, alias: \"quality\", required: false }] }, { type: i0.Output, args: [\"qualityChange\"] }], scale: [{ type: i0.Input, args: [{ isSignal: true, alias: \"scale\", required: false }] }, { type: i0.Output, args: [\"scaleChange\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXBvcHVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb21tb24vc3JjL2xpYi91dGlscy9leHBvcnQtcG9wdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWlFN0MsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQTlEN0Q7O1FBaUVZLFVBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxpREFBQyxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxNQUFNLENBQXFCLFNBQVMscURBQUMsQ0FBQztRQUNsRCxlQUFVLEdBQUcsTUFBTSxDQUFxQixTQUFTLHNEQUFDLENBQUM7UUFFbkQsWUFBTyxHQUFHLEtBQUssNkRBQVUsQ0FBQztRQUMxQixVQUFLLEdBQUcsS0FBSywyREFBVSxDQUFDO1FBQ3hCLFdBQU0sR0FBRyxL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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQkFpREssMkRBRWIsV0FBVyw4VkFDWCxnQkFBZ0IsOEJBQ2hCLGlCQUFpQixpZkFDakIsZUFBZSw4QkFDZixhQUFhLGdLQUNiLGlCQUFpQixzVkFDakIsY0FBYyw2WEFDZCxnQkFBZ0I7OzRGQUdQLG9CQUFvQjtrQkE5RGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQWlESztvQkFDZixPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ2hlY2tCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2hlY2stYm94JztcbmltcG9ydCB7IEFYQ29sb3JCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29sb3ItYm94JztcbmltcG9ydCB7IEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYTnVtYmVyQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL251bWJlci1ib3gnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIENvbXBvbmVudCwgbGlua2VkU2lnbmFsLCBtb2RlbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYUERvbVRvSW1hZ2VPcHRpb25zIH0gZnJvbSAnLi9leHBvcnQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYCA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtW2F1dG9fMThyZW1dIGF4LWdhcC00IGF4LWp1c3RpZnktY2VudGVyIGF4LXAtNCBheC1pdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxheC1sYWJlbD5SZXNvbHV0aW9uIChweCk8L2F4LWxhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTIgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxheC1udW1iZXItYm94XG4gICAgICAgICAgW2NoYW5nZU9uU2Nyb2xsXT1cInRydWVcIlxuICAgICAgICAgIFtkZWNpbWFsc109XCI0XCJcbiAgICAgICAgICBbdmFsdWVdPVwid2lkdGgoKVwiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImNhbGN1bGF0ZVJhdGlvKCRldmVudCwgJ3dpZHRoJylcIlxuICAgICAgICAgIG5hbWU9XCJXaWR0aFwiXG4gICAgICAgID5cbiAgICAgICAgPC9heC1udW1iZXItYm94PlxuICAgICAgICA8YXgtYnV0dG9uIFt0b2dnbGVhYmxlXT1cInRydWVcIiBbKHNlbGVjdGVkKV09XCJyYXRpb1wiXG4gICAgICAgICAgPjxheC1pY29uPjxpIGNsYXNzPVwiZmEtc29saWQgZmEtdmVjdG9yLXNxdWFyZVwiPjwvaT48L2F4LWljb25cbiAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtbnVtYmVyLWJveFxuICAgICAgICAgIFtjaGFuZ2VPblNjcm9sbF09XCJ0cnVlXCJcbiAgICAgICAgICBbZGVjaW1hbHNdPVwiNFwiXG4gICAgICAgICAgW3ZhbHVlXT1cImhlaWdodCgpXCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiY2FsY3VsYXRlUmF0aW8oJGV2ZW50LCAnaGVpZ2h0JylcIlxuICAgICAgICAgIG5hbWU9XCJIZWlnaHRcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXgtbnVtYmVyLWJveD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YXgtbGFiZWw+QmFja2dyb3VuZCBjb2xvcjwvYXgtbGFiZWw+XG4gICAgICA8YXgtY29sb3ItYm94IFsobmdNb2RlbCldPVwiYmdjb2xvclwiPjwvYXgtY29sb3ItYm94PlxuXG4gICAgICA8YXgtbGFiZWw+UXVhbGl0eSBvZiBpbWFnZSAoNTAtMTAwJSk8L2F4LWxhYmVsPlxuICAgICAgPGF4LW51bWJlci1ib3hcbiAgICAgICAgW2NoYW5nZU9uU2Nyb2xsXT1cInRydWVcIlxuICAgICAgICBbbWluVmFsdWVdPVwiNTBcIlxuICAgICAgICBbbWF4VmFsdWVdPVwiMTAwXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJxdWFsaXR5Q29tcHV0ZWRcIlxuICAgICAgICBuYW1lPVwiUXVhbGl0eVwiXG4gICAgICA+XG4gICAgICA8L2F4LW51bWJlci1ib3g+XG5cbiAgICAgIDxheC1sYWJlbD5TY2FsZTwvYXgtbGFiZWw+XG4gICAgICA8YXgtbnVtYmVyLWJveCBbY2hhbmdlT25TY3JvbGxdPVwidHJ1ZVwiIFttaW5WYWx1ZV09XCIxXCIgWyhuZ01vZGVsKV09XCJzY2FsZVwiIG5hbWU9XCJzY2FsZVwiPiA8L2F4LW51bWJlci1ib3g+XG4gICAgPC9kaXY+XG5cbiAgICA8YXgtZm9vdGVyPlxuICAgICAgPGF4LXByZWZpeD4gPC9heC1wcmVmaXg+XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIHRleHQ9XCJDYW5jZWxcIiBsb29rPVwic29saWRcIiAob25DbGljayk9XCJoYW5kbGVDbG9zZSh0cnVlKVwiPiA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPGF4LWJ1dHRvbiB0ZXh0PVwiUHJpbnRcIiBsb29rPVwic29saWRcIiBjb2xvcj1cInByaW1hcnlcIiAob25DbGljayk9XCJoYW5kbGVDbG9zZSgpXCI+XG4gICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1wcmludFwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC1mb290ZXI+YCxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYQ2hlY2tCb3hNb2R1bGUsXG4gICAgQVhOdW1iZXJCb3hNb2R1bGUsXG4gICAgQVhUZXh0Qm94TW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhDb2xvckJveE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNT3JnQ2hhcnRQcmludFBhZ2UgZXh0ZW5kcyBBWEJhc2VQYWdlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBkYXRhOiBBWFBEb21Ub0ltYWdlT3B0aW9ucztcblxuICBwcm90ZWN0ZWQgcmF0aW8gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgYmFzZVdpZHRoID0gc2lnbmFsPG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGJhc2VIZWlnaHQgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByb3RlY3RlZCBiZ2NvbG9yID0gbW9kZWw8c3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgd2lkdGggPSBtb2RlbDxudW1iZXI+KCk7XG4gIHByb3RlY3RlZCBoZWlnaHQgPSBtb2RlbDxudW1iZXI+KCk7XG4gIHByb3RlY3RlZCBxdWFsaXR5ID0gbW9kZWw8bnVtYmVyPigpO1xuICBwcm90ZWN0ZWQgcXVhbGl0eUNvbXB1dGVkID0gbGlua2VkU2lnbmFsKCgpID0+ICh0aGlzLmRhdGEucXVhbGl0eSA/PyAxKSAqIDEwMCk7XG4gIHByb3RlY3RlZCBzY2FsZSA9IG1vZGVsPG51bWJlcj4oKTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5iZ2NvbG9yLnNldCh0aGlzLmRhdGEuYmdjb2xvcik7XG5cbiAgICB0aGlzLndpZHRoLnNldCh0aGlzLmRhdGEud2lkdGgpO1xuICAgIHRoaXMuYmFzZVdpZHRoLnNldCh0aGlzLmRhdGEud2lkdGgpO1xuXG4gICAgdGhpcy5oZWlnaHQuc2V0KHRoaXMuZGF0YS5oZWlnaHQpO1xuICAgIHRoaXMuYmFzZUhlaWdodC5zZXQodGhpcy5kYXRhLmhlaWdodCk7XG5cbiAgICB0aGlzLnF1YWxpdHkuc2V0KHRoaXMuZGF0YS5xdWFsaXR5KTtcbiAgICB0aGlzLnNjYWxlLnNldCh0aGlzLmRhdGEuc2NhbGUpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgY2FsY3VsYXRlUmF0aW8oZXZlbnQ6IEFYVmFsdWVDaGFuZ2VkRXZlbnQsIHR5cGU6ICd3aWR0aCcgfCAnaGVpZ2h0Jyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yYXRpbygpIHx8ICFldmVudC5pc1VzZXJJbnRlcmFjdGlvbikgcmV0dXJuO1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgaWYgKHR5cGUgPT09ICd3aWR0aCcpIHtcbiAgICAgIGNvbnN0IG5ld0hlaWdodCA9IE1hdGgucm91bmQoKHZhbHVlIC8gdGhpcy5iYXNlV2lkdGgoKSEpICogdGhpcy5iYXNlSGVpZ2h0KCkhICogMTAwKSAvIDEwMDtcbiAgICAgIHRoaXMuaGVpZ2h0LnNldChuZXdIZWlnaHQpO1xuICAgICAgdGhpcy53aWR0aC5zZXQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdXaWR0aCA9IE1hdGgucm91bmQoKHZhbHVlIC8gdGhpcy5iYXNlSGVpZ2h0KCkhKSAqIHRoaXMuYmFzZVdpZHRoKCkhICogMTAwKSAvIDEwMDtcbiAgICAgIHRoaXMud2lkdGguc2V0KG5ld1dpZHRoKTtcbiAgICAgIHRoaXMuaGVpZ2h0LnNldCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNsb3NlKGlzQ2FuY2VsZWQgPSBmYWxzZSkge1xuICAgIHRoaXMuY2xvc2Uoe1xuICAgICAgYmdjb2xvcjogdGhpcy5iZ2NvbG9yKCksXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCgpLFxuICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCgpLFxuICAgICAgcXVhbGl0eTogdGhpcy5xdWFsaXR5Q29tcHV0ZWQoKSAvIDEwMCxcbiAgICAgIHNjYWxlOiB0aGlzLnNjYWxlKCksXG4gICAgICBpc0NhbmNlbGVkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","// AXPPdfService\nimport { AXPopupService } from '@acorex/components/popup';\nimport { Injectable, inject } from '@angular/core';\nimport { AXMOrgChartPrintPage } from './export-popup';\nimport * as i0 from \"@angular/core\";\nexport class AXPExportService {\n constructor() {\n this.popupService = inject(AXPopupService);\n }\n async generateBlobFromElement(element, blobOptions) {\n const domtoimage = (await import('dom-to-image')).default;\n const originalWidth = element.scrollWidth;\n const originalHeight = element.scrollHeight;\n let popup, options = {}, newOptions = {};\n if (blobOptions) {\n ({ popup, ...options } = blobOptions);\n }\n if (popup) {\n const result = await this.popupService.open(AXMOrgChartPrintPage, {\n header: true,\n size: 'fit',\n draggable: true,\n hasBackdrop: true,\n title: 'Export Options',\n data: { data: options },\n });\n if (result.data.isCanceled) {\n throw new Error('Process is Canceled by User!');\n }\n else {\n newOptions = { ...options, ...result.data };\n }\n }\n return domtoimage.toBlob(element, {\n ...newOptions,\n width: (newOptions.width ?? originalWidth) * (newOptions?.scale ?? 1),\n height: (newOptions.height ?? originalHeight) * (newOptions?.scale ?? 1),\n style: {\n transform: `scale(${newOptions?.scale ?? 1})`,\n transformOrigin: 'top left',\n },\n });\n }\n download(blob, filename) {\n const link = document.createElement('a');\n link.href = URL.createObjectURL(blob);\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(link.href);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPExportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPExportService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPExportService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3V0aWxzL2V4cG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdCQUFnQjtBQUNoQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS3RELE1BQU0sT0FBTyxnQkFBZ0I7SUFIN0I7UUFJRSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQW1EdkM7SUFsREMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLE9BQW9CLEVBQUUsV0FBa0M7UUFDcEYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUUxRCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFFNUMsSUFBSSxLQUEwQixFQUM1QixPQUFPLEdBQXlCLEVBQUUsRUFDbEMsVUFBVSxHQUF5QixFQUFFLENBQUM7UUFFeEMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUNoRSxNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTLEVBQUUsSUFBSTtnQkFDZixXQUFXLEVBQUUsSUFBSTtnQkFDakIsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTthQUN4QixDQUFDLENBQUM7WUFDSCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUNsRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sVUFBVSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2hDLEdBQUcsVUFBVTtZQUNiLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQztZQUNyRSxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDeEUsS0FBSyxFQUFFO2dCQUNMLFNBQVMsRUFBRSxTQUFTLFVBQVUsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHO2dCQUM3QyxlQUFlLEVBQUUsVUFBVTthQUM1QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVSxFQUFFLFFBQWdCO1FBQ25DLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBbkRVLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFYUFBkZlNlcnZpY2VcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNT3JnQ2hhcnRQcmludFBhZ2UgfSBmcm9tICcuL2V4cG9ydC1wb3B1cCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBFeHBvcnRTZXJ2aWNlIHtcbiAgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgYXN5bmMgZ2VuZXJhdGVCbG9iRnJvbUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQsIGJsb2JPcHRpb25zPzogQVhQRG9tVG9JbWFnZU9wdGlvbnMpOiBQcm9taXNlPEJsb2I+IHtcbiAgICBjb25zdCBkb210b2ltYWdlID0gKGF3YWl0IGltcG9ydCgnZG9tLXRvLWltYWdlJykpLmRlZmF1bHQ7XG5cbiAgICBjb25zdCBvcmlnaW5hbFdpZHRoID0gZWxlbWVudC5zY3JvbGxXaWR0aDtcbiAgICBjb25zdCBvcmlnaW5hbEhlaWdodCA9IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuXG4gICAgbGV0IHBvcHVwOiBib29sZWFuIHwgdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogQVhQRG9tVG9JbWFnZU9wdGlvbnMgPSB7fSxcbiAgICAgIG5ld09wdGlvbnM6IEFYUERvbVRvSW1hZ2VPcHRpb25zID0ge307XG5cbiAgICBpZiAoYmxvYk9wdGlvbnMpIHtcbiAgICAgICh7IHBvcHVwLCAuLi5vcHRpb25zIH0gPSBibG9iT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKHBvcHVwKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKEFYTU9yZ0NoYXJ0UHJpbnRQYWdlLCB7XG4gICAgICAgIGhlYWRlcjogdHJ1ZSxcbiAgICAgICAgc2l6ZTogJ2ZpdCcsXG4gICAgICAgIGRyYWdnYWJsZTogdHJ1ZSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHRpdGxlOiAnRXhwb3J0IE9wdGlvbnMnLFxuICAgICAgICBkYXRhOiB7IGRhdGE6IG9wdGlvbnMgfSxcbiAgICAgIH0pO1xuICAgICAgaWYgKHJlc3VsdC5kYXRhLmlzQ2FuY2VsZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm9jZXNzIGlzIENhbmNlbGVkIGJ5IFVzZXIhJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdPcHRpb25zID0geyAuLi5vcHRpb25zLCAuLi5yZXN1bHQuZGF0YSB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkb210b2ltYWdlLnRvQmxvYihlbGVtZW50LCB7XG4gICAgICAuLi5uZXdPcHRpb25zLFxuICAgICAgd2lkdGg6IChuZXdPcHRpb25zLndpZHRoID8/IG9yaWdpbmFsV2lkdGgpICogKG5ld09wdGlvbnM/LnNjYWxlID8/IDEpLFxuICAgICAgaGVpZ2h0OiAobmV3T3B0aW9ucy5oZWlnaHQgPz8gb3JpZ2luYWxIZWlnaHQpICogKG5ld09wdGlvbnM/LnNjYWxlID8/IDEpLFxuICAgICAgc3R5bGU6IHtcbiAgICAgICAgdHJhbnNmb3JtOiBgc2NhbGUoJHtuZXdPcHRpb25zPy5zY2FsZSA/PyAxfSlgLFxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW46ICd0b3AgbGVmdCcsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgZG93bmxvYWQoYmxvYjogQmxvYiwgZmlsZW5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBsaW5rLmRvd25sb2FkID0gZmlsZW5hbWU7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICBsaW5rLmNsaWNrKCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcbiAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGxpbmsuaHJlZik7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEb21Ub0ltYWdlT3B0aW9ucyB7XG4gIHBvcHVwPzogdHJ1ZTtcbiAgZmlsdGVyPzogKG5vZGU6IE5vZGUpID0+IGJvb2xlYW47XG4gIGJnY29sb3I/OiBzdHJpbmc7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBoZWlnaHQ/OiBudW1iZXI7XG4gIHN0eWxlPzoge307XG4gIHF1YWxpdHk/OiBudW1iZXI7XG4gIGltYWdlUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGNhY2hlQnVzdD86IGJvb2xlYW47XG4gIHNjYWxlPzogbnVtYmVyO1xufVxuIl19","export function AXPCleanNestedFilters(filters) {\n return filters\n .map((filter) => {\n if (!filter)\n return undefined;\n if (filter.filters?.length) {\n const cleanedNestedFilters = AXPCleanNestedFilters(filter.filters);\n if (!filter.field && !filter.operator && cleanedNestedFilters.length === 0) {\n return undefined;\n }\n return {\n ...filter,\n filters: cleanedNestedFilters.filter(Boolean),\n };\n }\n if ((!filter.value && filter.value != false) || filter.value === 'unknown') {\n return undefined;\n }\n return filter;\n })\n .filter(Boolean);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNsZWFuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3V0aWxzL2ZpbHRlci1jbGVhbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUFtQztJQUN2RSxPQUFPLE9BQU87U0FDWCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNkLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUIsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzNCLE1BQU0sb0JBQW9CLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzNFLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7WUFDRCxPQUFPO2dCQUNMLEdBQUcsTUFBTTtnQkFDVCxPQUFPLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUM5QyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNFLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7U0FDRCxNQUFNLENBQUMsT0FBTyxDQUErQixDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gQVhQQ2xlYW5OZXN0ZWRGaWx0ZXJzKGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdKTogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10ge1xuICByZXR1cm4gZmlsdGVyc1xuICAgIC5tYXAoKGZpbHRlcikgPT4ge1xuICAgICAgaWYgKCFmaWx0ZXIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICBpZiAoZmlsdGVyLmZpbHRlcnM/Lmxlbmd0aCkge1xuICAgICAgICBjb25zdCBjbGVhbmVkTmVzdGVkRmlsdGVycyA9IEFYUENsZWFuTmVzdGVkRmlsdGVycyhmaWx0ZXIuZmlsdGVycyk7XG4gICAgICAgIGlmICghZmlsdGVyLmZpZWxkICYmICFmaWx0ZXIub3BlcmF0b3IgJiYgY2xlYW5lZE5lc3RlZEZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICBmaWx0ZXJzOiBjbGVhbmVkTmVzdGVkRmlsdGVycy5maWx0ZXIoQm9vbGVhbiksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBpZiAoKCFmaWx0ZXIudmFsdWUgJiYgZmlsdGVyLnZhbHVlICE9IGZhbHNlKSB8fCBmaWx0ZXIudmFsdWUgPT09ICd1bmtub3duJykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9KVxuICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW107XG59XG4iXX0=","//#region ---- Versioning Types ----\nexport var AXVChangeType;\n(function (AXVChangeType) {\n AXVChangeType[\"Create\"] = \"Create\";\n AXVChangeType[\"Update\"] = \"Update\";\n AXVChangeType[\"Delete\"] = \"Delete\";\n})(AXVChangeType || (AXVChangeType = {}));\n//#endregion\n//#region ---- Service Contract ----\nexport class AXPVersioningService {\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvbW1vbi9zcmMvbGliL3ZlcnNpb25pbmcvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBU3hDLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDdkIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBNENELFlBQVk7QUFFWix3Q0FBd0M7QUFFeEMsTUFBTSxPQUFnQixvQkFBb0I7Q0FJekM7QUFFRCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBWZXJzaW9uaW5nIFR5cGVzICAgLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZlcnNpb25TdHJlYW0ge1xuICBpZDogc3RyaW5nO1xuICBlbnRpdHlUeXBlOiBzdHJpbmc7XG4gIGVudGl0eUlkOiBzdHJpbmc7XG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBBWFZDaGFuZ2VUeXBlIHtcbiAgQ3JlYXRlID0gJ0NyZWF0ZScsXG4gIFVwZGF0ZSA9ICdVcGRhdGUnLFxuICBEZWxldGUgPSAnRGVsZXRlJyxcbn1cblxuZXhwb3J0IHR5cGUgQ2Fub25pY2FsQ2hhbmdlT3AgPSAnYWRkJyB8ICdyZW1vdmUnIHwgJ3JlcGxhY2UnIHwgJ3JlbmFtZScgfCAnbWV0YWRhdGEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENhbm9uaWNhbENoYW5nZSB7XG4gIHBhdGg6IHN0cmluZztcbiAgb3A6IENhbm9uaWNhbENoYW5nZU9wO1xuICBvbGRWYWx1ZT86IHVua25vd247XG4gIG5ld1ZhbHVlPzogdW5rbm93bjtcbiAgbWV0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZlcnNpb25FbnRyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIHN0cmVhbUlkOiBzdHJpbmc7XG4gIHZlcnNpb25OdW1iZXI6IG51bWJlcjtcbiAgY2hhbmdlVHlwZTogQVhWQ2hhbmdlVHlwZTtcbiAgY2hhbmdlZEJ5OiBzdHJpbmc7XG4gIGNoYW5nZWRBdDogc3RyaW5nO1xuICBzbmFwc2hvdEpzb246IHVua25vd247XG4gIHBhdGNoRnJvbVByZXZKc29uOiBDYW5vbmljYWxDaGFuZ2VbXTtcbiAgc3VtbWFyeT86IHN0cmluZztcbiAgbWV0YWRhdGFKc29uPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBWZXJzaW9uQ2hhbmdlIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHZlcnNpb25FbnRyeUlkOiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgb3A6IENhbm9uaWNhbENoYW5nZU9wO1xuICBvbGRWYWx1ZT86IHVua25vd247XG4gIG5ld1ZhbHVlPzogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uZWRGaWxlSW5mbyB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc2l6ZTogbnVtYmVyO1xuICBtaW1lOiBzdHJpbmc7XG4gIGhhc2g6IHN0cmluZztcbiAgdXJsPzogc3RyaW5nO1xuICB0aHVtYlVybD86IHN0cmluZztcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgU2VydmljZSBDb250cmFjdCAgIC0tLS1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUFZlcnNpb25pbmdTZXJ2aWNlIHtcbiAgYWJzdHJhY3QgZ2V0U3RyZWFtSWRJZkV4aXN0cyhlbnRpdHlUeXBlOiBzdHJpbmcsIGVudGl0eUlkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xuICBhYnN0cmFjdCBsaXN0RW50cmllcyhzdHJlYW1JZDogc3RyaW5nLCBvcHRpb25zPzogeyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0pOiBQcm9taXNlPEFYUFZlcnNpb25FbnRyeVtdPjtcbiAgYWJzdHJhY3QgZ2V0VWlGcmllbmRseURpZmYoc3RyZWFtSWQ6IHN0cmluZywgdjE6IG51bWJlciwgdjI6IG51bWJlcik6IFByb21pc2U8QXJyYXk8eyBiYWRnZTogc3RyaW5nOyBwYXRoOiBzdHJpbmc7IHN1bW1hcnk6IHN0cmluZzsgb2xkVmFsdWU/OiB1bmtub3duOyBuZXdWYWx1ZT86IHVua25vd24gfT4+O1xufVxuXG4vLyNlbmRyZWdpb25cblxuXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWNvbW1vbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29tbW9uL3NyYy9hY29yZXgtcGxhdGZvcm0tY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["merge","i1.AXPErrorHandlerRegistryService","i1","i2.AXPSettingService","i2","i3"],"mappings":"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"}
|