@acorex/platform 20.6.0-next.2 → 20.6.0-next.21
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/common/index.d.ts +7 -3
- package/core/index.d.ts +210 -56
- 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-CLb2KMfv.mjs → acorex-platform-common-common-settings.provider-zhqNP3xb.mjs} +28 -4
- package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +104 -103
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +279 -78
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +65 -20
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +56 -135
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +1322 -409
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +73 -73
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +7736 -3813
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +58 -40
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +91 -82
- 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-BOP7jFp4.mjs → acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs} +6 -6
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-BOP7jFp4.mjs.map → acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs.map} +1 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs +30 -0
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +1 -0
- 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-fr77M8Z0.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.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-y8vjUiVs.mjs} +5 -5
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +1 -0
- 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 +3809 -2060
- 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 +119 -43
- 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-mARj77Mr.mjs} +30 -9
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D5K0XUqM.mjs +1522 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D5K0XUqM.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-DJPDil7w.mjs → acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.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 +156 -53
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs +55 -0
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +1 -0
- 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 +58 -153
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +327 -151
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/index.d.ts +6 -33
- package/layout/components/index.d.ts +306 -61
- package/layout/designer/index.d.ts +1 -1
- package/layout/entity/index.d.ts +595 -94
- package/layout/views/index.d.ts +6 -58
- package/layout/widget-core/index.d.ts +31 -26
- package/layout/widgets/README.md +0 -1
- package/layout/widgets/index.d.ts +325 -99
- package/package.json +1 -1
- package/runtime/index.d.ts +36 -8
- package/themes/default/index.d.ts +32 -77
- package/themes/shared/index.d.ts +1 -39
- package/workflow/index.d.ts +909 -457
- package/fesm2022/acorex-platform-common-common-settings.provider-CLb2KMfv.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-BsLbiAdA.mjs +0 -52
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-BsLbiAdA.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-fr77M8Z0.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-CvZTRhct.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-list-view.component-BkY9HXcT.mjs +0 -782
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BkY9HXcT.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-core.mjs","sources":["../tmp-esm2022/core/lib/activity-log/activity-log.service.js","../tmp-esm2022/core/lib/activity-log/activity-log.provider.js","../tmp-esm2022/core/lib/color-palette/color-palette.provider.js","../tmp-esm2022/core/lib/color-palette/color-palette.service.js","../tmp-esm2022/core/lib/color-palette/color-palette.types.js","../tmp-esm2022/core/lib/color-palette/default-palettes.provider.js","../tmp-esm2022/core/lib/utils/object-util.js","../tmp-esm2022/core/lib/context/context-store.service.js","../tmp-esm2022/core/lib/data/data-generator.js","../tmp-esm2022/core/lib/data/value-transformer.js","../tmp-esm2022/core/lib/data/datasource-definition-provider.service.js","../tmp-esm2022/core/lib/directives/element-data.directive.js","../tmp-esm2022/core/lib/directives/dbl-click.directive.js","../tmp-esm2022/core/lib/directives/grid-layout.directive.js","../tmp-esm2022/core/lib/directives/content-checker.directive.js","../tmp-esm2022/core/lib/distributed-events/distributed-event-listener.provider.js","../tmp-esm2022/core/lib/distributed-events/distributed-event-listener.service.js","../tmp-esm2022/core/lib/event-service/event.service.js","../tmp-esm2022/core/lib/expression-evaluator/expression-evaluator-scope-provider.service.js","../tmp-esm2022/core/lib/expression-evaluator/expression-evaluator.service.js","../tmp-esm2022/core/lib/hook/utill.service.js","../tmp-esm2022/core/lib/startup/app-startup.service.js","../tmp-esm2022/core/lib/status-definition/status-definition.types.js","../tmp-esm2022/core/lib/status-definition/status-definition-provider.service.js","../tmp-esm2022/core/lib/status-definition/statuses.types.js","../tmp-esm2022/core/lib/tags/tag.types.js","../tmp-esm2022/core/lib/tags/tag.provider.js","../tmp-esm2022/core/lib/tags/tag.service.js","../tmp-esm2022/core/lib/types/actions.types.js","../tmp-esm2022/core/lib/types/core.types.js","../tmp-esm2022/core/lib/types/interactive.types.js","../tmp-esm2022/core/lib/types/logo.types.js","../tmp-esm2022/core/lib/types/scope.types.js","../tmp-esm2022/core/lib/types/export.types.js","../tmp-esm2022/core/lib/utils/countdown-timer.js","../tmp-esm2022/core/lib/utils/data-conditioner.js","../tmp-esm2022/core/lib/utils/highlighter.js","../tmp-esm2022/core/lib/utils/string.js","../tmp-esm2022/core/acorex-platform-core.js"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_ACTIVITY_LOG_PROVIDER = new InjectionToken('AXP_ACTIVITY_LOGS_PROVIDER');\nexport class AXPActivityLogService {\n constructor() {\n this.providers = inject(AXP_ACTIVITY_LOG_PROVIDER, { optional: true });\n }\n async getHistory(refId, refType, options) {\n return (await Promise.all(this.providers?.map((p) => p.getHistory(refId, refType, options)) ?? [])).flat();\n }\n async getHistoryByIds(refId, refType, ids) {\n return (await Promise.all(this.providers?.map((p) => p.getHistoryByIds(refId, refType, ids)) ?? [])).flat();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPActivityLogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPActivityLogService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPActivityLogService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUluRSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsNEJBQTRCLENBQUMsQ0FBQztBQUdwSCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBVTNFO0lBUkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLE9BQXFFO1FBQ3BILE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFN0csQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxHQUFhO1FBQ2pFLE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUcsQ0FBQzsrR0FWVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQURSLE1BQU07OzRGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQWN0aXZpdHlMb2dQcm92aWRlciB9IGZyb20gJy4vYWN0aXZpdHktbG9nLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUEFjdGl2aXR5TG9nIH0gZnJvbSAnLi9hY3Rpdml0eS1sb2cudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQVhQX0FDVElWSVRZX0xPR19QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBBY3Rpdml0eUxvZ1Byb3ZpZGVyW10+KCdBWFBfQUNUSVZJVFlfTE9HU19QUk9WSURFUicpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEFjdGl2aXR5TG9nU2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9BQ1RJVklUWV9MT0dfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgYXN5bmMgZ2V0SGlzdG9yeShyZWZJZDogc3RyaW5nLCByZWZUeXBlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGZyb20/OiBEYXRlOyB0bz86IERhdGU7IGxpbWl0PzogbnVtYmVyOyBvZmZzZXQ/OiBudW1iZXIgfSk6IFByb21pc2U8QVhQQWN0aXZpdHlMb2dbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wcm92aWRlcnM/Lm1hcCgocCkgPT4gcC5nZXRIaXN0b3J5KHJlZklkLCByZWZUeXBlLCBvcHRpb25zKSkgPz8gW10pKS5mbGF0KCk7XG5cbiAgfVxuXG4gIGFzeW5jIGdldEhpc3RvcnlCeUlkcyhyZWZJZDogc3RyaW5nLCByZWZUeXBlOiBzdHJpbmcsIGlkczogc3RyaW5nW10pOiBQcm9taXNlPEFYUEFjdGl2aXR5TG9nW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMucHJvdmlkZXJzPy5tYXAoKHApID0+IHAuZ2V0SGlzdG9yeUJ5SWRzKHJlZklkLCByZWZUeXBlLCBpZHMpKSA/PyBbXSkpLmZsYXQoKTtcbiAgfVxufSJdfQ==","export class AXPActivityLogProvider {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvYWN0aXZpdHktbG9nL2FjdGl2aXR5LWxvZy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLHNCQUFzQjtDQUczQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEFjdGl2aXR5TG9nIH0gZnJvbSAnLi9hY3Rpdml0eS1sb2cudHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQWN0aXZpdHlMb2dQcm92aWRlciB7XG4gIGFic3RyYWN0IGdldEhpc3RvcnkocmVmSWQ6IHN0cmluZywgcmVmVHlwZTogc3RyaW5nLCBvcHRpb25zPzogeyBmcm9tPzogRGF0ZTsgdG8/OiBEYXRlOyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0pOiBQcm9taXNlPEFYUEFjdGl2aXR5TG9nW10+O1xuICBhYnN0cmFjdCBnZXRIaXN0b3J5QnlJZHMocmVmSWQ6IHN0cmluZywgcmVmVHlwZTogc3RyaW5nLCBpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxBWFBBY3Rpdml0eUxvZ1tdPjtcbn0iXX0=","import { InjectionToken } from '@angular/core';\n//#region ---- Color Palette Provider ----\n/**\n * Abstract class for color palette providers\n * Implement this to provide palettes from different sources (system, app, module, etc.)\n */\nexport class AXPColorPaletteProvider {\n}\n/**\n * Injection token for color palette providers\n * Use this to register multiple palette providers\n */\nexport const AXP_COLOR_PALETTE_PROVIDER = new InjectionToken('AXP_COLOR_PALETTE_PROVIDER');\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUvY29sb3ItcGFsZXR0ZS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLDhDQUE4QztBQUU5Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUF1QjtDQVc1QztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUN4RCw0QkFBNEIsQ0FDL0IsQ0FBQztBQUVGLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29sb3JQYWxldHRlIH0gZnJvbSAnLi9jb2xvci1wYWxldHRlLnR5cGVzJztcblxuLy8jcmVnaW9uIC0tLS0gICBDb2xvciBQYWxldHRlIFByb3ZpZGVyICAgLS0tLVxuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBjb2xvciBwYWxldHRlIHByb3ZpZGVyc1xuICogSW1wbGVtZW50IHRoaXMgdG8gcHJvdmlkZSBwYWxldHRlcyBmcm9tIGRpZmZlcmVudCBzb3VyY2VzIChzeXN0ZW0sIGFwcCwgbW9kdWxlLCBldGMuKVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQ29sb3JQYWxldHRlUHJvdmlkZXIge1xuICAgIC8qKlxuICAgICAqIFVuaXF1ZSBuYW1lIGZvciB0aGlzIHByb3ZpZGVyIChlLmcuLCAnc3lzdGVtJywgJ2FwcCcsICdtb2R1bGUnKVxuICAgICAqL1xuICAgIGFic3RyYWN0IG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGUgY29sb3IgcGFsZXR0ZXMgZnJvbSB0aGlzIHNvdXJjZVxuICAgICAqIEByZXR1cm5zIFByb21pc2Ugb2YgcGFsZXR0ZXNcbiAgICAgKi9cbiAgICBhYnN0cmFjdCBwcm92aWRlKCk6IFByb21pc2U8QVhQQ29sb3JQYWxldHRlW10+O1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgY29sb3IgcGFsZXR0ZSBwcm92aWRlcnNcbiAqIFVzZSB0aGlzIHRvIHJlZ2lzdGVyIG11bHRpcGxlIHBhbGV0dGUgcHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBBWFBfQ09MT1JfUEFMRVRURV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBDb2xvclBhbGV0dGVQcm92aWRlcltdPihcbiAgICAnQVhQX0NPTE9SX1BBTEVUVEVfUFJPVklERVInLFxuKTtcblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { AXP_COLOR_PALETTE_PROVIDER } from './color-palette.provider';\nimport * as i0 from \"@angular/core\";\n//#region ---- Color Palette Service ----\n/**\n * Service for managing color palettes from multiple providers\n * Aggregates palettes from all registered providers\n */\nexport class AXPColorPaletteService {\n constructor() {\n //#region ---- Dependencies ----\n this.providers = inject(AXP_COLOR_PALETTE_PROVIDER, { optional: true }) ?? [];\n //#endregion\n //#region ---- State ----\n this.cache = null;\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Get all palettes from all providers\n * @param options Filter options\n * @returns Promise of palettes\n */\n async getPalettes(options) {\n if (!this.cache) {\n await this.loadPalettes();\n }\n let palettes = this.cache;\n // Apply category filter\n if (options?.category) {\n palettes = palettes.filter((palette) => palette.category === options.category);\n }\n // Apply search filter\n if (options?.search) {\n const searchLower = options.search.toLowerCase();\n palettes = palettes.filter((palette) => palette.name.toLowerCase().includes(searchLower) ||\n palette.title.toLowerCase().includes(searchLower) ||\n palette.description?.toLowerCase().includes(searchLower));\n }\n return palettes;\n }\n /**\n * Get a palette by name\n * @param name The unique name of the palette\n * @returns Promise of palette or undefined if not found\n */\n async getPalette(name) {\n if (!this.cache) {\n await this.loadPalettes();\n }\n return this.cache.find((p) => p.name === name);\n }\n /**\n * Get palettes by category\n * @param category The category to filter by\n * @returns Promise of palettes in the specified category\n */\n async getByCategory(category) {\n return this.getPalettes({ category });\n }\n /**\n * Check if a palette exists\n * @param name The unique name of the palette\n * @returns Promise of true if the palette exists\n */\n async has(name) {\n const palette = await this.getPalette(name);\n return palette !== undefined;\n }\n /**\n * Reload palettes from all providers\n */\n async reload() {\n this.cache = null;\n await this.loadPalettes();\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Load palettes from all providers\n */\n async loadPalettes() {\n const allPalettes = [];\n for (const provider of this.providers) {\n try {\n const palettes = await provider.provide();\n allPalettes.push(...palettes);\n }\n catch (error) {\n console.error(`Error loading palettes from provider ${provider.name}:`, error);\n }\n }\n // Remove duplicates based on name\n const uniquePalettes = allPalettes.filter((palette, index, self) => index === self.findIndex((p) => p.name === palette.name));\n this.cache = uniquePalettes;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPColorPaletteService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPColorPaletteService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPColorPaletteService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvY29sb3ItcGFsZXR0ZS9jb2xvci1wYWxldHRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBCQUEwQixFQUEyQixNQUFNLDBCQUEwQixDQUFDOztBQUcvRiw2Q0FBNkM7QUFFN0M7OztHQUdHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUlJLG9DQUFvQztRQUU1QixjQUFTLEdBQThCLE1BQU0sQ0FBQywwQkFBMEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU1RyxZQUFZO1FBRVosNkJBQTZCO1FBRXJCLFVBQUssR0FBNkIsSUFBSSxDQUFDO0tBeUdsRDtJQXZHRyxZQUFZO0lBRVosa0NBQWtDO0lBRWxDOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQXNDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQU0sQ0FBQztRQUUzQix3QkFBd0I7UUFDeEIsSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDcEIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFFRCxzQkFBc0I7UUFDdEIsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDdEIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztnQkFDaEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUNqRCxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FDL0QsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQWdCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQVk7UUFDbEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sT0FBTyxLQUFLLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO0lBRVosdUNBQXVDO0lBRXZDOztPQUVHO0lBQ0ssS0FBSyxDQUFDLFlBQVk7UUFDdEIsTUFBTSxXQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUUxQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUM7Z0JBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxRQUFRLENBQUMsSUFBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNMLENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FDckMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUNyRixDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7SUFDaEMsQ0FBQzsrR0EvR1Esc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX0NPTE9SX1BBTEVUVEVfUFJPVklERVIsIEFYUENvbG9yUGFsZXR0ZVByb3ZpZGVyIH0gZnJvbSAnLi9jb2xvci1wYWxldHRlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUENvbG9yUGFsZXR0ZSwgQVhQQ29sb3JQYWxldHRlRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4vY29sb3ItcGFsZXR0ZS50eXBlcyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29sb3IgUGFsZXR0ZSBTZXJ2aWNlICAgLS0tLVxuXG4vKipcbiAqIFNlcnZpY2UgZm9yIG1hbmFnaW5nIGNvbG9yIHBhbGV0dGVzIGZyb20gbXVsdGlwbGUgcHJvdmlkZXJzXG4gKiBBZ2dyZWdhdGVzIHBhbGV0dGVzIGZyb20gYWxsIHJlZ2lzdGVyZWQgcHJvdmlkZXJzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbG9yUGFsZXR0ZVNlcnZpY2Uge1xuICAgIC8vI3JlZ2lvbiAtLS0tICAgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSBwcm92aWRlcnM6IEFYUENvbG9yUGFsZXR0ZVByb3ZpZGVyW10gPSBpbmplY3QoQVhQX0NPTE9SX1BBTEVUVEVfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgU3RhdGUgICAtLS0tXG5cbiAgICBwcml2YXRlIGNhY2hlOiBBWFBDb2xvclBhbGV0dGVbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBBUEkgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIHBhbGV0dGVzIGZyb20gYWxsIHByb3ZpZGVyc1xuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXG4gICAgICogQHJldHVybnMgUHJvbWlzZSBvZiBwYWxldHRlc1xuICAgICAqL1xuICAgIGFzeW5jIGdldFBhbGV0dGVzKG9wdGlvbnM/OiBBWFBDb2xvclBhbGV0dGVGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxBWFBDb2xvclBhbGV0dGVbXT4ge1xuICAgICAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZFBhbGV0dGVzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGFsZXR0ZXMgPSB0aGlzLmNhY2hlITtcblxuICAgICAgICAvLyBBcHBseSBjYXRlZ29yeSBmaWx0ZXJcbiAgICAgICAgaWYgKG9wdGlvbnM/LmNhdGVnb3J5KSB7XG4gICAgICAgICAgICBwYWxldHRlcyA9IHBhbGV0dGVzLmZpbHRlcigocGFsZXR0ZSkgPT4gcGFsZXR0ZS5jYXRlZ29yeSA9PT0gb3B0aW9ucy5jYXRlZ29yeSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBzZWFyY2ggZmlsdGVyXG4gICAgICAgIGlmIChvcHRpb25zPy5zZWFyY2gpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaExvd2VyID0gb3B0aW9ucy5zZWFyY2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHBhbGV0dGVzID0gcGFsZXR0ZXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChwYWxldHRlKSA9PlxuICAgICAgICAgICAgICAgICAgICBwYWxldHRlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hMb3dlcikgfHxcbiAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZS50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaExvd2VyKSB8fFxuICAgICAgICAgICAgICAgICAgICBwYWxldHRlLmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaExvd2VyKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFsZXR0ZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgcGFsZXR0ZSBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBwYWxldHRlXG4gICAgICogQHJldHVybnMgUHJvbWlzZSBvZiBwYWxldHRlIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmRcbiAgICAgKi9cbiAgICBhc3luYyBnZXRQYWxldHRlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQQ29sb3JQYWxldHRlIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkUGFsZXR0ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlIS5maW5kKChwKSA9PiBwLm5hbWUgPT09IG5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBwYWxldHRlcyBieSBjYXRlZ29yeVxuICAgICAqIEBwYXJhbSBjYXRlZ29yeSBUaGUgY2F0ZWdvcnkgdG8gZmlsdGVyIGJ5XG4gICAgICogQHJldHVybnMgUHJvbWlzZSBvZiBwYWxldHRlcyBpbiB0aGUgc3BlY2lmaWVkIGNhdGVnb3J5XG4gICAgICovXG4gICAgYXN5bmMgZ2V0QnlDYXRlZ29yeShjYXRlZ29yeTogc3RyaW5nKTogUHJvbWlzZTxBWFBDb2xvclBhbGV0dGVbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRQYWxldHRlcyh7IGNhdGVnb3J5IH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGFsZXR0ZSBleGlzdHNcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHBhbGV0dGVcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIG9mIHRydWUgaWYgdGhlIHBhbGV0dGUgZXhpc3RzXG4gICAgICovXG4gICAgYXN5bmMgaGFzKG5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBwYWxldHRlID0gYXdhaXQgdGhpcy5nZXRQYWxldHRlKG5hbWUpO1xuICAgICAgICByZXR1cm4gcGFsZXR0ZSAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbG9hZCBwYWxldHRlcyBmcm9tIGFsbCBwcm92aWRlcnNcbiAgICAgKi9cbiAgICBhc3luYyByZWxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuY2FjaGUgPSBudWxsO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRQYWxldHRlcygpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQcml2YXRlIE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBMb2FkIHBhbGV0dGVzIGZyb20gYWxsIHByb3ZpZGVyc1xuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgbG9hZFBhbGV0dGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBhbGxQYWxldHRlczogQVhQQ29sb3JQYWxldHRlW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbGV0dGVzID0gYXdhaXQgcHJvdmlkZXIucHJvdmlkZSgpO1xuICAgICAgICAgICAgICAgIGFsbFBhbGV0dGVzLnB1c2goLi4ucGFsZXR0ZXMpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBsb2FkaW5nIHBhbGV0dGVzIGZyb20gcHJvdmlkZXIgJHtwcm92aWRlci5uYW1lfTpgLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgZHVwbGljYXRlcyBiYXNlZCBvbiBuYW1lXG4gICAgICAgIGNvbnN0IHVuaXF1ZVBhbGV0dGVzID0gYWxsUGFsZXR0ZXMuZmlsdGVyKFxuICAgICAgICAgICAgKHBhbGV0dGUsIGluZGV4LCBzZWxmKSA9PiBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHApID0+IHAubmFtZSA9PT0gcGFsZXR0ZS5uYW1lKSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNhY2hlID0gdW5pcXVlUGFsZXR0ZXM7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59XG5cbi8vI2VuZHJlZ2lvblxuIl19","//#region ---- Color Palette Types ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUvY29sb3ItcGFsZXR0ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7O0FBNEMzQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBDb2xvciBQYWxldHRlIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2xvciBwYWxldHRlIHdpdGggYSB1bmlxdWUgaWRlbnRpZmllciBhbmQgY29sbGVjdGlvbiBvZiBjb2xvcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBDb2xvclBhbGV0dGUge1xuICAgIC8qKlxuICAgICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGFsZXR0ZVxuICAgICAqIEBleGFtcGxlICdtYXRlcmlhbC1kZXNpZ24nLCAnYnJhbmQtY29sb3JzJywgJ3Bhc3RlbC10aGVtZSdcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEaXNwbGF5IHRpdGxlIGZvciB0aGUgcGFsZXR0ZVxuICAgICAqIEBleGFtcGxlICdNYXRlcmlhbCBEZXNpZ24nLCAnQnJhbmQgQ29sb3JzJywgJ1Bhc3RlbCBUaGVtZSdcbiAgICAgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQXJyYXkgb2YgY29sb3IgY29kZXMgaW4gYW55IHZhbGlkIENTUyBjb2xvciBmb3JtYXRcbiAgICAgKiBAZXhhbXBsZSBbJyNGRjZCNkInLCAnIzRFQ0RDNCcsICdyZ2IoMjU1LCAxMDcsIDEwNyknXVxuICAgICAqL1xuICAgIGNvbG9yczogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBvZiB0aGUgcGFsZXR0ZVxuICAgICAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgY2F0ZWdvcnkgZm9yIGdyb3VwaW5nIHBhbGV0dGVzXG4gICAgICogQGV4YW1wbGUgJ2JyYW5kJywgJ21hdGVyaWFsJywgJ3RoZW1lJywgJ2N1c3RvbSdcbiAgICAgKi9cbiAgICBjYXRlZ29yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBmaWx0ZXJpbmcgY29sb3IgcGFsZXR0ZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBDb2xvclBhbGV0dGVGaWx0ZXJPcHRpb25zIHtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBzZWFyY2g/OiBzdHJpbmc7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { Injectable } from '@angular/core';\nimport { AXPColorPaletteProvider } from './color-palette.provider';\nimport * as i0 from \"@angular/core\";\n//#region ---- Default System Palettes Provider ----\n/**\n * Default system color palette provider\n * Provides built-in color palettes\n */\nexport class AXPDefaultColorPalettesProvider extends AXPColorPaletteProvider {\n constructor() {\n super(...arguments);\n this.name = 'system';\n }\n async provide() {\n return [\n {\n name: 'material-design',\n title: 'Material Design',\n category: 'material',\n description: 'Google Material Design color palette',\n colors: [\n '#F44336', // Red\n '#E91E63', // Pink\n '#9C27B0', // Purple\n '#673AB7', // Deep Purple\n '#3F51B5', // Indigo\n '#2196F3', // Blue\n '#03A9F4', // Light Blue\n '#00BCD4', // Cyan\n '#009688', // Teal\n '#4CAF50', // Green\n '#8BC34A', // Light Green\n '#CDDC39', // Lime\n '#FFEB3B', // Yellow\n '#FFC107', // Amber\n '#FF9800', // Orange\n '#FF5722', // Deep Orange\n ],\n },\n {\n name: 'pastel',\n title: 'Pastel Colors',\n category: 'theme',\n description: 'Soft pastel color palette',\n colors: [\n '#FFB3BA', // Light Pink\n '#FFDFBA', // Light Peach\n '#FFFFBA', // Light Yellow\n '#BAFFC9', // Light Green\n '#BAE1FF', // Light Blue\n '#E0BBE4', // Light Purple\n '#FFDFD3', // Light Coral\n '#D4F1F4', // Light Cyan\n ],\n },\n {\n name: 'vibrant',\n title: 'Vibrant Colors',\n category: 'theme',\n description: 'Bold and vibrant color palette',\n colors: [\n '#FF6B6B', // Vibrant Red\n '#4ECDC4', // Vibrant Teal\n '#45B7D1', // Vibrant Blue\n '#FFA07A', // Vibrant Salmon\n '#98D8C8', // Vibrant Mint\n '#F7DC6F', // Vibrant Yellow\n '#BB8FCE', // Vibrant Purple\n '#85C1E2', // Vibrant Sky Blue\n ],\n },\n {\n name: 'earth-tones',\n title: 'Earth Tones',\n category: 'theme',\n description: 'Natural earth tone color palette',\n colors: [\n '#8B4513', // Saddle Brown\n '#A0522D', // Sienna\n '#D2691E', // Chocolate\n '#CD853F', // Peru\n '#DEB887', // Burlywood\n '#F5DEB3', // Wheat\n '#556B2F', // Dark Olive Green\n '#6B8E23', // Olive Drab\n ],\n },\n {\n name: 'monochrome',\n title: 'Monochrome',\n category: 'theme',\n description: 'Grayscale color palette',\n colors: [\n '#000000', // Black\n '#262626', // Very Dark Gray\n '#404040', // Dark Gray\n '#595959', // Medium Dark Gray\n '#737373', // Medium Gray\n '#8C8C8C', // Light Medium Gray\n '#A6A6A6', // Light Gray\n '#BFBFBF', // Very Light Gray\n '#D9D9D9', // Lighter Gray\n '#F2F2F2', // Almost White\n '#FFFFFF', // White\n ],\n },\n ];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDefaultColorPalettesProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDefaultColorPalettesProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDefaultColorPalettesProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYWxldHRlcy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUvZGVmYXVsdC1wYWxldHRlcy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUduRSx3REFBd0Q7QUFFeEQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHVCQUF1QjtJQUQ1RTs7UUFFSSxTQUFJLEdBQUcsUUFBUSxDQUFDO0tBaUduQjtJQS9GRyxLQUFLLENBQUMsT0FBTztRQUNULE9BQU87WUFDSDtnQkFDSSxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixLQUFLLEVBQUUsaUJBQWlCO2dCQUN4QixRQUFRLEVBQUUsVUFBVTtnQkFDcEIsV0FBVyxFQUFFLHNDQUFzQztnQkFDbkQsTUFBTSxFQUFFO29CQUNKLFNBQVMsRUFBRSxNQUFNO29CQUNqQixTQUFTLEVBQUUsT0FBTztvQkFDbEIsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFNBQVMsRUFBRSxjQUFjO29CQUN6QixTQUFTLEVBQUUsU0FBUztvQkFDcEIsU0FBUyxFQUFFLE9BQU87b0JBQ2xCLFNBQVMsRUFBRSxhQUFhO29CQUN4QixTQUFTLEVBQUUsT0FBTztvQkFDbEIsU0FBUyxFQUFFLE9BQU87b0JBQ2xCLFNBQVMsRUFBRSxRQUFRO29CQUNuQixTQUFTLEVBQUUsY0FBYztvQkFDekIsU0FBUyxFQUFFLE9BQU87b0JBQ2xCLFNBQVMsRUFBRSxTQUFTO29CQUNwQixTQUFTLEVBQUUsUUFBUTtvQkFDbkIsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFNBQVMsRUFBRSxjQUFjO2lCQUM1QjthQUNKO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixXQUFXLEVBQUUsMkJBQTJCO2dCQUN4QyxNQUFNLEVBQUU7b0JBQ0osU0FBUyxFQUFFLGFBQWE7b0JBQ3hCLFNBQVMsRUFBRSxjQUFjO29CQUN6QixTQUFTLEVBQUUsZUFBZTtvQkFDMUIsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLFNBQVMsRUFBRSxhQUFhO29CQUN4QixTQUFTLEVBQUUsZUFBZTtvQkFDMUIsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLFNBQVMsRUFBRSxhQUFhO2lCQUMzQjthQUNKO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFdBQVcsRUFBRSxnQ0FBZ0M7Z0JBQzdDLE1BQU0sRUFBRTtvQkFDSixTQUFTLEVBQUUsY0FBYztvQkFDekIsU0FBUyxFQUFFLGVBQWU7b0JBQzFCLFNBQVMsRUFBRSxlQUFlO29CQUMxQixTQUFTLEVBQUUsaUJBQWlCO29CQUM1QixTQUFTLEVBQUUsZUFBZTtvQkFDMUIsU0FBUyxFQUFFLGlCQUFpQjtvQkFDNUIsU0FBUyxFQUFFLGlCQUFpQjtvQkFDNUIsU0FBUyxFQUFFLG1CQUFtQjtpQkFDakM7YUFDSjtZQUNEO2dCQUNJLElBQUksRUFBRSxhQUFhO2dCQUNuQixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFdBQVcsRUFBRSxrQ0FBa0M7Z0JBQy9DLE1BQU0sRUFBRTtvQkFDSixTQUFTLEVBQUUsZUFBZTtvQkFDMUIsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFNBQVMsRUFBRSxZQUFZO29CQUN2QixTQUFTLEVBQUUsT0FBTztvQkFDbEIsU0FBUyxFQUFFLFlBQVk7b0JBQ3ZCLFNBQVMsRUFBRSxRQUFRO29CQUNuQixTQUFTLEVBQUUsbUJBQW1CO29CQUM5QixTQUFTLEVBQUUsYUFBYTtpQkFDM0I7YUFDSjtZQUNEO2dCQUNJLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUsWUFBWTtnQkFDbkIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFdBQVcsRUFBRSx5QkFBeUI7Z0JBQ3RDLE1BQU0sRUFBRTtvQkFDSixTQUFTLEVBQUUsUUFBUTtvQkFDbkIsU0FBUyxFQUFFLGlCQUFpQjtvQkFDNUIsU0FBUyxFQUFFLFlBQVk7b0JBQ3ZCLFNBQVMsRUFBRSxtQkFBbUI7b0JBQzlCLFNBQVMsRUFBRSxjQUFjO29CQUN6QixTQUFTLEVBQUUsb0JBQW9CO29CQUMvQixTQUFTLEVBQUUsYUFBYTtvQkFDeEIsU0FBUyxFQUFFLGtCQUFrQjtvQkFDN0IsU0FBUyxFQUFFLGVBQWU7b0JBQzFCLFNBQVMsRUFBRSxlQUFlO29CQUMxQixTQUFTLEVBQUUsUUFBUTtpQkFDdEI7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDOytHQWpHUSwrQkFBK0I7bUhBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUENvbG9yUGFsZXR0ZVByb3ZpZGVyIH0gZnJvbSAnLi9jb2xvci1wYWxldHRlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUENvbG9yUGFsZXR0ZSB9IGZyb20gJy4vY29sb3ItcGFsZXR0ZS50eXBlcyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgRGVmYXVsdCBTeXN0ZW0gUGFsZXR0ZXMgUHJvdmlkZXIgICAtLS0tXG5cbi8qKlxuICogRGVmYXVsdCBzeXN0ZW0gY29sb3IgcGFsZXR0ZSBwcm92aWRlclxuICogUHJvdmlkZXMgYnVpbHQtaW4gY29sb3IgcGFsZXR0ZXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUERlZmF1bHRDb2xvclBhbGV0dGVzUHJvdmlkZXIgZXh0ZW5kcyBBWFBDb2xvclBhbGV0dGVQcm92aWRlciB7XG4gICAgbmFtZSA9ICdzeXN0ZW0nO1xuXG4gICAgYXN5bmMgcHJvdmlkZSgpOiBQcm9taXNlPEFYUENvbG9yUGFsZXR0ZVtdPiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ21hdGVyaWFsLWRlc2lnbicsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdNYXRlcmlhbCBEZXNpZ24nLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnbWF0ZXJpYWwnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR29vZ2xlIE1hdGVyaWFsIERlc2lnbiBjb2xvciBwYWxldHRlJyxcbiAgICAgICAgICAgICAgICBjb2xvcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgJyNGNDQzMzYnLCAvLyBSZWRcbiAgICAgICAgICAgICAgICAgICAgJyNFOTFFNjMnLCAvLyBQaW5rXG4gICAgICAgICAgICAgICAgICAgICcjOUMyN0IwJywgLy8gUHVycGxlXG4gICAgICAgICAgICAgICAgICAgICcjNjczQUI3JywgLy8gRGVlcCBQdXJwbGVcbiAgICAgICAgICAgICAgICAgICAgJyMzRjUxQjUnLCAvLyBJbmRpZ29cbiAgICAgICAgICAgICAgICAgICAgJyMyMTk2RjMnLCAvLyBCbHVlXG4gICAgICAgICAgICAgICAgICAgICcjMDNBOUY0JywgLy8gTGlnaHQgQmx1ZVxuICAgICAgICAgICAgICAgICAgICAnIzAwQkNENCcsIC8vIEN5YW5cbiAgICAgICAgICAgICAgICAgICAgJyMwMDk2ODgnLCAvLyBUZWFsXG4gICAgICAgICAgICAgICAgICAgICcjNENBRjUwJywgLy8gR3JlZW5cbiAgICAgICAgICAgICAgICAgICAgJyM4QkMzNEEnLCAvLyBMaWdodCBHcmVlblxuICAgICAgICAgICAgICAgICAgICAnI0NEREMzOScsIC8vIExpbWVcbiAgICAgICAgICAgICAgICAgICAgJyNGRkVCM0InLCAvLyBZZWxsb3dcbiAgICAgICAgICAgICAgICAgICAgJyNGRkMxMDcnLCAvLyBBbWJlclxuICAgICAgICAgICAgICAgICAgICAnI0ZGOTgwMCcsIC8vIE9yYW5nZVxuICAgICAgICAgICAgICAgICAgICAnI0ZGNTcyMicsIC8vIERlZXAgT3JhbmdlXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3Bhc3RlbCcsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdQYXN0ZWwgQ29sb3JzJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ3RoZW1lJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NvZnQgcGFzdGVsIGNvbG9yIHBhbGV0dGUnLFxuICAgICAgICAgICAgICAgIGNvbG9yczogW1xuICAgICAgICAgICAgICAgICAgICAnI0ZGQjNCQScsIC8vIExpZ2h0IFBpbmtcbiAgICAgICAgICAgICAgICAgICAgJyNGRkRGQkEnLCAvLyBMaWdodCBQZWFjaFxuICAgICAgICAgICAgICAgICAgICAnI0ZGRkZCQScsIC8vIExpZ2h0IFllbGxvd1xuICAgICAgICAgICAgICAgICAgICAnI0JBRkZDOScsIC8vIExpZ2h0IEdyZWVuXG4gICAgICAgICAgICAgICAgICAgICcjQkFFMUZGJywgLy8gTGlnaHQgQmx1ZVxuICAgICAgICAgICAgICAgICAgICAnI0UwQkJFNCcsIC8vIExpZ2h0IFB1cnBsZVxuICAgICAgICAgICAgICAgICAgICAnI0ZGREZEMycsIC8vIExpZ2h0IENvcmFsXG4gICAgICAgICAgICAgICAgICAgICcjRDRGMUY0JywgLy8gTGlnaHQgQ3lhblxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICd2aWJyYW50JyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1ZpYnJhbnQgQ29sb3JzJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ3RoZW1lJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0JvbGQgYW5kIHZpYnJhbnQgY29sb3IgcGFsZXR0ZScsXG4gICAgICAgICAgICAgICAgY29sb3JzOiBbXG4gICAgICAgICAgICAgICAgICAgICcjRkY2QjZCJywgLy8gVmlicmFudCBSZWRcbiAgICAgICAgICAgICAgICAgICAgJyM0RUNEQzQnLCAvLyBWaWJyYW50IFRlYWxcbiAgICAgICAgICAgICAgICAgICAgJyM0NUI3RDEnLCAvLyBWaWJyYW50IEJsdWVcbiAgICAgICAgICAgICAgICAgICAgJyNGRkEwN0EnLCAvLyBWaWJyYW50IFNhbG1vblxuICAgICAgICAgICAgICAgICAgICAnIzk4RDhDOCcsIC8vIFZpYnJhbnQgTWludFxuICAgICAgICAgICAgICAgICAgICAnI0Y3REM2RicsIC8vIFZpYnJhbnQgWWVsbG93XG4gICAgICAgICAgICAgICAgICAgICcjQkI4RkNFJywgLy8gVmlicmFudCBQdXJwbGVcbiAgICAgICAgICAgICAgICAgICAgJyM4NUMxRTInLCAvLyBWaWJyYW50IFNreSBCbHVlXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2VhcnRoLXRvbmVzJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0VhcnRoIFRvbmVzJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ3RoZW1lJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05hdHVyYWwgZWFydGggdG9uZSBjb2xvciBwYWxldHRlJyxcbiAgICAgICAgICAgICAgICBjb2xvcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgJyM4QjQ1MTMnLCAvLyBTYWRkbGUgQnJvd25cbiAgICAgICAgICAgICAgICAgICAgJyNBMDUyMkQnLCAvLyBTaWVubmFcbiAgICAgICAgICAgICAgICAgICAgJyNEMjY5MUUnLCAvLyBDaG9jb2xhdGVcbiAgICAgICAgICAgICAgICAgICAgJyNDRDg1M0YnLCAvLyBQZXJ1XG4gICAgICAgICAgICAgICAgICAgICcjREVCODg3JywgLy8gQnVybHl3b29kXG4gICAgICAgICAgICAgICAgICAgICcjRjVERUIzJywgLy8gV2hlYXRcbiAgICAgICAgICAgICAgICAgICAgJyM1NTZCMkYnLCAvLyBEYXJrIE9saXZlIEdyZWVuXG4gICAgICAgICAgICAgICAgICAgICcjNkI4RTIzJywgLy8gT2xpdmUgRHJhYlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdtb25vY2hyb21lJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ01vbm9jaHJvbWUnLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAndGhlbWUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR3JheXNjYWxlIGNvbG9yIHBhbGV0dGUnLFxuICAgICAgICAgICAgICAgIGNvbG9yczogW1xuICAgICAgICAgICAgICAgICAgICAnIzAwMDAwMCcsIC8vIEJsYWNrXG4gICAgICAgICAgICAgICAgICAgICcjMjYyNjI2JywgLy8gVmVyeSBEYXJrIEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyM0MDQwNDAnLCAvLyBEYXJrIEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyM1OTU5NTknLCAvLyBNZWRpdW0gRGFyayBHcmF5XG4gICAgICAgICAgICAgICAgICAgICcjNzM3MzczJywgLy8gTWVkaXVtIEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyM4QzhDOEMnLCAvLyBMaWdodCBNZWRpdW0gR3JheVxuICAgICAgICAgICAgICAgICAgICAnI0E2QTZBNicsIC8vIExpZ2h0IEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyNCRkJGQkYnLCAvLyBWZXJ5IExpZ2h0IEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyNEOUQ5RDknLCAvLyBMaWdodGVyIEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyNGMkYyRjInLCAvLyBBbG1vc3QgV2hpdGVcbiAgICAgICAgICAgICAgICAgICAgJyNGRkZGRkYnLCAvLyBXaGl0ZVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { differenceWith, get, isArray, isEmpty, isEqual, isNil, isObjectLike, isPlainObject, merge, set, transform, union, } from 'lodash-es';\nexport function extractNestedFieldsWildcard(obj, basePath, fields) {\n const result = {};\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = get(obj, basePath);\n return isPlainObject(fullObj) ? fullObj : {};\n }\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const value = get(obj, fullPath);\n set(result, field, value);\n }\n return result;\n}\nexport function setSmart(obj, smartPath, value) {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n if (!fieldMatch) {\n set(obj, smartPath, value);\n return obj;\n }\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const [arrayKey, ...restPath] = basePath.split('.');\n // Make sure the array exists\n if (!obj[arrayKey])\n obj[arrayKey] = [];\n // 🟡 Case A: value is array (normal set)\n if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n if (restPath.length > 0) {\n const picked = extractNestedFieldsWildcard(item, restPath.join('.'), fields);\n set(nested, restPath.join('.'), picked);\n }\n else {\n const picked = extractNestedFieldsWildcard(item, '', fields);\n Object.assign(nested, picked);\n }\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n // 🟢 Case B: value is a single value → broadcast\n else {\n for (let i = 0; i < obj[arrayKey].length; i++) {\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n if (restPath.length > 0) {\n for (const field of fields) {\n set(nested, `${restPath.join('.')}.${field}`, value);\n }\n }\n else {\n for (const field of fields) {\n set(nested, field, value);\n }\n }\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n return obj;\n}\nfunction extractFieldsFromPath(obj, basePath, fields) {\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = basePath ? get(obj, basePath) : obj;\n return isPlainObject(fullObj) ? fullObj : {};\n }\n const result = {};\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const val = get(obj, fullPath);\n if (val !== undefined) {\n result[field] = val;\n }\n }\n return result;\n}\nexport function getSmart(obj, smartPath) {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n // Simple get (no fields)\n if (!fieldMatch) {\n return get(obj, smartPath);\n }\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const items = get(obj, basePath);\n if (!isArray(items))\n return [];\n const nestedPath = basePath.includes('.') ? basePath.split('.').slice(1).join('.') : '';\n return items.map((item) => {\n return extractFieldsFromPath(item, nestedPath, fields);\n });\n}\nexport function extractValue(value, key = 'id') {\n if (isNil(value)) {\n return null;\n }\n return isObjectLike(value) ? get(value, key) : value;\n}\nexport function cleanDeep(obj) {\n return transform(obj, (result, value, key) => {\n if (isObjectLike(value)) {\n const cleaned = cleanDeep(value);\n if (!isEmpty(cleaned)) {\n result[key] = cleaned;\n }\n }\n else if (!isNil(value) && // not null or undefined\n !(typeof value === 'string' && value.trim() === '') && // not empty string\n !(Array.isArray(value) && value.length === 0) // not empty array\n ) {\n result[key] = value;\n }\n });\n}\nfunction getDeepChanges(obj1, obj2) {\n const changes = [];\n function walk(o1, o2, currentPath = []) {\n // If both values are deeply equal, skip\n if (isEqual(o1, o2))\n return;\n const isObj1Nil = o1 === null || o1 === undefined;\n const isObj2Nil = o2 === null || o2 === undefined;\n // If obj1 is null/undefined and obj2 is not, treat entire obj2 as added\n if (isObj1Nil && !isObj2Nil) {\n if (isPlainObject(o2)) {\n for (const key of Object.keys(o2)) {\n walk(undefined, o2[key], [...currentPath, key]);\n }\n }\n else if (Array.isArray(o2)) {\n changes.push({\n path: currentPath.join('.'),\n oldValue: undefined,\n newValue: o2,\n arrayDiff: {\n added: o2,\n removed: [],\n },\n });\n }\n else {\n changes.push({\n path: currentPath.join('.'),\n oldValue: undefined,\n newValue: o2,\n });\n }\n return;\n }\n // If obj2 is null/undefined and obj1 is not, treat entire obj1 as removed\n if (!isObj1Nil && isObj2Nil) {\n if (isPlainObject(o1)) {\n for (const key of Object.keys(o1)) {\n walk(o1[key], undefined, [...currentPath, key]);\n }\n }\n else if (Array.isArray(o1)) {\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: undefined,\n arrayDiff: {\n added: [],\n removed: o1,\n },\n });\n }\n else {\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: undefined,\n });\n }\n return;\n }\n // If both are arrays, compare items\n if (Array.isArray(o1) && Array.isArray(o2)) {\n if (!isEqual(o1, o2)) {\n const added = differenceWith(o2, o1, isEqual);\n const removed = differenceWith(o1, o2, isEqual);\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: o2,\n arrayDiff: {\n added,\n removed,\n },\n });\n }\n return;\n }\n // If both are plain objects, walk each key\n if (isPlainObject(o1) && isPlainObject(o2)) {\n const allKeys = union(Object.keys(o1), Object.keys(o2));\n for (const key of allKeys) {\n walk(o1[key], o2[key], [...currentPath, key]);\n }\n return;\n }\n // Primitive values or mismatched types\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: o2,\n });\n }\n walk(obj1, obj2);\n return changes;\n}\n// Method 1: Returns only changed paths\nexport function getChangedPaths(obj1, obj2) {\n return getDeepChanges(obj1, obj2).map((change) => change.path);\n}\n// Method 2: Returns full change entries\nexport function getDetailedChanges(obj1, obj2) {\n return getDeepChanges(obj1, obj2);\n}\nexport function getEnumValues(enumType) {\n return Object.entries(enumType).map(([key, value]) => ({ id: value, title: key }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9vYmplY3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLEdBQUcsRUFDSCxPQUFPLEVBQ1AsT0FBTyxFQUNQLE9BQU8sRUFDUCxLQUFLLEVBQ0wsWUFBWSxFQUNaLGFBQWEsRUFDYixLQUFLLEVBQ0wsR0FBRyxFQUNILFNBQVMsRUFDVCxLQUFLLEdBQ04sTUFBTSxXQUFXLENBQUM7QUFFbkIsTUFBTSxVQUFVLDJCQUEyQixDQUFDLEdBQVEsRUFBRSxRQUFnQixFQUFFLE1BQWdCO0lBQ3RGLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUV2QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztB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QUcsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsdUNBQXVDO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDWCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDM0IsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFTLEVBQUUsSUFBUztJQUNsRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELHdDQUF3QztBQUN4QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBUyxFQUFFLElBQVM7SUFDckQsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFJRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFFBQWE7SUFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQWUsRUFBRSxLQUFLLEVBQUUsR0FBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkaWZmZXJlbmNlV2l0aCxcbiAgZ2V0LFxuICBpc0FycmF5LFxuICBpc0VtcHR5LFxuICBpc0VxdWFsLFxuICBpc05pbCxcbiAgaXNPYmplY3RMaWtlLFxuICBpc1BsYWluT2JqZWN0LFxuICBtZXJnZSxcbiAgc2V0LFxuICB0cmFuc2Zvcm0sXG4gIHVuaW9uLFxufSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE5lc3RlZEZpZWxkc1dpbGRjYXJkKG9iajogYW55LCBiYXNlUGF0aDogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcblxuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBnZXQob2JqLCBiYXNlUGF0aCk7XG4gICAgcmV0dXJuIGlzUGxhaW5PYmplY3QoZnVsbE9iaikgPyBmdWxsT2JqIDoge307XG4gIH1cblxuICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYmFzZVBhdGggPyBgJHtiYXNlUGF0aH0uJHtmaWVsZH1gIDogZmllbGQ7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgc2V0KHJlc3VsdCwgZmllbGQsIHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTbWFydChvYmo6IGFueSwgc21hcnRQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkge1xuICBjb25zdCBwYXRoUGFydHMgPSBzbWFydFBhdGguc3BsaXQoJy4nKTtcbiAgY29uc3QgbGFzdFBhcnQgPSBwYXRoUGFydHNbcGF0aFBhcnRzLmxlbmd0aCAtIDFdO1xuICBjb25zdCBmaWVsZE1hdGNoID0gbGFzdFBhcnQubWF0Y2goL15cXHsoLispXFx9JC8pO1xuXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHNldChvYmosIHNtYXJ0UGF0aCwgdmFsdWUpO1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBjb25zdCBmaWVsZHMgPSBmaWVsZE1hdGNoWzFdLnNwbGl0KCcsJykubWFwKChmKSA9PiBmLnRyaW0oKSk7XG4gIGNvbnN0IGJhc2VQYXRoID0gcGF0aFBhcnRzLnNsaWNlKDAsIC0xKS5qb2luKCcuJyk7XG4gIGNvbnN0IFthcnJheUtleSwgLi4ucmVzdFBhdGhdID0gYmFzZVBhdGguc3BsaXQoJy4nKTtcblxuICAvLyBNYWtlIHN1cmUgdGhlIGFycmF5IGV4aXN0c1xuICBpZiAoIW9ialthcnJheUtleV0pIG9ialthcnJheUtleV0gPSBbXTtcblxuICAvLyDwn5+hIENhc2UgQTogdmFsdWUgaXMgYXJyYXkgKG5vcm1hbCBzZXQpXG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB2YWx1ZVtpXTtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCByZXN0UGF0aC5qb2luKCcuJyksIGZpZWxkcyk7XG4gICAgICAgIHNldChuZXN0ZWQsIHJlc3RQYXRoLmpvaW4oJy4nKSwgcGlja2VkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCAnJywgZmllbGRzKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXN0ZWQsIHBpY2tlZCk7XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICAvLyDwn5+iIENhc2UgQjogdmFsdWUgaXMgYSBzaW5nbGUgdmFsdWUg4oaSIGJyb2FkY2FzdFxuICBlbHNlIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9ialthcnJheUtleV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgICAgc2V0KG5lc3RlZCwgYCR7cmVzdFBhdGguam9pbignLicpfS4ke2ZpZWxkfWAsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICBzZXQobmVzdGVkLCBmaWVsZCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RmllbGRzRnJvbVBhdGgob2JqOiBhbnksIGJhc2VQYXRoOiBzdHJpbmcsIGZpZWxkczogc3RyaW5nW10pOiBhbnkge1xuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBiYXNlUGF0aCA/IGdldChvYmosIGJhc2VQYXRoKSA6IG9iajtcbiAgICByZXR1cm4gaXNQbGFpbk9iamVjdChmdWxsT2JqKSA/IGZ1bGxPYmogOiB7fTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBiYXNlUGF0aCA/IGAke2Jhc2VQYXRofS4ke2ZpZWxkfWAgOiBmaWVsZDtcbiAgICBjb25zdCB2YWwgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHRbZmllbGRdID0gdmFsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U21hcnQob2JqOiBhbnksIHNtYXJ0UGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcGF0aFBhcnRzID0gc21hcnRQYXRoLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RQYXJ0ID0gcGF0aFBhcnRzW3BhdGhQYXJ0cy5sZW5ndGggLSAxXTtcbiAgY29uc3QgZmllbGRNYXRjaCA9IGxhc3RQYXJ0Lm1hdGNoKC9eXFx7KC4rKVxcfSQvKTtcblxuICAvLyBTaW1wbGUgZ2V0IChubyBmaWVsZHMpXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHJldHVybiBnZXQob2JqLCBzbWFydFBhdGgpO1xuICB9XG5cbiAgY29uc3QgZmllbGRzID0gZmllbGRNYXRjaFsxXS5zcGxpdCgnLCcpLm1hcCgoZikgPT4gZi50cmltKCkpO1xuICBjb25zdCBiYXNlUGF0aCA9IHBhdGhQYXJ0cy5zbGljZSgwLCAtMSkuam9pbignLicpO1xuICBjb25zdCBpdGVtcyA9IGdldChvYmosIGJhc2VQYXRoKTtcblxuICBpZiAoIWlzQXJyYXkoaXRlbXMpKSByZXR1cm4gW107XG5cbiAgY29uc3QgbmVzdGVkUGF0aCA9IGJhc2VQYXRoLmluY2x1ZGVzKCcuJykgPyBiYXNlUGF0aC5zcGxpdCgnLicpLnNsaWNlKDEpLmpvaW4oJy4nKSA6ICcnO1xuXG4gIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICByZXR1cm4gZXh0cmFjdEZpZWxkc0Zyb21QYXRoKGl0ZW0sIG5lc3RlZFBhdGgsIGZpZWxkcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFZhbHVlPFQgPSBhbnk+KHZhbHVlOiBhbnksIGtleTogc3RyaW5nID0gJ2lkJyk6IFQgfCBudWxsIHtcbiAgaWYgKGlzTmlsKHZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpID8gZ2V0KHZhbHVlLCBrZXkpIDogdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRlZXAob2JqOiBhbnkpIHtcbiAgcmV0dXJuIHRyYW5zZm9ybShvYmosIChyZXN1bHQ6IGFueSwgdmFsdWU6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgICAgY29uc3QgY2xlYW5lZCA9IGNsZWFuRGVlcCh2YWx1ZSk7XG4gICAgICBpZiAoIWlzRW1wdHkoY2xlYW5lZCkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBjbGVhbmVkO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhaXNOaWwodmFsdWUpICYmIC8vIG5vdCBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgISh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpICYmIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICEoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICApIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cblxudHlwZSBDaGFuZ2VFbnRyeSA9IHtcbiAgcGF0aDogc3RyaW5nO1xuICBvbGRWYWx1ZTogYW55O1xuICBuZXdWYWx1ZTogYW55O1xuICBhcnJheURpZmY/OiB7XG4gICAgYWRkZWQ6IGFueVtdO1xuICAgIHJlbW92ZWQ6IGFueVtdO1xuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0RGVlcENoYW5nZXMob2JqMTogYW55LCBvYmoyOiBhbnkpOiBDaGFuZ2VFbnRyeVtdIHtcbiAgY29uc3QgY2hhbmdlczogQ2hhbmdlRW50cnlbXSA9IFtdO1xuXG4gIGZ1bmN0aW9uIHdhbGsobzE6IGFueSwgbzI6IGFueSwgY3VycmVudFBhdGg6IHN0cmluZ1tdID0gW10pIHtcbiAgICAvLyBJZiBib3RoIHZhbHVlcyBhcmUgZGVlcGx5IGVxdWFsLCBza2lwXG4gICAgaWYgKGlzRXF1YWwobzEsIG8yKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaXNPYmoxTmlsID0gbzEgPT09IG51bGwgfHwgbzEgPT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpc09iajJOaWwgPSBvMiA9PT0gbnVsbCB8fCBvMiA9PT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gSWYgb2JqMSBpcyBudWxsL3VuZGVmaW5lZCBhbmQgb2JqMiBpcyBub3QsIHRyZWF0IGVudGlyZSBvYmoyIGFzIGFkZGVkXG4gICAgaWYgKGlzT2JqMU5pbCAmJiAhaXNPYmoyTmlsKSB7XG4gICAgICBpZiAoaXNQbGFpbk9iamVjdChvMikpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobzIpKSB7XG4gICAgICAgICAgd2Fsayh1bmRlZmluZWQsIG8yW2tleV0sIFsuLi5jdXJyZW50UGF0aCwga2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvMikpIHtcbiAgICAgICAgY2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICAgICAgb2xkVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZDogbzIsXG4gICAgICAgICAgICByZW1vdmVkOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3VmFsdWU6IG8yLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBvYmoyIGlzIG51bGwvdW5kZWZpbmVkIGFuZCBvYmoxIGlzIG5vdCwgdHJlYXQgZW50aXJlIG9iajEgYXMgcmVtb3ZlZFxuICAgIGlmICghaXNPYmoxTmlsICYmIGlzT2JqMk5pbCkge1xuICAgICAgaWYgKGlzUGxhaW5PYmplY3QobzEpKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG8xKSkge1xuICAgICAgICAgIHdhbGsobzFba2V5XSwgdW5kZWZpbmVkLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobzEpKSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgIGFycmF5RGlmZjoge1xuICAgICAgICAgICAgYWRkZWQ6IFtdLFxuICAgICAgICAgICAgcmVtb3ZlZDogbzEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGFuZ2VzLnB1c2goe1xuICAgICAgICAgIHBhdGg6IGN1cnJlbnRQYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICAgICAgbmV3VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgYXJyYXlzLCBjb21wYXJlIGl0ZW1zXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobzEpICYmIEFycmF5LmlzQXJyYXkobzIpKSB7XG4gICAgICBpZiAoIWlzRXF1YWwobzEsIG8yKSkge1xuICAgICAgICBjb25zdCBhZGRlZCA9IGRpZmZlcmVuY2VXaXRoKG8yLCBvMSwgaXNFcXVhbCk7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkaWZmZXJlbmNlV2l0aChvMSwgbzIsIGlzRXF1YWwpO1xuXG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZCxcbiAgICAgICAgICAgIHJlbW92ZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgcGxhaW4gb2JqZWN0cywgd2FsayBlYWNoIGtleVxuICAgIGlmIChpc1BsYWluT2JqZWN0KG8xKSAmJiBpc1BsYWluT2JqZWN0KG8yKSkge1xuICAgICAgY29uc3QgYWxsS2V5cyA9IHVuaW9uKE9iamVjdC5rZXlzKG8xKSwgT2JqZWN0LmtleXMobzIpKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGFsbEtleXMpIHtcbiAgICAgICAgd2FsayhvMVtrZXldLCBvMltrZXldLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFByaW1pdGl2ZSB2YWx1ZXMgb3IgbWlzbWF0Y2hlZCB0eXBlc1xuICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICBuZXdWYWx1ZTogbzIsXG4gICAgfSk7XG4gIH1cblxuICB3YWxrKG9iajEsIG9iajIpO1xuICByZXR1cm4gY2hhbmdlcztcbn1cblxuLy8gTWV0aG9kIDE6IFJldHVybnMgb25seSBjaGFuZ2VkIHBhdGhzXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlZFBhdGhzKG9iajE6IGFueSwgb2JqMjogYW55KTogc3RyaW5nW10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMikubWFwKChjaGFuZ2UpID0+IGNoYW5nZS5wYXRoKTtcbn1cblxuLy8gTWV0aG9kIDI6IFJldHVybnMgZnVsbCBjaGFuZ2UgZW50cmllc1xuZXhwb3J0IGZ1bmN0aW9uIGdldERldGFpbGVkQ2hhbmdlcyhvYmoxOiBhbnksIG9iajI6IGFueSk6IENoYW5nZUVudHJ5W10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMik7XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW51bVZhbHVlcyhlbnVtVHlwZTogYW55KTogeyBpZDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH1bXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhlbnVtVHlwZSkubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGlkOiB2YWx1ZSBhcyBzdHJpbmcsIHRpdGxlOiBrZXkgYXMgc3RyaW5nIH0pKTtcbn1cblxuXG5cblxuXG4iXX0=","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { getSmart, setSmart } from '../utils/object-util';\nexport class AXPContextChangeEvent {\n}\nexport const AXPContextStore = signalStore({\n providedIn: 'root',\n}, \n// Initial State\nwithState(() => ({\n data: {}, // Shared context data\n state: 'initiated', // Current state\n initialSnapshot: {}, // Snapshot of the first initialized state\n previousSnapshot: {}, // Snapshot of the previous state\n lastChange: {\n state: 'initiated',\n }, // Last change event\n})), \n// Computed Signals\nwithComputed(({ data, state, lastChange, initialSnapshot, previousSnapshot }) => ({\n isChanged: computed(() => state() === 'changed'),\n isReset: computed(() => state() === 'restored'),\n isInitiated: computed(() => state() === 'initiated'),\n isEmpty: computed(() => Object.keys(data()).length === 0),\n isDirty: computed(() => !isEqual(data(), previousSnapshot())),\n snapshot: computed(() => cloneDeep(data())), // Current data snapshot\n initial: computed(() => cloneDeep(initialSnapshot())), // Initial snapshot\n previous: computed(() => cloneDeep(previousSnapshot())), // Previous snapshot\n changeEvent: computed(() => lastChange()), // Reactive last change event\n})), \n// Methods for State Management\nwithMethods((store) => ({\n // Update a specific value\n update(path, value) {\n const currentData = cloneDeep(store.data());\n const oldValue = getSmart(currentData, path);\n // Skip if the value hasn't changed\n if (isEqual(oldValue, value)) {\n return;\n }\n // Update the value and prepare the change event\n const updatedData = setSmart(currentData, path, value);\n const changeEvent = {\n oldValue,\n newValue: value,\n path,\n state: 'changed',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n patch(context) {\n const currentData = cloneDeep(store.data());\n // Update the value and prepare the change event\n const updatedData = { ...currentData, ...context };\n const changeEvent = {\n state: 'patch',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n // Reset to the initial state\n reset() {\n const initialData = store.initial();\n const changeEvent = {\n oldValue: cloneDeep(store.data()), // Current data becomes old value\n newValue: cloneDeep(initialData), // Reset to the initial state\n path: '',\n state: 'restored',\n data: initialData,\n };\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: initialData,\n state: 'restored',\n lastChange: changeEvent,\n });\n },\n // Initialize the state\n set(initialData) {\n const currentData = store.data();\n if (isEqual(currentData, initialData)) {\n return; // Skip if the current state matches the initial state\n }\n const changeEvent = {\n oldValue: null,\n newValue: cloneDeep(initialData),\n path: '',\n state: 'initiated',\n data: initialData,\n };\n patchState(store, {\n initialSnapshot: cloneDeep(initialData), // Save the initial state\n previousSnapshot: store.snapshot(), // Save the current state as the previous\n data: initialData,\n state: 'initiated',\n lastChange: changeEvent,\n });\n },\n // Get a specific value\n getValue(path) {\n return getSmart(store.data(), path);\n },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvY29udGV4dC9jb250ZXh0LXN0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBUzFELE1BQU0sT0FBTyxxQkFBcUI7Q0FNakM7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUN0QztJQUNJLFVBQVUsRUFBRSxNQUFNO0NBQ3JCO0FBQ0QsZ0JBQWdCO0FBQ2hCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2IsSUFBSSxFQUFFLEVBQW9CLEVBQUUsc0JBQXNCO0lBQ2xELEtBQUssRUFBRSxXQUE4QixFQUFFLGdCQUFnQjtJQUN2RCxlQUFlLEVBQUUsRUFBRSxFQUFFLDBDQUEwQztJQUMvRCxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsaUNBQWlDO0lBQ3ZELFVBQVUsRUFBRTtRQUNSLEtBQUssRUFBRSxXQUFXO0tBQ0ksRUFBRSxvQkFBb0I7Q0FDbkQsQ0FBQyxDQUFDO0FBRUgsbUJBQW1CO0FBQ25CLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDaEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxVQUFVLENBQUM7SUFDL0MsV0FBVyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxXQUFXLENBQUM7SUFDcEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN6RCxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUM3RCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsd0JBQXdCO0lBQ3JFLE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxtQkFBbUI7SUFDMUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CO0lBQzdFLFdBQVcsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSw2QkFBNkI7Q0FDM0UsQ0FBQyxDQUFDO0FBRUgsK0JBQStCO0FBQy9CLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQiwwQkFBMEI7SUFDMUIsTUFBTSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzNCLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdDLG1DQUFtQztRQUNuQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPO1FBQ1gsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLFdBQVcsR0FBMEI7WUFDdkMsUUFBUTtZQUNSLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSTtZQUNKLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixrQkFBa0I7UUFDbEIsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNkLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSwwQkFBMEI7WUFDOUQsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFXO1FBQ2IsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGdEQUFnRDtRQUNoRCxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDbkQsTUFBTSxXQUFXLEdBQTBCO1lBQ3ZDLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFLFdBQVc7U0FDcEIsQ0FBQztRQUVGLGtCQUFrQjtRQUNsQixVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLDBCQUEwQjtZQUM5RCxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsV0FBVztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLEtBQUs7UUFDRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsTUFBTSxXQUFXLEdBQTBCO1lBQ3ZDLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsaUNBQWlDO1lBQ3BFLFFBQVEsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsNkJBQTZCO1lBQy9ELElBQUksRUFBRSxFQUFFO1lBQ1IsS0FBSyxFQUFFLFVBQVU7WUFDakIsSUFBSSxFQUFFLFdBQVc7U0FDcEIsQ0FBQztRQUVGLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsMEJBQTBCO1lBQzlELElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxXQUFXO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsR0FBRyxDQUFDLFdBQWdCO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLENBQUMsc0RBQXNEO1FBQ2xFLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBMEI7WUFDdkMsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQztZQUNoQyxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxXQUFXO1lBQ2xCLElBQUksRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ2QsZUFBZSxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSx5QkFBeUI7WUFDbEUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLHlDQUF5QztZQUM3RSxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsV0FBVztZQUNsQixVQUFVLEVBQUUsV0FBVztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsdUJBQXVCO0lBQ3ZCLFFBQVEsQ0FBQyxJQUFZO1FBQ2pCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0osQ0FBQyxDQUFDLENBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbFN0b3JlLCB3aXRoU3RhdGUsIHdpdGhDb21wdXRlZCwgd2l0aE1ldGhvZHMsIHBhdGNoU3RhdGUgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0U21hcnQsIHNldFNtYXJ0IH0gZnJvbSAnLi4vdXRpbHMvb2JqZWN0LXV0aWwnO1xuXG5cbmV4cG9ydCB0eXBlIEFYUENvbnRleHRTdGF0ZSA9ICdpbml0aWF0ZWQnIHwgJ3Jlc3RvcmVkJyB8ICdjaGFuZ2VkJyB8ICdwYXRjaCc7XG5cbmV4cG9ydCB0eXBlIEFYUENvbnRleHREYXRhID0ge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUENvbnRleHRDaGFuZ2VFdmVudCB7XG4gICAgb2xkVmFsdWU/OiBhbnk7XG4gICAgbmV3VmFsdWU/OiBhbnk7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBzdGF0ZTogQVhQQ29udGV4dFN0YXRlO1xuICAgIGRhdGE6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUENvbnRleHRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICAgIHtcbiAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIH0sXG4gICAgLy8gSW5pdGlhbCBTdGF0ZVxuICAgIHdpdGhTdGF0ZSgoKSA9PiAoe1xuICAgICAgICBkYXRhOiB7fSBhcyBBWFBDb250ZXh0RGF0YSwgLy8gU2hhcmVkIGNvbnRleHQgZGF0YVxuICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcgYXMgQVhQQ29udGV4dFN0YXRlLCAvLyBDdXJyZW50IHN0YXRlXG4gICAgICAgIGluaXRpYWxTbmFwc2hvdDoge30sIC8vIFNuYXBzaG90IG9mIHRoZSBmaXJzdCBpbml0aWFsaXplZCBzdGF0ZVxuICAgICAgICBwcmV2aW91c1NuYXBzaG90OiB7fSwgLy8gU25hcHNob3Qgb2YgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgIGxhc3RDaGFuZ2U6IHtcbiAgICAgICAgICAgIHN0YXRlOiAnaW5pdGlhdGVkJyxcbiAgICAgICAgfSBhcyBBWFBDb250ZXh0Q2hhbmdlRXZlbnQsIC8vIExhc3QgY2hhbmdlIGV2ZW50XG4gICAgfSkpLFxuXG4gICAgLy8gQ29tcHV0ZWQgU2lnbmFsc1xuICAgIHdpdGhDb21wdXRlZCgoeyBkYXRhLCBzdGF0ZSwgbGFzdENoYW5nZSwgaW5pdGlhbFNuYXBzaG90LCBwcmV2aW91c1NuYXBzaG90IH0pID0+ICh7XG4gICAgICAgIGlzQ2hhbmdlZDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ2NoYW5nZWQnKSxcbiAgICAgICAgaXNSZXNldDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ3Jlc3RvcmVkJyksXG4gICAgICAgIGlzSW5pdGlhdGVkOiBjb21wdXRlZCgoKSA9PiBzdGF0ZSgpID09PSAnaW5pdGlhdGVkJyksXG4gICAgICAgIGlzRW1wdHk6IGNvbXB1dGVkKCgpID0+IE9iamVjdC5rZXlzKGRhdGEoKSkubGVuZ3RoID09PSAwKSxcbiAgICAgICAgaXNEaXJ0eTogY29tcHV0ZWQoKCkgPT4gIWlzRXF1YWwoZGF0YSgpLCBwcmV2aW91c1NuYXBzaG90KCkpKSwgXG4gICAgICAgIHNuYXBzaG90OiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoZGF0YSgpKSksIC8vIEN1cnJlbnQgZGF0YSBzbmFwc2hvdFxuICAgICAgICBpbml0aWFsOiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoaW5pdGlhbFNuYXBzaG90KCkpKSwgLy8gSW5pdGlhbCBzbmFwc2hvdFxuICAgICAgICBwcmV2aW91czogY29tcHV0ZWQoKCkgPT4gY2xvbmVEZWVwKHByZXZpb3VzU25hcHNob3QoKSkpLCAvLyBQcmV2aW91cyBzbmFwc2hvdFxuICAgICAgICBjaGFuZ2VFdmVudDogY29tcHV0ZWQoKCkgPT4gbGFzdENoYW5nZSgpKSwgLy8gUmVhY3RpdmUgbGFzdCBjaGFuZ2UgZXZlbnRcbiAgICB9KSksXG5cbiAgICAvLyBNZXRob2RzIGZvciBTdGF0ZSBNYW5hZ2VtZW50XG4gICAgd2l0aE1ldGhvZHMoKHN0b3JlKSA9PiAoe1xuICAgICAgICAvLyBVcGRhdGUgYSBzcGVjaWZpYyB2YWx1ZVxuICAgICAgICB1cGRhdGUocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpO1xuICAgICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBnZXRTbWFydChjdXJyZW50RGF0YSwgcGF0aCk7XG5cbiAgICAgICAgICAgIC8vIFNraXAgaWYgdGhlIHZhbHVlIGhhc24ndCBjaGFuZ2VkXG4gICAgICAgICAgICBpZiAoaXNFcXVhbChvbGRWYWx1ZSwgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVlIGFuZCBwcmVwYXJlIHRoZSBjaGFuZ2UgZXZlbnRcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gc2V0U21hcnQoY3VycmVudERhdGEsIHBhdGgsIHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgb2xkVmFsdWUsXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB1cGRhdGVkRGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFBhdGNoIHRoZSBzdGF0ZVxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIHBhdGNoKGNvbnRleHQ6IHt9KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpO1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhbmQgcHJlcGFyZSB0aGUgY2hhbmdlIGV2ZW50XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHsgLi4uY3VycmVudERhdGEsIC4uLmNvbnRleHQgfTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgc3RhdGU6ICdwYXRjaCcsXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBQYXRjaCB0aGUgc3RhdGVcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1NuYXBzaG90OiBzdG9yZS5zbmFwc2hvdCgpLCAvLyBTYXZlIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICAgICAgICAgIGRhdGE6IHVwZGF0ZWREYXRhLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnY2hhbmdlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBSZXNldCB0byB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxEYXRhID0gc3RvcmUuaW5pdGlhbCgpO1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogY2xvbmVEZWVwKHN0b3JlLmRhdGEoKSksIC8vIEN1cnJlbnQgZGF0YSBiZWNvbWVzIG9sZCB2YWx1ZVxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLCAvLyBSZXNldCB0byB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAncmVzdG9yZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IGluaXRpYWxEYXRhLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdyZXN0b3JlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBzdGF0ZVxuICAgICAgICBzZXQoaW5pdGlhbERhdGE6IGFueSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSBzdG9yZS5kYXRhKCk7XG4gICAgICAgICAgICBpZiAoaXNFcXVhbChjdXJyZW50RGF0YSwgaW5pdGlhbERhdGEpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBTa2lwIGlmIHRoZSBjdXJyZW50IHN0YXRlIG1hdGNoZXMgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogY2xvbmVEZWVwKGluaXRpYWxEYXRhKSxcbiAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbFNuYXBzaG90OiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLCAvLyBTYXZlIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICAgICAgICAgICAgcHJldmlvdXNTbmFwc2hvdDogc3RvcmUuc25hcHNob3QoKSwgLy8gU2F2ZSB0aGUgY3VycmVudCBzdGF0ZSBhcyB0aGUgcHJldmlvdXNcbiAgICAgICAgICAgICAgICBkYXRhOiBpbml0aWFsRGF0YSxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gR2V0IGEgc3BlY2lmaWMgdmFsdWVcbiAgICAgICAgZ2V0VmFsdWUocGF0aDogc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0U21hcnQoc3RvcmUuZGF0YSgpLCBwYXRoKTtcbiAgICAgICAgfSxcbiAgICB9KSlcbik7XG4iXX0=","export class AXPDataGenerator {\n static uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n static number(...args) {\n let min = 0;\n let max = 100;\n if (args.length == 1)\n max = args[0];\n if (args.length == 2) {\n min = args[0];\n max = args[1];\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n static date(...args) {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n if (args.length === 1) {\n start = args[0];\n }\n else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n static array(length = 5, generator) {\n return Array.from({ length }, generator);\n }\n static pick(...args) {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items = args[0];\n const count = args[1] ?? 1;\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n static string(length = 10) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static boolean() {\n return Math.random() >= 0.5;\n }\n static item(array = []) {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n static color(format = 'hex') {\n // Generate HSL values with safe ranges for good contrast\n const h = Math.floor(Math.random() * 360);\n const s = Math.floor(Math.random() * 20) + 60; // 60% - 80%\n const l = Math.floor(Math.random() * 20) + 40; // 40% - 60%\n if (format === 'hsl') {\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n // Convert HSL to RGB\n const { r, g, b } = this.hslToRgb(h, s / 100, l / 100);\n if (format === 'rgb') {\n return `rgb(${r}, ${g}, ${b})`;\n }\n // Convert RGB to HEX\n const toHex = (val) => val.toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n }\n //TODO: move or read from utils\n static hslToRgb(h, s, l) {\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let r = 0, g = 0, b = 0;\n if (h < 60)\n [r, g, b] = [c, x, 0];\n else if (h < 120)\n [r, g, b] = [x, c, 0];\n else if (h < 180)\n [r, g, b] = [0, c, x];\n else if (h < 240)\n [r, g, b] = [0, x, c];\n else if (h < 300)\n [r, g, b] = [x, 0, c];\n else\n [r, g, b] = [c, 0, x];\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255)\n };\n }\n static alphanumeric(length = 10) {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length = 10) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static phone() {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n static firstName() {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n static lastName() {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n static email(...args) {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n static country() {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n static city() {\n const cities = ['Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n static state() {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n static address() {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL2RhdGEtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLElBQUk7UUFDVCxPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0RSxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDM0QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFjO1FBQzdCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNkLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FB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QUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLFlBQVksSUFBSSxNQUFNLEtBQUssSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUM7SUFDM0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgY2xhc3MgQVhQRGF0YUdlbmVyYXRvciB7XG4gIHN0YXRpYyB1dWlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgKGNoYXIpID0+IHtcbiAgICAgIGNvbnN0IHJhbmRvbSA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMDtcbiAgICAgIGNvbnN0IHZhbHVlID0gY2hhciA9PT0gJ3gnID8gcmFuZG9tIDogKHJhbmRvbSAmIDB4MykgfCAweDg7XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG51bWJlcihtYXg6IG51bWJlcik6IG51bWJlcjtcbiAgc3RhdGljIG51bWJlcihtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXI7XG4gIHN0YXRpYyBudW1iZXIoLi4uYXJnczogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIGxldCBtaW4gPSAwO1xuICAgIGxldCBtYXggPSAxMDA7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDEpIG1heCA9IGFyZ3NbMF07XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDIpIHtcbiAgICAgIG1pbiA9IGFyZ3NbMF07XG4gICAgICBtYXggPSBhcmdzWzFdO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcbiAgfVxuXG4gIHN0YXRpYyBkYXRlKCk6IERhdGU7XG4gIHN0YXRpYyBkYXRlKHN0YXJ0OiBEYXRlKTogRGF0ZTtcbiAgc3RhdGljIGRhdGUoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IERhdGU7XG4gIHN0YXRpYyBkYXRlKC4uLmFyZ3M6IGFueVtdKTogRGF0ZSB7XG4gICAgbGV0IHN0YXJ0ID0gbmV3IERhdGUoMjAwMCwgMCwgMSk7XG4gICAgbGV0IGVuZCA9IG5ldyBEYXRlKCk7XG5cbiAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHN0YXJ0ID0gYXJnc1swXTtcbiAgICB9IGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAyKSB7XG4gICAgICBzdGFydCA9IGFyZ3NbMF07XG4gICAgICBlbmQgPSBhcmdzWzFdO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHN0YXJ0LmdldFRpbWUoKTtcbiAgICBjb25zdCBlbmRUaW1lID0gZW5kLmdldFRpbWUoKTtcbiAgICByZXR1cm4gbmV3IERhdGUoc3RhcnRUaW1lICsgTWF0aC5yYW5kb20oKSAqIChlbmRUaW1lIC0gc3RhcnRUaW1lKSk7XG4gIH1cblxuICBzdGF0aWMgYXJyYXk8VD4obGVuZ3RoOiBudW1iZXIgPSA1LCBnZW5lcmF0b3I6ICgpID0+IFQpOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sIGdlbmVyYXRvcik7XG4gIH1cblxuICBzdGF0aWMgcGljazxUPihpdGVtczogVFtdKTogVDtcbiAgc3RhdGljIHBpY2s8VD4oaXRlbXM6IFRbXSwgY291bnQ6IG51bWJlcik6IFRbXTtcbiAgc3RhdGljIHBpY2s8VD4oLi4uYXJnczogYW55W10pOiBUIHwgVFtdIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFyYW1ldGVycycpO1xuICAgIH1cbiAgICBjb25zdCBpdGVtczogVFtdID0gYXJnc1swXTtcbiAgICBjb25zdCBjb3VudDogbnVtYmVyID0gYXJnc1sxXSA/PyAxO1xuICAgIGlmIChjb3VudCA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bnQgbXVzdCBiZSBhdCBsZWFzdCAxJyk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGNvdW50IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGl0ZW1zLCBqdXN0IHJldHVybiBhIHNodWZmbGVkIGNvcHkgb2YgdGhlIGFycmF5XG4gICAgaWYgKGNvdW50ID49IGl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFsuLi5pdGVtc10uc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcbiAgICB9XG5cbiAgICAvLyBTaHVmZmxlIHRoZSBhcnJheSBhbmQgc2xpY2UgdGhlIGZpcnN0ICdjb3VudCcgZWxlbWVudHNcbiAgICBjb25zdCBzaHVmZmxlZCA9IGl0ZW1zLnNsaWNlKCk7XG4gICAgZm9yIChsZXQgaSA9IHNodWZmbGVkLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoaSArIDEpKTtcbiAgICAgIFtzaHVmZmxlZFtpXSwgc2h1ZmZsZWRbal1dID0gW3NodWZmbGVkW2pdLCBzaHVmZmxlZFtpXV07IC8vIFN3YXAgZWxlbWVudHNcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50ID09IDEgPyBzaHVmZmxlZC5zbGljZSgwLCBjb3VudClbMF0gOiBzaHVmZmxlZC5zbGljZSgwLCBjb3VudCk7XG4gIH1cblxuICBzdGF0aWMgc3RyaW5nKGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoYXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoKSA9PiBjaGFycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKSkpLmpvaW4oJycpO1xuICB9XG5cbiAgc3RhdGljIGJvb2xlYW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgPj0gMC41O1xuICB9XG5cbiAgc3RhdGljIGl0ZW08VD4oYXJyYXk6IFRbXSA9IFtdKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGFycmF5Lmxlbmd0aCA+IDAgPyBhcnJheVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcnJheS5sZW5ndGgpXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBjb2xvcihmb3JtYXQ6ICdoc2wnIHwgJ3JnYicgfCAnaGV4JyA9ICdoZXgnKTogc3RyaW5nIHtcbiAgICAvLyBHZW5lcmF0ZSBIU0wgdmFsdWVzIHdpdGggc2FmZSByYW5nZXMgZm9yIGdvb2QgY29udHJhc3RcbiAgICBjb25zdCBoID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMzYwKTtcbiAgICBjb25zdCBzID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjApICsgNjA7IC8vIDYwJSAtIDgwJVxuICAgIGNvbnN0IGwgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMCkgKyA0MDsgLy8gNDAlIC0gNjAlXG5cbiAgICBpZiAoZm9ybWF0ID09PSAnaHNsJykge1xuICAgICAgcmV0dXJuIGBoc2woJHtofSwgJHtzfSUsICR7bH0lKWA7XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCBIU0wgdG8gUkdCXG4gICAgY29uc3QgeyByLCBnLCBiIH0gPSB0aGlzLmhzbFRvUmdiKGgsIHMgLyAxMDAsIGwgLyAxMDApO1xuXG4gICAgaWYgKGZvcm1hdCA9PT0gJ3JnYicpIHtcbiAgICAgIHJldHVybiBgcmdiKCR7cn0sICR7Z30sICR7Yn0pYDtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IFJHQiB0byBIRVhcbiAgICBjb25zdCB0b0hleCA9ICh2YWw6IG51bWJlcikgPT4gdmFsLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBgIyR7dG9IZXgocil9JHt0b0hleChnKX0ke3RvSGV4KGIpfWA7XG4gIH1cblxuICAvL1RPRE86IG1vdmUgb3IgcmVhZCBmcm9tIHV0aWxzXG4gIHByaXZhdGUgc3RhdGljIGhzbFRvUmdiKGg6IG51bWJlciwgczogbnVtYmVyLCBsOiBudW1iZXIpOiB7IHI6IG51bWJlcjsgZzogbnVtYmVyOyBiOiBudW1iZXIgfSB7XG4gICAgY29uc3QgYyA9ICgxIC0gTWF0aC5hYnMoMiAqIGwgLSAxKSkgKiBzO1xuICAgIGNvbnN0IHggPSBjICogKDEgLSBNYXRoLmFicygoaCAvIDYwKSAlIDIgLSAxKSk7XG4gICAgY29uc3QgbSA9IGwgLSBjIC8gMjtcbiAgICBsZXQgciA9IDAsIGcgPSAwLCBiID0gMDtcblxuICAgIGlmIChoIDwgNjApIFtyLCBnLCBiXSA9IFtjLCB4LCAwXTtcbiAgICBlbHNlIGlmIChoIDwgMTIwKSBbciwgZywgYl0gPSBbeCwgYywgMF07XG4gICAgZWxzZSBpZiAoaCA8IDE4MCkgW3IsIGcsIGJdID0gWzAsIGMsIHhdO1xuICAgIGVsc2UgaWYgKGggPCAyNDApIFtyLCBnLCBiXSA9IFswLCB4LCBjXTtcbiAgICBlbHNlIGlmIChoIDwgMzAwKSBbciwgZywgYl0gPSBbeCwgMCwgY107XG4gICAgZWxzZVtyLCBnLCBiXSA9IFtjLCAwLCB4XTtcblxuICAgIHJldHVybiB7XG4gICAgICByOiBNYXRoLnJvdW5kKChyICsgbSkgKiAyNTUpLFxuICAgICAgZzogTWF0aC5yb3VuZCgoZyArIG0pICogMjU1KSxcbiAgICAgIGI6IE1hdGgucm91bmQoKGIgKyBtKSAqIDI1NSlcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFscGhhbnVtZXJpYyhsZW5ndGg6IG51bWJlciA9IDEwKTogc3RyaW5nIHtcbiAgICBjb25zdCBjaGFycyA9ICcwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKCkgPT4gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpKS5qb2luKCcnKTtcbiAgfVxuICBzdGF0aWMgYWxwaGFiZXQobGVuZ3RoOiBudW1iZXIgPSAxMCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKCkgPT4gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpKS5qb2luKCcnKTtcbiAgfVxuXG4gIHN0YXRpYyBwaG9uZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFyZWFDb2RlID0gdGhpcy5udW1iZXIoMTAwLCA5OTkpO1xuICAgIGNvbnN0IGV4Y2hhbmdlQ29kZSA9IHRoaXMubnVtYmVyKDEwMCwgOTk5KTtcbiAgICBjb25zdCBsaW5lTnVtYmVyID0gdGhpcy5udW1iZXIoMTAwMCwgOTk5OSk7XG4gICAgcmV0dXJuIGAke2FyZWFDb2RlfS0ke2V4Y2hhbmdlQ29kZX0tJHtsaW5lTnVtYmVyfWA7XG4gIH1cblxuICBzdGF0aWMgZmlyc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlyc3ROYW1lcyA9IFsnSm9obicsICdBbGxlbicsICdKYWsnLCAnUm9zZScsICdLYXRlJywgJ0xpYW0nLCAnT2xpdmlhJywgJ05vYWgnLCAnRW1tYScsICdBdmEnXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKGZpcnN0TmFtZXMpO1xuICB9XG5cbiAgc3RhdGljIGxhc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFzdE5hbWVzID0gWydHYXRlcycsICdKb25zZW4nLCAnU21pdGgnLCAnRm9yZCcsICdKYWtzb24nLCAnQnJvd24nLCAnSm9obnNvbicsICdXaWxsaWFtcycsICdKb25lcycsICdHYXJjaWEnXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKGxhc3ROYW1lcyk7XG4gIH1cblxuICBzdGF0aWMgZW1haWwoKTogc3RyaW5nO1xuICBzdGF0aWMgZW1haWwoZmlyc3ROYW1lOiBzdHJpbmcsIGxhc3ROYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG4gIHN0YXRpYyBlbWFpbCguLi5hcmdzOiBhbnlbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgZG9tYWlucyA9IFsnZ21haWwuY29tJywgJ3lhaG9vLmNvbScsICdvdXRsb29rLmNvbScsICdleGFtcGxlLmNvbSddO1xuICAgIGNvbnN0IGRvbWFpbiA9IHRoaXMucGljayhkb21haW5zKTtcbiAgICBjb25zdCBzZXBhcmF0b3IgPSB0aGlzLnBpY2soWycuJywgJ18nLCAnJ10pO1xuICAgIGNvbnN0IHJhbmRvbVN1ZmZpeCA9IHRoaXMuYm9vbGVhbigpID8gdGhpcy5udW1iZXIoMSwgOTkpLnRvU3RyaW5nKCkgOiAnJztcblxuICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMikge1xuICAgICAgY29uc3QgZmlyc3ROYW1lID0gYXJnc1swXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgbGFzdE5hbWUgPSBhcmdzWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSR7c2VwYXJhdG9yfSR7bGFzdE5hbWV9JHtyYW5kb21TdWZmaXh9QCR7ZG9tYWlufWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpcnN0TmFtZSA9IHRoaXMuZmlyc3ROYW1lKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGxhc3ROYW1lID0gdGhpcy5sYXN0TmFtZSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSR7c2VwYXJhdG9yfSR7bGFzdE5hbWV9JHtyYW5kb21TdWZmaXh9QCR7ZG9tYWlufWA7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNvdW50cnkoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb3VudHJpZXMgPSBbJ1VTQScsICdDYW5hZGEnLCAnTWV4aWNvJywgJ0dlcm1hbnknLCAnRnJhbmNlJywgJ0phcGFuJywgJ0F1c3RyYWxpYSddO1xuICAgIHJldHVybiB0aGlzLnBpY2soY291bnRyaWVzKTtcbiAgfVxuXG4gIHN0YXRpYyBjaXR5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2l0aWVzID0gWydMb3MgQW5nZWxlcycsICdUb3JvbnRvJywgJ1ZhbmNvdXZlcicsICdCZXJsaW4nLCAnUGFyaXMnLCAnVG9reW8nLCAnU3lkbmV5J107XG4gICAgcmV0dXJuIHRoaXMucGljayhjaXRpZXMpO1xuICB9XG5cbiAgc3RhdGljIHN0YXRlKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdGVzID0gWydOWScsICdDQScsICdUWCcsICdPTicsICdCQycsICdOU1cnLCAnQkVSJywgJ0lERicsICdUWU8nXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKHN0YXRlcyk7XG4gIH1cblxuICBzdGF0aWMgYWRkcmVzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0cmVldHMgPSBbJ01haW4gU3QnLCAnSGlnaCBTdCcsICdNYXBsZSBBdmUnLCAnT2FrIFN0JywgJ1BpbmUgU3QnLCAnQ2VkYXIgU3QnXTtcbiAgICBjb25zdCBzdHJlZXROdW1iZXIgPSB0aGlzLm51bWJlcigxMDAsIDk5OTkpO1xuICAgIGNvbnN0IHN0cmVldCA9IHRoaXMucGljayhzdHJlZXRzKTtcbiAgICBjb25zdCBjaXR5ID0gdGhpcy5jaXR5KCk7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG4gICAgY29uc3QgemlwID0gdGhpcy5udW1iZXIoMTAwMDAsIDk5OTk5KTtcbiAgICBjb25zdCBjb3VudHJ5ID0gdGhpcy5jb3VudHJ5KCk7XG4gICAgcmV0dXJuIGAke3N0cmVldE51bWJlcn0gJHtzdHJlZXR9LCAke2NpdHl9LCAke3N0YXRlfSAke3ppcH0sICR7Y291bnRyeX1gO1xuICB9XG59XG4iXX0=","import { extractValue } from \"../utils/object-util\";\nexport function objectKeyValueTransforms(keyName) {\n return {\n getter: (value) => {\n return extractValue(value, keyName);\n },\n setter: (value) => {\n return extractValue(value, keyName);\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtdHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL3ZhbHVlLXRyYW5zZm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVFwRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBZTtJQUNwRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDbkIsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNuQixPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0cmFjdFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL29iamVjdC11dGlsXCI7XG5leHBvcnQgdHlwZSBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb24gPSAodmFsdWU6IGFueSkgPT4gYW55O1xuXG5leHBvcnQgdHlwZSBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb25zID0ge1xuICAgIGdldHRlcj86IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbjtcbiAgICBzZXR0ZXI/OiBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb247XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0S2V5VmFsdWVUcmFuc2Zvcm1zKGtleU5hbWU6IHN0cmluZyk6IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICAgIGdldHRlcjogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBleHRyYWN0VmFsdWUodmFsdWUsIGtleU5hbWUpO1xuICAgICAgICB9LFxuICAgICAgICBzZXR0ZXI6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZXh0cmFjdFZhbHVlKHZhbHVlLCBrZXlOYW1lKTtcbiAgICAgICAgfSxcbiAgICB9O1xufSJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { set } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport const AXP_DATASOURCE_DEFINITION_PROVIDER = new InjectionToken('AXP_DATASOURCE_TYPE_PROVIDER');\nexport class AXPDataSourceDefinitionProviderService {\n constructor() {\n this.providers = inject(AXP_DATASOURCE_DEFINITION_PROVIDER, { optional: true });\n }\n async items() {\n const items = [];\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n set(provider, '__parent__', this);\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: AXPDataSourceDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1kZWZpbml0aW9uLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL2RhdGFzb3VyY2UtZGVmaW5pdGlvbi1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQStCaEMsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQ2xFLDhCQUE4QixDQUMvQixDQUFDO0FBR0YsTUFBTSxPQUFPLHNDQUFzQztJQURuRDtRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQWdCcEY7SUFkQyxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sS0FBSyxHQUE4QixFQUFFLENBQUM7UUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0QyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQWhCVSxzQ0FBc0M7bUhBQXRDLHNDQUFzQyxjQUR6QixNQUFNOzs0RkFDbkIsc0NBQXNDO2tCQURsRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBGaWx0ZXJEZWZpbml0aW9uLCBBWFBPcHRpb25zRGF0YSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGF0YVNvdXJjZURhdGFGaWVsZERlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRhdGF0eXBlOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uPFQgPSBhbnk+IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB2YWx1ZUZpZWxkPzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICB9O1xuICB0ZXh0RmllbGQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gIH07XG4gIGNvbHVtbnM6IEFYUERhdGFTb3VyY2VEYXRhRmllbGREZWZpbml0aW9uW107XG4gIGZpbHRlcnM6IEFYUEZpbHRlckRlZmluaXRpb25bXTtcbiAgc2FtcGxlcz86IGFueVtdO1xuICBzb3VyY2U6ICgpID0+IEFYRGF0YVNvdXJjZTxUPiB8IFByb21pc2U8QVhEYXRhU291cmNlPFQ+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEYXRhU291cmNlRGVmaW5pdGlvblByb3ZpZGVyIHtcbiAgaXRlbXMoKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdPjtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9EQVRBU09VUkNFX0RFRklOSVRJT05fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlcltdPihcbiAgJ0FYUF9EQVRBU09VUkNFX1RZUEVfUFJPVklERVInLFxuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBEYXRhU291cmNlRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSBpbXBsZW1lbnRzIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uUHJvdmlkZXIge1xuICBwcml2YXRlIHByb3ZpZGVycyA9IGluamVjdChBWFBfREFUQVNPVVJDRV9ERUZJTklUSU9OX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGFzeW5jIGl0ZW1zKCk6IFByb21pc2U8QVhQRGF0YVNvdXJjZURlZmluaXRpb25bXT4ge1xuICAgIGNvbnN0IGl0ZW1zOiBBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgIHNldChwcm92aWRlciwgJ19fcGFyZW50X18nLCB0aGlzKTtcbiAgICAgICAgaXRlbXMucHVzaCguLi4oYXdhaXQgcHJvdmlkZXIuaXRlbXMoKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBhc3luYyBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pdGVtcygpKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gbmFtZSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, input, effect } from '@angular/core';\nimport { set, get } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPElementDataDirective {\n constructor(elementRef) {\n this.elementRef = elementRef;\n this.data = input(null, ...(ngDevMode ? [{ debugName: \"data\", alias: 'axp-data' }] : [{ alias: 'axp-data' }]));\n this.path = input('__data__', ...(ngDevMode ? [{ debugName: \"path\", alias: 'axp-data-path' }] : [{ alias: 'axp-data-path' }]));\n // Effect to update element data when inputs change\n this.updateEffect = effect(() => {\n const currentData = this.data();\n const currentPath = this.path();\n set(this.elementRef.nativeElement, currentPath, currentData);\n }, ...(ngDevMode ? [{ debugName: \"updateEffect\" }] : []));\n }\n ngOnInit() {\n // Initial data setup\n set(this.elementRef.nativeElement, this.path(), this.data());\n }\n /**\n * Get data from the element\n */\n getData() {\n return get(this.elementRef.nativeElement, this.path());\n }\n /**\n * Update data at runtime\n */\n setData(data) {\n set(this.elementRef.nativeElement, this.path(), data);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPElementDataDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.10\", type: AXPElementDataDirective, isStandalone: true, selector: \"[axp-data]\", inputs: { data: { classPropertyName: \"data\", publicName: \"axp-data\", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: \"path\", publicName: \"axp-data-path\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPElementDataDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-data]',\n standalone: true\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axp-data\", required: false }] }], path: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axp-data-path\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1kYXRhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZWxlbWVudC1kYXRhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU1yQyxNQUFNLE9BQU8sdUJBQXVCO0lBS2hDLFlBQW9CLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBSHZELFNBQUksR0FBRyxLQUFLLENBQU0sSUFBSSx3Q0FBSSxLQUFLLEVBQUUsVUFBVSxPQUFuQixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBQyxDQUFDO1FBQy9DLFNBQUksR0FBRyxLQUFLLENBQVMsVUFBVSx3Q0FBSSxLQUFLLEVBQUUsZUFBZSxPQUF4QixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsR0FBQyxDQUFDO1FBUzdELG1EQUFtRDtRQUMzQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsd0RBQUMsQ0FBQztJQVp3RCxDQUFDO0lBRTVELFFBQVE7UUFDSixxQkFBcUI7UUFDckIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBU0Q7O09BRUc7SUFDSCxPQUFPO1FBQ0gsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLElBQVM7UUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBL0JRLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGlucHV0LCBPbkluaXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0LCBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1theHAtZGF0YV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQVhQRWxlbWVudERhdGFEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgZGF0YSA9IGlucHV0PGFueT4obnVsbCwgeyBhbGlhczogJ2F4cC1kYXRhJyB9KTtcbiAgICBwYXRoID0gaW5wdXQ8c3RyaW5nPignX19kYXRhX18nLCB7IGFsaWFzOiAnYXhwLWRhdGEtcGF0aCcgfSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBJbml0aWFsIGRhdGEgc2V0dXBcbiAgICAgICAgc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBhdGgoKSwgdGhpcy5kYXRhKCkpO1xuICAgIH1cblxuICAgIC8vIEVmZmVjdCB0byB1cGRhdGUgZWxlbWVudCBkYXRhIHdoZW4gaW5wdXRzIGNoYW5nZVxuICAgIHByaXZhdGUgdXBkYXRlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSB0aGlzLmRhdGEoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFBhdGggPSB0aGlzLnBhdGgoKTtcbiAgICAgICAgc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjdXJyZW50UGF0aCwgY3VycmVudERhdGEpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogR2V0IGRhdGEgZnJvbSB0aGUgZWxlbWVudFxuICAgICAqL1xuICAgIGdldERhdGEoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIGdldCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wYXRoKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBkYXRhIGF0IHJ1bnRpbWVcbiAgICAgKi9cbiAgICBzZXREYXRhKGRhdGE6IGFueSkge1xuICAgICAgICBzZXQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGF0aCgpLCBkYXRhKTtcbiAgICB9XG59ICJdfQ==","import { Directive, HostListener, Output, EventEmitter } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPDblClickDirective {\n constructor() {\n this.onDblClick = new EventEmitter();\n this.lastTap = 0;\n this.doubleTapThreshold = 300; // milliseconds\n }\n // Listen for the native dblclick event (desktop)\n handleOnDblClick(event) {\n this.onDblClick.emit(event);\n }\n // Listen for touchend events (mobile)\n onTouchEnd(event) {\n const currentTime = new Date().getTime();\n const tapGap = currentTime - this.lastTap;\n if (tapGap > 0 && tapGap < this.doubleTapThreshold) {\n // Detected a double-tap\n this.onDblClick.emit(event);\n event.preventDefault(); // Optionally prevent further default actions\n }\n this.lastTap = currentTime;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDblClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.10\", type: AXPDblClickDirective, isStandalone: true, selector: \"[onDblClick]\", outputs: { onDblClick: \"onDblClick\" }, host: { listeners: { \"dblclick\": \"handleOnDblClick($event)\", \"touchend\": \"onTouchEnd($event)\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDblClickDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[onDblClick]'\n }]\n }], propDecorators: { onDblClick: [{\n type: Output\n }], handleOnDblClick: [{\n type: HostListener,\n args: ['dblclick', ['$event']]\n }], onTouchEnd: [{\n type: HostListener,\n args: ['touchend', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJsLWNsaWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZGJsLWNsaWNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUs5RSxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSWMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFFekMsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNILHVCQUFrQixHQUFHLEdBQUcsQ0FBQyxDQUFDLGVBQWU7S0FxQjdEO0lBbkJHLGlEQUFpRDtJQUVqRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxzQ0FBc0M7SUFFdEMsVUFBVSxDQUFDLEtBQWlCO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFMUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNqRCx3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsNkNBQTZDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQztJQUMvQixDQUFDOytHQXhCUSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztpQkFDM0I7O3NCQUVJLE1BQU07O3NCQU1OLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFNbkMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbb25EYmxDbGlja10nXG59KVxuZXhwb3J0IGNsYXNzIEFYUERibENsaWNrRGlyZWN0aXZlIHtcbiAgICBAT3V0cHV0KCkgb25EYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIGxhc3RUYXAgPSAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG91YmxlVGFwVGhyZXNob2xkID0gMzAwOyAvLyBtaWxsaXNlY29uZHNcblxuICAgIC8vIExpc3RlbiBmb3IgdGhlIG5hdGl2ZSBkYmxjbGljayBldmVudCAoZGVza3RvcClcbiAgICBASG9zdExpc3RlbmVyKCdkYmxjbGljaycsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlT25EYmxDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRibENsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIExpc3RlbiBmb3IgdG91Y2hlbmQgZXZlbnRzIChtb2JpbGUpXG4gICAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnLCBbJyRldmVudCddKVxuICAgIG9uVG91Y2hFbmQoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgY29uc3QgdGFwR2FwID0gY3VycmVudFRpbWUgLSB0aGlzLmxhc3RUYXA7XG5cbiAgICAgICAgaWYgKHRhcEdhcCA+IDAgJiYgdGFwR2FwIDwgdGhpcy5kb3VibGVUYXBUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgIC8vIERldGVjdGVkIGEgZG91YmxlLXRhcFxuICAgICAgICAgICAgdGhpcy5vbkRibENsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gT3B0aW9uYWxseSBwcmV2ZW50IGZ1cnRoZXIgZGVmYXVsdCBhY3Rpb25zXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0VGFwID0gY3VycmVudFRpbWU7XG4gICAgfVxufVxuIl19","// src/app/directives/grid-layout.directive.ts\nimport { Directive, ElementRef, Renderer2, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPGridLayoutDirective {\n constructor(el, renderer) {\n this.el = el;\n this.renderer = renderer;\n this.options = input.required(...(ngDevMode ? [{ debugName: \"options\", alias: 'axp-grid-layout' }] : [{ alias: 'axp-grid-layout' }]));\n }\n ngOnChanges(changes) {\n if (changes['options']) {\n this.applyTailwindClasses();\n }\n }\n applyTailwindClasses() {\n const placement = this.options()?.positions;\n if (!placement)\n return;\n // Clear existing grid classes\n this.clearClasses();\n // Apply new grid classes based on the input options\n this.setClasses(placement.sm, '');\n this.setClasses(placement.md, 'md:');\n this.setClasses(placement.lg, 'lg:');\n this.setClasses(placement.xl, 'xl:');\n this.setClasses(placement.xxl, '2xl:');\n }\n setClasses(placement, prefix) {\n if (placement == null)\n return;\n const colStart = placement.colStart ? `${prefix}ax-col-start-${placement.colStart}` : '';\n const colEnd = placement.colEnd ? `${prefix}ax-col-end-${placement.colEnd}` : '';\n const colSpan = placement.colSpan ? `${prefix}ax-col-span-${placement.colSpan}` : '';\n const rowStart = placement.rowStart ? `${prefix}ax-row-start-${placement.rowStart}` : '';\n const rowEnd = placement.rowEnd ? `${prefix}ax-row-end-${placement.rowEnd}` : '';\n const rowSpan = placement.rowSpan ? `${prefix}ax-row-span-${placement.rowSpan}` : '';\n const order = placement.order ? `${prefix}ax-order-${placement.order}` : ''; // Handling order\n [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {\n if (cls) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n });\n }\n clearClasses() {\n const currentClasses = this.el.nativeElement.className.split(' ');\n currentClasses.forEach((className) => {\n if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPGridLayoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.10\", type: AXPGridLayoutDirective, isStandalone: true, selector: \"[axp-grid-layout]\", inputs: { options: { classPropertyName: \"options\", publicName: \"axp-grid-layout\", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPGridLayoutDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-grid-layout]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axp-grid-layout\", required: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1sYXlvdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9ncmlkLWxheW91dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOENBQThDO0FBRTlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBNEIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9sRyxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUYvRCxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsMENBQXlCLEtBQUssRUFBRSxpQkFBaUIsT0FBMUIsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsR0FBQyxDQUFDO0lBRVYsQ0FBQztJQUVwRSxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN2Qiw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMs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ZW50IjpbIi8vIHNyYy9hcHAvZGlyZWN0aXZlcy9ncmlkLWxheW91dC5kaXJlY3RpdmUudHNcblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEdyaWRMYXlvdXRPcHRpb25zLCBBWFBHcmlkUGxhY2VtZW50IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1theHAtZ3JpZC1sYXlvdXRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBvcHRpb25zID0gaW5wdXQucmVxdWlyZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KHsgYWxpYXM6ICdheHAtZ3JpZC1sYXlvdXQnIH0pO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ29wdGlvbnMnXSkge1xuICAgICAgICAgICAgdGhpcy5hcHBseVRhaWx3aW5kQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseVRhaWx3aW5kQ2xhc3NlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGxhY2VtZW50ID0gdGhpcy5vcHRpb25zKCk/LnBvc2l0aW9ucztcbiAgICAgICAgaWYgKCFwbGFjZW1lbnQpIHJldHVybjtcbiAgICAgICAgLy8gQ2xlYXIgZXhpc3RpbmcgZ3JpZCBjbGFzc2VzXG4gICAgICAgIHRoaXMuY2xlYXJDbGFzc2VzKCk7XG5cbiAgICAgICAgLy8gQXBwbHkgbmV3IGdyaWQgY2xhc3NlcyBiYXNlZCBvbiB0aGUgaW5wdXQgb3B0aW9uc1xuICAgICAgICB0aGlzLnNldENsYXNzZXMocGxhY2VtZW50LnNtLCAnJyk7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcyhwbGFjZW1lbnQubWQsICdtZDonKTtcbiAgICAgICAgdGhpcy5zZXRDbGFzc2VzKHBsYWNlbWVudC5sZywgJ2xnOicpO1xuICAgICAgICB0aGlzLnNldENsYXNzZXMocGxhY2VtZW50LnhsLCAneGw6Jyk7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcyhwbGFjZW1lbnQueHhsLCAnMnhsOicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2xhc3NlcyhwbGFjZW1lbnQ6IEFYUEdyaWRQbGFjZW1lbnQgfCB1bmRlZmluZWQsIHByZWZpeDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChwbGFjZW1lbnQgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGNvbFN0YXJ0ID0gcGxhY2VtZW50LmNvbFN0YXJ0ID8gYCR7cHJlZml4fWF4LWNvbC1zdGFydC0ke3BsYWNlbWVudC5jb2xTdGFydH1gIDogJyc7XG4gICAgICAgIGNvbnN0IGNvbEVuZCA9IHBsYWNlbWVudC5jb2xFbmQgPyBgJHtwcmVmaXh9YXgtY29sLWVuZC0ke3BsYWNlbWVudC5jb2xFbmR9YCA6ICcnO1xuICAgICAgICBjb25zdCBjb2xTcGFuID0gcGxhY2VtZW50LmNvbFNwYW4gPyBgJHtwcmVmaXh9YXgtY29sLXNwYW4tJHtwbGFjZW1lbnQuY29sU3Bhbn1gIDogJyc7XG4gICAgICAgIGNvbnN0IHJvd1N0YXJ0ID0gcGxhY2VtZW50LnJvd1N0YXJ0ID8gYCR7cHJlZml4fWF4LXJvdy1zdGFydC0ke3BsYWNlbWVudC5yb3dTdGFydH1gIDogJyc7XG4gICAgICAgIGNvbnN0IHJvd0VuZCA9IHBsYWNlbWVudC5yb3dFbmQgPyBgJHtwcmVmaXh9YXgtcm93LWVuZC0ke3BsYWNlbWVudC5yb3dFbmR9YCA6ICcnO1xuICAgICAgICBjb25zdCByb3dTcGFuID0gcGxhY2VtZW50LnJvd1NwYW4gPyBgJHtwcmVmaXh9YXgtcm93LXNwYW4tJHtwbGFjZW1lbnQucm93U3Bhbn1gIDogJyc7XG4gICAgICAgIGNvbnN0IG9yZGVyID0gcGxhY2VtZW50Lm9yZGVyID8gYCR7cHJlZml4fWF4LW9yZGVyLSR7cGxhY2VtZW50Lm9yZGVyfWAgOiAnJzsgLy8gSGFuZGxpbmcgb3JkZXJcblxuICAgICAgICBbY29sU3RhcnQsIGNvbEVuZCwgY29sU3Bhbiwgcm93U3RhcnQsIHJvd0VuZCwgcm93U3Bhbiwgb3JkZXJdLmZvckVhY2goY2xzID0+IHtcbiAgICAgICAgICAgIGlmIChjbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckNsYXNzZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDbGFzc2VzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5zcGxpdCgnICcpO1xuICAgICAgICBjdXJyZW50Q2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKGNsYXNzTmFtZS5zdGFydHNXaXRoKCdheC1jb2wtJykgfHwgY2xhc3NOYW1lLnN0YXJ0c1dpdGgoJ2F4LXJvdy0nKSB8fCBjbGFzc05hbWUuc3RhcnRzV2l0aCgnYXgtb3JkZXItJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","// src/app/directives/grid-layout.directive.ts\nimport { Directive, ElementRef, ViewContainerRef, computed, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPContentCheckerDirective {\n constructor() {\n this.viewContainerRef = inject(ViewContainerRef);\n this.elementRef = inject((ElementRef));\n this.isEmpty = computed(() => this.viewContainerRef.length === 0, ...(ngDevMode ? [{ debugName: \"isEmpty\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPContentCheckerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.10\", type: AXPContentCheckerDirective, isStandalone: true, selector: \"[axp-content-checker]\", exportAs: [\"checker\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPContentCheckerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-content-checker]',\n standalone: true,\n exportAs: 'checker'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUYsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU9XLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBK0IsTUFBTSxDQUFDLENBQUEsVUFBMEIsQ0FBQSxDQUFDLENBQUM7UUFFNUUsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsbURBQUMsQ0FBQztLQUN2RTsrR0FOWSwwQkFBMEI7bUdBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLFNBQVM7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9kaXJlY3RpdmVzL2dyaWQtbGF5b3V0LmRpcmVjdGl2ZS50c1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLWNvbnRlbnQtY2hlY2tlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdjaGVja2VyJ1xufSlcbmV4cG9ydCBjbGFzcyBBWFBDb250ZW50Q2hlY2tlckRpcmVjdGl2ZSB7XG5cbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pO1xuXG4gICAgcHVibGljIGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdDb250YWluZXJSZWYubGVuZ3RoID09PSAwKTtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER = new InjectionToken('AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kaXN0cmlidXRlZC1ldmVudHMvZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDdkUseUNBQXlDLENBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlclRva2VuPFQ+ID1cbiAgfCBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxUPlxuICB8IFByb21pc2U8QVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8VD4+O1xuXG5leHBvcnQgY29uc3QgQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyVG9rZW48YW55PltdPihcbiAgJ0FYUF9ESVNUUklCVVRFRF9FVkVOVF9MSVNURU5FUl9QUk9WSURFUidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8VElucHV0ID0gYW55LCBUT3V0cHV0ID0gdm9pZD4ge1xuICBrZXk6IHN0cmluZztcbiAgZXhlY3V0ZShkYXRhOiBUSW5wdXQpOiBQcm9taXNlPFRPdXRwdXQ+IHwgVE91dHB1dDtcblxuICBwcmlvcml0eT86IG51bWJlcjtcbn0iXX0=","//#region ---- Imports ----\nimport { inject, Injectable, Injector, runInInjectionContext } from '@angular/core';\nimport { AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER } from './distributed-event-listener.provider';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class AXPDistributedEventListenerService {\n constructor() {\n //#region ---- Providers & Caches ----\n this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];\n this.injector = inject(Injector);\n /** Cache for listeners by key. */\n this.listenersByKey = new Map();\n /** Flag to track if providers have been loaded */\n this.providersLoaded = false;\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Dispatches an event to all registered listeners for the given key.\n * @param key The event key.\n * @param data The event data to pass to listeners.\n */\n async dispatch(key, data) {\n const providers = await this.resolveProviders();\n const matched = providers.filter(p => p.key === key);\n if (!matched.length) {\n return;\n }\n for (const provider of matched) {\n try {\n await Promise.resolve(runInInjectionContext(this.injector, () => provider.execute(data)));\n }\n catch (err) {\n console.error(`[AXPDistributedEventListenerService] Provider for key='${key}' failed`, err);\n }\n }\n }\n /**\n * Dispatch with async response (first matching provider, with retry/timeout)\n */\n async dispatchAsync(key, data, options = {\n timeout: 60_000,\n retries: 3,\n retryDelay: 1000,\n }) {\n const providers = await this.resolveProviders();\n const matched = providers.filter(p => p.key === key);\n if (!matched.length) {\n throw new Error(`No provider found for key='${key}'`);\n }\n const attempt = (n) => {\n return new Promise((resolve, reject) => {\n let finished = false;\n const timer = setTimeout(() => {\n if (!finished) {\n if (n < options.retries) {\n resolve(attempt(n + 1));\n }\n else {\n reject(new Error(`Timeout: no response for key='${key}' after ${options.retries} attempts.`));\n }\n }\n }, options.timeout);\n try {\n const provider = matched[0];\n const result = runInInjectionContext(this.injector, () => provider.execute(data));\n Promise.resolve(result)\n .then((r) => {\n finished = true;\n clearTimeout(timer);\n resolve(r);\n })\n .catch(err => {\n finished = true;\n clearTimeout(timer);\n reject(err);\n });\n }\n catch (err) {\n clearTimeout(timer);\n reject(err);\n }\n });\n };\n return attempt(0);\n }\n /**\n * Resolve all providers (handle both direct provider and Promise<provider>)\n */\n async resolveProviders() {\n return Promise.all(this.listenerProviders.map(p => p instanceof Promise ? p : Promise.resolve(p)));\n }\n /**\n * Returns all listeners for a specific event key.\n * @param key The event key.\n * @returns Array of listeners for the key.\n */\n async getListeners(key) {\n await this.ensureProvidersLoaded();\n return this.listenersByKey.get(key) || [];\n }\n /**\n * Returns all registered event keys.\n * @returns Array of all event keys that have listeners.\n */\n async getRegisteredKeys() {\n await this.ensureProvidersLoaded();\n return Array.from(this.listenersByKey.keys());\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Ensures that all providers have been loaded and cached.\n */\n async ensureProvidersLoaded() {\n if (this.providersLoaded) {\n return;\n }\n // Resolve all providers\n const resolvedProviders = await Promise.all(this.listenerProviders);\n // Group listeners by key\n for (const provider of resolvedProviders) {\n if (provider) {\n const existingListeners = this.listenersByKey.get(provider.key) || [];\n existingListeners.push(provider);\n this.listenersByKey.set(provider.key, existingListeners);\n }\n }\n this.providersLoaded = true;\n }\n //#endregion\n //#region ---- Cache Management ----\n /** Clears the listeners cache and forces reload on next access. */\n clearListenersCache() {\n this.listenersByKey.clear();\n this.providersLoaded = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDistributedEventListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDistributedEventListenerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPDistributedEventListenerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2Rpc3RyaWJ1dGVkLWV2ZW50cy9kaXN0cmlidXRlZC1ldmVudC1saXN0ZW5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVDQUF1QyxFQUF1QyxNQUFNLHVDQUF1QyxDQUFDOztBQUVySSxZQUFZO0FBS1osTUFBTSxPQUFPLGtDQUFrQztJQUgvQztRQUlFLDBDQUEwQztRQUV6QixzQkFBaUIsR0FBRyxNQUFNLENBQUMsdUNBQXVDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUYsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QyxrQ0FBa0M7UUFDMUIsbUJBQWMsR0FBNEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU1RixrREFBa0Q7UUFDMUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FpS2pDO0lBL0pDLFlBQVk7SUFFWixrQ0FBa0M7SUFFbEM7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBVyxFQUFFLElBQVU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxNQUFNLFFBQVEsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUNuQixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbkUsQ0FBQztZQUNKLENBQUM7WUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsMERBQTBELEdBQUcsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlGLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVIOztTQUVLO0lBQ0UsS0FBSyxDQUFDLGFBQWEsQ0FDeEIsR0FBVyxFQUNYLElBQU8sRUFDUCxVQUFvRTtRQUNsRSxPQUFPLEVBQUUsTUFBTTtRQUNmLE9BQU8sRUFBRSxDQUFDO1FBQ1YsVUFBVSxFQUFFLElBQUk7S0FDakI7UUFFRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hELE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFTLEVBQWMsRUFBRTtZQUN4QyxPQUFPLElBQUksT0FBTyxDQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN4QyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBRXJCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDZCxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7NEJBQ3hCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzFCLENBQUM7NkJBQU0sQ0FBQzs0QkFDTixNQUFNLENBQ0osSUFBSSxLQUFLLENBQUMsaUNBQWlDLEdBQUcsV0FBVyxPQUFPLENBQUMsT0FBTyxZQUFZLENBQUMsQ0FDdEYsQ0FBQzt3QkFDSixDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFcEIsSUFBSSxDQUFDO29CQUNILE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDNUIsTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FDdkQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FDdkIsQ0FBQztvQkFFRixPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzt5QkFDcEIsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7d0JBQ2YsUUFBUSxHQUFHLElBQUksQ0FBQzt3QkFDaEIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNwQixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2IsQ0FBQyxDQUFDO3lCQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTt3QkFDWCxRQUFRLEdBQUcsSUFBSSxDQUFDO3dCQUNoQixZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3BCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDZCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7b0JBQ2IsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVBOztRQUVJO0lBQ0ksS0FBSyxDQUFDLGdCQUFnQjtRQUM3QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDN0IsQ0FBQyxZQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUM5QyxDQUNGLENBQUM7SUFDSixDQUFDO0lBR0M7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsR0FBVztRQUM1QixNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDbkMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWTtJQUVaLHVDQUF1QztJQUV2Qzs7T0FFRztJQUNLLEtBQUssQ0FBQyxxQkFBcUI7UUFDakMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFFRCx3QkFBd0I7UUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFcEUseUJBQXlCO1FBQ3pCLEtBQUssTUFBTSxRQUFRLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWTtJQUVaLHdDQUF3QztJQUV4QyxtRUFBbUU7SUFDbkUsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzsrR0F4S1Usa0NBQWtDO21IQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTs7NEZBRVAsa0NBQWtDO2tCQUg5QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBfRElTVFJJQlVURURfRVZFTlRfTElTVEVORVJfUFJPVklERVIsIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyIH0gZnJvbSAnLi9kaXN0cmlidXRlZC1ldmVudC1saXN0ZW5lci5wcm92aWRlcic7XG5cbi8vI2VuZHJlZ2lvblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyU2VydmljZSB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJvdmlkZXJzICYgQ2FjaGVzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbGlzdGVuZXJQcm92aWRlcnMgPSBpbmplY3QoQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAvKiogQ2FjaGUgZm9yIGxpc3RlbmVycyBieSBrZXkuICovXG4gIHByaXZhdGUgbGlzdGVuZXJzQnlLZXk6IE1hcDxzdHJpbmcsIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyPGFueT5bXT4gPSBuZXcgTWFwKCk7XG4gIFxuICAvKiogRmxhZyB0byB0cmFjayBpZiBwcm92aWRlcnMgaGF2ZSBiZWVuIGxvYWRlZCAqL1xuICBwcml2YXRlIHByb3ZpZGVyc0xvYWRlZCA9IGZhbHNlO1xuICBcbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBQdWJsaWMgQVBJICAgLS0tLVxuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGFuIGV2ZW50IHRvIGFsbCByZWdpc3RlcmVkIGxpc3RlbmVycyBmb3IgdGhlIGdpdmVuIGtleS5cbiAgICogQHBhcmFtIGtleSBUaGUgZXZlbnQga2V5LlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZXZlbnQgZGF0YSB0byBwYXNzIHRvIGxpc3RlbmVycy5cbiAgICovXG4gIGFzeW5jIGRpc3BhdGNoKGtleTogc3RyaW5nLCBkYXRhPzogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHJvdmlkZXJzID0gYXdhaXQgdGhpcy5yZXNvbHZlUHJvdmlkZXJzKCk7XG4gICAgY29uc3QgbWF0Y2hlZCA9IHByb3ZpZGVycy5maWx0ZXIocCA9PiBwLmtleSA9PT0ga2V5KTtcblxuICAgIGlmICghbWF0Y2hlZC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIG1hdGNoZWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gcHJvdmlkZXIuZXhlY3V0ZShkYXRhKSlcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyU2VydmljZV0gUHJvdmlkZXIgZm9yIGtleT0nJHtrZXl9JyBmYWlsZWRgLCBlcnIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4vKipcbiAgICogRGlzcGF0Y2ggd2l0aCBhc3luYyByZXNwb25zZSAoZmlyc3QgbWF0Y2hpbmcgcHJvdmlkZXIsIHdpdGggcmV0cnkvdGltZW91dClcbiAgICovXG5wdWJsaWMgYXN5bmMgZGlzcGF0Y2hBc3luYzxULCBSPihcbiAga2V5OiBzdHJpbmcsXG4gIGRhdGE6IFQsXG4gIG9wdGlvbnM6IHsgdGltZW91dDogbnVtYmVyOyByZXRyaWVzOiBudW1iZXI7IHJldHJ5RGVsYXk6IG51bWJlciB9ID0ge1xuICAgIHRpbWVvdXQ6IDYwXzAwMCxcbiAgICByZXRyaWVzOiAzLFxuICAgIHJldHJ5RGVsYXk6IDEwMDAsXG4gIH1cbik6IFByb21pc2U8Uj4ge1xuICBjb25zdCBwcm92aWRlcnMgPSBhd2FpdCB0aGlzLnJlc29sdmVQcm92aWRlcnMoKTtcbiAgY29uc3QgbWF0Y2hlZCA9IHByb3ZpZGVycy5maWx0ZXIocCA9PiBwLmtleSA9PT0ga2V5KTtcblxuICBpZiAoIW1hdGNoZWQubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBwcm92aWRlciBmb3VuZCBmb3Iga2V5PScke2tleX0nYCk7XG4gIH1cblxuICBjb25zdCBhdHRlbXB0ID0gKG46IG51bWJlcik6IFByb21pc2U8Uj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxSPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcblxuICAgICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCFmaW5pc2hlZCkge1xuICAgICAgICAgIGlmIChuIDwgb3B0aW9ucy5yZXRyaWVzKSB7ICAgICAgICAgIFxuICAgICAgICAgICAgcmVzb2x2ZShhdHRlbXB0KG4gKyAxKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgbmV3IEVycm9yKGBUaW1lb3V0OiBubyByZXNwb25zZSBmb3Iga2V5PScke2tleX0nIGFmdGVyICR7b3B0aW9ucy5yZXRyaWVzfSBhdHRlbXB0cy5gKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIG9wdGlvbnMudGltZW91dCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyID0gbWF0Y2hlZFswXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+XG4gICAgICAgICAgcHJvdmlkZXIuZXhlY3V0ZShkYXRhKVxuICAgICAgICApO1xuXG4gICAgICAgIFByb21pc2UucmVzb2x2ZShyZXN1bHQpXG4gICAgICAgICAgLnRoZW4oKHI6IGFueSkgPT4ge1xuICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICAgIHJlc29sdmUocik7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gYXR0ZW1wdCgwKTtcbn1cblxuIC8qKlxuICAgKiBSZXNvbHZlIGFsbCBwcm92aWRlcnMgKGhhbmRsZSBib3RoIGRpcmVjdCBwcm92aWRlciBhbmQgUHJvbWlzZTxwcm92aWRlcj4pXG4gICAqL1xuIHByaXZhdGUgYXN5bmMgcmVzb2x2ZVByb3ZpZGVycygpOiBQcm9taXNlPEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyPGFueT5bXT4ge1xuICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgdGhpcy5saXN0ZW5lclByb3ZpZGVycy5tYXAocCA9PlxuICAgICAgcCBpbnN0YW5jZW9mIFByb21pc2UgPyBwIDogUHJvbWlzZS5yZXNvbHZlKHApXG4gICAgKVxuICApO1xufVxuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGxpc3RlbmVycyBmb3IgYSBzcGVjaWZpYyBldmVudCBrZXkuXG4gICAqIEBwYXJhbSBrZXkgVGhlIGV2ZW50IGtleS5cbiAgICogQHJldHVybnMgQXJyYXkgb2YgbGlzdGVuZXJzIGZvciB0aGUga2V5LlxuICAgKi9cbiAgYXN5bmMgZ2V0TGlzdGVuZXJzKGtleTogc3RyaW5nKTogUHJvbWlzZTxBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxhbnk+W10+IHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVByb3ZpZGVyc0xvYWRlZCgpO1xuICAgIHJldHVybiB0aGlzLmxpc3RlbmVyc0J5S2V5LmdldChrZXkpIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHJlZ2lzdGVyZWQgZXZlbnQga2V5cy5cbiAgICogQHJldHVybnMgQXJyYXkgb2YgYWxsIGV2ZW50IGtleXMgdGhhdCBoYXZlIGxpc3RlbmVycy5cbiAgICovXG4gIGFzeW5jIGdldFJlZ2lzdGVyZWRLZXlzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVByb3ZpZGVyc0xvYWRlZCgpO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMubGlzdGVuZXJzQnlLZXkua2V5cygpKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJpdmF0ZSBNZXRob2RzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoYXQgYWxsIHByb3ZpZGVycyBoYXZlIGJlZW4gbG9hZGVkIGFuZCBjYWNoZWQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGVuc3VyZVByb3ZpZGVyc0xvYWRlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5wcm92aWRlcnNMb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIGFsbCBwcm92aWRlcnNcbiAgICBjb25zdCByZXNvbHZlZFByb3ZpZGVycyA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMubGlzdGVuZXJQcm92aWRlcnMpO1xuXG4gICAgLy8gR3JvdXAgbGlzdGVuZXJzIGJ5IGtleVxuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgcmVzb2x2ZWRQcm92aWRlcnMpIHtcbiAgICAgIGlmIChwcm92aWRlcikge1xuICAgICAgICBjb25zdCBleGlzdGluZ0xpc3RlbmVycyA9IHRoaXMubGlzdGVuZXJzQnlLZXkuZ2V0KHByb3ZpZGVyLmtleSkgfHwgW107XG4gICAgICAgIGV4aXN0aW5nTGlzdGVuZXJzLnB1c2gocHJvdmlkZXIpO1xuICAgICAgICB0aGlzLmxpc3RlbmVyc0J5S2V5LnNldChwcm92aWRlci5rZXksIGV4aXN0aW5nTGlzdGVuZXJzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnByb3ZpZGVyc0xvYWRlZCA9IHRydWU7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIENhY2hlIE1hbmFnZW1lbnQgICAtLS0tXG5cbiAgLyoqIENsZWFycyB0aGUgbGlzdGVuZXJzIGNhY2hlIGFuZCBmb3JjZXMgcmVsb2FkIG9uIG5leHQgYWNjZXNzLiAqL1xuICBjbGVhckxpc3RlbmVyc0NhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuZXJzQnlLZXkuY2xlYXIoKTtcbiAgICB0aGlzLnByb3ZpZGVyc0xvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59Il19","import { Injectable } from '@angular/core';\nimport { isUndefined } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPDataGenerator } from '../data/data-generator';\nimport * as i0 from \"@angular/core\";\nexport class AXPBroadcastEventService {\n constructor() {\n this.eventSubjects = new Map();\n this.pendingRequests = new Map();\n this.multiTabEventHistory = new Set(); // Prevent duplicate processing of the same event\n this.instanceId = AXPDataGenerator.uuid();\n this.channel = new BroadcastChannel('platform_global_events');\n // Handle incoming messages\n this.channel.onmessage = (event) => {\n const { type, payload, requestId, response, sourceId } = event.data;\n // Prevent processing the same event multiple times (multi-tab synchronization)\n if (requestId && this.multiTabEventHistory.has(requestId)) {\n return;\n }\n if (requestId) {\n this.multiTabEventHistory.add(requestId); // Store processed requestId\n setTimeout(() => this.multiTabEventHistory.delete(requestId), 10000); // Cleanup after 10 sec\n }\n // Handle responses to pending requests\n if (requestId && !isUndefined(response) && this.pendingRequests.has(requestId)) {\n this.pendingRequests.get(requestId)(response);\n this.pendingRequests.delete(requestId);\n return;\n }\n // Handle normal broadcast events\n // Ignore events originating from this same instance to avoid double-delivery\n if (sourceId && sourceId === this.instanceId) {\n return;\n }\n if (type && this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).next({ data: payload, requestId });\n }\n };\n }\n /**\n * Publish an event without expecting a response\n */\n publish(type, payload) {\n this.channel.postMessage({ type, payload, sourceId: this.instanceId });\n // Local echo so same-tab listeners receive the event as well\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).next({ data: payload });\n }\n }\n /**\n * Subscribe to an event\n */\n listen(type) {\n if (!this.eventSubjects.has(type)) {\n this.eventSubjects.set(type, new Subject());\n }\n return this.eventSubjects.get(type).asObservable();\n }\n /**\n * Unsubscribe from an event\n */\n unsubscribe(type) {\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).complete();\n this.eventSubjects.delete(type);\n }\n }\n /**\n * Send a message and wait for a response with retry logic\n */\n async sendAndWaitForResponse(type, payload, options = {\n timeout: 60 * 60 * 1000,\n retries: 3,\n retryDelay: 1000,\n }) {\n const requestId = AXPDataGenerator.uuid();\n const attemptRequest = (attempt) => {\n return new Promise((resolve, reject) => {\n this.pendingRequests.set(requestId, resolve);\n this.channel.postMessage({ type, payload, requestId });\n setTimeout(() => {\n if (this.pendingRequests.has(requestId)) {\n this.pendingRequests.delete(requestId);\n if (attempt < options.retries) {\n console.warn(`Retrying request '${type}' (${attempt + 1}/${options.retries})...`);\n resolve(attemptRequest(attempt + 1)); // Retry request\n }\n else {\n reject(new Error(`Timeout: No response received for event '${type}' after ${options.retries} attempts.`));\n }\n }\n }, options.timeout);\n });\n };\n return attemptRequest(0);\n }\n /**\n * Respond to a request\n */\n respondToRequest(requestId, response) {\n if (!requestId) {\n console.warn('Invalid requestId. Cannot send response.');\n return;\n }\n this.channel.postMessage({ requestId, response });\n }\n /**\n * Cleanup when the service is destroyed\n */\n ngOnDestroy() {\n this.channel.close();\n // Complete all subjects\n this.eventSubjects.forEach((subject) => subject.complete());\n this.eventSubjects.clear();\n // Reject all pending requests to avoid dangling promises\n this.pendingRequests.forEach((resolve, requestId) => {\n resolve(Promise.reject(new Error(`Service destroyed. Request ${requestId} was not completed.`)));\n });\n this.pendingRequests.clear();\n // Cleanup multi-tab event history\n this.multiTabEventHistory.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPBroadcastEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPBroadcastEventService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPBroadcastEventService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V2ZW50LXNlcnZpY2UvZXZlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFLMUQsTUFBTSxPQUFPLHdCQUF3QjtJQU9uQztRQUxRLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7UUFDOUUsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUM3RCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsaURBQWlEO1FBQ2xGLGVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUdwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUU5RCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEUsK0VBQStFO1lBQy9FLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDMUQsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLElBQUks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QUksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1lBQ3pELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVyQix3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFM0IseURBQXlEO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDhCQUE4QixTQUFTLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25HLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUU3QixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7K0dBMUlVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUERhdGFHZW5lcmF0b3IgfSBmcm9tICcuLi9kYXRhL2RhdGEtZ2VuZXJhdG9yJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbDtcbiAgcHJpdmF0ZSBldmVudFN1YmplY3RzID0gbmV3IE1hcDxzdHJpbmcsIFN1YmplY3Q8eyBkYXRhOiBhbnk7IHJlcXVlc3RJZD86IHN0cmluZyB9Pj4oKTtcbiAgcHJpdmF0ZSBwZW5kaW5nUmVxdWVzdHMgPSBuZXcgTWFwPHN0cmluZywgKHJlc3BvbnNlOiBhbnkpID0+IHZvaWQ+KCk7XG4gIHByaXZhdGUgbXVsdGlUYWJFdmVudEhpc3RvcnkgPSBuZXcgU2V0PHN0cmluZz4oKTsgLy8gUHJldmVudCBkdXBsaWNhdGUgcHJvY2Vzc2luZyBvZiB0aGUgc2FtZSBldmVudFxuICBwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlSWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgncGxhdGZvcm1fZ2xvYmFsX2V2ZW50cycpO1xuXG4gICAgLy8gSGFuZGxlIGluY29taW5nIG1lc3NhZ2VzXG4gICAgdGhpcy5jaGFubmVsLm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgY29uc3QgeyB0eXBlLCBwYXlsb2FkLCByZXF1ZXN0SWQsIHJlc3BvbnNlLCBzb3VyY2VJZCB9ID0gZXZlbnQuZGF0YTtcbiAgICAgIC8vIFByZXZlbnQgcHJvY2Vzc2luZyB0aGUgc2FtZSBldmVudCBtdWx0aXBsZSB0aW1lcyAobXVsdGktdGFiIHN5bmNocm9uaXphdGlvbilcbiAgICAgIGlmIChyZXF1ZXN0SWQgJiYgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1ZXN0SWQpIHtcbiAgICAgICAgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5hZGQocmVxdWVzdElkKTsgLy8gU3RvcmUgcHJvY2Vzc2VkIHJlcXVlc3RJZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubXVsdGlUYWJFdmVudEhpc3RvcnkuZGVsZXRlKHJlcXVlc3RJZCksIDEwMDAwKTsgLy8gQ2xlYW51cCBhZnRlciAxMCBzZWNcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHJlc3BvbnNlcyB0byBwZW5kaW5nIHJlcXVlc3RzXG4gICAgICBpZiAocmVxdWVzdElkICYmICFpc1VuZGVmaW5lZChyZXNwb25zZSkgJiYgdGhpcy5wZW5kaW5nUmVxdWVzdHMuaGFzKHJlcXVlc3RJZCkpIHtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZ2V0KHJlcXVlc3RJZCkhKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIG5vcm1hbCBicm9hZGNhc3QgZXZlbnRzXG4gICAgICAvLyBJZ25vcmUgZXZlbnRzIG9yaWdpbmF0aW5nIGZyb20gdGhpcyBzYW1lIGluc3RhbmNlIHRvIGF2b2lkIGRvdWJsZS1kZWxpdmVyeVxuICAgICAgaWYgKHNvdXJjZUlkICYmIHNvdXJjZUlkID09PSB0aGlzLmluc3RhbmNlSWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgJiYgdGhpcy5ldmVudFN1YmplY3RzLmhhcyh0eXBlKSkge1xuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5uZXh0KHsgZGF0YTogcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaCBhbiBldmVudCB3aXRob3V0IGV4cGVjdGluZyBhIHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaDxUPih0eXBlOiBzdHJpbmcsIHBheWxvYWQ/OiBUKTogdm9pZCB7XG4gICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgc291cmNlSWQ6IHRoaXMuaW5zdGFuY2VJZCB9KTtcbiAgICAvLyBMb2NhbCBlY2hvIHNvIHNhbWUtdGFiIGxpc3RlbmVycyByZWNlaXZlIHRoZSBldmVudCBhcyB3ZWxsXG4gICAgaWYgKHRoaXMuZXZlbnRTdWJqZWN0cy5oYXModHlwZSkpIHtcbiAgICAgIHRoaXMuZXZlbnRTdWJqZWN0cy5nZXQodHlwZSkhLm5leHQoeyBkYXRhOiBwYXlsb2FkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gYW4gZXZlbnRcbiAgICovXG4gIHB1YmxpYyBsaXN0ZW48VD4odHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IGRhdGE6IFQ7IHJlcXVlc3RJZD86IHN0cmluZyB9PiB7XG4gICAgaWYgKCF0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdHMuc2V0KHR5cGUsIG5ldyBTdWJqZWN0PHsgZGF0YTogVDsgcmVxdWVzdElkPzogc3RyaW5nIH0+KCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ldmVudFN1YmplY3RzLmdldCh0eXBlKSEuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgZnJvbSBhbiBldmVudFxuICAgKi9cbiAgcHVibGljIHVuc3Vic2NyaWJlKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5ldmVudFN1YmplY3RzLmRlbGV0ZSh0eXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIG1lc3NhZ2UgYW5kIHdhaXQgZm9yIGEgcmVzcG9uc2Ugd2l0aCByZXRyeSBsb2dpY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbmRBbmRXYWl0Rm9yUmVzcG9uc2U8VCwgUj4oXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIHBheWxvYWQ/OiBULFxuICAgIG9wdGlvbnM6IHsgdGltZW91dDogbnVtYmVyOyByZXRyaWVzOiBudW1iZXI7IHJldHJ5RGVsYXk6IG51bWJlciB9ID0ge1xuICAgICAgdGltZW91dDogNjAgKiA2MCAqIDEwMDAsXG4gICAgICByZXRyaWVzOiAzLFxuICAgICAgcmV0cnlEZWxheTogMTAwMCxcbiAgICB9LFxuICApOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCByZXF1ZXN0SWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcblxuICAgIGNvbnN0IGF0dGVtcHRSZXF1ZXN0ID0gKGF0dGVtcHQ6IG51bWJlcik6IFByb21pc2U8Uj4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPFI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuc2V0KHJlcXVlc3RJZCwgcmVzb2x2ZSk7XG5cbiAgICAgICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdCA8IG9wdGlvbnMucmV0cmllcykge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFJldHJ5aW5nIHJlcXVlc3QgJyR7dHlwZX0nICgke2F0dGVtcHQgKyAxfS8ke29wdGlvbnMucmV0cmllc30pLi4uYCk7XG4gICAgICAgICAgICAgIHJlc29sdmUoYXR0ZW1wdFJlcXVlc3QoYXR0ZW1wdCArIDEpKTsgLy8gUmV0cnkgcmVxdWVzdFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgVGltZW91dDogTm8gcmVzcG9uc2UgcmVjZWl2ZWQgZm9yIGV2ZW50ICcke3R5cGV9JyBhZnRlciAke29wdGlvbnMucmV0cmllc30gYXR0ZW1wdHMuYCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgb3B0aW9ucy50aW1lb3V0KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gYXR0ZW1wdFJlcXVlc3QoMCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzcG9uZCB0byBhIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyByZXNwb25kVG9SZXF1ZXN0KHJlcXVlc3RJZDogc3RyaW5nLCByZXNwb25zZTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFyZXF1ZXN0SWQpIHtcbiAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCByZXF1ZXN0SWQuIENhbm5vdCBzZW5kIHJlc3BvbnNlLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoYW5uZWwucG9zdE1lc3NhZ2UoeyByZXF1ZXN0SWQsIHJlc3BvbnNlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFudXAgd2hlbiB0aGUgc2VydmljZSBpcyBkZXN0cm95ZWRcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbm5lbC5jbG9zZSgpO1xuXG4gICAgLy8gQ29tcGxldGUgYWxsIHN1YmplY3RzXG4gICAgdGhpcy5ldmVudFN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+IHN1YmplY3QuY29tcGxldGUoKSk7XG4gICAgdGhpcy5ldmVudFN1YmplY3RzLmNsZWFyKCk7XG5cbiAgICAvLyBSZWplY3QgYWxsIHBlbmRpbmcgcmVxdWVzdHMgdG8gYXZvaWQgZGFuZ2xpbmcgcHJvbWlzZXNcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5mb3JFYWNoKChyZXNvbHZlLCByZXF1ZXN0SWQpID0+IHtcbiAgICAgIHJlc29sdmUoUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGBTZXJ2aWNlIGRlc3Ryb3llZC4gUmVxdWVzdCAke3JlcXVlc3RJZH0gd2FzIG5vdCBjb21wbGV0ZWQuYCkpKTtcbiAgICB9KTtcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5jbGVhcigpO1xuXG4gICAgLy8gQ2xlYW51cCBtdWx0aS10YWIgZXZlbnQgaGlzdG9yeVxuICAgIHRoaXMubXVsdGlUYWJFdmVudEhpc3RvcnkuY2xlYXIoKTtcbiAgfVxufVxuIl19","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPExpressionEvaluatorScopeProviderContext {\n constructor() {\n this.scopes = {};\n }\n addScope(namespace, functions) {\n this.scopes[namespace] = { ...this.scopes[namespace], ...functions };\n }\n getScopes() {\n return this.scopes;\n }\n}\nexport const AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER = new InjectionToken('AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER');\nexport class AXPExpressionEvaluatorScopeProviderService {\n constructor() {\n this.providers = inject(AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, { optional: true });\n this.cache = null;\n }\n async load() {\n if (this.cache)\n return;\n const context = new AXPExpressionEvaluatorScopeProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n this.cache = context.getScopes();\n }\n async getScopesAsync() {\n await this.load();\n return this.cache || {};\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1ldmFsdWF0b3Itc2NvcGUtcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V4cHJlc3Npb24tZXZhbHVhdG9yL2V4cHJlc3Npb24tZXZhbHVhdG9yLXNjb3BlLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9uRSxNQUFNLE9BQU8sMENBQTBDO0lBQXZEO1FBQ1ksV0FBTSxHQUFnQyxFQUFFLENBQUM7SUFPckQsQ0FBQztJQU5HLFFBQVEsQ0FBQyxTQUFpQixFQUFFLFNBQXVDO1FBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0o7QUFHRCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDckUseUNBQXlDLENBQzVDLENBQUM7QUFHRixNQUFNLE9BQU8sMENBQTBDO0lBRHZEO1FBRVksY0FBUyxHQUFHLE1BQU0sQ0FBQyx1Q0FBdUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLFVBQUssR0FBdUMsSUFBSSxDQUFDO0tBaUI1RDtJQWZXLEtBQUssQ0FBQyxJQUFJO1FBQ2QsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQ0FBMEMsRUFBRSxDQUFDO1FBQ2pFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzsrR0FsQlEsMENBQTBDO21IQUExQywwQ0FBMEMsY0FEN0IsTUFBTTs7NEZBQ25CLDBDQUEwQztrQkFEdEQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgfSBmcm9tICcuL2V4cHJlc3Npb24tZXZhbHVhdG9yLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyIHtcbiAgICBwcm92aWRlKGNvbnRleHQ6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQge1xuICAgIHByaXZhdGUgc2NvcGVzOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7fTtcbiAgICBhZGRTY29wZShuYW1lc3BhY2U6IHN0cmluZywgZnVuY3Rpb25zOiB7IFtuYW1lOiBzdHJpbmddOiBGdW5jdGlvbiB9KSB7XG4gICAgICAgIHRoaXMuc2NvcGVzW25hbWVzcGFjZV0gPSB7IC4uLnRoaXMuc2NvcGVzW25hbWVzcGFjZV0sIC4uLmZ1bmN0aW9ucyB9O1xuICAgIH1cbiAgICBnZXRTY29wZXMoKTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NvcGVzO1xuICAgIH1cbn1cbmV4cG9ydCB0eXBlIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVycyA9IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyW10gfCAoKCkgPT4gQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJbXSk7XG5cbmV4cG9ydCBjb25zdCBBWFBfRVhQUkVTU0lPTl9FVkFMVUFUT1JfU0NPUEVfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJzPihcbiAgICAnQVhQX0VYUFJFU1NJT05fRVZBTFVBVE9SX1NDT1BFX1BST1ZJREVSJ1xuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9FWFBSRVNTSU9OX0VWQUxVQVRPUl9TQ09QRV9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIGNhY2hlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHJldHVybjtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQoKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgcHJvdmlkZXIucHJvdmlkZShjb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhY2hlID0gY29udGV4dC5nZXRTY29wZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0U2NvcGVzQXN5bmMoKTogUHJvbWlzZTxBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGU+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlIHx8IHt9O1xuICAgIH1cbn0gIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPExpressionEvaluatorScopeProviderService } from './expression-evaluator-scope-provider.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPExpressionEvaluatorService {\n constructor() {\n // Memoization cache for compiled expressions\n this.expressionCache = new Map();\n this.providerService = inject(AXPExpressionEvaluatorScopeProviderService);\n }\n getOrCompileFunction(expression) {\n if (!this.expressionCache.has(expression)) {\n // Check if expression contains multiple statements (has semicolons or newlines)\n const hasMultipleStatements = expression.includes(';') || expression.includes('\\n');\n let fn;\n if (hasMultipleStatements) {\n // For multiple statements, execute them in sequence and return the last expression\n fn = new Function('scope', `with (scope) { return (async function() { ${expression} })(); }`);\n }\n else {\n // For single expressions, use return\n fn = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n }\n this.expressionCache.set(expression, fn);\n }\n return this.expressionCache.get(expression);\n }\n async getMergedScope(userScope) {\n const pluginScopes = await this.providerService.getScopesAsync();\n // Merge pluginScopes and userScope (userScope takes precedence)\n return { ...pluginScopes, ...userScope };\n }\n async evaluate(source, scope = {}) {\n try {\n const mergedScope = await this.getMergedScope(scope);\n if (typeof source === 'string' && source.includes('{{')) {\n return await this.evaluateStringExpression(source, mergedScope);\n }\n else if (Array.isArray(source)) {\n const evaluatedArray = [];\n for (const item of source) {\n evaluatedArray.push(await this.evaluate(item, mergedScope));\n }\n return evaluatedArray;\n }\n else if (typeof source === 'object' && source !== null) {\n const evaluatedObject = {};\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n evaluatedObject[key] = await this.evaluate(source[key], mergedScope);\n }\n }\n return evaluatedObject;\n }\n else {\n return source;\n }\n }\n catch (error) {\n console.error('Expression evaluator - Error evaluating expression:', source, error);\n return false;\n }\n }\n async evaluateStringExpression(templateExpression, scope) {\n // Check if the input is exactly a single {{ ... }} expression (handle multiline)\n const exactMatch = templateExpression.match(/^\\s*\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}\\s*$/);\n if (exactMatch) {\n const expression = exactMatch[1];\n const sandbox = this.getOrCompileFunction(expression);\n const result = await sandbox(scope);\n return result;\n }\n // Otherwise, interpolate all {{ ... }} expressions in the string\n const regex = /\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}/g;\n // Collect all matches and their positions\n const matches = [];\n let match;\n while ((match = regex.exec(templateExpression)) !== null) {\n matches.push({\n expression: match[1],\n start: match.index,\n end: regex.lastIndex,\n raw: match[0],\n });\n }\n // Evaluate all expressions in parallel\n const values = await Promise.all(matches.map((m) => {\n const sandbox = this.getOrCompileFunction(m.expression);\n return sandbox(scope);\n }));\n // Reconstruct the string with evaluated values\n let result = '';\n let lastIndex = 0;\n matches.forEach((m, i) => {\n result += templateExpression.slice(lastIndex, m.start);\n const value = values[i];\n result += value !== undefined && value !== null ? value : '';\n lastIndex = m.end;\n });\n result += templateExpression.slice(lastIndex);\n return result;\n }\n isExpression(expression) {\n if (typeof expression === 'string') {\n return expression.includes('{{');\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPExpressionEvaluatorService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPExpressionEvaluatorService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1ldmFsdWF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V4cHJlc3Npb24tZXZhbHVhdG9yL2V4cHJlc3Npb24tZXZhbHVhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBSzNHLE1BQU0sT0FBTyw2QkFBNkI7SUFEMUM7UUFFRSw2Q0FBNkM7UUFDckMsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUM5QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0tBdUc5RTtJQXJHUyxvQkFBb0IsQ0FBQyxVQUFrQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxnRkFBZ0Y7WUFDaEYsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFcEYsSUFBSSxFQUFZLENBQUM7WUFDakIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMxQixtRkFBbUY7Z0JBQ25GLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsNkNBQTZDLFVBQVUsVUFBVSxDQUFDLENBQUM7WUFDaEcsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHFDQUFxQztnQkFDckMsRUFBRSxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxvREFBb0QsVUFBVSxXQUFXLENBQUMsQ0FBQztZQUN4RyxDQUFDO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FB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Q0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sWUFBWSxDQUFDLFVBQWtCO1FBQ3BDLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBekdVLDZCQUE2QjttSEFBN0IsNkJBQTZCLGNBRGhCLE1BQU07OzRGQUNuQiw2QkFBNkI7a0JBRHpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2V4cHJlc3Npb24tZXZhbHVhdG9yLXNjb3BlLXByb3ZpZGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7IFtuYW1lOiBzdHJpbmddOiB7IFtuYW1lOiBzdHJpbmddOiBGdW5jdGlvbiB9IH07XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2Uge1xuICAvLyBNZW1vaXphdGlvbiBjYWNoZSBmb3IgY29tcGlsZWQgZXhwcmVzc2lvbnNcbiAgcHJpdmF0ZSBleHByZXNzaW9uQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgRnVuY3Rpb24+KCk7XG4gIHByaXZhdGUgcHJvdmlkZXJTZXJ2aWNlID0gaW5qZWN0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBnZXRPckNvbXBpbGVGdW5jdGlvbihleHByZXNzaW9uOiBzdHJpbmcpOiBGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLmV4cHJlc3Npb25DYWNoZS5oYXMoZXhwcmVzc2lvbikpIHtcbiAgICAgIC8vIENoZWNrIGlmIGV4cHJlc3Npb24gY29udGFpbnMgbXVsdGlwbGUgc3RhdGVtZW50cyAoaGFzIHNlbWljb2xvbnMgb3IgbmV3bGluZXMpXG4gICAgICBjb25zdCBoYXNNdWx0aXBsZVN0YXRlbWVudHMgPSBleHByZXNzaW9uLmluY2x1ZGVzKCc7JykgfHwgZXhwcmVzc2lvbi5pbmNsdWRlcygnXFxuJyk7XG5cbiAgICAgIGxldCBmbjogRnVuY3Rpb247XG4gICAgICBpZiAoaGFzTXVsdGlwbGVTdGF0ZW1lbnRzKSB7XG4gICAgICAgIC8vIEZvciBtdWx0aXBsZSBzdGF0ZW1lbnRzLCBleGVjdXRlIHRoZW0gaW4gc2VxdWVuY2UgYW5kIHJldHVybiB0aGUgbGFzdCBleHByZXNzaW9uXG4gICAgICAgIGZuID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGB3aXRoIChzY29wZSkgeyByZXR1cm4gKGFzeW5jIGZ1bmN0aW9uKCkgeyAke2V4cHJlc3Npb259IH0pKCk7IH1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZvciBzaW5nbGUgZXhwcmVzc2lvbnMsIHVzZSByZXR1cm5cbiAgICAgICAgZm4gPSBuZXcgRnVuY3Rpb24oJ3Njb3BlJywgYHdpdGggKHNjb3BlKSB7IHJldHVybiAoYXN5bmMgZnVuY3Rpb24oKSB7IHJldHVybiAke2V4cHJlc3Npb259OyB9KSgpOyB9YCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZXhwcmVzc2lvbkNhY2hlLnNldChleHByZXNzaW9uLCBmbik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb25DYWNoZS5nZXQoZXhwcmVzc2lvbikhO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRNZXJnZWRTY29wZSh1c2VyU2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSk6IFByb21pc2U8QVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlPiB7XG4gICAgY29uc3QgcGx1Z2luU2NvcGVzID0gYXdhaXQgdGhpcy5wcm92aWRlclNlcnZpY2UuZ2V0U2NvcGVzQXN5bmMoKTtcbiAgICAvLyBNZXJnZSBwbHVnaW5TY29wZXMgYW5kIHVzZXJTY29wZSAodXNlclNjb3BlIHRha2VzIHByZWNlZGVuY2UpXG4gICAgcmV0dXJuIHsgLi4ucGx1Z2luU2NvcGVzLCAuLi51c2VyU2NvcGUgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBldmFsdWF0ZShzb3VyY2U6IGFueSB8IGFueVtdLCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtZXJnZWRTY29wZSA9IGF3YWl0IHRoaXMuZ2V0TWVyZ2VkU2NvcGUoc2NvcGUpO1xuICAgICAgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdzdHJpbmcnICYmIHNvdXJjZS5pbmNsdWRlcygne3snKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5ldmFsdWF0ZVN0cmluZ0V4cHJlc3Npb24oc291cmNlLCBtZXJnZWRTY29wZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgICBjb25zdCBldmFsdWF0ZWRBcnJheSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygc291cmNlKSB7XG4gICAgICAgICAgZXZhbHVhdGVkQXJyYXkucHVzaChhd2FpdCB0aGlzLmV2YWx1YXRlKGl0ZW0sIG1lcmdlZFNjb3BlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2YWx1YXRlZEFycmF5O1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc291cmNlID09PSAnb2JqZWN0JyAmJiBzb3VyY2UgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZXZhbHVhdGVkT2JqZWN0OiBhbnkgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICBldmFsdWF0ZWRPYmplY3Rba2V5XSA9IGF3YWl0IHRoaXMuZXZhbHVhdGUoc291cmNlW2tleV0sIG1lcmdlZFNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2YWx1YXRlZE9iamVjdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0V4cHJlc3Npb24gZXZhbHVhdG9yIC0gRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIHNvdXJjZSwgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVTdHJpbmdFeHByZXNzaW9uKHRlbXBsYXRlRXhwcmVzc2lvbjogc3RyaW5nLCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlKTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBDaGVjayBpZiB0aGUgaW5wdXQgaXMgZXhhY3RseSBhIHNpbmdsZSB7eyAuLi4gfX0gZXhwcmVzc2lvbiAoaGFuZGxlIG11bHRpbGluZSlcbiAgICBjb25zdCBleGFjdE1hdGNoID0gdGVtcGxhdGVFeHByZXNzaW9uLm1hdGNoKC9eXFxzKlxce1xce1xccyooW1xcc1xcU10qPylcXHMqXFx9XFx9XFxzKiQvKTtcbiAgICBpZiAoZXhhY3RNYXRjaCkge1xuICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGV4YWN0TWF0Y2hbMV07XG4gICAgICBjb25zdCBzYW5kYm94ID0gdGhpcy5nZXRPckNvbXBpbGVGdW5jdGlvbihleHByZXNzaW9uKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNhbmRib3goc2NvcGUpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgLy8gT3RoZXJ3aXNlLCBpbnRlcnBvbGF0ZSBhbGwge3sgLi4uIH19IGV4cHJlc3Npb25zIGluIHRoZSBzdHJpbmdcbiAgICBjb25zdCByZWdleCA9IC9cXHtcXHtcXHMqKFtcXHNcXFNdKj8pXFxzKlxcfVxcfS9nO1xuICAgIC8vIENvbGxlY3QgYWxsIG1hdGNoZXMgYW5kIHRoZWlyIHBvc2l0aW9uc1xuICAgIGNvbnN0IG1hdGNoZXMgPSBbXTtcbiAgICBsZXQgbWF0Y2g7XG4gICAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWModGVtcGxhdGVFeHByZXNzaW9uKSkgIT09IG51bGwpIHtcbiAgICAgIG1hdGNoZXMucHVzaCh7XG4gICAgICAgIGV4cHJlc3Npb246IG1hdGNoWzFdLFxuICAgICAgICBzdGFydDogbWF0Y2guaW5kZXgsXG4gICAgICAgIGVuZDogcmVnZXgubGFzdEluZGV4LFxuICAgICAgICByYXc6IG1hdGNoWzBdLFxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIEV2YWx1YXRlIGFsbCBleHByZXNzaW9ucyBpbiBwYXJhbGxlbFxuICAgIGNvbnN0IHZhbHVlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbWF0Y2hlcy5tYXAoKG0pID0+IHtcbiAgICAgICAgY29uc3Qgc2FuZGJveCA9IHRoaXMuZ2V0T3JDb21waWxlRnVuY3Rpb24obS5leHByZXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIHNhbmRib3goc2NvcGUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgICAvLyBSZWNvbnN0cnVjdCB0aGUgc3RyaW5nIHdpdGggZXZhbHVhdGVkIHZhbHVlc1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBsZXQgbGFzdEluZGV4ID0gMDtcbiAgICBtYXRjaGVzLmZvckVhY2goKG0sIGkpID0+IHtcbiAgICAgIHJlc3VsdCArPSB0ZW1wbGF0ZUV4cHJlc3Npb24uc2xpY2UobGFzdEluZGV4LCBtLnN0YXJ0KTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2ldO1xuICAgICAgcmVzdWx0ICs9IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgPyB2YWx1ZSA6ICcnO1xuICAgICAgbGFzdEluZGV4ID0gbS5lbmQ7XG4gICAgfSk7XG4gICAgcmVzdWx0ICs9IHRlbXBsYXRlRXhwcmVzc2lvbi5zbGljZShsYXN0SW5kZXgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaXNFeHByZXNzaW9uKGV4cHJlc3Npb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgZXhwcmVzc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBleHByZXNzaW9uLmluY2x1ZGVzKCd7eycpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","import { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';\nimport { AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, } from '../distributed-events/distributed-event-listener.provider';\nimport * as i0 from \"@angular/core\";\nexport class AXPHookService {\n constructor() {\n this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];\n this.injector = inject(Injector);\n }\n /**\n * Resolve all providers (handle both direct providers and Promise<provider>)\n */\n async resolveProviders() {\n return Promise.all(this.listenerProviders.map(p => p instanceof Promise ? p : Promise.resolve(p)));\n }\n /**\n * Fire sync hooks (fire-and-forget).\n * All providers with the given key will be executed.\n * Execution is not awaited.\n */\n fire(key, data) {\n this.resolveProviders().then(providers => {\n providers\n .filter(p => p.key === key)\n .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0))\n .forEach(p => {\n try {\n runInInjectionContext(this.injector, () => p.execute(data));\n }\n catch (err) {\n console.error(`[AXPHookService] Hook '${key}' failed`, err);\n }\n });\n });\n }\n /**\n * Run async hooks sequentially (waterfall).\n * The output of each hook is passed as input to the next hook.\n * Returns the final merged data after all hooks are executed.\n */\n async runAsync(key, initialData) {\n const providers = (await this.resolveProviders())\n .filter(p => p.key === key)\n .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n let data = initialData;\n for (const p of providers) {\n data = await Promise.resolve(runInInjectionContext(this.injector, () => p.execute(data)));\n }\n return data;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHookService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHookService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPHookService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2hvb2svdXRpbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUNMLHVDQUF1QyxHQUV4QyxNQUFNLDJEQUEyRCxDQUFDOztBQUduRSxNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVtQixzQkFBaUIsR0FDaEMsTUFBTSxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FtRDlDO0lBakRDOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGdCQUFnQjtRQUM1QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDN0IsQ0FBQyxZQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUM5QyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLElBQUksQ0FBSSxHQUFXLEVBQUUsSUFBTztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdkMsU0FBUztpQkFDTixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQztpQkFDMUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDckQsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQztvQkFDSCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEdBQUcsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBSSxHQUFXLEVBQUUsV0FBYztRQUNsRCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDOUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUM7YUFDMUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpELElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUN2QixLQUFLLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzFCLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQzFCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM1RCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FyRFUsY0FBYzttSEFBZCxjQUFjLGNBREQsTUFBTTs7NEZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWFBfRElTVFJJQlVURURfRVZFTlRfTElTVEVORVJfUFJPVklERVIsXG4gIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyLFxufSBmcm9tICcuLi9kaXN0cmlidXRlZC1ldmVudHMvZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXInO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEhvb2tTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBsaXN0ZW5lclByb3ZpZGVycyA9XG4gICAgaW5qZWN0KEFYUF9ESVNUUklCVVRFRF9FVkVOVF9MSVNURU5FUl9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYWxsIHByb3ZpZGVycyAoaGFuZGxlIGJvdGggZGlyZWN0IHByb3ZpZGVycyBhbmQgUHJvbWlzZTxwcm92aWRlcj4pXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlc29sdmVQcm92aWRlcnMoKTogUHJvbWlzZTxBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxhbnksIGFueT5bXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMubGlzdGVuZXJQcm92aWRlcnMubWFwKHAgPT5cbiAgICAgICAgcCBpbnN0YW5jZW9mIFByb21pc2UgPyBwIDogUHJvbWlzZS5yZXNvbHZlKHApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlIHN5bmMgaG9va3MgKGZpcmUtYW5kLWZvcmdldCkuXG4gICAqIEFsbCBwcm92aWRlcnMgd2l0aCB0aGUgZ2l2ZW4ga2V5IHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqIEV4ZWN1dGlvbiBpcyBub3QgYXdhaXRlZC5cbiAgICovXG4gIHB1YmxpYyBmaXJlPFQ+KGtleTogc3RyaW5nLCBkYXRhOiBUKTogdm9pZCB7XG4gICAgdGhpcy5yZXNvbHZlUHJvdmlkZXJzKCkudGhlbihwcm92aWRlcnMgPT4ge1xuICAgICAgcHJvdmlkZXJzXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLmtleSA9PT0ga2V5KVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gKGEucHJpb3JpdHkgPz8gMCkgLSAoYi5wcmlvcml0eSA/PyAwKSlcbiAgICAgICAgLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiBwLmV4ZWN1dGUoZGF0YSkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgW0FYUEhvb2tTZXJ2aWNlXSBIb29rICcke2tleX0nIGZhaWxlZGAsIGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gYXN5bmMgaG9va3Mgc2VxdWVudGlhbGx5ICh3YXRlcmZhbGwpLlxuICAgKiBUaGUgb3V0cHV0IG9mIGVhY2ggaG9vayBpcyBwYXNzZWQgYXMgaW5wdXQgdG8gdGhlIG5leHQgaG9vay5cbiAgICogUmV0dXJucyB0aGUgZmluYWwgbWVyZ2VkIGRhdGEgYWZ0ZXIgYWxsIGhvb2tzIGFyZSBleGVjdXRlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBydW5Bc3luYzxUPihrZXk6IHN0cmluZywgaW5pdGlhbERhdGE6IFQpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBwcm92aWRlcnMgPSAoYXdhaXQgdGhpcy5yZXNvbHZlUHJvdmlkZXJzKCkpXG4gICAgICAuZmlsdGVyKHAgPT4gcC5rZXkgPT09IGtleSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiAoYS5wcmlvcml0eSA/PyAwKSAtIChiLnByaW9yaXR5ID8/IDApKTtcblxuICAgIGxldCBkYXRhID0gaW5pdGlhbERhdGE7XG4gICAgZm9yIChjb25zdCBwIG9mIHByb3ZpZGVycykge1xuICAgICAgZGF0YSA9IGF3YWl0IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHAuZXhlY3V0ZShkYXRhKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG59XG4iXX0=","import { Injectable, inject, provideAppInitializer } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPAppStartUpService {\n constructor() {\n this.tasks = [];\n }\n registerTask(task) {\n this.tasks.push(task);\n }\n async runAllTasks() {\n for (const task of this.tasks.sort((a, b) => a.priority - b.priority)) {\n console.log(`Running \"${task.statusText}\" with priority \"${task.priority}\"`);\n this.updateStatus(task.statusText);\n await task.run();\n }\n }\n updateStatus(status) {\n const loadingText = document.querySelector('#loadingText');\n if (loadingText) {\n loadingText.innerHTML = status;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPAppStartUpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPAppStartUpService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPAppStartUpService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nfunction initAppFactory(appInitService) {\n return () => appInitService.runAllTasks();\n}\nexport const AXPAppStartUpProvider = provideAppInitializer(() => {\n const initializerFn = initAppFactory(inject(AXPAppStartUpService));\n return initializerFn();\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXJ0dXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3N0YXJ0dXAvYXBwLXN0YXJ0dXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLG9CQUFvQjtJQUhqQztRQUlVLFVBQUssR0FBcUIsRUFBRSxDQUFDO0tBb0J0QztJQWxCQyxZQUFZLENBQUMsSUFBb0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxVQUFVLG9CQUFvQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxNQUFjO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixXQUFXLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzsrR0FwQlUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUF3QkQsU0FBUyxjQUFjLENBQUMsY0FBb0M7SUFDMUQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtJQUM5RCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUNuRSxPQUFPLGFBQWEsRUFBRSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBwcm92aWRlQXBwSW5pdGlhbGl6ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFN0YXJ0VXBUYXNrIH0gZnJvbSAnLi9hcHAtc3RhcnR1cC50eXBlcyc7XG5cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQXBwU3RhcnRVcFNlcnZpY2Uge1xuICBwcml2YXRlIHRhc2tzOiBBWFBTdGFydFVwVGFza1tdID0gW107XG5cbiAgcmVnaXN0ZXJUYXNrKHRhc2s6IEFYUFN0YXJ0VXBUYXNrKSB7XG4gICAgdGhpcy50YXNrcy5wdXNoKHRhc2spO1xuICB9XG5cbiAgYXN5bmMgcnVuQWxsVGFza3MoKSB7XG4gICAgZm9yIChjb25zdCB0YXNrIG9mIHRoaXMudGFza3Muc29ydCgoYSwgYikgPT4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHkpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUnVubmluZyBcIiR7dGFzay5zdGF0dXNUZXh0fVwiIHdpdGggcHJpb3JpdHkgXCIke3Rhc2sucHJpb3JpdHl9XCJgKTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdHVzKHRhc2suc3RhdHVzVGV4dCk7XG4gICAgICBhd2FpdCB0YXNrLnJ1bigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhdHVzKHN0YXR1czogc3RyaW5nKSB7XG4gICAgY29uc3QgbG9hZGluZ1RleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbG9hZGluZ1RleHQnKTtcbiAgICBpZiAobG9hZGluZ1RleHQpIHtcbiAgICAgIGxvYWRpbmdUZXh0LmlubmVySFRNTCA9IHN0YXR1cztcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdEFwcEZhY3RvcnkoYXBwSW5pdFNlcnZpY2U6IEFYUEFwcFN0YXJ0VXBTZXJ2aWNlKSB7XG4gIHJldHVybiAoKSA9PiBhcHBJbml0U2VydmljZS5ydW5BbGxUYXNrcygpO1xufVxuXG5leHBvcnQgY29uc3QgQVhQQXBwU3RhcnRVcFByb3ZpZGVyID0gcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJGbiA9IGluaXRBcHBGYWN0b3J5KGluamVjdChBWFBBcHBTdGFydFVwU2VydmljZSkpO1xuICByZXR1cm4gaW5pdGlhbGl6ZXJGbigpO1xufSk7XG4iXX0=","/**\n * Status Definition Types\n * Defines the structure for status definitions and their transitions\n */\n/**\n * Abstract class for status providers\n * Similar to AXPTaskBadgeProvider pattern\n */\nexport class AXPStatusProvider {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWRlZmluaXRpb24udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9zdGF0dXMtZGVmaW5pdGlvbi9zdGF0dXMtZGVmaW5pdGlvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUE0R0g7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixpQkFBaUI7Q0FvQnRDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGF0dXMgRGVmaW5pdGlvbiBUeXBlc1xuICogRGVmaW5lcyB0aGUgc3RydWN0dXJlIGZvciBzdGF0dXMgZGVmaW5pdGlvbnMgYW5kIHRoZWlyIHRyYW5zaXRpb25zXG4gKi9cblxuLyoqXG4gKiBTdGF0dXMgZGVmaW5pdGlvbiB3aXRoIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU3RhdHVzRGVmaW5pdGlvbiB7XG4gIC8qKlxuICAgKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHN0YXR1c1xuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IHRpdGxlIGZvciB0aGUgc3RhdHVzXG4gICAqL1xuICB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb2xvciBjb2RlIG9yIHNlbWFudGljIGNvbG9yIG5hbWUgZm9yIHRoZSBzdGF0dXNcbiAgICovXG4gIGNvbG9yOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGljb24gY2xhc3MgKGUuZy4sICdmYS1saWdodCBmYS1jaGVjaycpXG4gICAqL1xuICBpY29uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvblxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG9yZGVyIGZvciBzb3J0aW5nXG4gICAqL1xuICBvcmRlcj86IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHN0YXR1cyBpcyBhY3RpdmUvYXZhaWxhYmxlXG4gICAqL1xuICBpc0FjdGl2ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhIGZpbmFsIHN0YXR1cyAoZW5kIHN0YXRlKVxuICAgKi9cbiAgaXNGaW5hbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhbiBpbml0aWFsIHN0YXR1cyAoc3RhcnRpbmcgc3RhdGUpXG4gICAqL1xuICBpc0luaXRpYWw/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFN0YXR1cyB0cmFuc2l0aW9uIGRlZmluaXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBTdGF0dXNUcmFuc2l0aW9uIHtcbiAgLyoqXG4gICAqIFNvdXJjZSBzdGF0dXMgbmFtZVxuICAgKi9cbiAgZnJvbTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYXJnZXQgc3RhdHVzIG5hbWVcbiAgICovXG4gIHRvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbmRpdGlvbiBleHByZXNzaW9uIHRvIGV2YWx1YXRlIGJlZm9yZSBhbGxvd2luZyB0cmFuc2l0aW9uXG4gICAqIFVzZXMgZXhwcmVzc2lvbiBldmFsdWF0b3Igc3ludGF4IChlLmcuLCBcInt7dXNlci5pc0FkbWlufX1cIiwgXCJ7e2l0ZW0ucHJpb3JpdHkgPiA1fX1cIilcbiAgICovXG4gIGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGlzcGxheSB0aXRsZSBmb3IgdGhlIHRyYW5zaXRpb25cbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvblxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFjdGlvbiBpZGVudGlmaWVyXG4gICAqL1xuICBhY3Rpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbG9yIGZvciB0aGUgdHJhbnNpdGlvbiBidXR0b24vaW5kaWNhdG9yXG4gICAqL1xuICBjb2xvcj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgaWNvbiBmb3IgdGhlIHRyYW5zaXRpb25cbiAgICovXG4gIGljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyB0cmFuc2l0aW9uIGlzIGF1dG9tYXRpYyAobm8gdXNlciBhY3Rpb24gcmVxdWlyZWQpXG4gICAqL1xuICBpc0F1dG9tYXRpYz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyB0cmFuc2l0aW9uIHJlcXVpcmVzIGFwcHJvdmFsXG4gICAqL1xuICByZXF1aXJlc0FwcHJvdmFsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3Igc3RhdHVzIHByb3ZpZGVyc1xuICogU2ltaWxhciB0byBBWFBUYXNrQmFkZ2VQcm92aWRlciBwYXR0ZXJuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBTdGF0dXNQcm92aWRlciB7XG4gIC8qKlxuICAgKiBVbmlxdWUga2V5IGZvciB0aGUgc3RhdHVzIChlLmcuLCAndGFzay1tYW5hZ2VtZW50LnN0YXR1cycpXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBhdmFpbGFibGUgc3RhdHVzIGRlZmluaXRpb25zXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBzdGF0dXNlczogQVhQU3RhdHVzRGVmaW5pdGlvbltdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFsbG93ZWQgdHJhbnNpdGlvbnMgYmV0d2VlbiBzdGF0dXNlc1xuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgdHJhbnNpdGlvbnM6IEFYUFN0YXR1c1RyYW5zaXRpb25bXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGVmYXVsdCBzdGF0dXMgbmFtZVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgZGVmYXVsdFN0YXR1cz86IHN0cmluZztcbn1cblxuIl19","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n//#region ---- Injection Token ----\n/**\n * Injection token for status providers\n * Use with multi: true to register multiple providers\n */\nexport const AXP_STATUS_PROVIDERS = new InjectionToken('AXP_STATUS_PROVIDERS');\n//#endregion\n//#region ---- Provider Service ----\n/**\n * Service for managing status definitions from multiple providers\n * Similar to AXPTaskBadgeService pattern - no cache, direct access\n *\n * @example\n * ```typescript\n * // In a module providers array:\n * {\n * provide: AXP_STATUS_PROVIDERS,\n * useClass: TaskStatusProvider,\n * multi: true,\n * }\n *\n * // Example provider implementation:\n * export class TaskStatusProvider extends AXPStatusProvider {\n * readonly key = 'task-management.status';\n * readonly statuses = [\n * { name: 'todo', title: 'To Do', color: '#6b7280', icon: 'fa-light fa-circle', isInitial: true },\n * { name: 'in-progress', title: 'In Progress', color: '#3b82f6', icon: 'fa-light fa-play' },\n * { name: 'done', title: 'Done', color: '#10b981', icon: 'fa-light fa-check-circle', isFinal: true },\n * ];\n * readonly transitions = [\n * { from: 'todo', to: 'in-progress', title: 'Start', condition: '{{user.canEdit}}' },\n * { from: 'in-progress', to: 'done', title: 'Complete' },\n * ];\n * readonly defaultStatus = 'todo';\n * }\n *\n * // Later, get the status:\n * const status = statusService.getStatus('task-management.status');\n * if (status) {\n * console.log('Statuses:', status.statuses);\n * console.log('Transitions:', status.transitions);\n * }\n * ```\n */\nexport class AXPStatusDefinitionProviderService {\n //#endregion\n //#region ---- Constructor ----\n constructor() {\n //#region ---- Dependencies ----\n this.providers = inject(AXP_STATUS_PROVIDERS, { optional: true }) ?? [];\n //#endregion\n //#region ---- State ----\n this.statusMap = new Map();\n // Register all providers in constructor (like badge service)\n for (const provider of this.providers) {\n if (this.statusMap.has(provider.key)) {\n console.warn(`Status with key \"${provider.key}\" already exists. Overwriting with new status.`);\n }\n this.statusMap.set(provider.key, provider);\n }\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Get a status provider by key\n * Direct access from Map (no lazy load, no cache)\n *\n * @param key - Status key (e.g., 'task-management.status')\n * @returns Status provider with all statuses and transitions, or undefined if not found\n *\n * @example\n * ```typescript\n * const status = statusService.getStatus('task-management.status');\n * if (status) {\n * console.log('Statuses:', status.statuses);\n * console.log('Transitions:', status.transitions);\n * }\n * ```\n */\n getStatus(key) {\n return this.statusMap.get(key);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPStatusDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPStatusDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPStatusDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWRlZmluaXRpb24tcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3N0YXR1cy1kZWZpbml0aW9uL3N0YXR1cy1kZWZpbml0aW9uLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUduRSx1Q0FBdUM7QUFFdkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHNCQUFzQixDQUFDLENBQUM7QUFFcEcsWUFBWTtBQUVaLHdDQUF3QztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFFSCxNQUFNLE9BQU8sa0NBQWtDO0lBVzdDLFlBQVk7SUFFWixtQ0FBbUM7SUFFbkM7UUFkQSxvQ0FBb0M7UUFFNUIsY0FBUyxHQUF3QixNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFaEcsWUFBWTtRQUVaLDZCQUE2QjtRQUVyQixjQUFTLEdBQUcsSUFBSSxHQUFHLEVBQTZCLENBQUM7UUFPdkQsNkRBQTZEO1FBQzdELEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLFFBQVEsQ0FBQyxHQUFHLGdEQUFnRCxDQUFDLENBQUM7WUFDakcsQ0FBQztZQUVELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO0lBRVosa0NBQWtDO0lBRWxDOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNJLFNBQVMsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0FoRFUsa0NBQWtDO21IQUFsQyxrQ0FBa0MsY0FEckIsTUFBTTs7NEZBQ25CLGtDQUFrQztrQkFEOUMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBTdGF0dXNQcm92aWRlciB9IGZyb20gJy4vc3RhdHVzLWRlZmluaXRpb24udHlwZXMnO1xuXG4vLyNyZWdpb24gLS0tLSAgIEluamVjdGlvbiBUb2tlbiAgIC0tLS1cblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gZm9yIHN0YXR1cyBwcm92aWRlcnNcbiAqIFVzZSB3aXRoIG11bHRpOiB0cnVlIHRvIHJlZ2lzdGVyIG11bHRpcGxlIHByb3ZpZGVyc1xuICovXG5leHBvcnQgY29uc3QgQVhQX1NUQVRVU19QUk9WSURFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQU3RhdHVzUHJvdmlkZXJbXT4oJ0FYUF9TVEFUVVNfUFJPVklERVJTJyk7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIFByb3ZpZGVyIFNlcnZpY2UgICAtLS0tXG5cbi8qKlxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgc3RhdHVzIGRlZmluaXRpb25zIGZyb20gbXVsdGlwbGUgcHJvdmlkZXJzXG4gKiBTaW1pbGFyIHRvIEFYUFRhc2tCYWRnZVNlcnZpY2UgcGF0dGVybiAtIG5vIGNhY2hlLCBkaXJlY3QgYWNjZXNzXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhIG1vZHVsZSBwcm92aWRlcnMgYXJyYXk6XG4gKiB7XG4gKiAgIHByb3ZpZGU6IEFYUF9TVEFUVVNfUFJPVklERVJTLFxuICogICB1c2VDbGFzczogVGFza1N0YXR1c1Byb3ZpZGVyLFxuICogICBtdWx0aTogdHJ1ZSxcbiAqIH1cbiAqIFxuICogLy8gRXhhbXBsZSBwcm92aWRlciBpbXBsZW1lbnRhdGlvbjpcbiAqIGV4cG9ydCBjbGFzcyBUYXNrU3RhdHVzUHJvdmlkZXIgZXh0ZW5kcyBBWFBTdGF0dXNQcm92aWRlciB7XG4gKiAgIHJlYWRvbmx5IGtleSA9ICd0YXNrLW1hbmFnZW1lbnQuc3RhdHVzJztcbiAqICAgcmVhZG9ubHkgc3RhdHVzZXMgPSBbXG4gKiAgICAgeyBuYW1lOiAndG9kbycsIHRpdGxlOiAnVG8gRG8nLCBjb2xvcjogJyM2YjcyODAnLCBpY29uOiAnZmEtbGlnaHQgZmEtY2lyY2xlJywgaXNJbml0aWFsOiB0cnVlIH0sXG4gKiAgICAgeyBuYW1lOiAnaW4tcHJvZ3Jlc3MnLCB0aXRsZTogJ0luIFByb2dyZXNzJywgY29sb3I6ICcjM2I4MmY2JywgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBsYXknIH0sXG4gKiAgICAgeyBuYW1lOiAnZG9uZScsIHRpdGxlOiAnRG9uZScsIGNvbG9yOiAnIzEwYjk4MScsIGljb246ICdmYS1saWdodCBmYS1jaGVjay1jaXJjbGUnLCBpc0ZpbmFsOiB0cnVlIH0sXG4gKiAgIF07XG4gKiAgIHJlYWRvbmx5IHRyYW5zaXRpb25zID0gW1xuICogICAgIHsgZnJvbTogJ3RvZG8nLCB0bzogJ2luLXByb2dyZXNzJywgdGl0bGU6ICdTdGFydCcsIGNvbmRpdGlvbjogJ3t7dXNlci5jYW5FZGl0fX0nIH0sXG4gKiAgICAgeyBmcm9tOiAnaW4tcHJvZ3Jlc3MnLCB0bzogJ2RvbmUnLCB0aXRsZTogJ0NvbXBsZXRlJyB9LFxuICogICBdO1xuICogICByZWFkb25seSBkZWZhdWx0U3RhdHVzID0gJ3RvZG8nO1xuICogfVxuICogXG4gKiAvLyBMYXRlciwgZ2V0IHRoZSBzdGF0dXM6XG4gKiBjb25zdCBzdGF0dXMgPSBzdGF0dXNTZXJ2aWNlLmdldFN0YXR1cygndGFzay1tYW5hZ2VtZW50LnN0YXR1cycpO1xuICogaWYgKHN0YXR1cykge1xuICogICBjb25zb2xlLmxvZygnU3RhdHVzZXM6Jywgc3RhdHVzLnN0YXR1c2VzKTtcbiAqICAgY29uc29sZS5sb2coJ1RyYW5zaXRpb25zOicsIHN0YXR1cy50cmFuc2l0aW9ucyk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBTdGF0dXNEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlIHtcbiAgLy8jcmVnaW9uIC0tLS0gICBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgcHJpdmF0ZSBwcm92aWRlcnM6IEFYUFN0YXR1c1Byb3ZpZGVyW10gPSBpbmplY3QoQVhQX1NUQVRVU19QUk9WSURFUlMsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBTdGF0ZSAgIC0tLS1cblxuICBwcml2YXRlIHN0YXR1c01hcCA9IG5ldyBNYXA8c3RyaW5nLCBBWFBTdGF0dXNQcm92aWRlcj4oKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIENvbnN0cnVjdG9yICAgLS0tLVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFJlZ2lzdGVyIGFsbCBwcm92aWRlcnMgaW4gY29uc3RydWN0b3IgKGxpa2UgYmFkZ2Ugc2VydmljZSlcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICBpZiAodGhpcy5zdGF0dXNNYXAuaGFzKHByb3ZpZGVyLmtleSkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBTdGF0dXMgd2l0aCBrZXkgXCIke3Byb3ZpZGVyLmtleX1cIiBhbHJlYWR5IGV4aXN0cy4gT3ZlcndyaXRpbmcgd2l0aCBuZXcgc3RhdHVzLmApO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0aGlzLnN0YXR1c01hcC5zZXQocHJvdmlkZXIua2V5LCBwcm92aWRlcik7XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBQdWJsaWMgQVBJICAgLS0tLVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzdGF0dXMgcHJvdmlkZXIgYnkga2V5XG4gICAqIERpcmVjdCBhY2Nlc3MgZnJvbSBNYXAgKG5vIGxhenkgbG9hZCwgbm8gY2FjaGUpXG4gICAqIFxuICAgKiBAcGFyYW0ga2V5IC0gU3RhdHVzIGtleSAoZS5nLiwgJ3Rhc2stbWFuYWdlbWVudC5zdGF0dXMnKVxuICAgKiBAcmV0dXJucyBTdGF0dXMgcHJvdmlkZXIgd2l0aCBhbGwgc3RhdHVzZXMgYW5kIHRyYW5zaXRpb25zLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gICAqIFxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHN0YXR1cyA9IHN0YXR1c1NlcnZpY2UuZ2V0U3RhdHVzKCd0YXNrLW1hbmFnZW1lbnQuc3RhdHVzJyk7XG4gICAqIGlmIChzdGF0dXMpIHtcbiAgICogICBjb25zb2xlLmxvZygnU3RhdHVzZXM6Jywgc3RhdHVzLnN0YXR1c2VzKTtcbiAgICogICBjb25zb2xlLmxvZygnVHJhbnNpdGlvbnM6Jywgc3RhdHVzLnRyYW5zaXRpb25zKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBnZXRTdGF0dXMoa2V5OiBzdHJpbmcpOiBBWFBTdGF0dXNQcm92aWRlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzTWFwLmdldChrZXkpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","/**\n * Standard system status types\n * These are the predefined status values used across the platform\n */\nexport var AXPSystemStatusType;\n(function (AXPSystemStatusType) {\n AXPSystemStatusType[\"Todo\"] = \"todo\";\n AXPSystemStatusType[\"InProgress\"] = \"in-progress\";\n AXPSystemStatusType[\"InReview\"] = \"in-review\";\n AXPSystemStatusType[\"Blocked\"] = \"blocked\";\n AXPSystemStatusType[\"Done\"] = \"done\";\n AXPSystemStatusType[\"Cancelled\"] = \"cancelled\";\n AXPSystemStatusType[\"Draft\"] = \"draft\";\n AXPSystemStatusType[\"PendingReview\"] = \"pending-review\";\n AXPSystemStatusType[\"Approved\"] = \"approved\";\n AXPSystemStatusType[\"Published\"] = \"published\";\n AXPSystemStatusType[\"Archived\"] = \"archived\";\n AXPSystemStatusType[\"Rejected\"] = \"rejected\";\n AXPSystemStatusType[\"Active\"] = \"active\";\n AXPSystemStatusType[\"Inactive\"] = \"inactive\";\n AXPSystemStatusType[\"Pending\"] = \"pending\";\n AXPSystemStatusType[\"Completed\"] = \"completed\";\n AXPSystemStatusType[\"Suspended\"] = \"suspended\";\n AXPSystemStatusType[\"Failed\"] = \"failed\";\n})(AXPSystemStatusType || (AXPSystemStatusType = {}));\nconst i18n = (key) => `@general:statuses.${key}`;\n/**\n * Standard system status definitions\n * Provides consistent status definitions across the platform\n * Uses AXPStatusDefinition interface from status-definition.types.ts\n */\nexport const AXPSystemStatuses = Object.freeze({\n Todo: {\n name: AXPSystemStatusType.Todo,\n title: i18n('todo.title'),\n icon: 'fa-light fa-circle',\n color: '#6b7280',\n description: i18n('todo.description'),\n order: 1,\n isActive: true,\n isInitial: true,\n isFinal: false,\n },\n InProgress: {\n name: AXPSystemStatusType.InProgress,\n title: i18n('in-progress.title'),\n icon: 'fa-light fa-play',\n color: '#3b82f6',\n description: i18n('in-progress.description'),\n order: 2,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n InReview: {\n name: AXPSystemStatusType.InReview,\n title: i18n('in-review.title'),\n icon: 'fa-light fa-eye',\n color: '#8b5cf6',\n description: i18n('in-review.description'),\n order: 3,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Blocked: {\n name: AXPSystemStatusType.Blocked,\n title: i18n('blocked.title'),\n icon: 'fa-light fa-ban',\n color: '#ef4444',\n description: i18n('blocked.description'),\n order: 4,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Done: {\n name: AXPSystemStatusType.Done,\n title: i18n('done.title'),\n icon: 'fa-light fa-check-circle',\n color: '#10b981',\n description: i18n('done.description'),\n order: 5,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Cancelled: {\n name: AXPSystemStatusType.Cancelled,\n title: i18n('cancelled.title'),\n icon: 'fa-light fa-times-circle',\n color: '#64748b',\n description: i18n('cancelled.description'),\n order: 6,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Draft: {\n name: AXPSystemStatusType.Draft,\n title: i18n('draft.title'),\n icon: 'fa-light fa-file-pen',\n color: '#6b7280',\n description: i18n('draft.description'),\n order: 1,\n isActive: true,\n isInitial: true,\n isFinal: false,\n },\n PendingReview: {\n name: AXPSystemStatusType.PendingReview,\n title: i18n('pending-review.title'),\n icon: 'fa-light fa-clock',\n color: '#f59e0b',\n description: i18n('pending-review.description'),\n order: 2,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Approved: {\n name: AXPSystemStatusType.Approved,\n title: i18n('approved.title'),\n icon: 'fa-light fa-check-circle',\n color: '#10b981',\n description: i18n('approved.description'),\n order: 3,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Published: {\n name: AXPSystemStatusType.Published,\n title: i18n('published.title'),\n icon: 'fa-light fa-globe',\n color: '#3b82f6',\n description: i18n('published.description'),\n order: 4,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Archived: {\n name: AXPSystemStatusType.Archived,\n title: i18n('archived.title'),\n icon: 'fa-light fa-archive',\n color: '#64748b',\n description: i18n('archived.description'),\n order: 5,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Rejected: {\n name: AXPSystemStatusType.Rejected,\n title: i18n('rejected.title'),\n icon: 'fa-light fa-times-circle',\n color: '#ef4444',\n description: i18n('rejected.description'),\n order: 6,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Active: {\n name: AXPSystemStatusType.Active,\n title: i18n('active.title'),\n icon: 'fa-light fa-check-circle',\n color: '#10b981',\n description: i18n('active.description'),\n order: 1,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Inactive: {\n name: AXPSystemStatusType.Inactive,\n title: i18n('inactive.title'),\n icon: 'fa-light fa-circle',\n color: '#6b7280',\n description: i18n('inactive.description'),\n order: 2,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Pending: {\n name: AXPSystemStatusType.Pending,\n title: i18n('pending.title'),\n icon: 'fa-light fa-clock',\n color: '#f59e0b',\n description: i18n('pending.description'),\n order: 1,\n isActive: true,\n isInitial: true,\n isFinal: false,\n },\n Completed: {\n name: AXPSystemStatusType.Completed,\n title: i18n('completed.title'),\n icon: 'fa-light fa-check-circle',\n color: '#10b981',\n description: i18n('completed.description'),\n order: 10,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Suspended: {\n name: AXPSystemStatusType.Suspended,\n title: i18n('suspended.title'),\n icon: 'fa-light fa-pause-circle',\n color: '#f59e0b',\n description: i18n('suspended.description'),\n order: 5,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Failed: {\n name: AXPSystemStatusType.Failed,\n title: i18n('failed.title'),\n icon: 'fa-light fa-xmark-circle',\n color: '#ef4444',\n description: i18n('failed.description'),\n order: 10,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n});\n/**\n * Get system status definition by type\n * @param type - Status type\n * @returns System status definition or undefined\n */\nexport function getSystemStatus(type) {\n return Object.values(AXPSystemStatuses).find(status => status.name === type);\n}\n/**\n * Resolves the visual appearance (color and icon) for status\n * using the system statuses from the core module.\n * @param statusType - Status type string\n * @returns Color and icon for the status\n */\nexport function resolveStatusLook(statusType) {\n // Try to get system status first\n const systemStatusType = statusType;\n if (systemStatusType) {\n const systemStatus = getSystemStatus(systemStatusType);\n if (systemStatus) {\n // Convert hex color to semantic color type if needed\n // For now, return as-is and let the UI handle it\n return {\n color: systemStatus.color,\n icon: systemStatus.icon || ''\n };\n }\n }\n // Fallback for unknown statuses\n return {\n color: '#6b7280',\n icon: ''\n };\n}\n/**\n * Resolves the complete status information (title, description, icon, color) for a status\n * using the system statuses from the core module.\n * @param statusType - Status type string\n * @returns Complete status information as AXPStatusDefinition\n */\nexport function getStatusInfo(statusType) {\n const systemStatusType = statusType;\n if (systemStatusType) {\n const systemStatus = getSystemStatus(systemStatusType);\n if (systemStatus) {\n return systemStatus;\n }\n }\n // Fallback for unknown statuses\n return {\n name: statusType,\n title: statusType,\n description: `Status: ${statusType}`,\n icon: '',\n color: '#6b7280'\n };\n}\n/**\n * Get system status definition directly (no conversion needed since it's already AXPStatusDefinition)\n * @param statusType - Status type\n * @param overrides - Optional overrides for the status definition\n * @returns AXPStatusDefinition\n */\nexport function systemStatusToDefinition(statusType, overrides) {\n const systemStatus = getSystemStatus(statusType);\n if (!systemStatus) {\n throw new Error(`System status ${statusType} not found`);\n }\n return {\n ...systemStatus,\n ...overrides,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzZXMudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9zdGF0dXMtZGVmaW5pdGlvbi9zdGF0dXNlcy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSxtQkFtQlg7QUFuQkQsV0FBWSxtQkFBbUI7SUFDN0Isb0NBQWEsQ0FBQTtJQUNiLGlEQUEwQixDQUFBO0lBQzFCLDZDQUFzQixDQUFBO0lBQ3RCLDBDQUFtQixDQUFBO0lBQ25CLG9DQUFhLENBQUE7SUFDYiw4Q0FBdUIsQ0FBQTtJQUN2QixzQ0FBZSxDQUFBO0lBQ2YsdURBQWdDLENBQUE7SUFDaEMsNENBQXFCLENBQUE7SUFDckIsOENBQXVCLENBQUE7SUFDdkIsNENBQXFCLENBQUE7SUFDckIsNENBQXFCLENBQUE7SUFDckIsd0NBQWlCLENBQUE7SUFDakIsNENBQXFCLENBQUE7SUFDckIsMENBQW1CLENBQUE7SUFDbkIsOENBQXVCLENBQUE7SUFDdkIsOENBQXVCLENBQUE7SUFDdkIsd0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQW5CVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBbUI5QjtBQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFFekQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDN0MsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7UUFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDekIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixLQUFLLEVBQUUsU0FBUztRQUNoQixXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3JD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QVUsd0JBQXdCLENBQ3RDLFVBQStCLEVBQy9CLFNBQXdDO0lBRXhDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsVUFBVSxZQUFZLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsWUFBWTtRQUNmLEdBQUcsU0FBUztLQUNiLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTdHlsZUNvbG9yVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBTdGF0dXNEZWZpbml0aW9uIH0gZnJvbSAnLi9zdGF0dXMtZGVmaW5pdGlvbi50eXBlcyc7XG5cbi8qKlxuICogU3RhbmRhcmQgc3lzdGVtIHN0YXR1cyB0eXBlc1xuICogVGhlc2UgYXJlIHRoZSBwcmVkZWZpbmVkIHN0YXR1cyB2YWx1ZXMgdXNlZCBhY3Jvc3MgdGhlIHBsYXRmb3JtXG4gKi9cbmV4cG9ydCBlbnVtIEFYUFN5c3RlbVN0YXR1c1R5cGUge1xuICBUb2RvID0gJ3RvZG8nLFxuICBJblByb2dyZXNzID0gJ2luLXByb2dyZXNzJyxcbiAgSW5SZXZpZXcgPSAnaW4tcmV2aWV3JyxcbiAgQmxvY2tlZCA9ICdibG9ja2VkJyxcbiAgRG9uZSA9ICdkb25lJyxcbiAgQ2FuY2VsbGVkID0gJ2NhbmNlbGxlZCcsXG4gIERyYWZ0ID0gJ2RyYWZ0JyxcbiAgUGVuZGluZ1JldmlldyA9ICdwZW5kaW5nLXJldmlldycsXG4gIEFwcHJvdmVkID0gJ2FwcHJvdmVkJyxcbiAgUHVibGlzaGVkID0gJ3B1Ymxpc2hlZCcsXG4gIEFyY2hpdmVkID0gJ2FyY2hpdmVkJyxcbiAgUmVqZWN0ZWQgPSAncmVqZWN0ZWQnLFxuICBBY3RpdmUgPSAnYWN0aXZlJyxcbiAgSW5hY3RpdmUgPSAnaW5hY3RpdmUnLFxuICBQZW5kaW5nID0gJ3BlbmRpbmcnLFxuICBDb21wbGV0ZWQgPSAnY29tcGxldGVkJyxcbiAgU3VzcGVuZGVkID0gJ3N1c3BlbmRlZCcsXG4gIEZhaWxlZCA9ICdmYWlsZWQnLFxufVxuXG5jb25zdCBpMThuID0gKGtleTogc3RyaW5nKSA9PiBgQGdlbmVyYWw6c3RhdHVzZXMuJHtrZXl9YDtcblxuLyoqXG4gKiBTdGFuZGFyZCBzeXN0ZW0gc3RhdHVzIGRlZmluaXRpb25zXG4gKiBQcm92aWRlcyBjb25zaXN0ZW50IHN0YXR1cyBkZWZpbml0aW9ucyBhY3Jvc3MgdGhlIHBsYXRmb3JtXG4gKiBVc2VzIEFYUFN0YXR1c0RlZmluaXRpb24gaW50ZXJmYWNlIGZyb20gc3RhdHVzLWRlZmluaXRpb24udHlwZXMudHNcbiAqL1xuZXhwb3J0IGNvbnN0IEFYUFN5c3RlbVN0YXR1c2VzID0gT2JqZWN0LmZyZWV6ZSh7XG4gIFRvZG86IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLlRvZG8sXG4gICAgdGl0bGU6IGkxOG4oJ3RvZG8udGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2lyY2xlJyxcbiAgICBjb2xvcjogJyM2YjcyODAnLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCd0b2RvLmRlc2NyaXB0aW9uJyksXG4gICAgb3JkZXI6IDEsXG4gICAgaXNBY3RpdmU6IHRydWUsXG4gICAgaXNJbml0aWFsOiB0cnVlLFxuICAgIGlzRmluYWw6IGZhbHNlLFxuICB9LFxuICBJblByb2dyZXNzOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5JblByb2dyZXNzLFxuICAgIHRpdGxlOiBpMThuKCdpbi1wcm9ncmVzcy50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1wbGF5JyxcbiAgICBjb2xvcjogJyMzYjgyZjYnLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCdpbi1wcm9ncmVzcy5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAyLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIEluUmV2aWV3OiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5JblJldmlldyxcbiAgICB0aXRsZTogaTE4bignaW4tcmV2aWV3LnRpdGxlJyksXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWV5ZScsXG4gICAgY29sb3I6ICcjOGI1Y2Y2JyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignaW4tcmV2aWV3LmRlc2NyaXB0aW9uJyksXG4gICAgb3JkZXI6IDMsXG4gICAgaXNBY3RpdmU6IHRydWUsXG4gICAgaXNJbml0aWFsOiBmYWxzZSxcbiAgICBpc0ZpbmFsOiBmYWxzZSxcbiAgfSxcbiAgQmxvY2tlZDoge1xuICAgIG5hbWU6IEFYUFN5c3RlbVN0YXR1c1R5cGUuQmxvY2tlZCxcbiAgICB0aXRsZTogaTE4bignYmxvY2tlZC50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1iYW4nLFxuICAgIGNvbG9yOiAnI2VmNDQ0NCcsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ2Jsb2NrZWQuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogNCxcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IGZhbHNlLFxuICAgIGlzRmluYWw6IGZhbHNlLFxuICB9LFxuICBEb25lOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5Eb25lLFxuICAgIHRpdGxlOiBpMThuKCdkb25lLnRpdGxlJyksXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNoZWNrLWNpcmNsZScsXG4gICAgY29sb3I6ICcjMTBiOTgxJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignZG9uZS5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiA1LFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogdHJ1ZSxcbiAgfSxcbiAgQ2FuY2VsbGVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5DYW5jZWxsZWQsXG4gICAgdGl0bGU6IGkxOG4oJ2NhbmNlbGxlZC50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS10aW1lcy1jaXJjbGUnLFxuICAgIGNvbG9yOiAnIzY0NzQ4YicsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ2NhbmNlbGxlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiA2LFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogdHJ1ZSxcbiAgfSxcbiAgRHJhZnQ6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLkRyYWZ0LFxuICAgIHRpdGxlOiBpMThuKCdkcmFmdC50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1maWxlLXBlbicsXG4gICAgY29sb3I6ICcjNmI3MjgwJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignZHJhZnQuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogMSxcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IHRydWUsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIFBlbmRpbmdSZXZpZXc6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLlBlbmRpbmdSZXZpZXcsXG4gICAgdGl0bGU6IGkxOG4oJ3BlbmRpbmctcmV2aWV3LnRpdGxlJyksXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNsb2NrJyxcbiAgICBjb2xvcjogJyNmNTllMGInLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCdwZW5kaW5nLXJldmlldy5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAyLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIEFwcHJvdmVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5BcHByb3ZlZCxcbiAgICB0aXRsZTogaTE4bignYXBwcm92ZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2hlY2stY2lyY2xlJyxcbiAgICBjb2xvcjogJyMxMGI5ODEnLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCdhcHByb3ZlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAzLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIFB1Ymxpc2hlZDoge1xuICAgIG5hbWU6IEFYUFN5c3RlbVN0YXR1c1R5cGUuUHVibGlzaGVkLFxuICAgIHRpdGxlOiBpMThuKCdwdWJsaXNoZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2xvYmUnLFxuICAgIGNvbG9yOiAnIzNiODJmNicsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ3B1Ymxpc2hlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiA0LFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIEFyY2hpdmVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5BcmNoaXZlZCxcbiAgICB0aXRsZTogaTE4bignYXJjaGl2ZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtYXJjaGl2ZScsXG4gICAgY29sb3I6ICcjNjQ3NDhiJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignYXJjaGl2ZWQuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogNSxcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IGZhbHNlLFxuICAgIGlzRmluYWw6IHRydWUsXG4gIH0sXG4gIFJlamVjdGVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5SZWplY3RlZCxcbiAgICB0aXRsZTogaTE4bigncmVqZWN0ZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtdGltZXMtY2lyY2xlJyxcbiAgICBjb2xvcjogJyNlZjQ0NDQnLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCdyZWplY3RlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiA2LFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogdHJ1ZSxcbiAgfSxcbiAgQWN0aXZlOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5BY3RpdmUsXG4gICAgdGl0bGU6IGkxOG4oJ2FjdGl2ZS50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1jaGVjay1jaXJjbGUnLFxuICAgIGNvbG9yOiAnIzEwYjk4MScsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ2FjdGl2ZS5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAxLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIEluYWN0aXZlOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5JbmFjdGl2ZSxcbiAgICB0aXRsZTogaTE4bignaW5hY3RpdmUudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2lyY2xlJyxcbiAgICBjb2xvcjogJyM2YjcyODAnLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCdpbmFjdGl2ZS5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAyLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIFBlbmRpbmc6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLlBlbmRpbmcsXG4gICAgdGl0bGU6IGkxOG4oJ3BlbmRpbmcudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2xvY2snLFxuICAgIGNvbG9yOiAnI2Y1OWUwYicsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ3BlbmRpbmcuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogMSxcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IHRydWUsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIENvbXBsZXRlZDoge1xuICAgIG5hbWU6IEFYUFN5c3RlbVN0YXR1c1R5cGUuQ29tcGxldGVkLFxuICAgIHRpdGxlOiBpMThuKCdjb21wbGV0ZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2hlY2stY2lyY2xlJyxcbiAgICBjb2xvcjogJyMxMGI5ODEnLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCdjb21wbGV0ZWQuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogMTAsXG4gICAgaXNBY3RpdmU6IHRydWUsXG4gICAgaXNJbml0aWFsOiBmYWxzZSxcbiAgICBpc0ZpbmFsOiB0cnVlLFxuICB9LFxuICBTdXNwZW5kZWQ6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLlN1c3BlbmRlZCxcbiAgICB0aXRsZTogaTE4bignc3VzcGVuZGVkLnRpdGxlJyksXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBhdXNlLWNpcmNsZScsXG4gICAgY29sb3I6ICcjZjU5ZTBiJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignc3VzcGVuZGVkLmRlc2NyaXB0aW9uJyksXG4gICAgb3JkZXI6IDUsXG4gICAgaXNBY3RpdmU6IHRydWUsXG4gICAgaXNJbml0aWFsOiBmYWxzZSxcbiAgICBpc0ZpbmFsOiBmYWxzZSxcbiAgfSxcbiAgRmFpbGVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5GYWlsZWQsXG4gICAgdGl0bGU6IGkxOG4oJ2ZhaWxlZC50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS14bWFyay1jaXJjbGUnLFxuICAgIGNvbG9yOiAnI2VmNDQ0NCcsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ2ZhaWxlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAxMCxcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IGZhbHNlLFxuICAgIGlzRmluYWw6IHRydWUsXG4gIH0sXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBBWFBTdGF0dXNEZWZpbml0aW9uPik7XG5cbi8qKlxuICogR2V0IHN5c3RlbSBzdGF0dXMgZGVmaW5pdGlvbiBieSB0eXBlXG4gKiBAcGFyYW0gdHlwZSAtIFN0YXR1cyB0eXBlXG4gKiBAcmV0dXJucyBTeXN0ZW0gc3RhdHVzIGRlZmluaXRpb24gb3IgdW5kZWZpbmVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTeXN0ZW1TdGF0dXModHlwZTogQVhQU3lzdGVtU3RhdHVzVHlwZSk6IEFYUFN0YXR1c0RlZmluaXRpb24ge1xuICByZXR1cm4gT2JqZWN0LnZhbHVlcyhBWFBTeXN0ZW1TdGF0dXNlcykuZmluZChzdGF0dXMgPT4gc3RhdHVzLm5hbWUgPT09IHR5cGUpIGFzIEFYUFN0YXR1c0RlZmluaXRpb247XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHZpc3VhbCBhcHBlYXJhbmNlIChjb2xvciBhbmQgaWNvbikgZm9yIHN0YXR1c1xuICogdXNpbmcgdGhlIHN5c3RlbSBzdGF0dXNlcyBmcm9tIHRoZSBjb3JlIG1vZHVsZS5cbiAqIEBwYXJhbSBzdGF0dXNUeXBlIC0gU3RhdHVzIHR5cGUgc3RyaW5nXG4gKiBAcmV0dXJucyBDb2xvciBhbmQgaWNvbiBmb3IgdGhlIHN0YXR1c1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVN0YXR1c0xvb2soc3RhdHVzVHlwZTogc3RyaW5nKTogeyBjb2xvcjogQVhTdHlsZUNvbG9yVHlwZTsgaWNvbjogc3RyaW5nIH0ge1xuICAvLyBUcnkgdG8gZ2V0IHN5c3RlbSBzdGF0dXMgZmlyc3RcbiAgY29uc3Qgc3lzdGVtU3RhdHVzVHlwZSA9IHN0YXR1c1R5cGUgYXMgQVhQU3lzdGVtU3RhdHVzVHlwZTtcbiAgaWYgKHN5c3RlbVN0YXR1c1R5cGUpIHtcbiAgICBjb25zdCBzeXN0ZW1TdGF0dXMgPSBnZXRTeXN0ZW1TdGF0dXMoc3lzdGVtU3RhdHVzVHlwZSk7XG4gICAgaWYgKHN5c3RlbVN0YXR1cykge1xuICAgICAgLy8gQ29udmVydCBoZXggY29sb3IgdG8gc2VtYW50aWMgY29sb3IgdHlwZSBpZiBuZWVkZWRcbiAgICAgIC8vIEZvciBub3csIHJldHVybiBhcy1pcyBhbmQgbGV0IHRoZSBVSSBoYW5kbGUgaXRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiBzeXN0ZW1TdGF0dXMuY29sb3IgYXMgQVhTdHlsZUNvbG9yVHlwZSxcbiAgICAgICAgaWNvbjogc3lzdGVtU3RhdHVzLmljb24gfHwgJydcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8gRmFsbGJhY2sgZm9yIHVua25vd24gc3RhdHVzZXNcbiAgcmV0dXJuIHtcbiAgICBjb2xvcjogJyM2YjcyODAnIGFzIEFYU3R5bGVDb2xvclR5cGUsXG4gICAgaWNvbjogJydcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgY29tcGxldGUgc3RhdHVzIGluZm9ybWF0aW9uICh0aXRsZSwgZGVzY3JpcHRpb24sIGljb24sIGNvbG9yKSBmb3IgYSBzdGF0dXNcbiAqIHVzaW5nIHRoZSBzeXN0ZW0gc3RhdHVzZXMgZnJvbSB0aGUgY29yZSBtb2R1bGUuXG4gKiBAcGFyYW0gc3RhdHVzVHlwZSAtIFN0YXR1cyB0eXBlIHN0cmluZ1xuICogQHJldHVybnMgQ29tcGxldGUgc3RhdHVzIGluZm9ybWF0aW9uIGFzIEFYUFN0YXR1c0RlZmluaXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0luZm8oc3RhdHVzVHlwZTogc3RyaW5nKTogQVhQU3RhdHVzRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHN5c3RlbVN0YXR1c1R5cGUgPSBzdGF0dXNUeXBlIGFzIEFYUFN5c3RlbVN0YXR1c1R5cGU7XG4gIGlmIChzeXN0ZW1TdGF0dXNUeXBlKSB7XG4gICAgY29uc3Qgc3lzdGVtU3RhdHVzID0gZ2V0U3lzdGVtU3RhdHVzKHN5c3RlbVN0YXR1c1R5cGUpO1xuICAgIGlmIChzeXN0ZW1TdGF0dXMpIHtcbiAgICAgIHJldHVybiBzeXN0ZW1TdGF0dXM7XG4gICAgfVxuICB9XG5cbiAgLy8gRmFsbGJhY2sgZm9yIHVua25vd24gc3RhdHVzZXNcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBzdGF0dXNUeXBlLFxuICAgIHRpdGxlOiBzdGF0dXNUeXBlLFxuICAgIGRlc2NyaXB0aW9uOiBgU3RhdHVzOiAke3N0YXR1c1R5cGV9YCxcbiAgICBpY29uOiAnJyxcbiAgICBjb2xvcjogJyM2YjcyODAnXG4gIH07XG59XG5cbi8qKlxuICogR2V0IHN5c3RlbSBzdGF0dXMgZGVmaW5pdGlvbiBkaXJlY3RseSAobm8gY29udmVyc2lvbiBuZWVkZWQgc2luY2UgaXQncyBhbHJlYWR5IEFYUFN0YXR1c0RlZmluaXRpb24pXG4gKiBAcGFyYW0gc3RhdHVzVHlwZSAtIFN0YXR1cyB0eXBlXG4gKiBAcGFyYW0gb3ZlcnJpZGVzIC0gT3B0aW9uYWwgb3ZlcnJpZGVzIGZvciB0aGUgc3RhdHVzIGRlZmluaXRpb25cbiAqIEByZXR1cm5zIEFYUFN0YXR1c0RlZmluaXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN5c3RlbVN0YXR1c1RvRGVmaW5pdGlvbihcbiAgc3RhdHVzVHlwZTogQVhQU3lzdGVtU3RhdHVzVHlwZSxcbiAgb3ZlcnJpZGVzPzogUGFydGlhbDxBWFBTdGF0dXNEZWZpbml0aW9uPlxuKTogQVhQU3RhdHVzRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHN5c3RlbVN0YXR1cyA9IGdldFN5c3RlbVN0YXR1cyhzdGF0dXNUeXBlKTtcbiAgaWYgKCFzeXN0ZW1TdGF0dXMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFN5c3RlbSBzdGF0dXMgJHtzdGF0dXNUeXBlfSBub3QgZm91bmRgKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uc3lzdGVtU3RhdHVzLFxuICAgIC4uLm92ZXJyaWRlcyxcbiAgfTtcbn1cblxuIl19","//#region ---- Tag Types ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdGFncy90YWcudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDOztBQXFCakMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgVGFnIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0YWcgd2l0aCB0ZXh0LCBjb2xvciwgYW5kIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQVGFnIHtcbiAgICBpZD86IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGNvbG9yOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgc2NvcGU/OiAnc3lzdGVtJyB8ICd0ZW5hbnQnIHwgJ3VzZXInO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGZpbHRlcmluZyB0YWdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQVGFnRmlsdGVyT3B0aW9ucyB7XG4gICAgc2NvcGU/OiAoJ3N5c3RlbScgfCAndGVuYW50JyB8ICd1c2VyJylbXTtcbiAgICBzZWFyY2g/OiBzdHJpbmc7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { InjectionToken } from '@angular/core';\n//#region ---- Tag Provider ----\n/**\n * Abstract class for tag providers\n * Implement this to provide tags from different sources (system, tenant, user, etc.)\n */\nexport class AXPTagProvider {\n /**\n * Create a new tag (optional - not all providers support creation)\n * @param tag Tag to create\n * @returns Created tag with id\n */\n async create(tag) {\n throw new Error(`Provider ${this.name} does not support tag creation`);\n }\n /**\n * Update an existing tag (optional)\n * @param tag Tag to update\n * @returns Updated tag\n */\n async update(tag) {\n throw new Error(`Provider ${this.name} does not support tag updates`);\n }\n /**\n * Delete a tag (optional)\n * @param id Tag id to delete\n */\n async delete(id) {\n throw new Error(`Provider ${this.name} does not support tag deletion`);\n }\n}\n/**\n * Injection token for tag providers\n * Use this to register multiple tag providers\n */\nexport const AXP_TAG_PROVIDER = new InjectionToken('AXP_TAG_PROVIDER');\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdGFncy90YWcucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxvQ0FBb0M7QUFFcEM7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixjQUFjO0lBWWhDOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFFLEdBQXVCO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBRSxHQUFXO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFFLEVBQVU7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLGdDQUFnQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztDQUNKO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQW1CLGtCQUFrQixDQUFDLENBQUM7QUFFekYsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBUYWcgfSBmcm9tICcuL3RhZy50eXBlcyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgVGFnIFByb3ZpZGVyICAgLS0tLVxuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciB0YWcgcHJvdmlkZXJzXG4gKiBJbXBsZW1lbnQgdGhpcyB0byBwcm92aWRlIHRhZ3MgZnJvbSBkaWZmZXJlbnQgc291cmNlcyAoc3lzdGVtLCB0ZW5hbnQsIHVzZXIsIGV0Yy4pXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBUYWdQcm92aWRlciB7XG4gICAgLyoqXG4gICAgICogVW5pcXVlIG5hbWUgZm9yIHRoaXMgcHJvdmlkZXIgKGUuZy4sICdzeXN0ZW0nLCAndGVuYW50JywgJ3VzZXInKVxuICAgICAqL1xuICAgIGFic3RyYWN0IG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGUgdGFncyBmcm9tIHRoaXMgc291cmNlXG4gICAgICogQHJldHVybnMgUHJvbWlzZSBvZiB0YWdzXG4gICAgICovXG4gICAgYWJzdHJhY3QgcHJvdmlkZSgpOiBQcm9taXNlPEFYUFRhZ1tdPjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyB0YWcgKG9wdGlvbmFsIC0gbm90IGFsbCBwcm92aWRlcnMgc3VwcG9ydCBjcmVhdGlvbilcbiAgICAgKiBAcGFyYW0gdGFnIFRhZyB0byBjcmVhdGVcbiAgICAgKiBAcmV0dXJucyBDcmVhdGVkIHRhZyB3aXRoIGlkXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlPyh0YWc6IE9taXQ8QVhQVGFnLCAnaWQnPik6IFByb21pc2U8QVhQVGFnPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvdmlkZXIgJHt0aGlzLm5hbWV9IGRvZXMgbm90IHN1cHBvcnQgdGFnIGNyZWF0aW9uYCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGFuIGV4aXN0aW5nIHRhZyAob3B0aW9uYWwpXG4gICAgICogQHBhcmFtIHRhZyBUYWcgdG8gdXBkYXRlXG4gICAgICogQHJldHVybnMgVXBkYXRlZCB0YWdcbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGU/KHRhZzogQVhQVGFnKTogUHJvbWlzZTxBWFBUYWc+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciAke3RoaXMubmFtZX0gZG9lcyBub3Qgc3VwcG9ydCB0YWcgdXBkYXRlc2ApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhIHRhZyAob3B0aW9uYWwpXG4gICAgICogQHBhcmFtIGlkIFRhZyBpZCB0byBkZWxldGVcbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGU/KGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciAke3RoaXMubmFtZX0gZG9lcyBub3Qgc3VwcG9ydCB0YWcgZGVsZXRpb25gKTtcbiAgICB9XG59XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciB0YWcgcHJvdmlkZXJzXG4gKiBVc2UgdGhpcyB0byByZWdpc3RlciBtdWx0aXBsZSB0YWcgcHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBBWFBfVEFHX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUFRhZ1Byb3ZpZGVyW10+KCdBWFBfVEFHX1BST1ZJREVSJyk7XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { AXP_TAG_PROVIDER } from './tag.provider';\nimport * as i0 from \"@angular/core\";\n//#region ---- Tag Service ----\n/**\n * Service for managing tags from multiple providers\n * Aggregates tags from all registered providers\n */\nexport class AXPTagService {\n constructor() {\n //#region ---- Dependencies ----\n this.providers = inject(AXP_TAG_PROVIDER, { optional: true }) ?? [];\n //#endregion\n //#region ---- State ----\n this.cache = null;\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Get all tags from all providers\n * @param options Filter options\n * @returns Promise of tags\n */\n async getTags(options) {\n if (!this.cache) {\n await this.loadTags();\n }\n let tags = this.cache;\n // Apply scope filter\n if (options?.scope && options.scope.length > 0) {\n tags = tags.filter((tag) => tag.scope && options.scope.includes(tag.scope));\n }\n // Apply search filter\n if (options?.search) {\n const searchLower = options.search.toLowerCase();\n tags = tags.filter((tag) => tag.title.toLowerCase().includes(searchLower) ||\n tag.description?.toLowerCase().includes(searchLower));\n }\n return tags;\n }\n /**\n * Create a new tag using the appropriate provider\n * @param tag Tag to create\n * @param providerName Provider to use (defaults to first writable provider)\n * @returns Created tag\n */\n async createTag(tag, providerName) {\n const provider = providerName\n ? this.providers.find((p) => p.name === providerName)\n : this.providers.find((p) => p.create);\n if (!provider || !provider.create) {\n throw new Error('No writable tag provider available');\n }\n const createdTag = await provider.create(tag);\n // Invalidate cache\n this.cache = null;\n return createdTag;\n }\n /**\n * Update an existing tag\n * @param tag Tag to update\n * @returns Updated tag\n */\n async updateTag(tag) {\n const provider = this.providers.find((p) => p.name === tag.scope && p.update);\n if (!provider || !provider.update) {\n throw new Error(`No provider found for updating tag with scope: ${tag.scope}`);\n }\n const updatedTag = await provider.update(tag);\n // Invalidate cache\n this.cache = null;\n return updatedTag;\n }\n /**\n * Delete a tag\n * @param tagId Tag id to delete\n * @param scope Tag scope\n */\n async deleteTag(tagId, scope) {\n const provider = this.providers.find((p) => p.name === scope && p.delete);\n if (!provider || !provider.delete) {\n throw new Error(`No provider found for deleting tag with scope: ${scope}`);\n }\n await provider.delete(tagId);\n // Invalidate cache\n this.cache = null;\n }\n /**\n * Reload tags from all providers\n */\n async reload() {\n this.cache = null;\n await this.loadTags();\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Load tags from all providers\n */\n async loadTags() {\n const allTags = [];\n for (const provider of this.providers) {\n try {\n const tags = await provider.provide();\n allTags.push(...tags);\n }\n catch (error) {\n console.error(`Error loading tags from provider ${provider.name}:`, error);\n }\n }\n // Remove duplicates based on title (case-insensitive)\n const uniqueTags = allTags.filter((tag, index, self) => index === self.findIndex((t) => t.title.toLowerCase() === tag.title.toLowerCase()));\n this.cache = uniqueTags;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPTagService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPTagService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPTagService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90YWdzL3RhZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbEUsbUNBQW1DO0FBRW5DOzs7R0FHRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBS0ksb0NBQW9DO1FBRTVCLGNBQVMsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpGLFlBQVk7UUFFWiw2QkFBNkI7UUFFckIsVUFBSyxHQUFvQixJQUFJLENBQUM7S0FzSXpDO0lBcElHLFlBQVk7SUFFWixrQ0FBa0M7SUFFbEM7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBNkI7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDO1FBRXZCLHFCQUFxQjtRQUNyQixJQUFJLE9BQU8sRUFBRSxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUVE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LElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWTtJQUVaLHVDQUF1QztJQUV2Qzs7T0FFRztJQUNLLEtBQUssQ0FBQyxRQUFRO1FBQ2xCLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztRQUU3QixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxRQUFRLENBQUMsSUFBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNMLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDN0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ2pCLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDekYsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO0lBQzVCLENBQUM7K0dBN0lRLGFBQWE7bUhBQWIsYUFBYSxjQUZWLE1BQU07OzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBUYWcsIEFYUFRhZ0ZpbHRlck9wdGlvbnMgfSBmcm9tICcuL3RhZy50eXBlcyc7XG5pbXBvcnQgeyBBWFBfVEFHX1BST1ZJREVSLCBBWFBUYWdQcm92aWRlciB9IGZyb20gJy4vdGFnLnByb3ZpZGVyJztcblxuLy8jcmVnaW9uIC0tLS0gICBUYWcgU2VydmljZSAgIC0tLS1cblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBtYW5hZ2luZyB0YWdzIGZyb20gbXVsdGlwbGUgcHJvdmlkZXJzXG4gKiBBZ2dyZWdhdGVzIHRhZ3MgZnJvbSBhbGwgcmVnaXN0ZXJlZCBwcm92aWRlcnNcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGFnU2VydmljZSB7XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICAgIHByaXZhdGUgcHJvdmlkZXJzOiBBWFBUYWdQcm92aWRlcltdID0gaW5qZWN0KEFYUF9UQUdfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgU3RhdGUgICAtLS0tXG5cbiAgICBwcml2YXRlIGNhY2hlOiBBWFBUYWdbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBBUEkgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIHRhZ3MgZnJvbSBhbGwgcHJvdmlkZXJzXG4gICAgICogQHBhcmFtIG9wdGlvbnMgRmlsdGVyIG9wdGlvbnNcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIG9mIHRhZ3NcbiAgICAgKi9cbiAgICBhc3luYyBnZXRUYWdzKG9wdGlvbnM/OiBBWFBUYWdGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxBWFBUYWdbXT4ge1xuICAgICAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZFRhZ3MoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB0YWdzID0gdGhpcy5jYWNoZSE7XG5cbiAgICAgICAgLy8gQXBwbHkgc2NvcGUgZmlsdGVyXG4gICAgICAgIGlmIChvcHRpb25zPy5zY29wZSAmJiBvcHRpb25zLnNjb3BlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRhZ3MgPSB0YWdzLmZpbHRlcigodGFnKSA9PiB0YWcuc2NvcGUgJiYgb3B0aW9ucy5zY29wZSEuaW5jbHVkZXModGFnLnNjb3BlKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBzZWFyY2ggZmlsdGVyXG4gICAgICAgIGlmIChvcHRpb25zPy5zZWFyY2gpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaExvd2VyID0gb3B0aW9ucy5zZWFyY2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHRhZ3MgPSB0YWdzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAodGFnKSA9PlxuICAgICAgICAgICAgICAgICAgICB0YWcudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hMb3dlcikgfHxcbiAgICAgICAgICAgICAgICAgICAgdGFnLmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaExvd2VyKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFncztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgdGFnIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBwcm92aWRlclxuICAgICAqIEBwYXJhbSB0YWcgVGFnIHRvIGNyZWF0ZVxuICAgICAqIEBwYXJhbSBwcm92aWRlck5hbWUgUHJvdmlkZXIgdG8gdXNlIChkZWZhdWx0cyB0byBmaXJzdCB3cml0YWJsZSBwcm92aWRlcilcbiAgICAgKiBAcmV0dXJucyBDcmVhdGVkIHRhZ1xuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZVRhZyh0YWc6IE9taXQ8QVhQVGFnLCAnaWQnPiwgcHJvdmlkZXJOYW1lPzogc3RyaW5nKTogUHJvbWlzZTxBWFBUYWc+IHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSBwcm92aWRlck5hbWVcbiAgICAgICAgICAgID8gdGhpcy5wcm92aWRlcnMuZmluZCgocCkgPT4gcC5uYW1lID09PSBwcm92aWRlck5hbWUpXG4gICAgICAgICAgICA6IHRoaXMucHJvdmlkZXJzLmZpbmQoKHApID0+IHAuY3JlYXRlKTtcblxuICAgICAgICBpZiAoIXByb3ZpZGVyIHx8ICFwcm92aWRlci5jcmVhdGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gd3JpdGFibGUgdGFnIHByb3ZpZGVyIGF2YWlsYWJsZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3JlYXRlZFRhZyA9IGF3YWl0IHByb3ZpZGVyLmNyZWF0ZSh0YWcpO1xuXG4gICAgICAgIC8vIEludmFsaWRhdGUgY2FjaGVcbiAgICAgICAgdGhpcy5jYWNoZSA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGFuIGV4aXN0aW5nIHRhZ1xuICAgICAqIEBwYXJhbSB0YWcgVGFnIHRvIHVwZGF0ZVxuICAgICAqIEByZXR1cm5zIFVwZGF0ZWQgdGFnXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlVGFnKHRhZzogQVhQVGFnKTogUHJvbWlzZTxBWFBUYWc+IHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLnByb3ZpZGVycy5maW5kKChwKSA9PiBwLm5hbWUgPT09IHRhZy5zY29wZSAmJiBwLnVwZGF0ZSk7XG5cbiAgICAgICAgaWYgKCFwcm92aWRlciB8fCAhcHJvdmlkZXIudXBkYXRlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHByb3ZpZGVyIGZvdW5kIGZvciB1cGRhdGluZyB0YWcgd2l0aCBzY29wZTogJHt0YWcuc2NvcGV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cGRhdGVkVGFnID0gYXdhaXQgcHJvdmlkZXIudXBkYXRlKHRhZyk7XG5cbiAgICAgICAgLy8gSW52YWxpZGF0ZSBjYWNoZVxuICAgICAgICB0aGlzLmNhY2hlID0gbnVsbDtcblxuICAgICAgICByZXR1cm4gdXBkYXRlZFRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGUgYSB0YWdcbiAgICAgKiBAcGFyYW0gdGFnSWQgVGFnIGlkIHRvIGRlbGV0ZVxuICAgICAqIEBwYXJhbSBzY29wZSBUYWcgc2NvcGVcbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGVUYWcodGFnSWQ6IHN0cmluZywgc2NvcGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMucHJvdmlkZXJzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gc2NvcGUgJiYgcC5kZWxldGUpO1xuXG4gICAgICAgIGlmICghcHJvdmlkZXIgfHwgIXByb3ZpZGVyLmRlbGV0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBwcm92aWRlciBmb3VuZCBmb3IgZGVsZXRpbmcgdGFnIHdpdGggc2NvcGU6ICR7c2NvcGV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBwcm92aWRlci5kZWxldGUodGFnSWQpO1xuXG4gICAgICAgIC8vIEludmFsaWRhdGUgY2FjaGVcbiAgICAgICAgdGhpcy5jYWNoZSA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVsb2FkIHRhZ3MgZnJvbSBhbGwgcHJvdmlkZXJzXG4gICAgICovXG4gICAgYXN5bmMgcmVsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmNhY2hlID0gbnVsbDtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkVGFncygpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQcml2YXRlIE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBMb2FkIHRhZ3MgZnJvbSBhbGwgcHJvdmlkZXJzXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkVGFncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgYWxsVGFnczogQVhQVGFnW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSBhd2FpdCBwcm92aWRlci5wcm92aWRlKCk7XG4gICAgICAgICAgICAgICAgYWxsVGFncy5wdXNoKC4uLnRhZ3MpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBsb2FkaW5nIHRhZ3MgZnJvbSBwcm92aWRlciAke3Byb3ZpZGVyLm5hbWV9OmAsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGVzIGJhc2VkIG9uIHRpdGxlIChjYXNlLWluc2Vuc2l0aXZlKVxuICAgICAgICBjb25zdCB1bmlxdWVUYWdzID0gYWxsVGFncy5maWx0ZXIoXG4gICAgICAgICAgICAodGFnLCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICAgICAgICBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHQpID0+IHQudGl0bGUudG9Mb3dlckNhc2UoKSA9PT0gdGFnLnRpdGxlLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY2FjaGUgPSB1bmlxdWVUYWdzO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuXG4vLyNlbmRyZWdpb25cblxuIl19","/**\n * Additional suggested generic actions for future consideration:\n *\n * Data & Content Actions:\n * - Search = 'search' - Search functionality\n * - Filter = 'filter' - Apply filters\n * - Sort = 'sort' - Sort data\n * - Group = 'group' - Group data\n * - Expand = 'expand' - Expand details\n * - Collapse = 'collapse' - Collapse details\n * - Pin = 'pin' - Pin to favorites\n * - Bookmark = 'bookmark' - Bookmark item\n * - Favorite = 'favorite' - Mark as favorite\n * - Star = 'star' - Star rating\n *\n * Workflow Actions:\n * - Start = 'start' - Start process/workflow\n * - Stop = 'stop' - Stop process\n * - Pause = 'pause' - Pause process\n * - Resume = 'resume' - Resume process\n * - Cancel = 'cancel' - Cancel operation\n * - Complete = 'complete' - Mark as complete\n * - Close = 'close' - Close item\n * - Reopen = 'reopen' - Reopen closed item\n * - Forward = 'forward' - Forward to next step\n * - Back = 'back' - Go back\n *\n * Communication Actions:\n * - Reply = 'reply' - Reply to message\n * - Forward = 'forward' - Forward message\n * - Notify = 'notify' - Send notification\n * - Invite = 'invite' - Invite user\n * - Join = 'join' - Join group/meeting\n * - Leave = 'leave' - Leave group/meeting\n *\n * Security Actions:\n * - Login = 'login' - User login\n * - Logout = 'logout' - User logout\n * - Block = 'block' - Block user/content\n * - Unblock = 'unblock' - Unblock user/content\n * - Ban = 'ban' - Ban user\n * - Unban = 'unban' - Unban user\n * - Verify = 'verify' - Verify identity\n * - Authenticate = 'authenticate' - Authenticate\n *\n * File & Media Actions:\n * - Open = 'open' - Open file\n * - Save = 'save' - Save file\n * - SaveAs = 'save-as' - Save as new file\n * - Attach = 'attach' - Attach file\n * - Detach = 'detach' - Detach file\n * - Compress = 'compress' - Compress files\n * - Extract = 'extract' - Extract archive\n * - Convert = 'convert' - Convert format\n * - Crop = 'crop' - Crop image\n * - Resize = 'resize' - Resize image\n *\n * System Actions:\n * - Sync = 'sync' - Synchronize data\n * - Backup = 'backup' - Create backup\n * - Restore = 'restore' - Restore from backup\n * - Reset = 'reset' - Reset to defaults\n * - Clear = 'clear' - Clear data\n * - Optimize = 'optimize' - Optimize performance\n * - Update = 'update' - Update system\n * - Install = 'install' - Install component\n * - Uninstall = 'uninstall' - Uninstall component\n * - Enable = 'enable' - Enable feature\n * - Disable = 'disable' - Disable feature\n *\n * Analytics & Monitoring:\n * - Monitor = 'monitor' - Monitor activity\n * - Track = 'track' - Track progress\n * - Analyze = 'analyze' - Analyze data\n * - Debug = 'debug' - Debug issue\n * - Log = 'log' - View logs\n * - Alert = 'alert' - Set alert\n * - Dashboard = 'dashboard' - View dashboard\n * - Metrics = 'metrics' - View metrics\n *\n * Collaboration Actions:\n * - Collaborate = 'collaborate' - Start collaboration\n * - Share = 'share' - Share content\n * - Comment = 'comment' - Add comment\n * - Like = 'like' - Like content\n * - Follow = 'follow' - Follow user/content\n * - Subscribe = 'subscribe' - Subscribe to updates\n * - Unsubscribe = 'unsubscribe' - Unsubscribe\n * - Rate = 'rate' - Rate content\n * - Review = 'review' - Review content\n * - Recommend = 'recommend' - Recommend content\n */\nexport var AXPSystemActionType;\n(function (AXPSystemActionType) {\n AXPSystemActionType[\"View\"] = \"view\";\n AXPSystemActionType[\"Create\"] = \"create\";\n AXPSystemActionType[\"Update\"] = \"update\";\n AXPSystemActionType[\"Delete\"] = \"delete\";\n AXPSystemActionType[\"Approve\"] = \"approve\";\n AXPSystemActionType[\"Reject\"] = \"reject\";\n AXPSystemActionType[\"Submit\"] = \"submit\";\n AXPSystemActionType[\"Export\"] = \"export\";\n AXPSystemActionType[\"Import\"] = \"import\";\n AXPSystemActionType[\"Print\"] = \"print\";\n AXPSystemActionType[\"Assign\"] = \"assign\";\n AXPSystemActionType[\"Lock\"] = \"lock\";\n AXPSystemActionType[\"Unlock\"] = \"unlock\";\n AXPSystemActionType[\"Share\"] = \"share\";\n AXPSystemActionType[\"Configure\"] = \"configure\";\n AXPSystemActionType[\"Reorder\"] = \"reorder\";\n AXPSystemActionType[\"Preview\"] = \"preview\";\n AXPSystemActionType[\"Duplicate\"] = \"duplicate\";\n AXPSystemActionType[\"Archive\"] = \"archive\";\n AXPSystemActionType[\"Publish\"] = \"publish\";\n AXPSystemActionType[\"Unpublish\"] = \"unpublish\";\n AXPSystemActionType[\"Upload\"] = \"upload\";\n AXPSystemActionType[\"Download\"] = \"download\";\n AXPSystemActionType[\"Copy\"] = \"copy\";\n AXPSystemActionType[\"Move\"] = \"move\";\n AXPSystemActionType[\"Rename\"] = \"rename\";\n AXPSystemActionType[\"Restore\"] = \"restore\";\n AXPSystemActionType[\"Manage\"] = \"manage\";\n AXPSystemActionType[\"Info\"] = \"info\";\n AXPSystemActionType[\"Confirm\"] = \"confirm\";\n AXPSystemActionType[\"Design\"] = \"design\";\n AXPSystemActionType[\"VersionHistory\"] = \"version-history\";\n AXPSystemActionType[\"Compare\"] = \"compare\";\n AXPSystemActionType[\"Comments\"] = \"comments\";\n AXPSystemActionType[\"Sign\"] = \"sign\";\n AXPSystemActionType[\"Setup\"] = \"setup\";\n AXPSystemActionType[\"Send\"] = \"send\";\n AXPSystemActionType[\"Report\"] = \"report\";\n AXPSystemActionType[\"Sent\"] = \"sent\";\n AXPSystemActionType[\"Review\"] = \"review\";\n AXPSystemActionType[\"Generate\"] = \"generate\";\n AXPSystemActionType[\"Refresh\"] = \"refresh\";\n AXPSystemActionType[\"Reload\"] = \"reload\";\n AXPSystemActionType[\"Search\"] = \"search\";\n AXPSystemActionType[\"Filter\"] = \"filter\";\n AXPSystemActionType[\"Sort\"] = \"sort\";\n AXPSystemActionType[\"Start\"] = \"start\";\n AXPSystemActionType[\"Stop\"] = \"stop\";\n AXPSystemActionType[\"Pause\"] = \"pause\";\n AXPSystemActionType[\"Cancel\"] = \"cancel\";\n AXPSystemActionType[\"Close\"] = \"close\";\n AXPSystemActionType[\"Complete\"] = \"complete\";\n AXPSystemActionType[\"Save\"] = \"save\";\n AXPSystemActionType[\"SaveAs\"] = \"save-as\";\n AXPSystemActionType[\"Sync\"] = \"sync\";\n AXPSystemActionType[\"Reset\"] = \"reset\";\n AXPSystemActionType[\"Clear\"] = \"clear\";\n AXPSystemActionType[\"Distribution\"] = \"distribution\";\n})(AXPSystemActionType || (AXPSystemActionType = {}));\nconst i18n = (key) => `@general:actions.${key}`;\nexport const AXPSystemActions = Object.freeze({\n View: {\n key: AXPSystemActionType.View,\n title: i18n('view.title'),\n icon: 'fa-light fa-eye',\n color: 'primary',\n descriptions: {\n title: i18n('view.title'),\n tooltip: i18n('view.description'),\n permission: i18n('view.permission'),\n audit: i18n('view.audit')\n }\n },\n Create: {\n key: AXPSystemActionType.Create,\n title: i18n('create.title'),\n icon: 'fa-light fa-plus',\n color: 'primary',\n descriptions: {\n title: i18n('create.title'),\n tooltip: i18n('create.description'),\n permission: i18n('create.permission'),\n audit: i18n('create.audit')\n }\n },\n Edit: {\n key: AXPSystemActionType.Update,\n title: i18n('edit.title'),\n icon: 'fa-light fa-pen',\n color: 'default',\n descriptions: {\n title: i18n('edit.title'),\n tooltip: i18n('edit.description'),\n permission: i18n('edit.permission'),\n audit: i18n('edit.audit')\n }\n },\n Delete: {\n key: AXPSystemActionType.Delete,\n title: i18n('delete.title'),\n icon: 'fa-light fa-trash',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('delete.title'),\n tooltip: i18n('delete.description'),\n permission: i18n('delete.permission'),\n audit: i18n('delete.audit')\n }\n },\n Approve: {\n key: AXPSystemActionType.Approve,\n title: i18n('approve.title'),\n icon: 'fa-light fa-circle-check',\n color: 'success',\n critical: true,\n descriptions: {\n title: i18n('approve.title'),\n tooltip: i18n('approve.description'),\n permission: i18n('approve.permission'),\n audit: i18n('approve.audit')\n }\n },\n Submit: {\n key: AXPSystemActionType.Submit,\n title: i18n('submit.title'),\n icon: 'fa-light fa-paper-plane',\n color: 'primary',\n descriptions: {\n title: i18n('submit.title'),\n tooltip: i18n('submit.description'),\n permission: i18n('submit.permission'),\n audit: i18n('submit.audit')\n }\n },\n Reject: {\n key: AXPSystemActionType.Reject,\n title: i18n('reject.title'),\n icon: 'fa-light fa-ban',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('reject.title'),\n tooltip: i18n('reject.description'),\n permission: i18n('reject.permission'),\n audit: i18n('reject.audit')\n }\n },\n Export: {\n key: AXPSystemActionType.Export,\n title: i18n('export.title'),\n icon: 'fa-light fa-download',\n color: 'default',\n descriptions: {\n title: i18n('export.title'),\n tooltip: i18n('export.description'),\n permission: i18n('export.permission'),\n audit: i18n('export.audit')\n }\n },\n Import: {\n key: AXPSystemActionType.Import,\n title: i18n('import.title'),\n icon: 'fa-light fa-upload',\n color: 'default',\n descriptions: {\n title: i18n('import.title'),\n tooltip: i18n('import.description'),\n permission: i18n('import.permission'),\n audit: i18n('import.audit')\n }\n },\n Print: {\n key: AXPSystemActionType.Print,\n title: i18n('print.title'),\n icon: 'fa-light fa-print',\n color: 'default',\n descriptions: {\n title: i18n('print.title'),\n tooltip: i18n('print.description'),\n permission: i18n('print.permission'),\n audit: i18n('print.audit')\n }\n },\n Duplicate: {\n key: AXPSystemActionType.Duplicate,\n title: i18n('duplicate.title'),\n icon: 'fa-light fa-clone',\n color: 'warning',\n descriptions: {\n title: i18n('duplicate.title'),\n tooltip: i18n('duplicate.description'),\n permission: i18n('duplicate.permission'),\n audit: i18n('duplicate.audit')\n }\n },\n Archive: {\n key: AXPSystemActionType.Archive,\n title: i18n('archive.title'),\n icon: 'fa-light fa-box-archive',\n color: 'default',\n descriptions: {\n title: i18n('archive.title'),\n tooltip: i18n('archive.description'),\n permission: i18n('archive.permission'),\n audit: i18n('archive.audit')\n }\n },\n Restore: {\n key: AXPSystemActionType.Restore,\n title: i18n('restore.title'),\n icon: 'fa-light fa-arrow-rotate-left',\n color: 'default',\n descriptions: {\n title: i18n('restore.title'),\n tooltip: i18n('restore.description'),\n permission: i18n('restore.permission'),\n audit: i18n('restore.audit')\n }\n },\n Assign: {\n key: AXPSystemActionType.Assign,\n title: i18n('assign.title'),\n icon: 'fa-light fa-user-plus',\n color: 'primary',\n descriptions: {\n title: i18n('assign.title'),\n tooltip: i18n('assign.description'),\n permission: i18n('assign.permission'),\n audit: i18n('assign.audit')\n }\n },\n Lock: {\n key: AXPSystemActionType.Lock,\n title: i18n('lock.title'),\n icon: 'fa-light fa-lock',\n color: 'warning',\n descriptions: {\n title: i18n('lock.title'),\n tooltip: i18n('lock.description'),\n permission: i18n('lock.permission'),\n audit: i18n('lock.audit')\n }\n },\n Unlock: {\n key: AXPSystemActionType.Unlock,\n title: i18n('unlock.title'),\n icon: 'fa-light fa-unlock',\n color: 'success',\n descriptions: {\n title: i18n('unlock.title'),\n tooltip: i18n('unlock.description'),\n permission: i18n('unlock.permission'),\n audit: i18n('unlock.audit')\n }\n },\n Share: {\n key: AXPSystemActionType.Share,\n title: i18n('share.title'),\n icon: 'fa-light fa-share-nodes',\n color: 'info',\n descriptions: {\n title: i18n('share.title'),\n tooltip: i18n('share.description'),\n permission: i18n('share.permission'),\n audit: i18n('share.audit')\n }\n },\n Configure: {\n key: AXPSystemActionType.Configure,\n title: i18n('configure.title'),\n icon: 'fa-light fa-sliders',\n color: 'primary',\n descriptions: {\n title: i18n('configure.title'),\n tooltip: i18n('configure.description'),\n permission: i18n('configure.permission'),\n audit: i18n('configure.audit')\n }\n },\n Reorder: {\n key: AXPSystemActionType.Reorder,\n title: i18n('reorder.title'),\n icon: 'fa-light fa-arrow-down-up-across-line',\n color: 'default',\n descriptions: {\n title: i18n('reorder.title'),\n tooltip: i18n('reorder.description'),\n permission: i18n('reorder.permission'),\n audit: i18n('reorder.audit')\n }\n },\n Preview: {\n key: AXPSystemActionType.Preview,\n title: i18n('preview.title'),\n icon: 'fa-light fa-magnifying-glass',\n color: 'default',\n descriptions: {\n title: i18n('preview.title'),\n tooltip: i18n('preview.description'),\n permission: i18n('preview.permission'),\n audit: i18n('preview.audit')\n }\n },\n Publish: {\n key: AXPSystemActionType.Publish,\n title: i18n('publish.title'),\n icon: 'fa-light fa-globe',\n color: 'success',\n descriptions: {\n title: i18n('publish.title'),\n tooltip: i18n('publish.description'),\n permission: i18n('publish.permission'),\n audit: i18n('publish.audit')\n }\n },\n Unpublish: {\n key: AXPSystemActionType.Unpublish,\n title: i18n('unpublish.title'),\n icon: 'fa-light fa-globe-slash',\n color: 'danger',\n descriptions: {\n title: i18n('unpublish.title'),\n tooltip: i18n('unpublish.description'),\n permission: i18n('unpublish.permission'),\n audit: i18n('unpublish.audit')\n }\n },\n Upload: {\n key: AXPSystemActionType.Upload,\n title: i18n('upload.title'),\n icon: 'fa-light fa-upload',\n color: 'default',\n descriptions: {\n title: i18n('upload.title'),\n tooltip: i18n('upload.description'),\n permission: i18n('upload.permission'),\n audit: i18n('upload.audit')\n }\n },\n Download: {\n key: AXPSystemActionType.Download,\n title: i18n('download.title'),\n icon: 'fa-light fa-download',\n color: 'default',\n descriptions: {\n title: i18n('download.title'),\n tooltip: i18n('download.description'),\n permission: i18n('download.permission'),\n audit: i18n('download.audit')\n }\n },\n Copy: {\n key: AXPSystemActionType.Copy,\n title: i18n('copy.title'),\n icon: 'fa-light fa-copy',\n color: 'default',\n descriptions: {\n title: i18n('copy.title'),\n tooltip: i18n('copy.description'),\n permission: i18n('copy.permission'),\n audit: i18n('copy.audit')\n }\n },\n Move: {\n key: AXPSystemActionType.Move,\n title: i18n('move.title'),\n icon: 'fa-light fa-arrow-right-arrow-left',\n color: 'default',\n descriptions: {\n title: i18n('move.title'),\n tooltip: i18n('move.description'),\n permission: i18n('move.permission'),\n audit: i18n('move.audit')\n }\n },\n Rename: {\n key: AXPSystemActionType.Rename,\n title: i18n('rename.title'),\n icon: 'fa-light fa-pen',\n color: 'default',\n descriptions: {\n title: i18n('rename.title'),\n tooltip: i18n('rename.description'),\n permission: i18n('rename.permission'),\n audit: i18n('rename.audit')\n }\n },\n Manage: {\n key: AXPSystemActionType.Manage,\n title: i18n('manage.title'),\n icon: 'fa-light fa-gear',\n color: 'default',\n descriptions: {\n title: i18n('manage.title'),\n tooltip: i18n('manage.description'),\n permission: i18n('manage.permission'),\n audit: i18n('manage.audit')\n }\n },\n Info: {\n key: AXPSystemActionType.Info,\n title: i18n('info.title'),\n icon: 'fa-light fa-info',\n color: 'default',\n descriptions: {\n title: i18n('info.title'),\n tooltip: i18n('info.description'),\n permission: i18n('info.permission'),\n audit: i18n('info.audit')\n }\n },\n Confirm: {\n key: AXPSystemActionType.Confirm,\n title: i18n('confirm.title'),\n icon: 'fa-light fa-check',\n color: 'success',\n descriptions: {\n title: i18n('confirm.title'),\n tooltip: i18n('confirm.description'),\n permission: i18n('confirm.permission'),\n audit: i18n('confirm.audit')\n }\n },\n Design: {\n key: AXPSystemActionType.Design,\n title: i18n('design.title'),\n icon: 'fa-light fa-paintbrush',\n color: 'default',\n descriptions: {\n title: i18n('design.title'),\n tooltip: i18n('design.description'),\n permission: i18n('design.permission'),\n audit: i18n('design.audit')\n }\n },\n VersionHistory: {\n key: AXPSystemActionType.VersionHistory,\n title: i18n('version-history.title'),\n icon: 'fa-light fa-history',\n color: 'default',\n descriptions: {\n title: i18n('version-history.title'),\n tooltip: i18n('version-history.description'),\n permission: i18n('version-history.permission'),\n audit: i18n('version-history.audit')\n }\n },\n Compare: {\n key: AXPSystemActionType.Compare,\n title: i18n('compare.title'),\n icon: 'fa-light fa-code-compare',\n color: 'default',\n descriptions: {\n title: i18n('compare.title'),\n tooltip: i18n('compare.description'),\n permission: i18n('compare.permission'),\n audit: i18n('compare.audit')\n }\n },\n Comments: {\n key: AXPSystemActionType.Comments,\n title: i18n('comments.title'),\n icon: 'fa-light fa-comments',\n color: 'default',\n descriptions: {\n title: i18n('comments.title'),\n tooltip: i18n('comments.description'),\n permission: i18n('comments.permission'),\n audit: i18n('comments.audit')\n }\n },\n Sign: {\n key: AXPSystemActionType.Sign,\n title: i18n('sign.title'),\n icon: 'fa-light fa-signature',\n color: 'default',\n descriptions: {\n title: i18n('sign.title'),\n tooltip: i18n('sign.description'),\n permission: i18n('sign.permission'),\n audit: i18n('sign.audit')\n }\n },\n Setup: {\n key: AXPSystemActionType.Setup,\n title: i18n('setup.title'),\n icon: 'fa-light fa-cog',\n color: 'default',\n descriptions: {\n title: i18n('setup.title'),\n tooltip: i18n('setup.description'),\n permission: i18n('setup.permission'),\n audit: i18n('setup.audit')\n }\n },\n Send: {\n key: AXPSystemActionType.Send,\n title: i18n('send.title'),\n icon: 'fa-light fa-envelope',\n color: 'default',\n descriptions: {\n title: i18n('send.title'),\n tooltip: i18n('send.description'),\n permission: i18n('send.permission'),\n audit: i18n('send.audit')\n }\n },\n Report: {\n key: AXPSystemActionType.Report,\n title: i18n('report.title'),\n icon: 'fa-light fa-chart-line',\n color: 'default',\n descriptions: {\n title: i18n('report.title'),\n tooltip: i18n('report.description'),\n permission: i18n('report.permission'),\n audit: i18n('report.audit')\n }\n },\n Sent: {\n key: AXPSystemActionType.Sent,\n title: i18n('sent.title'),\n icon: 'fa-light fa-paper-plane',\n color: 'default',\n descriptions: {\n title: i18n('sent.title'),\n tooltip: i18n('sent.description'),\n permission: i18n('sent.permission'),\n audit: i18n('sent.audit')\n }\n },\n Review: {\n key: AXPSystemActionType.Review,\n title: i18n('review.title'),\n icon: 'fa-light fa-eye',\n color: 'default',\n descriptions: {\n title: i18n('review.title'),\n tooltip: i18n('review.description'),\n permission: i18n('review.permission'),\n audit: i18n('review.audit')\n }\n },\n Generate: {\n key: AXPSystemActionType.Generate,\n title: i18n('generate.title'),\n icon: 'fa-light fa-wand-magic-sparkles',\n color: 'primary',\n descriptions: {\n title: i18n('generate.title'),\n tooltip: i18n('generate.description'),\n permission: i18n('generate.permission'),\n audit: i18n('generate.audit')\n }\n },\n Refresh: {\n key: AXPSystemActionType.Refresh,\n title: i18n('refresh.title'),\n icon: 'fa-light fa-arrows-rotate',\n color: 'default',\n descriptions: {\n title: i18n('refresh.title'),\n tooltip: i18n('refresh.description'),\n permission: i18n('refresh.permission'),\n audit: i18n('refresh.audit')\n }\n },\n Reload: {\n key: AXPSystemActionType.Reload,\n title: i18n('reload.title'),\n icon: 'fa-light fa-arrows-rotate',\n color: 'default',\n descriptions: {\n title: i18n('reload.title'),\n tooltip: i18n('reload.description'),\n permission: i18n('reload.permission'),\n audit: i18n('reload.audit')\n }\n },\n Search: {\n key: AXPSystemActionType.Search,\n title: i18n('search.title'),\n icon: 'fa-light fa-magnifying-glass',\n color: 'default',\n descriptions: {\n title: i18n('search.title'),\n tooltip: i18n('search.description'),\n permission: i18n('search.permission'),\n audit: i18n('search.audit')\n }\n },\n Filter: {\n key: AXPSystemActionType.Filter,\n title: i18n('filter.title'),\n icon: 'fa-light fa-filter',\n color: 'default',\n descriptions: {\n title: i18n('filter.title'),\n tooltip: i18n('filter.description'),\n permission: i18n('filter.permission'),\n audit: i18n('filter.audit')\n }\n },\n Sort: {\n key: AXPSystemActionType.Sort,\n title: i18n('sort.title'),\n icon: 'fa-light fa-arrow-down-up-across-line',\n color: 'default',\n descriptions: {\n title: i18n('sort.title'),\n tooltip: i18n('sort.description'),\n permission: i18n('sort.permission'),\n audit: i18n('sort.audit')\n }\n },\n Start: {\n key: AXPSystemActionType.Start,\n title: i18n('start.title'),\n icon: 'fa-light fa-play',\n color: 'success',\n descriptions: {\n title: i18n('start.title'),\n tooltip: i18n('start.description'),\n permission: i18n('start.permission'),\n audit: i18n('start.audit')\n }\n },\n Stop: {\n key: AXPSystemActionType.Stop,\n title: i18n('stop.title'),\n icon: 'fa-light fa-stop',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('stop.title'),\n tooltip: i18n('stop.description'),\n permission: i18n('stop.permission'),\n audit: i18n('stop.audit')\n }\n },\n Pause: {\n key: AXPSystemActionType.Pause,\n title: i18n('pause.title'),\n icon: 'fa-light fa-pause',\n color: 'warning',\n descriptions: {\n title: i18n('pause.title'),\n tooltip: i18n('pause.description'),\n permission: i18n('pause.permission'),\n audit: i18n('pause.audit')\n }\n },\n Cancel: {\n key: AXPSystemActionType.Cancel,\n title: i18n('cancel.title'),\n icon: 'fa-light fa-xmark',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('cancel.title'),\n tooltip: i18n('cancel.description'),\n permission: i18n('cancel.permission'),\n audit: i18n('cancel.audit')\n }\n },\n Close: {\n key: AXPSystemActionType.Close,\n title: i18n('close.title'),\n icon: 'fa-light fa-xmark',\n color: 'default',\n descriptions: {\n title: i18n('close.title'),\n tooltip: i18n('close.description'),\n permission: i18n('close.permission'),\n audit: i18n('close.audit')\n }\n },\n Complete: {\n key: AXPSystemActionType.Complete,\n title: i18n('complete.title'),\n icon: 'fa-light fa-check',\n color: 'success',\n descriptions: {\n title: i18n('complete.title'),\n tooltip: i18n('complete.description'),\n permission: i18n('complete.permission'),\n audit: i18n('complete.audit')\n }\n },\n Save: {\n key: AXPSystemActionType.Save,\n title: i18n('save.title'),\n icon: 'fa-light fa-floppy-disk',\n color: 'primary',\n descriptions: {\n title: i18n('save.title'),\n tooltip: i18n('save.description'),\n permission: i18n('save.permission'),\n audit: i18n('save.audit')\n }\n },\n SaveAs: {\n key: AXPSystemActionType.SaveAs,\n title: i18n('save-as.title'),\n icon: 'fa-light fa-floppy-disk',\n color: 'default',\n descriptions: {\n title: i18n('save-as.title'),\n tooltip: i18n('save-as.description'),\n permission: i18n('save-as.permission'),\n audit: i18n('save-as.audit')\n }\n },\n Sync: {\n key: AXPSystemActionType.Sync,\n title: i18n('sync.title'),\n icon: 'fa-light fa-arrows-rotate',\n color: 'default',\n descriptions: {\n title: i18n('sync.title'),\n tooltip: i18n('sync.description'),\n permission: i18n('sync.permission'),\n audit: i18n('sync.audit')\n }\n },\n Reset: {\n key: AXPSystemActionType.Reset,\n title: i18n('reset.title'),\n icon: 'fa-light fa-arrow-rotate-left',\n color: 'warning',\n critical: true,\n descriptions: {\n title: i18n('reset.title'),\n tooltip: i18n('reset.description'),\n permission: i18n('reset.permission'),\n audit: i18n('reset.audit')\n }\n },\n Clear: {\n key: AXPSystemActionType.Clear,\n title: i18n('clear.title'),\n icon: 'fa-light fa-eraser',\n color: 'default',\n descriptions: {\n title: i18n('clear.title'),\n tooltip: i18n('clear.description'),\n permission: i18n('clear.permission'),\n audit: i18n('clear.audit')\n }\n },\n Distribution: {\n key: AXPSystemActionType.Distribution,\n title: i18n('distribution.title'),\n icon: 'fa-light fa-share-nodes',\n color: 'default',\n descriptions: {\n title: i18n('distribution.title'),\n tooltip: i18n('distribution.description'),\n permission: i18n('distribution.permission'),\n audit: i18n('distribution.audit')\n }\n },\n});\nexport function getSystemActions(type) {\n return Object.values(AXPSystemActions).find(action => action.key === type);\n}\n/**\n * Resolves the visual appearance (color and icon) for entity actions\n * using the system actions from the core module.\n */\nexport function resolveActionLook(actionType) {\n // Try to get system action first\n const systemActionType = actionType;\n if (systemActionType) {\n const systemAction = getSystemActions(systemActionType);\n if (systemAction) {\n return {\n color: (systemAction.color || 'default'),\n icon: systemAction.icon || ''\n };\n }\n }\n // Fallback for unknown actions\n return {\n color: 'default',\n icon: ''\n };\n}\n/**\n * Resolves the title, description, icon and color for button actions\n * using the system actions from the core module.\n * @param actionType\n * @returns\n */\nexport function getActionButton(actionType) {\n const systemActionType = actionType;\n if (systemActionType) {\n const systemAction = getSystemActions(systemActionType);\n if (systemAction) {\n return {\n name: actionType,\n icon: systemAction.icon || '',\n color: systemAction.color || 'default',\n title: systemAction.title,\n description: systemAction.descriptions.title\n };\n }\n }\n // Fallback for unknown actions\n return {\n name: actionType,\n title: actionType,\n description: `Perform ${actionType} action`,\n icon: '',\n color: 'default'\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2FjdGlvbnMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRkc7QUFFSCxNQUFNLENBQU4sSUFBWSxtQkEyRFg7QUEzREQsV0FBWSxtQkFBbUI7SUFDM0Isb0NBQWEsQ0FBQTtJQUNiLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLDBDQUFtQixDQUFBO0lBQ25CLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHNDQUFlLENBQUE7SUFDZix3Q0FBaUIsQ0FBQTtJQUNqQixvQ0FBYSxDQUFBO0lBQ2Isd0NBQWlCLENBQUE7SUFDakIsc0NBQWUsQ0FBQTtJQUNmLDhDQUF1QixDQUFBO0lBQ3ZCLDBDQUFtQixDQUFBO0lBQ25CLDBDQUFtQixDQUFBO0lBQ25CLDhDQUF1QixDQUFBO0lBQ3ZCLDBDQUFtQixDQUFBO0lBQ25CLDBDQUFtQixDQUFBO0lBQ25CLDhDQUF1QixDQUFBO0lBQ3ZCLHdDQUFpQixDQUFBO0lBQ2pCLDRDQUFxQixDQUFBO0lBQ3JCLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isd0NBQWlCLENBQUE7SUFDakIsMENBQW1CLENBQUE7SUFDbkIsd0NBQWlCLENBQUE7SUFDakIsb0NBQWEsQ0FBQTtJQUNiLDBDQUFtQixDQUFBO0lBQ25CLHdDQUFpQixDQUFBO0lBQ2pCLHlEQUFrQyxDQUFBO0lBQ2xDLDBDQUFtQixDQUFBO0lBQ25CLDRDQUFx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QztRQUNuQixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hELElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixPQUFPO2dCQUNILElBQUksRUFBRSxVQUFVO2dCQUNoQixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFO2dCQUM3QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssSUFBSSxTQUFTO2dCQUN0QyxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7Z0JBQ3pCLFdBQVcsRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUs7YUFDL0MsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLE9BQU87UUFDSCxJQUFJLEVBQUUsVUFBVTtRQUNoQixLQUFLLEVBQUUsVUFBVTtRQUNqQixXQUFXLEVBQUUsV0FBVyxVQUFVLFNBQVM7UUFDM0MsSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsU0FBUztLQUNuQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuXG4vKipcbiAqIEFkZGl0aW9uYWwgc3VnZ2VzdGVkIGdlbmVyaWMgYWN0aW9ucyBmb3IgZnV0dXJlIGNvbnNpZGVyYXRpb246XG4gKiBcbiAqIERhdGEgJiBDb250ZW50IEFjdGlvbnM6XG4gKiAtIFNlYXJjaCA9ICdzZWFyY2gnIC0gU2VhcmNoIGZ1bmN0aW9uYWxpdHlcbiAqIC0gRmlsdGVyID0gJ2ZpbHRlcicgLSBBcHBseSBmaWx0ZXJzXG4gKiAtIFNvcnQgPSAnc29ydCcgLSBTb3J0IGRhdGFcbiAqIC0gR3JvdXAgPSAnZ3JvdXAnIC0gR3JvdXAgZGF0YVxuICogLSBFeHBhbmQgPSAnZXhwYW5kJyAtIEV4cGFuZCBkZXRhaWxzXG4gKiAtIENvbGxhcHNlID0gJ2NvbGxhcHNlJyAtIENvbGxhcHNlIGRldGFpbHNcbiAqIC0gUGluID0gJ3BpbicgLSBQaW4gdG8gZmF2b3JpdGVzXG4gKiAtIEJvb2ttYXJrID0gJ2Jvb2ttYXJrJyAtIEJvb2ttYXJrIGl0ZW1cbiAqIC0gRmF2b3JpdGUgPSAnZmF2b3JpdGUnIC0gTWFyayBhcyBmYXZvcml0ZVxuICogLSBTdGFyID0gJ3N0YXInIC0gU3RhciByYXRpbmdcbiAqIFxuICogV29ya2Zsb3cgQWN0aW9uczpcbiAqIC0gU3RhcnQgPSAnc3RhcnQnIC0gU3RhcnQgcHJvY2Vzcy93b3JrZmxvd1xuICogLSBTdG9wID0gJ3N0b3AnIC0gU3RvcCBwcm9jZXNzXG4gKiAtIFBhdXNlID0gJ3BhdXNlJyAtIFBhdXNlIHByb2Nlc3NcbiAqIC0gUmVzdW1lID0gJ3Jlc3VtZScgLSBSZXN1bWUgcHJvY2Vzc1xuICogLSBDYW5jZWwgPSAnY2FuY2VsJyAtIENhbmNlbCBvcGVyYXRpb25cbiAqIC0gQ29tcGxldGUgPSAnY29tcGxldGUnIC0gTWFyayBhcyBjb21wbGV0ZVxuICogLSBDbG9zZSA9ICdjbG9zZScgLSBDbG9zZSBpdGVtXG4gKiAtIFJlb3BlbiA9ICdyZW9wZW4nIC0gUmVvcGVuIGNsb3NlZCBpdGVtXG4gKiAtIEZvcndhcmQgPSAnZm9yd2FyZCcgLSBGb3J3YXJkIHRvIG5leHQgc3RlcFxuICogLSBCYWNrID0gJ2JhY2snIC0gR28gYmFja1xuICogXG4gKiBDb21tdW5pY2F0aW9uIEFjdGlvbnM6XG4gKiAtIFJlcGx5ID0gJ3JlcGx5JyAtIFJlcGx5IHRvIG1lc3NhZ2VcbiAqIC0gRm9yd2FyZCA9ICdmb3J3YXJkJyAtIEZvcndhcmQgbWVzc2FnZVxuICogLSBOb3RpZnkgPSAnbm90aWZ5JyAtIFNlbmQgbm90aWZpY2F0aW9uXG4gKiAtIEludml0ZSA9ICdpbnZpdGUnIC0gSW52aXRlIHVzZXJcbiAqIC0gSm9pbiA9ICdqb2luJyAtIEpvaW4gZ3JvdXAvbWVldGluZ1xuICogLSBMZWF2ZSA9ICdsZWF2ZScgLSBMZWF2ZSBncm91cC9tZWV0aW5nXG4gKiBcbiAqIFNlY3VyaXR5IEFjdGlvbnM6XG4gKiAtIExvZ2luID0gJ2xvZ2luJyAtIFVzZXIgbG9naW5cbiAqIC0gTG9nb3V0ID0gJ2xvZ291dCcgLSBVc2VyIGxvZ291dFxuICogLSBCbG9jayA9ICdibG9jaycgLSBCbG9jayB1c2VyL2NvbnRlbnRcbiAqIC0gVW5ibG9jayA9ICd1bmJsb2NrJyAtIFVuYmxvY2sgdXNlci9jb250ZW50XG4gKiAtIEJhbiA9ICdiYW4nIC0gQmFuIHVzZXJcbiAqIC0gVW5iYW4gPSAndW5iYW4nIC0gVW5iYW4gdXNlclxuICogLSBWZXJpZnkgPSAndmVyaWZ5JyAtIFZlcmlmeSBpZGVudGl0eVxuICogLSBBdXRoZW50aWNhdGUgPSAnYXV0aGVudGljYXRlJyAtIEF1dGhlbnRpY2F0ZVxuICogXG4gKiBGaWxlICYgTWVkaWEgQWN0aW9uczpcbiAqIC0gT3BlbiA9ICdvcGVuJyAtIE9wZW4gZmlsZVxuICogLSBTYXZlID0gJ3NhdmUnIC0gU2F2ZSBmaWxlXG4gKiAtIFNhdmVBcyA9ICdzYXZlLWFzJyAtIFNhdmUgYXMgbmV3IGZpbGVcbiAqIC0gQXR0YWNoID0gJ2F0dGFjaCcgLSBBdHRhY2ggZmlsZVxuICogLSBEZXRhY2ggPSAnZGV0YWNoJyAtIERldGFjaCBmaWxlXG4gKiAtIENvbXByZXNzID0gJ2NvbXByZXNzJyAtIENvbXByZXNzIGZpbGVzXG4gKiAtIEV4dHJhY3QgPSAnZXh0cmFjdCcgLSBFeHRyYWN0IGFyY2hpdmVcbiAqIC0gQ29udmVydCA9ICdjb252ZXJ0JyAtIENvbnZlcnQgZm9ybWF0XG4gKiAtIENyb3AgPSAnY3JvcCcgLSBDcm9wIGltYWdlXG4gKiAtIFJlc2l6ZSA9ICdyZXNpemUnIC0gUmVzaXplIGltYWdlXG4gKiBcbiAqIFN5c3RlbSBBY3Rpb25zOlxuICogLSBTeW5jID0gJ3N5bmMnIC0gU3luY2hyb25pemUgZGF0YVxuICogLSBCYWNrdXAgPSAnYmFja3VwJyAtIENyZWF0ZSBiYWNrdXBcbiAqIC0gUmVzdG9yZSA9ICdyZXN0b3JlJyAtIFJlc3RvcmUgZnJvbSBiYWNrdXBcbiAqIC0gUmVzZXQgPSAncmVzZXQnIC0gUmVzZXQgdG8gZGVmYXVsdHNcbiAqIC0gQ2xlYXIgPSAnY2xlYXInIC0gQ2xlYXIgZGF0YVxuICogLSBPcHRpbWl6ZSA9ICdvcHRpbWl6ZScgLSBPcHRpbWl6ZSBwZXJmb3JtYW5jZVxuICogLSBVcGRhdGUgPSAndXBkYXRlJyAtIFVwZGF0ZSBzeXN0ZW1cbiAqIC0gSW5zdGFsbCA9ICdpbnN0YWxsJyAtIEluc3RhbGwgY29tcG9uZW50XG4gKiAtIFVuaW5zdGFsbCA9ICd1bmluc3RhbGwnIC0gVW5pbnN0YWxsIGNvbXBvbmVudFxuICogLSBFbmFibGUgPSAnZW5hYmxlJyAtIEVuYWJsZSBmZWF0dXJlXG4gKiAtIERpc2FibGUgPSAnZGlzYWJsZScgLSBEaXNhYmxlIGZlYXR1cmVcbiAqIFxuICogQW5hbHl0aWNzICYgTW9uaXRvcmluZzpcbiAqIC0gTW9uaXRvciA9ICdtb25pdG9yJyAtIE1vbml0b3IgYWN0aXZpdHlcbiAqIC0gVHJhY2sgPSAndHJhY2snIC0gVHJhY2sgcHJvZ3Jlc3NcbiAqIC0gQW5hbHl6ZSA9ICdhbmFseXplJyAtIEFuYWx5emUgZGF0YVxuICogLSBEZWJ1ZyA9ICdkZWJ1ZycgLSBEZWJ1ZyBpc3N1ZVxuICogLSBMb2cgPSAnbG9nJyAtIFZpZXcgbG9nc1xuICogLSBBbGVydCA9ICdhbGVydCcgLSBTZXQgYWxlcnRcbiAqIC0gRGFzaGJvYXJkID0gJ2Rhc2hib2FyZCcgLSBWaWV3IGRhc2hib2FyZFxuICogLSBNZXRyaWNzID0gJ21ldHJpY3MnIC0gVmlldyBtZXRyaWNzXG4gKiBcbiAqIENvbGxhYm9yYXRpb24gQWN0aW9uczpcbiAqIC0gQ29sbGFib3JhdGUgPSAnY29sbGFib3JhdGUnIC0gU3RhcnQgY29sbGFib3JhdGlvblxuICogLSBTaGFyZSA9ICdzaGFyZScgLSBTaGFyZSBjb250ZW50XG4gKiAtIENvbW1lbnQgPSAnY29tbWVudCcgLSBBZGQgY29tbWVudFxuICogLSBMaWtlID0gJ2xpa2UnIC0gTGlrZSBjb250ZW50XG4gKiAtIEZvbGxvdyA9ICdmb2xsb3cnIC0gRm9sbG93IHVzZXIvY29udGVudFxuICogLSBTdWJzY3JpYmUgPSAnc3Vic2NyaWJlJyAtIFN1YnNjcmliZSB0byB1cGRhdGVzXG4gKiAtIFVuc3Vic2NyaWJlID0gJ3Vuc3Vic2NyaWJlJyAtIFVuc3Vic2NyaWJlXG4gKiAtIFJhdGUgPSAncmF0ZScgLSBSYXRlIGNvbnRlbnRcbiAqIC0gUmV2aWV3ID0gJ3JldmlldycgLSBSZXZpZXcgY29udGVudFxuICogLSBSZWNvbW1lbmQgPSAncmVjb21tZW5kJyAtIFJlY29tbWVuZCBjb250ZW50XG4gKi9cblxuZXhwb3J0IGVudW0gQVhQU3lzdGVtQWN0aW9uVHlwZSB7XG4gICAgVmlldyA9ICd2aWV3JyxcbiAgICBDcmVhdGUgPSAnY3JlYXRlJyxcbiAgICBVcGRhdGUgPSAndXBkYXRlJyxcbiAgICBEZWxldGUgPSAnZGVsZXRlJyxcbiAgICBBcHByb3ZlID0gJ2FwcHJvdmUnLFxuICAgIFJlamVjdCA9ICdyZWplY3QnLFxuICAgIFN1Ym1pdCA9ICdzdWJtaXQnLFxuICAgIEV4cG9ydCA9ICdleHBvcnQnLFxuICAgIEltcG9ydCA9ICdpbXBvcnQnLFxuICAgIFByaW50ID0gJ3ByaW50JyxcbiAgICBBc3NpZ24gPSAnYXNzaWduJyxcbiAgICBMb2NrID0gJ2xvY2snLFxuICAgIFVubG9jayA9ICd1bmxvY2snLFxuICAgIFNoYXJlID0gJ3NoYXJlJyxcbiAgICBDb25maWd1cmUgPSAnY29uZmlndXJlJyxcbiAgICBSZW9yZGVyID0gJ3Jlb3JkZXInLFxuICAgIFByZXZpZXcgPSAncHJldmlldycsXG4gICAgRHVwbGljYXRlID0gJ2R1cGxpY2F0ZScsXG4gICAgQXJjaGl2ZSA9ICdhcmNoaXZlJyxcbiAgICBQdWJsaXNoID0gJ3B1Ymxpc2gnLFxuICAgIFVucHVibGlzaCA9ICd1bnB1Ymxpc2gnLFxuICAgIFVwbG9hZCA9ICd1cGxvYWQnLFxuICAgIERvd25sb2FkID0gJ2Rvd25sb2FkJyxcbiAgICBDb3B5ID0gJ2NvcHknLFxuICAgIE1vdmUgPSAnbW92ZScsXG4gICAgUmVuYW1lID0gJ3JlbmFtZScsXG4gICAgUmVzdG9yZSA9ICdyZXN0b3JlJyxcbiAgICBNYW5hZ2UgPSAnbWFuYWdlJyxcbiAgICBJbmZvID0gJ2luZm8nLFxuICAgIENvbmZpcm0gPSAnY29uZmlybScsXG4gICAgRGVzaWduID0gJ2Rlc2lnbicsXG4gICAgVmVyc2lvbkhpc3RvcnkgPSAndmVyc2lvbi1oaXN0b3J5JyxcbiAgICBDb21wYXJlID0gJ2NvbXBhcmUnLFxuICAgIENvbW1lbnRzID0gJ2NvbW1lbnRzJyxcbiAgICBTaWduID0gJ3NpZ24nLFxuICAgIFNldHVwID0gJ3NldHVwJyxcbiAgICBTZW5kID0gJ3NlbmQnLFxuICAgIFJlcG9ydCA9ICdyZXBvcnQnLFxuICAgIFNlbnQgPSAnc2VudCcsXG4gICAgUmV2aWV3ID0gJ3JldmlldycsXG4gICAgR2VuZXJhdGUgPSAnZ2VuZXJhdGUnLFxuICAgIFJlZnJlc2ggPSAncmVmcmVzaCcsXG4gICAgUmVsb2FkID0gJ3JlbG9hZCcsXG4gICAgU2VhcmNoID0gJ3NlYXJjaCcsXG4gICAgRmlsdGVyID0gJ2ZpbHRlcicsXG4gICAgU29ydCA9ICdzb3J0JyxcbiAgICBTdGFydCA9ICdzdGFydCcsXG4gICAgU3RvcCA9ICdzdG9wJyxcbiAgICBQYXVzZSA9ICdwYXVzZScsXG4gICAgQ2FuY2VsID0gJ2NhbmNlbCcsXG4gICAgQ2xvc2UgPSAnY2xvc2UnLFxuICAgIENvbXBsZXRlID0gJ2NvbXBsZXRlJyxcbiAgICBTYXZlID0gJ3NhdmUnLFxuICAgIFNhdmVBcyA9ICdzYXZlLWFzJyxcbiAgICBTeW5jID0gJ3N5bmMnLFxuICAgIFJlc2V0ID0gJ3Jlc2V0JyxcbiAgICBDbGVhciA9ICdjbGVhcicsXG4gICAgRGlzdHJpYnV0aW9uID0gJ2Rpc3RyaWJ1dGlvbicsXG59XG5leHBvcnQgaW50ZXJmYWNlIEFYUFN5c3RlbUFjdGlvbiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGNyaXRpY2FsPzogYm9vbGVhbjtcbiAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgdG9vbHRpcDogc3RyaW5nO1xuICAgICAgICBwZXJtaXNzaW9uOiBzdHJpbmc7XG4gICAgICAgIGF1ZGl0OiBzdHJpbmc7XG4gICAgfTtcbn1cblxuY29uc3QgaTE4biA9IChrZXk6IHN0cmluZykgPT4gYEBnZW5lcmFsOmFjdGlvbnMuJHtrZXl9YDtcblxuZXhwb3J0IGNvbnN0IEFYUFN5c3RlbUFjdGlvbnMgPSBPYmplY3QuZnJlZXplKHtcbiAgICBWaWV3OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5WaWV3LFxuICAgICAgICB0aXRsZTogaTE4bigndmlldy50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZXllJyxcbiAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigndmlldy50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigndmlldy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigndmlldy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigndmlldy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENyZWF0ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQ3JlYXRlLFxuICAgICAgICB0aXRsZTogaTE4bignY3JlYXRlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wbHVzJyxcbiAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY3JlYXRlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjcmVhdGUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NyZWF0ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY3JlYXRlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRWRpdDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuVXBkYXRlLFxuICAgICAgICB0aXRsZTogaTE4bignZWRpdC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGVuJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignZWRpdC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZWRpdC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignZWRpdC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZWRpdC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIERlbGV0ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgICB0aXRsZTogaTE4bignZGVsZXRlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS10cmFzaCcsXG4gICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgY3JpdGljYWw6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2RlbGV0ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZGVsZXRlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdkZWxldGUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2RlbGV0ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEFwcHJvdmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkFwcHJvdmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdhcHByb3ZlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jaXJjbGUtY2hlY2snLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignYXBwcm92ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignYXBwcm92ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignYXBwcm92ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignYXBwcm92ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFN1Ym1pdDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU3VibWl0LFxuICAgICAgICB0aXRsZTogaTE4bignc3VibWl0LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wYXBlci1wbGFuZScsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3N1Ym1pdC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc3VibWl0LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzdWJtaXQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3N1Ym1pdC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlamVjdDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUmVqZWN0LFxuICAgICAgICB0aXRsZTogaTE4bigncmVqZWN0LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1iYW4nLFxuICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgIGNyaXRpY2FsOiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdyZWplY3QudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3JlamVjdC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVqZWN0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdyZWplY3QuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBFeHBvcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkV4cG9ydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2V4cG9ydC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZG93bmxvYWQnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdleHBvcnQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2V4cG9ydC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignZXhwb3J0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdleHBvcnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBJbXBvcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkltcG9ydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2ltcG9ydC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdXBsb2FkJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignaW1wb3J0LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdpbXBvcnQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2ltcG9ydC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignaW1wb3J0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgUHJpbnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlByaW50LFxuICAgICAgICB0aXRsZTogaTE4bigncHJpbnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXByaW50JyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncHJpbnQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3ByaW50LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdwcmludC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncHJpbnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBEdXBsaWNhdGU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkR1cGxpY2F0ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2R1cGxpY2F0ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2xvbmUnLFxuICAgICAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdkdXBsaWNhdGUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2R1cGxpY2F0ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignZHVwbGljYXRlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdkdXBsaWNhdGUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBBcmNoaXZlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5BcmNoaXZlLFxuICAgICAgICB0aXRsZTogaTE4bignYXJjaGl2ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtYm94LWFyY2hpdmUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdhcmNoaXZlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdhcmNoaXZlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdhcmNoaXZlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdhcmNoaXZlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgUmVzdG9yZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUmVzdG9yZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3Jlc3RvcmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWFycm93LXJvdGF0ZS1sZWZ0JyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVzdG9yZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVzdG9yZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVzdG9yZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVzdG9yZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEFzc2lnbjoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQXNzaWduLFxuICAgICAgICB0aXRsZTogaTE4bignYXNzaWduLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS11c2VyLXBsdXMnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdhc3NpZ24udGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2Fzc2lnbi5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignYXNzaWduLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdhc3NpZ24uYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBMb2NrOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Mb2NrLFxuICAgICAgICB0aXRsZTogaTE4bignbG9jay50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtbG9jaycsXG4gICAgICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2xvY2sudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2xvY2suZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2xvY2sucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2xvY2suYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBVbmxvY2s6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlVubG9jayxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3VubG9jay50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdW5sb2NrJyxcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigndW5sb2NrLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCd1bmxvY2suZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3VubG9jay5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigndW5sb2NrLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU2hhcmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNoYXJlLFxuICAgICAgICB0aXRsZTogaTE4bignc2hhcmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXNoYXJlLW5vZGVzJyxcbiAgICAgICAgY29sb3I6ICdpbmZvJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc2hhcmUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NoYXJlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzaGFyZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc2hhcmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBDb25maWd1cmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvbmZpZ3VyZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbmZpZ3VyZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtc2xpZGVycycsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbmZpZ3VyZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY29uZmlndXJlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjb25maWd1cmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NvbmZpZ3VyZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlb3JkZXI6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlb3JkZXIsXG4gICAgICAgIHRpdGxlOiBpMThuKCdyZW9yZGVyLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvdy1kb3duLXVwLWFjcm9zcy1saW5lJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVvcmRlci50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVvcmRlci5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVvcmRlci5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVvcmRlci5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFByZXZpZXc6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlByZXZpZXcsXG4gICAgICAgIHRpdGxlOiBpMThuKCdwcmV2aWV3LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1tYWduaWZ5aW5nLWdsYXNzJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncHJldmlldy50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncHJldmlldy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncHJldmlldy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncHJldmlldy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFB1Ymxpc2g6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlB1Ymxpc2gsXG4gICAgICAgIHRpdGxlOiBpMThuKCdwdWJsaXNoLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1nbG9iZScsXG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3B1Ymxpc2gudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3B1Ymxpc2guZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3B1Ymxpc2gucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3B1Ymxpc2guYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBVbnB1Ymxpc2g6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlVucHVibGlzaCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3VucHVibGlzaC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2xvYmUtc2xhc2gnLFxuICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3VucHVibGlzaC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigndW5wdWJsaXNoLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCd1bnB1Ymxpc2gucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3VucHVibGlzaC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFVwbG9hZDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuVXBsb2FkLFxuICAgICAgICB0aXRsZTogaTE4bigndXBsb2FkLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS11cGxvYWQnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCd1cGxvYWQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3VwbG9hZC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigndXBsb2FkLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCd1cGxvYWQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBEb3dubG9hZDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuRG93bmxvYWQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdkb3dubG9hZC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZG93bmxvYWQnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdkb3dubG9hZC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZG93bmxvYWQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2Rvd25sb2FkLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdkb3dubG9hZC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENvcHk6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvcHksXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb3B5LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jb3B5JyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY29weS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY29weS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignY29weS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY29weS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIE1vdmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLk1vdmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdtb3ZlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvdy1yaWdodC1hcnJvdy1sZWZ0JyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignbW92ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignbW92ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignbW92ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignbW92ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlbmFtZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUmVuYW1lLFxuICAgICAgICB0aXRsZTogaTE4bigncmVuYW1lLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wZW4nLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdyZW5hbWUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3JlbmFtZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVuYW1lLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdyZW5hbWUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBNYW5hZ2U6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLk1hbmFnZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ21hbmFnZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2VhcicsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ21hbmFnZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignbWFuYWdlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdtYW5hZ2UucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ21hbmFnZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEluZm86IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkluZm8sXG4gICAgICAgIHRpdGxlOiBpMThuKCdpbmZvLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1pbmZvJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignaW5mby50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignaW5mby5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignaW5mby5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignaW5mby5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENvbmZpcm06IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvbmZpcm0sXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb25maXJtLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jaGVjaycsXG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbmZpcm0udGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2NvbmZpcm0uZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NvbmZpcm0ucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NvbmZpcm0uYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBEZXNpZ246IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkRlc2lnbixcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2Rlc2lnbi50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGFpbnRicnVzaCcsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2Rlc2lnbi50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZGVzaWduLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdkZXNpZ24ucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2Rlc2lnbi5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFZlcnNpb25IaXN0b3J5OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5WZXJzaW9uSGlzdG9yeSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3ZlcnNpb24taGlzdG9yeS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtaGlzdG9yeScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3ZlcnNpb24taGlzdG9yeS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigndmVyc2lvbi1oaXN0b3J5LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCd2ZXJzaW9uLWhpc3RvcnkucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3ZlcnNpb24taGlzdG9yeS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENvbXBhcmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvbXBhcmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb21wYXJlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jb2RlLWNvbXBhcmUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjb21wYXJlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjb21wYXJlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjb21wYXJlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjb21wYXJlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ29tbWVudHM6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNvbW1lbnRzLFxuICAgICAgICB0aXRsZTogaTE4bignY29tbWVudHMudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNvbW1lbnRzJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY29tbWVudHMudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2NvbW1lbnRzLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjb21tZW50cy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY29tbWVudHMuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTaWduOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TaWduLFxuICAgICAgICB0aXRsZTogaTE4bignc2lnbi50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtc2lnbmF0dXJlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc2lnbi50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc2lnbi5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc2lnbi5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc2lnbi5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNldHVwOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TZXR1cCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3NldHVwLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jb2cnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzZXR1cC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc2V0dXAuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NldHVwLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzZXR1cC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNlbmQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNlbmQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzZW5kLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1lbnZlbG9wZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3NlbmQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NlbmQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NlbmQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3NlbmQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZXBvcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlcG9ydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3JlcG9ydC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2hhcnQtbGluZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3JlcG9ydC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVwb3J0LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdyZXBvcnQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3JlcG9ydC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNlbnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNlbnQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzZW50LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wYXBlci1wbGFuZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3NlbnQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NlbnQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NlbnQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3NlbnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZXZpZXc6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJldmlldyxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3Jldmlldy50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZXllJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmV2aWV3LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdyZXZpZXcuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3Jldmlldy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmV2aWV3LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgR2VuZXJhdGU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkdlbmVyYXRlLFxuICAgICAgICB0aXRsZTogaTE4bignZ2VuZXJhdGUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXdhbmQtbWFnaWMtc3BhcmtsZXMnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdnZW5lcmF0ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZ2VuZXJhdGUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2dlbmVyYXRlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdnZW5lcmF0ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlZnJlc2g6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlZnJlc2gsXG4gICAgICAgIHRpdGxlOiBpMThuKCdyZWZyZXNoLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvd3Mtcm90YXRlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVmcmVzaC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVmcmVzaC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVmcmVzaC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVmcmVzaC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlbG9hZDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUmVsb2FkLFxuICAgICAgICB0aXRsZTogaTE4bigncmVsb2FkLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvd3Mtcm90YXRlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVsb2FkLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdyZWxvYWQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3JlbG9hZC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVsb2FkLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU2VhcmNoOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TZWFyY2gsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzZWFyY2gudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLW1hZ25pZnlpbmctZ2xhc3MnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzZWFyY2gudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NlYXJjaC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc2VhcmNoLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzZWFyY2guYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBGaWx0ZXI6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkZpbHRlcixcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2ZpbHRlci50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZmlsdGVyJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignZmlsdGVyLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdmaWx0ZXIuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2ZpbHRlci5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZmlsdGVyLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU29ydDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU29ydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3NvcnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWFycm93LWRvd24tdXAtYWNyb3NzLWxpbmUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzb3J0LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdzb3J0LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzb3J0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzb3J0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU3RhcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlN0YXJ0LFxuICAgICAgICB0aXRsZTogaTE4bignc3RhcnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBsYXknLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzdGFydC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc3RhcnQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3N0YXJ0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzdGFydC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFN0b3A6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlN0b3AsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzdG9wLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1zdG9wJyxcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc3RvcC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc3RvcC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc3RvcC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc3RvcC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFBhdXNlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5QYXVzZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3BhdXNlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wYXVzZScsXG4gICAgICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3BhdXNlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdwYXVzZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncGF1c2UucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3BhdXNlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ2FuY2VsOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5DYW5jZWwsXG4gICAgICAgIHRpdGxlOiBpMThuKCdjYW5jZWwudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXhtYXJrJyxcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY2FuY2VsLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjYW5jZWwuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NhbmNlbC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY2FuY2VsLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ2xvc2U6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNsb3NlLFxuICAgICAgICB0aXRsZTogaTE4bignY2xvc2UudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXhtYXJrJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY2xvc2UudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2Nsb3NlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjbG9zZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY2xvc2UuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBDb21wbGV0ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQ29tcGxldGUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb21wbGV0ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2hlY2snLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjb21wbGV0ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY29tcGxldGUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NvbXBsZXRlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjb21wbGV0ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNhdmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNhdmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzYXZlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1mbG9wcHktZGlzaycsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3NhdmUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NhdmUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NhdmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3NhdmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTYXZlQXM6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNhdmVBcyxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3NhdmUtYXMudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZsb3BweS1kaXNrJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc2F2ZS1hcy50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc2F2ZS1hcy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc2F2ZS1hcy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc2F2ZS1hcy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFN5bmM6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlN5bmMsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzeW5jLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvd3Mtcm90YXRlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc3luYy50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc3luYy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc3luYy5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc3luYy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlc2V0OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5SZXNldCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3Jlc2V0LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvdy1yb3RhdGUtbGVmdCcsXG4gICAgICAgIGNvbG9yOiAnd2FybmluZycsXG4gICAgICAgIGNyaXRpY2FsOiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdyZXNldC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVzZXQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3Jlc2V0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdyZXNldC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENsZWFyOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5DbGVhcixcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2NsZWFyLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1lcmFzZXInLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjbGVhci50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY2xlYXIuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NsZWFyLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjbGVhci5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIERpc3RyaWJ1dGlvbjoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuRGlzdHJpYnV0aW9uLFxuICAgICAgICB0aXRsZTogaTE4bignZGlzdHJpYnV0aW9uLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1zaGFyZS1ub2RlcycsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2Rpc3RyaWJ1dGlvbi50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZGlzdHJpYnV0aW9uLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdkaXN0cmlidXRpb24ucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2Rpc3RyaWJ1dGlvbi5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuXG59IGFzIGNvbnN0IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBBWFBTeXN0ZW1BY3Rpb24+KTtcblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTeXN0ZW1BY3Rpb25zKHR5cGU6IEFYUFN5c3RlbUFjdGlvblR5cGUpOiBBWFBTeXN0ZW1BY3Rpb24ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKEFYUFN5c3RlbUFjdGlvbnMpLmZpbmQoYWN0aW9uID0+IGFjdGlvbi5rZXkgPT09IHR5cGUpIGFzIEFYUFN5c3RlbUFjdGlvbjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgdmlzdWFsIGFwcGVhcmFuY2UgKGNvbG9yIGFuZCBpY29uKSBmb3IgZW50aXR5IGFjdGlvbnNcbiAqIHVzaW5nIHRoZSBzeXN0ZW0gYWN0aW9ucyBmcm9tIHRoZSBjb3JlIG1vZHVsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBY3Rpb25Mb29rKGFjdGlvblR5cGU6IHN0cmluZyk6IHsgY29sb3I6IEFYU3R5bGVDb2xvclR5cGU7IGljb246IHN0cmluZyB9IHtcbiAgICAvLyBUcnkgdG8gZ2V0IHN5c3RlbSBhY3Rpb24gZmlyc3RcbiAgICBjb25zdCBzeXN0ZW1BY3Rpb25UeXBlID0gYWN0aW9uVHlwZSBhcyBBWFBTeXN0ZW1BY3Rpb25UeXBlO1xuICAgIGlmIChzeXN0ZW1BY3Rpb25UeXBlKSB7XG4gICAgICAgIGNvbnN0IHN5c3RlbUFjdGlvbiA9IGdldFN5c3RlbUFjdGlvbnMoc3lzdGVtQWN0aW9uVHlwZSk7XG4gICAgICAgIGlmIChzeXN0ZW1BY3Rpb24pIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29sb3I6IChzeXN0ZW1BY3Rpb24uY29sb3IgfHwgJ2RlZmF1bHQnKSBhcyBBWFN0eWxlQ29sb3JUeXBlLFxuICAgICAgICAgICAgICAgIGljb246IHN5c3RlbUFjdGlvbi5pY29uIHx8ICcnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmFsbGJhY2sgZm9yIHVua25vd24gYWN0aW9uc1xuICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcgYXMgQVhTdHlsZUNvbG9yVHlwZSxcbiAgICAgICAgaWNvbjogJydcbiAgICB9O1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSB0aXRsZSwgZGVzY3JpcHRpb24sIGljb24gYW5kIGNvbG9yIGZvciBidXR0b24gYWN0aW9uc1xuICogdXNpbmcgdGhlIHN5c3RlbSBhY3Rpb25zIGZyb20gdGhlIGNvcmUgbW9kdWxlLlxuICogQHBhcmFtIGFjdGlvblR5cGUgXG4gKiBAcmV0dXJucyBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvbkJ1dHRvbihhY3Rpb25UeXBlOiBzdHJpbmcpOiB7IG5hbWU6IHN0cmluZzsgdGl0bGU6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZywgaWNvbjogc3RyaW5nLCBjb2xvcjogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN5c3RlbUFjdGlvblR5cGUgPSBhY3Rpb25UeXBlIGFzIEFYUFN5c3RlbUFjdGlvblR5cGU7XG4gICAgaWYgKHN5c3RlbUFjdGlvblR5cGUpIHtcbiAgICAgICAgY29uc3Qgc3lzdGVtQWN0aW9uID0gZ2V0U3lzdGVtQWN0aW9ucyhzeXN0ZW1BY3Rpb25UeXBlKTtcbiAgICAgICAgaWYgKHN5c3RlbUFjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBhY3Rpb25UeXBlLFxuICAgICAgICAgICAgICAgIGljb246IHN5c3RlbUFjdGlvbi5pY29uIHx8ICcnLFxuICAgICAgICAgICAgICAgIGNvbG9yOiBzeXN0ZW1BY3Rpb24uY29sb3IgfHwgJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBzeXN0ZW1BY3Rpb24udGl0bGUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHN5c3RlbUFjdGlvbi5kZXNjcmlwdGlvbnMudGl0bGVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayBmb3IgdW5rbm93biBhY3Rpb25zXG4gICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogYWN0aW9uVHlwZSxcbiAgICAgICAgdGl0bGU6IGFjdGlvblR5cGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgUGVyZm9ybSAke2FjdGlvblR5cGV9IGFjdGlvbmAsXG4gICAgICAgIGljb246ICcnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnXG4gICAgfTtcbn1cbiJdfQ==","export function getNestedKeys(obj, prefix = '') {\n let keys = [];\n for (const key in obj) {\n if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {\n keys = [...keys, ...getNestedKeys(obj[key], prefix + key + '.')];\n }\n else {\n keys.push(prefix + key);\n }\n }\n return keys;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2NvcmUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFRLEVBQUUsU0FBaUIsRUFBRTtJQUN6RCxJQUFJLElBQUksR0FBYSxFQUFFLENBQUM7SUFDeEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xGLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUFBhcnRpYWxOZXN0ZWQ8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdPzogVFtLXSBleHRlbmRzIG9iamVjdCA/IEFYUFBhcnRpYWxOZXN0ZWQ8VFtLXT4gOiBUW0tdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5lc3RlZEtleXMob2JqOiBhbnksIHByZWZpeDogc3RyaW5nID0gJycpOiBzdHJpbmdbXSB7XG4gIGxldCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0JyAmJiBvYmpba2V5XSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcbiAgICAgIGtleXMgPSBbLi4ua2V5cywgLi4uZ2V0TmVzdGVkS2V5cyhvYmpba2V5XSwgcHJlZml4ICsga2V5ICsgJy4nKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleXMucHVzaChwcmVmaXggKyBrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4ga2V5cztcbn1cblxuZXhwb3J0IHR5cGUgQVhQRXhwcmVzc2lvbiA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgQVhQTWV0YURhdGEgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG5leHBvcnQgdHlwZSBBWFBPcHRpb25zRGF0YSA9IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQVmFsdWVVbml0IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICByYXRpbzogbnVtYmVyO1xuICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZhbHVlVW5pdHMge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGl0ZW1zOiBBWFBWYWx1ZVVuaXRbXTtcbiAgZGVmYXVsdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVJlZmVyZW5jZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBVc2VyUmVmZXJlbmNlIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZT86ICd1c2VyJztcbiAgZnVsbE5hbWU/OiBzdHJpbmc7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFwcGxpY2F0aW9uVXNlclJlZmVyZW5jZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVhQQ29udGVudFR5cGUgPSAndGV4dCcgfCAnaW1hZ2UnIHwgJ2ZpbGUnIHwgJ3ZpZGVvJyB8ICdsaW5rJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb250ZW50IHtcbiAgY29udGVudDogc3RyaW5nO1xuICBjb250ZW50VHlwZTogQVhQQ29udGVudFR5cGU7XG59XG4iXX0=","import { getSystemActions } from './actions.types';\nexport function applySystemActionDefault(action, type) {\n const systemAction = getSystemActions(type);\n return {\n name: systemAction.key,\n title: systemAction.title,\n icon: systemAction.icon,\n color: systemAction.color,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90eXBlcy9pbnRlcmFjdGl2ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQXdDLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFpRnpGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF5QixFQUFFLElBQXlCO0lBQzNGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLE9BQU87UUFDTCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUc7UUFDdEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1FBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtRQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7S0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXh0cmFzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYUE1ldGFEYXRhIH0gZnJvbSAnLi9jb3JlLnR5cGVzJztcbmltcG9ydCB7IEFYUFN5c3RlbUFjdGlvbiwgQVhQU3lzdGVtQWN0aW9uVHlwZSwgZ2V0U3lzdGVtQWN0aW9ucyB9IGZyb20gJy4vYWN0aW9ucy50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFYUEFjdGlvbk1lbnVJdGVtID0ge1xuICBuYW1lPzogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgYnJlYWs/OiBib29sZWFuO1xuICBpdGVtcz86IEFYUEFjdGlvbk1lbnVJdGVtW107XG4gIGNvbW1hbmQ/OiBBWFBFeGVjdXRlQ29tbWFuZDtcbiAgZGlzYWJsZWQ/OiBib29sZWFuIHwgc3RyaW5nO1xuICB2aXNpYmxlPzogYm9vbGVhbiB8IHN0cmluZztcbiAgcG9saWN5Pzogc3RyaW5nO1xufTtcblxuXG5leHBvcnQgdHlwZSBBWFBCYWNrQnV0dG9uID0ge1xuICB0aXRsZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQVhQQnJlYWRjcnVtYkl0ZW0gPSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNvbW1hbmQ/OiBBWFBFeGVjdXRlQ29tbWFuZDtcbn07XG5cbmV4cG9ydCB0eXBlIEFYUEJhZGdlID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgY29sb3I/OiAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZGFuZ2VyJztcbn07XG5cbmV4cG9ydCB0eXBlIEFYUEV4ZWN1dGVDb21tYW5kID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBBWFBNZXRhRGF0YTtcbiAgbWV0YWRhdGE/OiBBWFBNZXRhRGF0YTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8VCA9IGFueT4ge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICByZXN1bHQ/OiBUO1xuICBlcnJvcj86IHtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBRdWVyeUZldGNoUmVzdWx0PFQgPSBhbnk+IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgcmVzdWx0Pzoge1xuICAgIGl0ZW1zPzogVFtdO1xuICAgIHRvdGFsPzogbnVtYmVyO1xuICB9O1xuICBlcnJvcj86IHtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQVhQTmF2aWdhdGVBY3Rpb25PcHRpb25zID0ge1xuICByb3V0ZXI6IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyAmIHsgdGFyZ2V0Pzogc3RyaW5nIH07XG4gIH07XG4gIG1vZGFsOiB7XG4gICAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBvcHRpb25zPzogYW55O1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBOYXZpZ2F0ZUFjdGlvbkNvbW1hbmQ8VCBleHRlbmRzIGtleW9mIEFYUE5hdmlnYXRlQWN0aW9uT3B0aW9ucz4ge1xuICB0eXBlOiBUO1xuICBvcHRpb25zOiBBWFBOYXZpZ2F0ZUFjdGlvbk9wdGlvbnNbVF07XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTeXN0ZW1BY3Rpb25EZWZhdWx0KGFjdGlvbjogQVhQQWN0aW9uTWVudUl0ZW0sIHR5cGU6IEFYUFN5c3RlbUFjdGlvblR5cGUpOiBBWFBBY3Rpb25NZW51SXRlbSB7XG4gIGNvbnN0IHN5c3RlbUFjdGlvbiA9IGdldFN5c3RlbUFjdGlvbnModHlwZSk7XG4gIHJldHVybiB7XG4gICAgbmFtZTogc3lzdGVtQWN0aW9uLmtleSxcbiAgICB0aXRsZTogc3lzdGVtQWN0aW9uLnRpdGxlLFxuICAgIGljb246IHN5c3RlbUFjdGlvbi5pY29uLFxuICAgIGNvbG9yOiBzeXN0ZW1BY3Rpb24uY29sb3IsXG4gIH07XG59Il19","export class AXPImageUrlLogoConfig {\n constructor(url, width, height) {\n this.url = url;\n this.width = width;\n this.height = height;\n }\n}\nexport class AXPComponentLogoConfig {\n constructor(component) {\n this.component = component;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2xvZ28udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFtQixHQUFXLEVBQVMsS0FBYyxFQUFTLE1BQWU7UUFBMUQsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVM7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQUcsQ0FBQztDQUNsRjtBQUNELE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFBbUIsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUFHLENBQUM7Q0FDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQTG9nb0NvbmZpZyB7fVxuXG5leHBvcnQgY2xhc3MgQVhQSW1hZ2VVcmxMb2dvQ29uZmlnIGltcGxlbWVudHMgQVhQTG9nb0NvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1cmw6IHN0cmluZywgcHVibGljIHdpZHRoPzogbnVtYmVyLCBwdWJsaWMgaGVpZ2h0PzogbnVtYmVyKSB7fVxufVxuZXhwb3J0IGNsYXNzIEFYUENvbXBvbmVudExvZ29Db25maWcgaW1wbGVtZW50cyBBWFBMb2dvQ29uZmlnIHtcbiAgaGVpZ2h0PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB3aWR0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBvbmVudDogVHlwZTxhbnk+KSB7fVxufVxuIl19","export var AXPPlatformScope;\n(function (AXPPlatformScope) {\n AXPPlatformScope[\"Environment\"] = \"C\";\n AXPPlatformScope[\"Global\"] = \"G\";\n AXPPlatformScope[\"Platform\"] = \"P\";\n AXPPlatformScope[\"Tenant\"] = \"T\";\n AXPPlatformScope[\"User\"] = \"U\";\n})(AXPPlatformScope || (AXPPlatformScope = {}));\n;\nexport function resolvePlatformScopeKey(name) {\n const scopeMap = {\n environment: AXPPlatformScope.Environment,\n global: AXPPlatformScope.Global,\n platform: AXPPlatformScope.Platform,\n tenant: AXPPlatformScope.Tenant,\n user: AXPPlatformScope.User,\n };\n return scopeMap[name.toLowerCase()] ?? AXPPlatformScope.User;\n}\nexport function resolvePlatformScopeName(scope) {\n const scopeMap = {\n C: 'environment',\n G: 'global',\n P: 'platform',\n T: 'tenant',\n U: 'user',\n };\n return scopeMap[scope] ?? 'user';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90eXBlcy9zY29wZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQ3hCLHFDQUFpQixDQUFBO0lBQ2pCLGdDQUFZLENBQUE7SUFDWixrQ0FBYyxDQUFBO0lBQ2QsZ0NBQVksQ0FBQTtJQUNaLDhCQUFVLENBQUE7QUFDZCxDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUFBLENBQUM7QUFFRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBWTtJQUNoRCxNQUFNLFFBQVEsR0FBd0M7UUFDbEQsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7UUFDekMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07UUFDL0IsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7UUFDbkMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07UUFDL0IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7S0FDOUIsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQTBCO0lBQy9ELE1BQU0sUUFBUSxHQUF3QztRQUNsRCxDQUFDLEVBQUUsYUFBYTtRQUNoQixDQUFDLEVBQUUsUUFBUTtRQUNYLENBQUMsRUFBRSxVQUFVO1FBQ2IsQ0FBQyxFQUFFLFFBQVE7UUFDWCxDQUFDLEVBQUUsTUFBTTtLQUNaLENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUFBsYXRmb3JtU2NvcGVLZXkgPSAnQycgfCAnRycgfCAnUCcgfCAnVCcgfCAnVSc7XG5leHBvcnQgZW51bSBBWFBQbGF0Zm9ybVNjb3BlIHtcbiAgICBFbnZpcm9ubWVudCA9ICdDJyxcbiAgICBHbG9iYWwgPSAnRycsXG4gICAgUGxhdGZvcm0gPSAnUCcsXG4gICAgVGVuYW50ID0gJ1QnLFxuICAgIFVzZXIgPSAnVSdcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGxhdGZvcm1TY29wZUtleShuYW1lOiBzdHJpbmcpOiBBWFBQbGF0Zm9ybVNjb3BlS2V5IHtcbiAgICBjb25zdCBzY29wZU1hcDogUmVjb3JkPHN0cmluZywgQVhQUGxhdGZvcm1TY29wZUtleT4gPSB7XG4gICAgICAgIGVudmlyb25tZW50OiBBWFBQbGF0Zm9ybVNjb3BlLkVudmlyb25tZW50LFxuICAgICAgICBnbG9iYWw6IEFYUFBsYXRmb3JtU2NvcGUuR2xvYmFsLFxuICAgICAgICBwbGF0Zm9ybTogQVhQUGxhdGZvcm1TY29wZS5QbGF0Zm9ybSxcbiAgICAgICAgdGVuYW50OiBBWFBQbGF0Zm9ybVNjb3BlLlRlbmFudCxcbiAgICAgICAgdXNlcjogQVhQUGxhdGZvcm1TY29wZS5Vc2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHNjb3BlTWFwW25hbWUudG9Mb3dlckNhc2UoKV0gPz8gQVhQUGxhdGZvcm1TY29wZS5Vc2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlS2V5KTogc3RyaW5nIHtcbiAgICBjb25zdCBzY29wZU1hcDogUmVjb3JkPEFYUFBsYXRmb3JtU2NvcGVLZXksIHN0cmluZz4gPSB7XG4gICAgICAgIEM6ICdlbnZpcm9ubWVudCcsXG4gICAgICAgIEc6ICdnbG9iYWwnLFxuICAgICAgICBQOiAncGxhdGZvcm0nLFxuICAgICAgICBUOiAndGVuYW50JyxcbiAgICAgICAgVTogJ3VzZXInLFxuICAgIH07XG4gICAgcmV0dXJuIHNjb3BlTWFwW3Njb3BlXSA/PyAndXNlcic7XG59Il19","export var AXPExportTemplateToken;\n(function (AXPExportTemplateToken) {\n AXPExportTemplateToken[\"Date\"] = \"{date}\";\n AXPExportTemplateToken[\"Time\"] = \"{time}\";\n AXPExportTemplateToken[\"User\"] = \"{user}\";\n AXPExportTemplateToken[\"ReportTitle\"] = \"{title}\";\n AXPExportTemplateToken[\"UUID\"] = \"{uuid}\";\n})(AXPExportTemplateToken || (AXPExportTemplateToken = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdHlwZXMvZXhwb3J0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFQSxNQUFNLENBQU4sSUFBWSxzQkFNWDtBQU5ELFdBQVksc0JBQXNCO0lBQzlCLHlDQUFlLENBQUE7SUFDZix5Q0FBZSxDQUFBO0lBQ2YseUNBQWUsQ0FBQTtJQUNmLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQU5XLHNCQUFzQixLQUF0QixzQkFBc0IsUUFNakMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0T3B0aW9ucyB7XG4gICAgZmlsZU5hbWVUZW1wbGF0ZT86IHN0cmluZzsgLy8g2YXYq9in2YQ6IFwiUmVwb3J0X3tkYXRlfV97dXNlcn1cIlxuXG4gICAgcGRmPzogQVhQRXhwb3J0UGRmT3B0aW9ucztcbiAgICBleGNlbD86IEFYUEV4cG9ydEV4Y2VsT3B0aW9ucztcbiAgICBjc3Y/OiBBWFBFeHBvcnRDc3ZPcHRpb25zO1xuICAgIHByaW50PzogQVhQRXhwb3J0UHJpbnRPcHRpb25zO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0UGRmT3B0aW9ucyB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcblxuICAgIHBhZ2VTaXplPzogJ0E0JyB8ICdBMycgfCAnTGV0dGVyJyB8ICdMZWdhbCc7XG4gICAgb3JpZW50YXRpb24/OiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZSc7XG5cbiAgICBtYXJnaW4/OiBudW1iZXIgfCB7XG4gICAgICAgIHRvcDogbnVtYmVyO1xuICAgICAgICBib3R0b206IG51bWJlcjtcbiAgICAgICAgbGVmdDogbnVtYmVyO1xuICAgICAgICByaWdodDogbnVtYmVyO1xuICAgIH07XG5cbiAgICBmb250Pzogc3RyaW5nO1xuICAgIGZvbnRTaXplPzogbnVtYmVyO1xuXG4gICAgaGVhZGVyRW5hYmxlZD86IGJvb2xlYW47XG4gICAgZm9vdGVyRW5hYmxlZD86IGJvb2xlYW47XG4gICAgc2hvd1BhZ2VOdW1iZXJzPzogYm9vbGVhbjtcblxuICAgIHdhdGVybWFya1RleHQ/OiBzdHJpbmc7XG4gICAgd2F0ZXJtYXJrT3BhY2l0eT86IG51bWJlcjtcblxuICAgIGNvbXByZXNzaW9uPzogYm9vbGVhbjtcbiAgICBlbWJlZEltYWdlcz86IGJvb2xlYW47XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFeHBvcnRFeGNlbE9wdGlvbnMge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBzaGVldE5hbWU/OiBzdHJpbmc7XG4gICAgaW5jbHVkZUZpbHRlcnM/OiBib29sZWFuO1xuICAgIGZyZWV6ZUhlYWRlcj86IGJvb2xlYW47XG4gICAgYXV0b0ZpdENvbHVtbnM/OiBib29sZWFuO1xuXG4gICAgc3R5bGU/OiB7XG4gICAgICAgIGhlYWRlckNvbG9yPzogc3RyaW5nO1xuICAgICAgICBmb250Pzogc3RyaW5nO1xuICAgICAgICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAgICAgbnVtYmVyRm9ybWF0PzogJ2F1dG8nIHwgJ2N1cnJlbmN5JyB8ICdwZXJjZW50JyB8ICdkZWNpbWFsJztcbiAgICB9O1xuXG4gICAgc3VtbWFyeVJvd0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIGV4cG9ydEhpZGRlbkNvbHVtbnM/OiBib29sZWFuO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0Q3N2T3B0aW9ucyB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcblxuICAgIGRlbGltaXRlcj86ICcsJyB8ICc7JyB8ICdcXHQnO1xuICAgIGluY2x1ZGVIZWFkZXJzPzogYm9vbGVhbjtcbiAgICBxdW90ZVZhbHVlcz86IGJvb2xlYW47XG4gICAgZW5jb2Rpbmc/OiAndXRmLTgnIHwgJ3V0Zi0xNicgfCAnaXNvLTg4NTktMSc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFeHBvcnRQcmludE9wdGlvbnMge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBpbmNsdWRlSGVhZGVyPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlRm9vdGVyPzogYm9vbGVhbjtcbiAgICBzaG93UGFnZUJyZWFrcz86IGJvb2xlYW47XG4gICAgY3VzdG9tQ3NzVXJsPzogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBlbnVtIEFYUEV4cG9ydFRlbXBsYXRlVG9rZW4ge1xuICAgIERhdGUgPSAne2RhdGV9JyxcbiAgICBUaW1lID0gJ3t0aW1lfScsXG4gICAgVXNlciA9ICd7dXNlcn0nLFxuICAgIFJlcG9ydFRpdGxlID0gJ3t0aXRsZX0nLFxuICAgIFVVSUQgPSAne3V1aWR9Jyxcbn1cbiJdfQ==","import { AXCalendarService } from '@acorex/core/date-time';\nimport { inject, Pipe, signal } from '@angular/core';\nimport { interval } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class AXPCountdownPipe {\n constructor() {\n this.calendarService = inject(AXCalendarService);\n this.countdownSignal = signal(this.setupTimer(), ...(ngDevMode ? [{ debugName: \"countdownSignal\" }] : []));\n this.targetDate = 0;\n this.prevValue = 0;\n }\n transform(value) {\n if (this.prevValue != value) {\n this.prevValue = value;\n const expireTime = this.calendarService.calendar.add(new Date(), 'second', value).date;\n this.updateTargetDate(expireTime.toISOString());\n }\n return this.countdownSignal();\n }\n setupTimer() {\n return interval(1000).pipe(startWith(0), map(() => {\n const diff = this.targetDate - new Date().getTime();\n if (diff < 0) {\n return \"Time's up!\";\n }\n const times = [86400, 3600, 60, 1].map((seconds) => Math.floor((diff / 1000 / seconds) % (seconds === 1 ? 60 : 24)));\n const labels = ['d', 'h', 'm', 's'];\n return times\n .map((t, i) => (t > 0 || i === 3 ? `${t}${labels[i]}` : ''))\n .join(' ')\n .trim();\n }));\n }\n updateTargetDate(value) {\n this.targetDate = new Date(value).getTime();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCountdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCountdownPipe, isStandalone: true, name: \"countdown\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXPCountdownPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'countdown',\n pure: false,\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRkb3duLXRpbWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdXRpbHMvY291bnRkb3duLXRpbWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU9oRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBTVUsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU1QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLDJEQUFDLENBQUM7UUFFNUMsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQUcsQ0FBQyxDQUFDO0tBaUN2QjtJQS9CQyxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDeEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUNaLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxZQUFZLENBQUM7WUFDdEIsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JILE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDcEMsT0FBTyxLQUFLO2lCQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQ1QsSUFBSSxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QyxDQUFDOytHQXRDVSxnQkFBZ0I7NkdBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFMNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztvQkFDakIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbnRlcnZhbCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NvdW50ZG93bicsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb3VudGRvd25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIGNvdW50ZG93blNpZ25hbCA9IHNpZ25hbCh0aGlzLnNldHVwVGltZXIoKSk7XG5cbiAgcHJpdmF0ZSB0YXJnZXREYXRlOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHByZXZWYWx1ZSA9IDA7XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLnByZXZWYWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgdGhpcy5wcmV2VmFsdWUgPSB2YWx1ZTtcbiAgICAgIGNvbnN0IGV4cGlyZVRpbWUgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5hZGQobmV3IERhdGUoKSwgJ3NlY29uZCcsIHZhbHVlKS5kYXRlO1xuICAgICAgdGhpcy51cGRhdGVUYXJnZXREYXRlKGV4cGlyZVRpbWUudG9JU09TdHJpbmcoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvdW50ZG93blNpZ25hbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFRpbWVyKCkge1xuICAgIHJldHVybiBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgc3RhcnRXaXRoKDApLFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGlmZiA9IHRoaXMudGFyZ2V0RGF0ZSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBpZiAoZGlmZiA8IDApIHtcbiAgICAgICAgICByZXR1cm4gXCJUaW1lJ3MgdXAhXCI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0aW1lcyA9IFs4NjQwMCwgMzYwMCwgNjAsIDFdLm1hcCgoc2Vjb25kcykgPT4gTWF0aC5mbG9vcigoZGlmZiAvIDEwMDAgLyBzZWNvbmRzKSAlIChzZWNvbmRzID09PSAxID8gNjAgOiAyNCkpKTtcbiAgICAgICAgY29uc3QgbGFiZWxzID0gWydkJywgJ2gnLCAnbScsICdzJ107XG4gICAgICAgIHJldHVybiB0aW1lc1xuICAgICAgICAgIC5tYXAoKHQsIGkpID0+ICh0ID4gMCB8fCBpID09PSAzID8gYCR7dH0ke2xhYmVsc1tpXX1gIDogJycpKVxuICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAudHJpbSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYXJnZXREYXRlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhcmdldERhdGUgPSBuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZSgpO1xuICB9XG59XG4iXX0=","import { endsWith, get, gt, gte, includes, isEmpty, isEqual, isNil, lt, lte, orderBy, startsWith } from 'lodash-es';\nconst loggingEnabled = false; // Set to true to enable logging, false to disable\nfunction applyCondition(item, condition) {\n const rawValue = condition.field ? get(item, condition.field) : null;\n const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;\n const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;\n // Conditional Logging for debugging\n if (loggingEnabled) {\n console.log('Condition:', condition);\n console.log('Item Value:', itemValue);\n console.log('Condition Value:', conditionValue);\n }\n let result;\n const valueToCompare = isNil(condition.field) || condition.field === '' ? conditionValue : itemValue;\n const conditionType = condition?.operator?.type;\n if (!conditionType) {\n return true;\n }\n const op = String(conditionType);\n switch (op) {\n case 'equal':\n case 'eq':\n result = isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Equal check result:', result);\n }\n break;\n case 'notEqual':\n case 'ne':\n case 'neq':\n result = !isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Not equal check result:', result);\n }\n break;\n case 'greaterThan':\n case 'gt':\n result = gt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than check result:', result);\n }\n break;\n case 'lessThan':\n case 'lt':\n result = lt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than check result:', result);\n }\n break;\n case 'greaterThanOrEqual':\n case 'gte':\n result = gte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than or equal check result:', result);\n }\n break;\n case 'lessThanOrEqual':\n case 'lte':\n result = lte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than or equal check result:', result);\n }\n break;\n case 'contains':\n if (typeof valueToCompare === 'string') {\n result = includes(valueToCompare, conditionValue);\n }\n else if (Array.isArray(valueToCompare)) {\n result = includes(valueToCompare.map((val) => val.toString().toLowerCase()), conditionValue);\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Contains check result:', result);\n }\n break;\n case 'in':\n if (Array.isArray(conditionValue)) {\n if (typeof valueToCompare === 'string') {\n result = conditionValue.some(val => typeof val === 'string' ? val.toLowerCase() === valueToCompare : val === valueToCompare);\n }\n else if (Array.isArray(valueToCompare)) {\n result = valueToCompare.some(val => conditionValue.some(condVal => typeof val === 'string' && typeof condVal === 'string'\n ? val.toLowerCase() === condVal.toLowerCase()\n : val === condVal));\n }\n else {\n result = conditionValue.includes(valueToCompare);\n }\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('In check result:', result);\n }\n break;\n case 'notContains':\n if (typeof valueToCompare === 'string') {\n result = !includes(valueToCompare, conditionValue);\n }\n else if (Array.isArray(valueToCompare)) {\n result = !includes(valueToCompare.map((val) => val.toString().toLowerCase()), conditionValue);\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Not contains check result:', result);\n }\n break;\n case 'startsWith':\n result = typeof valueToCompare === 'string' && startsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Starts with check result:', result);\n }\n break;\n case 'endsWith':\n result = typeof valueToCompare === 'string' && endsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Ends with check result:', result);\n }\n break;\n case 'isEmpty':\n result = isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is empty check result:', result);\n }\n break;\n case 'isNull':\n result = isNil(valueToCompare);\n if (loggingEnabled) {\n console.log('Is null check result:', result);\n }\n break;\n case 'isNotEmpty':\n result = !isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is not empty check result:', result);\n }\n break;\n case 'between':\n result = !isNil(valueToCompare) && valueToCompare >= condition.value.from && valueToCompare <= condition.value.to;\n if (loggingEnabled) {\n console.log('Between check result:', result);\n }\n break;\n default:\n result = true;\n if (loggingEnabled) {\n console.log('Default case, returning true');\n }\n }\n // Apply negative flag if present on operator (invert the result)\n const isNegative = !!condition?.operator?.negative;\n return isNegative ? !result : result;\n}\nexport function applyFilterArray(dataArray, filters, logic = 'and') {\n if (filters && filters.length) {\n return dataArray.filter((item) => {\n if (logic === 'and') {\n return filters.every((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n else {\n // logic === 'or'\n return filters.some((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n });\n }\n else {\n return dataArray;\n }\n}\nexport function applySortArray(dataArray, sorts) {\n if (sorts && sorts.length > 0) {\n const sortFields = sorts.map((s) => s.field);\n const sortOrders = sorts.map((s) => s.dir);\n return orderBy(dataArray, sortFields, sortOrders);\n }\n else\n return dataArray;\n}\nexport function applyPagination(dataArray, skip, take) {\n return dataArray.slice(skip, skip + take);\n}\nexport async function applyQueryArray(dataArray, query) {\n let result = [...dataArray];\n // Apply filtering\n if (query.filter) {\n result = applyFilterArray(result, [query.filter], query.filter.logic ?? 'and');\n }\n // Store total count before pagination\n const total = result.length;\n // Apply sorting\n if (query.sort && query.sort.length > 0) {\n result = applySortArray(result, query.sort);\n }\n // Apply pagination\n result = applyPagination(result, query.skip, query.take);\n return {\n items: result,\n total,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb25kaXRpb25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3V0aWxzL2RhdGEtY29uZGl0aW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBILE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtBQUVoRixTQUFTLGNBQWMsQ0FBQyxJQUFTLEVBQUUsU0FBbUM7SUFDcEUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRSxNQUFNLFNBQVMsR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ25GLE1BQU0sY0FBYyxHQUFHLE9BQU8sU0FBUyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFFN0csb0NBQW9DO0lBQ3BDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxD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S0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFFNUIsZ0JBQWdCO0lBQ2hCLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLE1BQU07UUFDYixLQUFLO0tBQ04sQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdCxcbiAgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLFxuICBBWERhdGFTb3VyY2VMb2FkQ2FsbGJhY2ssXG4gIEFYRGF0YVNvdXJjZVF1ZXJ5LFxuICBBWERhdGFTb3VyY2VTb3J0T3B0aW9uLFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgZW5kc1dpdGgsIGdldCwgZ3QsIGd0ZSwgaW5jbHVkZXMsIGlzRW1wdHksIGlzRXF1YWwsIGlzTmlsLCBsdCwgbHRlLCBvcmRlckJ5LCBzdGFydHNXaXRoIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3QgbG9nZ2luZ0VuYWJsZWQgPSBmYWxzZTsgLy8gU2V0IHRvIHRydWUgdG8gZW5hYmxlIGxvZ2dpbmcsIGZhbHNlIHRvIGRpc2FibGVcblxuZnVuY3Rpb24gYXBwbHlDb25kaXRpb24oaXRlbTogYW55LCBjb25kaXRpb246IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbikge1xuICBjb25zdCByYXdWYWx1ZSA9IGNvbmRpdGlvbi5maWVsZCA/IGdldChpdGVtLCBjb25kaXRpb24uZmllbGQpIDogbnVsbDtcbiAgY29uc3QgaXRlbVZhbHVlID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnc3RyaW5nJyA/IHJhd1ZhbHVlLnRvTG93ZXJDYXNlKCkgOiByYXdWYWx1ZTtcbiAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSB0eXBlb2YgY29uZGl0aW9uLnZhbHVlID09PSAnc3RyaW5nJyA/IGNvbmRpdGlvbi52YWx1ZS50b0xvd2VyQ2FzZSgpIDogY29uZGl0aW9uLnZhbHVlO1xuXG4gIC8vIENvbmRpdGlvbmFsIExvZ2dpbmcgZm9yIGRlYnVnZ2luZ1xuICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICBjb25zb2xlLmxvZygnQ29uZGl0aW9uOicsIGNvbmRpdGlvbik7XG4gICAgY29uc29sZS5sb2coJ0l0ZW0gVmFsdWU6JywgaXRlbVZhbHVlKTtcbiAgICBjb25zb2xlLmxvZygnQ29uZGl0aW9uIFZhbHVlOicsIGNvbmRpdGlvblZhbHVlKTtcbiAgfVxuXG4gIGxldCByZXN1bHQ6IGJvb2xlYW47XG4gIGNvbnN0IHZhbHVlVG9Db21wYXJlID0gaXNOaWwoY29uZGl0aW9uLmZpZWxkKSB8fCBjb25kaXRpb24uZmllbGQgPT09ICcnID8gY29uZGl0aW9uVmFsdWUgOiBpdGVtVmFsdWU7XG4gIGNvbnN0IGNvbmRpdGlvblR5cGUgPSBjb25kaXRpb24/Lm9wZXJhdG9yPy50eXBlO1xuICBpZiAoIWNvbmRpdGlvblR5cGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IG9wID0gU3RyaW5nKGNvbmRpdGlvblR5cGUpO1xuXG4gIHN3aXRjaCAob3ApIHtcbiAgICBjYXNlICdlcXVhbCc6XG4gICAgY2FzZSAnZXEnOlxuICAgICAgcmVzdWx0ID0gaXNFcXVhbCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdFcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ25vdEVxdWFsJzpcbiAgICBjYXNlICduZSc6XG4gICAgY2FzZSAnbmVxJzpcbiAgICAgIHJlc3VsdCA9ICFpc0VxdWFsKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ05vdCBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcbiAgICBjYXNlICdndCc6XG4gICAgICByZXN1bHQgPSBndCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdHcmVhdGVyIHRoYW4gY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZXNzVGhhbic6XG4gICAgY2FzZSAnbHQnOlxuICAgICAgcmVzdWx0ID0gbHQodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTGVzcyB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsJzpcbiAgICBjYXNlICdndGUnOlxuICAgICAgcmVzdWx0ID0gZ3RlKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0dyZWF0ZXIgdGhhbiBvciBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlc3NUaGFuT3JFcXVhbCc6XG4gICAgY2FzZSAnbHRlJzpcbiAgICAgIHJlc3VsdCA9IGx0ZSh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdMZXNzIHRoYW4gb3IgZXF1YWwgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdjb250YWlucyc6XG4gICAgICBpZiAodHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXN1bHQgPSBpbmNsdWRlcyh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICByZXN1bHQgPSBpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnQ29udGFpbnMgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdpbic6XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb25kaXRpb25WYWx1ZSkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXN1bHQgPSBjb25kaXRpb25WYWx1ZS5zb21lKHZhbCA9PlxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVUb0NvbXBhcmUgOiB2YWwgPT09IHZhbHVlVG9Db21wYXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlVG9Db21wYXJlLnNvbWUodmFsID0+XG4gICAgICAgICAgICBjb25kaXRpb25WYWx1ZS5zb21lKGNvbmRWYWwgPT5cbiAgICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGNvbmRWYWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gY29uZFZhbC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgOiB2YWwgPT09IGNvbmRWYWxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvblZhbHVlLmluY2x1ZGVzKHZhbHVlVG9Db21wYXJlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0luIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90Q29udGFpbnMnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gIWluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUb0NvbXBhcmUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICFpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTm90IGNvbnRhaW5zIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhcnRzV2l0aCc6XG4gICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnICYmIHN0YXJ0c1dpdGgodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlIGFzIHN0cmluZyk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1N0YXJ0cyB3aXRoIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZW5kc1dpdGgnOlxuICAgICAgcmVzdWx0ID0gdHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJyAmJiBlbmRzV2l0aCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnRW5kcyB3aXRoIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNFbXB0eSc6XG4gICAgICByZXN1bHQgPSBpc0VtcHR5KHZhbHVlVG9Db21wYXJlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnSXMgZW1wdHkgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdpc051bGwnOlxuICAgICAgcmVzdWx0ID0gaXNOaWwodmFsdWVUb0NvbXBhcmUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJcyBudWxsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNOb3RFbXB0eSc6XG4gICAgICByZXN1bHQgPSAhaXNFbXB0eSh2YWx1ZVRvQ29tcGFyZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0lzIG5vdCBlbXB0eSBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JldHdlZW4nOlxuICAgICAgcmVzdWx0ID0gIWlzTmlsKHZhbHVlVG9Db21wYXJlKSAmJiB2YWx1ZVRvQ29tcGFyZSA+PSAoY29uZGl0aW9uLnZhbHVlIGFzIHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0pLmZyb20gJiYgdmFsdWVUb0NvbXBhcmUgPD0gKGNvbmRpdGlvbi52YWx1ZSBhcyB7IGZyb206IG51bWJlcjsgdG86IG51bWJlciB9KS50bztcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnQmV0d2VlbiBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdEZWZhdWx0IGNhc2UsIHJldHVybmluZyB0cnVlJyk7XG4gICAgICB9XG4gIH1cblxuICAvLyBBcHBseSBuZWdhdGl2ZSBmbGFnIGlmIHByZXNlbnQgb24gb3BlcmF0b3IgKGludmVydCB0aGUgcmVzdWx0KVxuICBjb25zdCBpc05lZ2F0aXZlID0gISFjb25kaXRpb24/Lm9wZXJhdG9yPy5uZWdhdGl2ZTtcbiAgcmV0dXJuIGlzTmVnYXRpdmUgPyAhcmVzdWx0IDogcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlGaWx0ZXJBcnJheShcbiAgZGF0YUFycmF5OiBhbnlbXSxcbiAgZmlsdGVycz86IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdLFxuICBsb2dpYzogJ2FuZCcgfCAnb3InID0gJ2FuZCcsXG4pOiBhbnlbXSB7XG4gIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGRhdGFBcnJheS5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChsb2dpYyA9PT0gJ2FuZCcpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuZXZlcnkoKGYpID0+IHtcbiAgICAgICAgICByZXR1cm4gZi5maWx0ZXJzID8gYXBwbHlGaWx0ZXJBcnJheShbaXRlbV0sIGYuZmlsdGVycywgZi5sb2dpYykubGVuZ3RoID4gMCA6IGFwcGx5Q29uZGl0aW9uKGl0ZW0sIGYpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGxvZ2ljID09PSAnb3InXG4gICAgICAgIHJldHVybiBmaWx0ZXJzLnNvbWUoKGYpID0+IHtcbiAgICAgICAgICByZXR1cm4gZi5maWx0ZXJzID8gYXBwbHlGaWx0ZXJBcnJheShbaXRlbV0sIGYuZmlsdGVycywgZi5sb2dpYykubGVuZ3RoID4gMCA6IGFwcGx5Q29uZGl0aW9uKGl0ZW0sIGYpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZGF0YUFycmF5O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNvcnRBcnJheShkYXRhQXJyYXk6IGFueSwgc29ydHM6IEFYRGF0YVNvdXJjZVNvcnRPcHRpb25bXSkge1xuICBpZiAoc29ydHMgJiYgc29ydHMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHNvcnRGaWVsZHMgPSBzb3J0cy5tYXAoKHMpID0+IHMuZmllbGQpO1xuICAgIGNvbnN0IHNvcnRPcmRlcnMgPSBzb3J0cy5tYXAoKHMpID0+IHMuZGlyKTtcbiAgICByZXR1cm4gb3JkZXJCeShkYXRhQXJyYXksIHNvcnRGaWVsZHMsIHNvcnRPcmRlcnMpO1xuICB9IGVsc2UgcmV0dXJuIGRhdGFBcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGFnaW5hdGlvbjxUPihkYXRhQXJyYXk6IFRbXSwgc2tpcDogbnVtYmVyLCB0YWtlOiBudW1iZXIpOiBUW10ge1xuICByZXR1cm4gZGF0YUFycmF5LnNsaWNlKHNraXAsIHNraXAgKyB0YWtlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5UXVlcnlBcnJheTxUPihcbiAgZGF0YUFycmF5OiBUW10sXG4gIHF1ZXJ5OiBBWERhdGFTb3VyY2VRdWVyeSxcbik6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8VD4+IHtcbiAgbGV0IHJlc3VsdCA9IFsuLi5kYXRhQXJyYXldO1xuXG4gIC8vIEFwcGx5IGZpbHRlcmluZ1xuICBpZiAocXVlcnkuZmlsdGVyKSB7XG4gICAgcmVzdWx0ID0gYXBwbHlGaWx0ZXJBcnJheShyZXN1bHQsIFtxdWVyeS5maWx0ZXJdLCBxdWVyeS5maWx0ZXIubG9naWMgPz8gJ2FuZCcpO1xuICB9XG5cbiAgLy8gU3RvcmUgdG90YWwgY291bnQgYmVmb3JlIHBhZ2luYXRpb25cbiAgY29uc3QgdG90YWwgPSByZXN1bHQubGVuZ3RoO1xuXG4gIC8vIEFwcGx5IHNvcnRpbmdcbiAgaWYgKHF1ZXJ5LnNvcnQgJiYgcXVlcnkuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgcmVzdWx0ID0gYXBwbHlTb3J0QXJyYXkocmVzdWx0LCBxdWVyeS5zb3J0KTtcbiAgfVxuXG4gIC8vIEFwcGx5IHBhZ2luYXRpb25cbiAgcmVzdWx0ID0gYXBwbHlQYWdpbmF0aW9uKHJlc3VsdCwgcXVlcnkuc2tpcCwgcXVlcnkudGFrZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpdGVtczogcmVzdWx0LFxuICAgIHRvdGFsLFxuICB9O1xufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for applying and resetting text highlighting within specified HTML elements.\n */\nexport class AXHighlightService {\n constructor() { }\n /**\n * Highlights all occurrences of a search value within the elements matching the provided query selector.\n *\n * @param querySelector - CSS selector to identify target elements.\n * @param searchValue - Text to search and highlight.\n */\n highlight(querySelector, searchValue) {\n this.clear();\n if (!querySelector || !searchValue) {\n return;\n }\n this.querySelector = querySelector;\n this.searchValue = searchValue;\n const elements = document.querySelectorAll(querySelector);\n elements.forEach((element) => {\n this.applyHighlight(element);\n });\n }\n /**\n * Resets all highlighted text within the elements matching the previously used query selector.\n */\n clear() {\n const elements = document.querySelectorAll(`${this.querySelector} .ax-highlight-text`);\n elements.forEach((element) => {\n let combinedText = '';\n element.querySelectorAll('span').forEach((span) => {\n combinedText += span.textContent;\n });\n const mergedSpan = document.createElement('span');\n mergedSpan.textContent = combinedText;\n element?.parentNode?.replaceChild(mergedSpan, element);\n });\n }\n /**\n * Applies highlighting to a specific element by matching text against the search value.\n *\n * @param element - The HTML element to apply highlights to.\n */\n applyHighlight(element) {\n const searchRegex = new RegExp(`(${this.searchValue})`, 'gi');\n this.recursivelyHighlight(element, searchRegex);\n }\n /**\n * Recursively applies highlighting to text nodes within an element.\n *\n * @param element - The current node being processed.\n * @param searchRegex - Regular expression for matching text to highlight.\n */\n recursivelyHighlight(element, searchRegex) {\n const childNodes = Array.from(element.childNodes);\n childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const textContent = node.textContent || '';\n if (textContent.match(searchRegex)) {\n const highlightedHTML = this.createHighlightedHTML(textContent, searchRegex);\n const tempContainer = document.createElement('div');\n tempContainer.innerHTML = highlightedHTML;\n const fragment = document.createDocumentFragment();\n Array.from(tempContainer.childNodes).forEach((child) => fragment.appendChild(child));\n node.replaceWith(fragment);\n }\n }\n else if (node.nodeType === Node.ELEMENT_NODE) {\n this.recursivelyHighlight(node, searchRegex);\n }\n });\n }\n /**\n * Generates the HTML structure for highlighted text.\n *\n * @param textContent - The original text content to process.\n * @param searchRegex - Regular expression for matching text to highlight.\n * @returns A string of HTML with highlighted portions wrapped in span elements.\n */\n createHighlightedHTML(textContent, searchRegex) {\n let parts = [];\n let match;\n let lastIndex = 0;\n let resultHTML = '<span class=\"ax-highlight-text\">';\n while ((match = searchRegex.exec(textContent)) !== null) {\n if (match.index > lastIndex) {\n resultHTML += `<span>${textContent.slice(lastIndex, match.index)}</span>`;\n }\n resultHTML += `<span class=\"ax-highlight\">${match[0]}</span>`;\n lastIndex = searchRegex.lastIndex;\n }\n if (lastIndex < textContent.length) {\n resultHTML += `<span>${textContent.slice(lastIndex)}</span>`;\n }\n resultHTML += '</span>';\n return resultHTML;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXHighlightService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXHighlightService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.10\", ngImport: i0, type: AXHighlightService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9oaWdobGlnaHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQzs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsZ0JBQWdCLENBQUM7SUFFakI7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsYUFBcUIsRUFBRSxXQUFtQjtRQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBc0IsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLHNCQUFzQixDQUFDLENBQUM7UUFDeEYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hELFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1lBRUgsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRCxVQUFVLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztZQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGNBQWMsQ0FBQyxPQUFvQjtRQUN6QyxNQUFNLFdBQVcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLG9CQUFvQixDQUFDLE9BQWEsRUFBRSxXQUFtQjtRQUM3RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7Z0JBQzNDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO29CQUNuQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO29CQUM3RSxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwRCxhQUFhLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQztvQkFFMUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7b0JBQ25ELEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUVyRixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQy9DLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxxQkFBcUIsQ0FBQyxXQUFtQixFQUFFLFdBQW1CO1FBQ3BFLElBQUksS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUN6QixJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLFVBQVUsR0FBRyxrQ0FBa0MsQ0FBQztRQUVwRCxPQUFPLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxJQUFJLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxFQUFFLENBQUM7Z0JBQzVCLFVBQVUsSUFBSSxTQUFTLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQzVFLENBQUM7WUFDRCxVQUFVLElBQUksOEJBQThCLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzlELFNBQVMsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLFNBQVMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsVUFBVSxJQUFJLFNBQVMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQy9ELENBQUM7UUFFRCxVQUFVLElBQUksU0FBUyxDQUFDO1FBRXhCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7K0dBN0dVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgYXBwbHlpbmcgYW5kIHJlc2V0dGluZyB0ZXh0IGhpZ2hsaWdodGluZyB3aXRoaW4gc3BlY2lmaWVkIEhUTUwgZWxlbWVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWEhpZ2hsaWdodFNlcnZpY2Uge1xuICBwcml2YXRlIHF1ZXJ5U2VsZWN0b3I6IHN0cmluZyB8IG51bGw7XG4gIHByaXZhdGUgc2VhcmNoVmFsdWU6IHN0cmluZyB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0cyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzZWFyY2ggdmFsdWUgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJvdmlkZWQgcXVlcnkgc2VsZWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeVNlbGVjdG9yIC0gQ1NTIHNlbGVjdG9yIHRvIGlkZW50aWZ5IHRhcmdldCBlbGVtZW50cy5cbiAgICogQHBhcmFtIHNlYXJjaFZhbHVlIC0gVGV4dCB0byBzZWFyY2ggYW5kIGhpZ2hsaWdodC5cbiAgICovXG4gIGhpZ2hsaWdodChxdWVyeVNlbGVjdG9yOiBzdHJpbmcsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgaWYgKCFxdWVyeVNlbGVjdG9yIHx8ICFzZWFyY2hWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IgPSBxdWVyeVNlbGVjdG9yO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnlTZWxlY3Rvcik7XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5hcHBseUhpZ2hsaWdodChlbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYWxsIGhpZ2hsaWdodGVkIHRleHQgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJldmlvdXNseSB1c2VkIHF1ZXJ5IHNlbGVjdG9yLlxuICAgKi9cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgJHt0aGlzLnF1ZXJ5U2VsZWN0b3J9ICAuYXgtaGlnaGxpZ2h0LXRleHRgKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBsZXQgY29tYmluZWRUZXh0ID0gJyc7XG4gICAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW4nKS5mb3JFYWNoKChzcGFuKSA9PiB7XG4gICAgICAgIGNvbWJpbmVkVGV4dCArPSBzcGFuLnRleHRDb250ZW50O1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG1lcmdlZFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBtZXJnZWRTcGFuLnRleHRDb250ZW50ID0gY29tYmluZWRUZXh0O1xuXG4gICAgICBlbGVtZW50Py5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQobWVyZ2VkU3BhbiwgZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBoaWdobGlnaHRpbmcgdG8gYSBzcGVjaWZpYyBlbGVtZW50IGJ5IG1hdGNoaW5nIHRleHQgYWdhaW5zdCB0aGUgc2VhcmNoIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBIVE1MIGVsZW1lbnQgdG8gYXBwbHkgaGlnaGxpZ2h0cyB0by5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlIaWdobGlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hSZWdleCA9IG5ldyBSZWdFeHAoYCgke3RoaXMuc2VhcmNoVmFsdWV9KWAsICdnaScpO1xuICAgIHRoaXMucmVjdXJzaXZlbHlIaWdobGlnaHQoZWxlbWVudCwgc2VhcmNoUmVnZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGFwcGxpZXMgaGlnaGxpZ2h0aW5nIHRvIHRleHQgbm9kZXMgd2l0aGluIGFuIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIGN1cnJlbnQgbm9kZSBiZWluZyBwcm9jZXNzZWQuXG4gICAqIEBwYXJhbSBzZWFyY2hSZWdleCAtIFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgbWF0Y2hpbmcgdGV4dCB0byBoaWdobGlnaHQuXG4gICAqL1xuICBwcml2YXRlIHJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KGVsZW1lbnQ6IE5vZGUsIHNlYXJjaFJlZ2V4OiBSZWdFeHApOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkTm9kZXMpO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSBub2RlLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBpZiAodGV4dENvbnRlbnQubWF0Y2goc2VhcmNoUmVnZXgpKSB7XG4gICAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWRIVE1MID0gdGhpcy5jcmVhdGVIaWdobGlnaHRlZEhUTUwodGV4dENvbnRlbnQsIHNlYXJjaFJlZ2V4KTtcbiAgICAgICAgICBjb25zdCB0ZW1wQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgdGVtcENvbnRhaW5lci5pbm5lckhUTUwgPSBoaWdobGlnaHRlZEhUTUw7XG5cbiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgICBBcnJheS5mcm9tKHRlbXBDb250YWluZXIuY2hpbGROb2RlcykuZm9yRWFjaCgoY2hpbGQpID0+IGZyYWdtZW50LmFwcGVuZENoaWxkKGNoaWxkKSk7XG5cbiAgICAgICAgICBub2RlLnJlcGxhY2VXaXRoKGZyYWdtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgICB0aGlzLnJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KG5vZGUsIHNlYXJjaFJlZ2V4KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIEhUTUwgc3RydWN0dXJlIGZvciBoaWdobGlnaHRlZCB0ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dENvbnRlbnQgLSBUaGUgb3JpZ2luYWwgdGV4dCBjb250ZW50IHRvIHByb2Nlc3MuXG4gICAqIEBwYXJhbSBzZWFyY2hSZWdleCAtIFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgbWF0Y2hpbmcgdGV4dCB0byBoaWdobGlnaHQuXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIG9mIEhUTUwgd2l0aCBoaWdobGlnaHRlZCBwb3J0aW9ucyB3cmFwcGVkIGluIHNwYW4gZWxlbWVudHMuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUhpZ2hsaWdodGVkSFRNTCh0ZXh0Q29udGVudDogc3RyaW5nLCBzZWFyY2hSZWdleDogUmVnRXhwKTogc3RyaW5nIHtcbiAgICBsZXQgcGFydHM6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IG1hdGNoO1xuICAgIGxldCBsYXN0SW5kZXggPSAwO1xuICAgIGxldCByZXN1bHRIVE1MID0gJzxzcGFuIGNsYXNzPVwiYXgtaGlnaGxpZ2h0LXRleHRcIj4nO1xuXG4gICAgd2hpbGUgKChtYXRjaCA9IHNlYXJjaFJlZ2V4LmV4ZWModGV4dENvbnRlbnQpKSAhPT0gbnVsbCkge1xuICAgICAgaWYgKG1hdGNoLmluZGV4ID4gbGFzdEluZGV4KSB7XG4gICAgICAgIHJlc3VsdEhUTUwgKz0gYDxzcGFuPiR7dGV4dENvbnRlbnQuc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCl9PC9zcGFuPmA7XG4gICAgICB9XG4gICAgICByZXN1bHRIVE1MICs9IGA8c3BhbiBjbGFzcz1cImF4LWhpZ2hsaWdodFwiPiR7bWF0Y2hbMF19PC9zcGFuPmA7XG4gICAgICBsYXN0SW5kZXggPSBzZWFyY2hSZWdleC5sYXN0SW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGxhc3RJbmRleCA8IHRleHRDb250ZW50Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0SFRNTCArPSBgPHNwYW4+JHt0ZXh0Q29udGVudC5zbGljZShsYXN0SW5kZXgpfTwvc3Bhbj5gO1xuICAgIH1cblxuICAgIHJlc3VsdEhUTUwgKz0gJzwvc3Bhbj4nO1xuXG4gICAgcmV0dXJuIHJlc3VsdEhUTUw7XG4gIH1cbn1cbiJdfQ==","export function extractTextFromHtml(value) {\n const div = document.createElement('div');\n div.innerHTML = value;\n return div.textContent || div.innerText || '';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdXRpbHMvc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBRSxLQUFhO0lBQ2hELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsT0FBTyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZXh0cmFjdFRleHRGcm9tSHRtbCAodmFsdWU6IHN0cmluZykge1xuICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgZGl2LmlubmVySFRNTCA9IHZhbHVlO1xuICByZXR1cm4gZGl2LnRleHRDb250ZW50IHx8IGRpdi5pbm5lclRleHQgfHwgJyc7XG59XG5cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2Fjb3JleC1wbGF0Zm9ybS1jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i18n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-core.mjs","sources":["../tmp-esm2022/core/lib/activity-log/activity-log.service.js","../tmp-esm2022/core/lib/activity-log/activity-log.provider.js","../tmp-esm2022/core/lib/color-palette/color-palette.provider.js","../tmp-esm2022/core/lib/color-palette/color-palette.service.js","../tmp-esm2022/core/lib/color-palette/color-palette.types.js","../tmp-esm2022/core/lib/color-palette/default-palettes.provider.js","../tmp-esm2022/core/lib/utils/object-util.js","../tmp-esm2022/core/lib/context/context-store.service.js","../tmp-esm2022/core/lib/data/data-generator.js","../tmp-esm2022/core/lib/data/value-transformer.js","../tmp-esm2022/core/lib/data/datasource-definition-provider.service.js","../tmp-esm2022/core/lib/directives/element-data.directive.js","../tmp-esm2022/core/lib/directives/dbl-click.directive.js","../tmp-esm2022/core/lib/directives/grid-layout.directive.js","../tmp-esm2022/core/lib/directives/content-checker.directive.js","../tmp-esm2022/core/lib/distributed-events/distributed-event-listener.provider.js","../tmp-esm2022/core/lib/distributed-events/distributed-event-listener.service.js","../tmp-esm2022/core/lib/event-service/event.service.js","../tmp-esm2022/core/lib/expression-evaluator/expression-evaluator-scope-provider.service.js","../tmp-esm2022/core/lib/expression-evaluator/expression-evaluator.service.js","../tmp-esm2022/core/lib/hook/utill.service.js","../tmp-esm2022/core/lib/startup/app-startup.service.js","../tmp-esm2022/core/lib/status-definition/status-definition.types.js","../tmp-esm2022/core/lib/status-definition/status-definition-provider.service.js","../tmp-esm2022/core/lib/status-definition/statuses.types.js","../tmp-esm2022/core/lib/tags/tag.types.js","../tmp-esm2022/core/lib/tags/tag.provider.js","../tmp-esm2022/core/lib/tags/tag.service.js","../tmp-esm2022/core/lib/types/actions.types.js","../tmp-esm2022/core/lib/types/core.types.js","../tmp-esm2022/core/lib/types/interactive.types.js","../tmp-esm2022/core/lib/types/logo.types.js","../tmp-esm2022/core/lib/types/scope.types.js","../tmp-esm2022/core/lib/types/export.types.js","../tmp-esm2022/core/lib/utils/countdown-timer.js","../tmp-esm2022/core/lib/utils/data-conditioner.js","../tmp-esm2022/core/lib/utils/device.service.js","../tmp-esm2022/core/lib/utils/highlighter.js","../tmp-esm2022/core/lib/utils/string.js","../tmp-esm2022/core/acorex-platform-core.js"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_ACTIVITY_LOG_PROVIDER = new InjectionToken('AXP_ACTIVITY_LOGS_PROVIDER');\nexport class AXPActivityLogService {\n constructor() {\n this.providers = inject(AXP_ACTIVITY_LOG_PROVIDER, { optional: true });\n }\n async getHistory(refId, refType, options) {\n return (await Promise.all(this.providers?.map((p) => p.getHistory(refId, refType, options)) ?? [])).flat();\n }\n async getHistoryByIds(refId, refType, ids) {\n return (await Promise.all(this.providers?.map((p) => p.getHistoryByIds(refId, refType, ids)) ?? [])).flat();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityLogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityLogService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityLogService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUluRSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsNEJBQTRCLENBQUMsQ0FBQztBQUdwSCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBVTNFO0lBUkMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFhLEVBQUUsT0FBZSxFQUFFLE9BQXFFO1FBQ3BILE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFN0csQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBYSxFQUFFLE9BQWUsRUFBRSxHQUFhO1FBQ2pFLE9BQU8sQ0FBQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUcsQ0FBQzsrR0FWVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQURSLE1BQU07OzRGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQWN0aXZpdHlMb2dQcm92aWRlciB9IGZyb20gJy4vYWN0aXZpdHktbG9nLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUEFjdGl2aXR5TG9nIH0gZnJvbSAnLi9hY3Rpdml0eS1sb2cudHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQVhQX0FDVElWSVRZX0xPR19QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBBY3Rpdml0eUxvZ1Byb3ZpZGVyW10+KCdBWFBfQUNUSVZJVFlfTE9HU19QUk9WSURFUicpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEFjdGl2aXR5TG9nU2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9BQ1RJVklUWV9MT0dfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgYXN5bmMgZ2V0SGlzdG9yeShyZWZJZDogc3RyaW5nLCByZWZUeXBlOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGZyb20/OiBEYXRlOyB0bz86IERhdGU7IGxpbWl0PzogbnVtYmVyOyBvZmZzZXQ/OiBudW1iZXIgfSk6IFByb21pc2U8QVhQQWN0aXZpdHlMb2dbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgUHJvbWlzZS5hbGwodGhpcy5wcm92aWRlcnM/Lm1hcCgocCkgPT4gcC5nZXRIaXN0b3J5KHJlZklkLCByZWZUeXBlLCBvcHRpb25zKSkgPz8gW10pKS5mbGF0KCk7XG5cbiAgfVxuXG4gIGFzeW5jIGdldEhpc3RvcnlCeUlkcyhyZWZJZDogc3RyaW5nLCByZWZUeXBlOiBzdHJpbmcsIGlkczogc3RyaW5nW10pOiBQcm9taXNlPEFYUEFjdGl2aXR5TG9nW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IFByb21pc2UuYWxsKHRoaXMucHJvdmlkZXJzPy5tYXAoKHApID0+IHAuZ2V0SGlzdG9yeUJ5SWRzKHJlZklkLCByZWZUeXBlLCBpZHMpKSA/PyBbXSkpLmZsYXQoKTtcbiAgfVxufSJdfQ==","export class AXPActivityLogProvider {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvYWN0aXZpdHktbG9nL2FjdGl2aXR5LWxvZy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQWdCLHNCQUFzQjtDQUczQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEFjdGl2aXR5TG9nIH0gZnJvbSAnLi9hY3Rpdml0eS1sb2cudHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQWN0aXZpdHlMb2dQcm92aWRlciB7XG4gIGFic3RyYWN0IGdldEhpc3RvcnkocmVmSWQ6IHN0cmluZywgcmVmVHlwZTogc3RyaW5nLCBvcHRpb25zPzogeyBmcm9tPzogRGF0ZTsgdG8/OiBEYXRlOyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0pOiBQcm9taXNlPEFYUEFjdGl2aXR5TG9nW10+O1xuICBhYnN0cmFjdCBnZXRIaXN0b3J5QnlJZHMocmVmSWQ6IHN0cmluZywgcmVmVHlwZTogc3RyaW5nLCBpZHM6IHN0cmluZ1tdKTogUHJvbWlzZTxBWFBBY3Rpdml0eUxvZ1tdPjtcbn0iXX0=","import { InjectionToken } from '@angular/core';\n//#region ---- Color Palette Provider ----\n/**\n * Abstract class for color palette providers\n * Implement this to provide palettes from different sources (system, app, module, etc.)\n */\nexport class AXPColorPaletteProvider {\n}\n/**\n * Injection token for color palette providers\n * Use this to register multiple palette providers\n */\nexport const AXP_COLOR_PALETTE_PROVIDER = new InjectionToken('AXP_COLOR_PALETTE_PROVIDER');\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUvY29sb3ItcGFsZXR0ZS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLDhDQUE4QztBQUU5Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLHVCQUF1QjtDQVc1QztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUN4RCw0QkFBNEIsQ0FDL0IsQ0FBQztBQUVGLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29sb3JQYWxldHRlIH0gZnJvbSAnLi9jb2xvci1wYWxldHRlLnR5cGVzJztcblxuLy8jcmVnaW9uIC0tLS0gICBDb2xvciBQYWxldHRlIFByb3ZpZGVyICAgLS0tLVxuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciBjb2xvciBwYWxldHRlIHByb3ZpZGVyc1xuICogSW1wbGVtZW50IHRoaXMgdG8gcHJvdmlkZSBwYWxldHRlcyBmcm9tIGRpZmZlcmVudCBzb3VyY2VzIChzeXN0ZW0sIGFwcCwgbW9kdWxlLCBldGMuKVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQ29sb3JQYWxldHRlUHJvdmlkZXIge1xuICAgIC8qKlxuICAgICAqIFVuaXF1ZSBuYW1lIGZvciB0aGlzIHByb3ZpZGVyIChlLmcuLCAnc3lzdGVtJywgJ2FwcCcsICdtb2R1bGUnKVxuICAgICAqL1xuICAgIGFic3RyYWN0IG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGUgY29sb3IgcGFsZXR0ZXMgZnJvbSB0aGlzIHNvdXJjZVxuICAgICAqIEByZXR1cm5zIFByb21pc2Ugb2YgcGFsZXR0ZXNcbiAgICAgKi9cbiAgICBhYnN0cmFjdCBwcm92aWRlKCk6IFByb21pc2U8QVhQQ29sb3JQYWxldHRlW10+O1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgY29sb3IgcGFsZXR0ZSBwcm92aWRlcnNcbiAqIFVzZSB0aGlzIHRvIHJlZ2lzdGVyIG11bHRpcGxlIHBhbGV0dGUgcHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBBWFBfQ09MT1JfUEFMRVRURV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBDb2xvclBhbGV0dGVQcm92aWRlcltdPihcbiAgICAnQVhQX0NPTE9SX1BBTEVUVEVfUFJPVklERVInLFxuKTtcblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { AXP_COLOR_PALETTE_PROVIDER } from './color-palette.provider';\nimport * as i0 from \"@angular/core\";\n//#region ---- Color Palette Service ----\n/**\n * Service for managing color palettes from multiple providers\n * Aggregates palettes from all registered providers\n */\nexport class AXPColorPaletteService {\n constructor() {\n //#region ---- Dependencies ----\n this.providers = inject(AXP_COLOR_PALETTE_PROVIDER, { optional: true }) ?? [];\n //#endregion\n //#region ---- State ----\n this.cache = null;\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Get all palettes from all providers\n * @param options Filter options\n * @returns Promise of palettes\n */\n async getPalettes(options) {\n if (!this.cache) {\n await this.loadPalettes();\n }\n let palettes = this.cache;\n // Apply category filter\n if (options?.category) {\n palettes = palettes.filter((palette) => palette.category === options.category);\n }\n // Apply search filter\n if (options?.search) {\n const searchLower = options.search.toLowerCase();\n palettes = palettes.filter((palette) => palette.name.toLowerCase().includes(searchLower) ||\n palette.title.toLowerCase().includes(searchLower) ||\n palette.description?.toLowerCase().includes(searchLower));\n }\n return palettes;\n }\n /**\n * Get a palette by name\n * @param name The unique name of the palette\n * @returns Promise of palette or undefined if not found\n */\n async getPalette(name) {\n if (!this.cache) {\n await this.loadPalettes();\n }\n return this.cache.find((p) => p.name === name);\n }\n /**\n * Get palettes by category\n * @param category The category to filter by\n * @returns Promise of palettes in the specified category\n */\n async getByCategory(category) {\n return this.getPalettes({ category });\n }\n /**\n * Check if a palette exists\n * @param name The unique name of the palette\n * @returns Promise of true if the palette exists\n */\n async has(name) {\n const palette = await this.getPalette(name);\n return palette !== undefined;\n }\n /**\n * Reload palettes from all providers\n */\n async reload() {\n this.cache = null;\n await this.loadPalettes();\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Load palettes from all providers\n */\n async loadPalettes() {\n const allPalettes = [];\n for (const provider of this.providers) {\n try {\n const palettes = await provider.provide();\n allPalettes.push(...palettes);\n }\n catch (error) {\n console.error(`Error loading palettes from provider ${provider.name}:`, error);\n }\n }\n // Remove duplicates based on name\n const uniquePalettes = allPalettes.filter((palette, index, self) => index === self.findIndex((p) => p.name === palette.name));\n this.cache = uniquePalettes;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPColorPaletteService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPColorPaletteService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPColorPaletteService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvY29sb3ItcGFsZXR0ZS9jb2xvci1wYWxldHRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBCQUEwQixFQUEyQixNQUFNLDBCQUEwQixDQUFDOztBQUcvRiw2Q0FBNkM7QUFFN0M7OztHQUdHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUlJLG9DQUFvQztRQUU1QixjQUFTLEdBQThCLE1BQU0sQ0FBQywwQkFBMEIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU1RyxZQUFZO1FBRVosNkJBQTZCO1FBRXJCLFVBQUssR0FBNkIsSUFBSSxDQUFDO0tBeUdsRDtJQXZHRyxZQUFZO0lBRVosa0NBQWtDO0lBRWxDOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQXNDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQU0sQ0FBQztRQUUzQix3QkFBd0I7UUFDeEIsSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDcEIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFFRCxzQkFBc0I7UUFDdEIsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDdEIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztnQkFDaEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUNqRCxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FDL0QsQ0FBQztRQUNOLENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQWdCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQVk7UUFDbEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sT0FBTyxLQUFLLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO0lBRVosdUNBQXVDO0lBRXZDOztPQUVHO0lBQ0ssS0FBSyxDQUFDLFlBQVk7UUFDdEIsTUFBTSxXQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUUxQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUM7Z0JBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxRQUFRLENBQUMsSUFBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNMLENBQUM7UUFFRCxrQ0FBa0M7UUFDbEMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FDckMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxDQUNyRixDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7SUFDaEMsQ0FBQzsrR0EvR1Esc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQX0NPTE9SX1BBTEVUVEVfUFJPVklERVIsIEFYUENvbG9yUGFsZXR0ZVByb3ZpZGVyIH0gZnJvbSAnLi9jb2xvci1wYWxldHRlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUENvbG9yUGFsZXR0ZSwgQVhQQ29sb3JQYWxldHRlRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4vY29sb3ItcGFsZXR0ZS50eXBlcyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29sb3IgUGFsZXR0ZSBTZXJ2aWNlICAgLS0tLVxuXG4vKipcbiAqIFNlcnZpY2UgZm9yIG1hbmFnaW5nIGNvbG9yIHBhbGV0dGVzIGZyb20gbXVsdGlwbGUgcHJvdmlkZXJzXG4gKiBBZ2dyZWdhdGVzIHBhbGV0dGVzIGZyb20gYWxsIHJlZ2lzdGVyZWQgcHJvdmlkZXJzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbG9yUGFsZXR0ZVNlcnZpY2Uge1xuICAgIC8vI3JlZ2lvbiAtLS0tICAgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSBwcm92aWRlcnM6IEFYUENvbG9yUGFsZXR0ZVByb3ZpZGVyW10gPSBpbmplY3QoQVhQX0NPTE9SX1BBTEVUVEVfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgU3RhdGUgICAtLS0tXG5cbiAgICBwcml2YXRlIGNhY2hlOiBBWFBDb2xvclBhbGV0dGVbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBBUEkgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIHBhbGV0dGVzIGZyb20gYWxsIHByb3ZpZGVyc1xuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXG4gICAgICogQHJldHVybnMgUHJvbWlzZSBvZiBwYWxldHRlc1xuICAgICAqL1xuICAgIGFzeW5jIGdldFBhbGV0dGVzKG9wdGlvbnM/OiBBWFBDb2xvclBhbGV0dGVGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxBWFBDb2xvclBhbGV0dGVbXT4ge1xuICAgICAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZFBhbGV0dGVzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGFsZXR0ZXMgPSB0aGlzLmNhY2hlITtcblxuICAgICAgICAvLyBBcHBseSBjYXRlZ29yeSBmaWx0ZXJcbiAgICAgICAgaWYgKG9wdGlvbnM/LmNhdGVnb3J5KSB7XG4gICAgICAgICAgICBwYWxldHRlcyA9IHBhbGV0dGVzLmZpbHRlcigocGFsZXR0ZSkgPT4gcGFsZXR0ZS5jYXRlZ29yeSA9PT0gb3B0aW9ucy5jYXRlZ29yeSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBzZWFyY2ggZmlsdGVyXG4gICAgICAgIGlmIChvcHRpb25zPy5zZWFyY2gpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaExvd2VyID0gb3B0aW9ucy5zZWFyY2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHBhbGV0dGVzID0gcGFsZXR0ZXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChwYWxldHRlKSA9PlxuICAgICAgICAgICAgICAgICAgICBwYWxldHRlLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hMb3dlcikgfHxcbiAgICAgICAgICAgICAgICAgICAgcGFsZXR0ZS50aXRsZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaExvd2VyKSB8fFxuICAgICAgICAgICAgICAgICAgICBwYWxldHRlLmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaExvd2VyKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFsZXR0ZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGEgcGFsZXR0ZSBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBwYWxldHRlXG4gICAgICogQHJldHVybnMgUHJvbWlzZSBvZiBwYWxldHRlIG9yIHVuZGVmaW5lZCBpZiBub3QgZm91bmRcbiAgICAgKi9cbiAgICBhc3luYyBnZXRQYWxldHRlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQQ29sb3JQYWxldHRlIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkUGFsZXR0ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlIS5maW5kKChwKSA9PiBwLm5hbWUgPT09IG5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBwYWxldHRlcyBieSBjYXRlZ29yeVxuICAgICAqIEBwYXJhbSBjYXRlZ29yeSBUaGUgY2F0ZWdvcnkgdG8gZmlsdGVyIGJ5XG4gICAgICogQHJldHVybnMgUHJvbWlzZSBvZiBwYWxldHRlcyBpbiB0aGUgc3BlY2lmaWVkIGNhdGVnb3J5XG4gICAgICovXG4gICAgYXN5bmMgZ2V0QnlDYXRlZ29yeShjYXRlZ29yeTogc3RyaW5nKTogUHJvbWlzZTxBWFBDb2xvclBhbGV0dGVbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRQYWxldHRlcyh7IGNhdGVnb3J5IH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgcGFsZXR0ZSBleGlzdHNcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHBhbGV0dGVcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIG9mIHRydWUgaWYgdGhlIHBhbGV0dGUgZXhpc3RzXG4gICAgICovXG4gICAgYXN5bmMgaGFzKG5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBwYWxldHRlID0gYXdhaXQgdGhpcy5nZXRQYWxldHRlKG5hbWUpO1xuICAgICAgICByZXR1cm4gcGFsZXR0ZSAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbG9hZCBwYWxldHRlcyBmcm9tIGFsbCBwcm92aWRlcnNcbiAgICAgKi9cbiAgICBhc3luYyByZWxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuY2FjaGUgPSBudWxsO1xuICAgICAgICBhd2FpdCB0aGlzLmxvYWRQYWxldHRlcygpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQcml2YXRlIE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBMb2FkIHBhbGV0dGVzIGZyb20gYWxsIHByb3ZpZGVyc1xuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgbG9hZFBhbGV0dGVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBhbGxQYWxldHRlczogQVhQQ29sb3JQYWxldHRlW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbGV0dGVzID0gYXdhaXQgcHJvdmlkZXIucHJvdmlkZSgpO1xuICAgICAgICAgICAgICAgIGFsbFBhbGV0dGVzLnB1c2goLi4ucGFsZXR0ZXMpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBsb2FkaW5nIHBhbGV0dGVzIGZyb20gcHJvdmlkZXIgJHtwcm92aWRlci5uYW1lfTpgLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZW1vdmUgZHVwbGljYXRlcyBiYXNlZCBvbiBuYW1lXG4gICAgICAgIGNvbnN0IHVuaXF1ZVBhbGV0dGVzID0gYWxsUGFsZXR0ZXMuZmlsdGVyKFxuICAgICAgICAgICAgKHBhbGV0dGUsIGluZGV4LCBzZWxmKSA9PiBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHApID0+IHAubmFtZSA9PT0gcGFsZXR0ZS5uYW1lKSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNhY2hlID0gdW5pcXVlUGFsZXR0ZXM7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59XG5cbi8vI2VuZHJlZ2lvblxuIl19","//#region ---- Color Palette Types ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGFsZXR0ZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUvY29sb3ItcGFsZXR0ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7O0FBNEMzQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBDb2xvciBQYWxldHRlIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2xvciBwYWxldHRlIHdpdGggYSB1bmlxdWUgaWRlbnRpZmllciBhbmQgY29sbGVjdGlvbiBvZiBjb2xvcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBDb2xvclBhbGV0dGUge1xuICAgIC8qKlxuICAgICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGFsZXR0ZVxuICAgICAqIEBleGFtcGxlICdtYXRlcmlhbC1kZXNpZ24nLCAnYnJhbmQtY29sb3JzJywgJ3Bhc3RlbC10aGVtZSdcbiAgICAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBEaXNwbGF5IHRpdGxlIGZvciB0aGUgcGFsZXR0ZVxuICAgICAqIEBleGFtcGxlICdNYXRlcmlhbCBEZXNpZ24nLCAnQnJhbmQgQ29sb3JzJywgJ1Bhc3RlbCBUaGVtZSdcbiAgICAgKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQXJyYXkgb2YgY29sb3IgY29kZXMgaW4gYW55IHZhbGlkIENTUyBjb2xvciBmb3JtYXRcbiAgICAgKiBAZXhhbXBsZSBbJyNGRjZCNkInLCAnIzRFQ0RDNCcsICdyZ2IoMjU1LCAxMDcsIDEwNyknXVxuICAgICAqL1xuICAgIGNvbG9yczogc3RyaW5nW107XG5cbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBvZiB0aGUgcGFsZXR0ZVxuICAgICAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgY2F0ZWdvcnkgZm9yIGdyb3VwaW5nIHBhbGV0dGVzXG4gICAgICogQGV4YW1wbGUgJ2JyYW5kJywgJ21hdGVyaWFsJywgJ3RoZW1lJywgJ2N1c3RvbSdcbiAgICAgKi9cbiAgICBjYXRlZ29yeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBmaWx0ZXJpbmcgY29sb3IgcGFsZXR0ZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBDb2xvclBhbGV0dGVGaWx0ZXJPcHRpb25zIHtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBzZWFyY2g/OiBzdHJpbmc7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { Injectable } from '@angular/core';\nimport { AXPColorPaletteProvider } from './color-palette.provider';\nimport * as i0 from \"@angular/core\";\n//#region ---- Default System Palettes Provider ----\n/**\n * Default system color palette provider\n * Provides built-in color palettes\n */\nexport class AXPDefaultColorPalettesProvider extends AXPColorPaletteProvider {\n constructor() {\n super(...arguments);\n this.name = 'system';\n }\n async provide() {\n return [\n {\n name: 'material-design',\n title: 'Material Design',\n category: 'material',\n description: 'Google Material Design color palette',\n colors: [\n '#F44336', // Red\n '#E91E63', // Pink\n '#9C27B0', // Purple\n '#673AB7', // Deep Purple\n '#3F51B5', // Indigo\n '#2196F3', // Blue\n '#03A9F4', // Light Blue\n '#00BCD4', // Cyan\n '#009688', // Teal\n '#4CAF50', // Green\n '#8BC34A', // Light Green\n '#CDDC39', // Lime\n '#FFEB3B', // Yellow\n '#FFC107', // Amber\n '#FF9800', // Orange\n '#FF5722', // Deep Orange\n ],\n },\n {\n name: 'pastel',\n title: 'Pastel Colors',\n category: 'theme',\n description: 'Soft pastel color palette',\n colors: [\n '#FFB3BA', // Light Pink\n '#FFDFBA', // Light Peach\n '#FFFFBA', // Light Yellow\n '#BAFFC9', // Light Green\n '#BAE1FF', // Light Blue\n '#E0BBE4', // Light Purple\n '#FFDFD3', // Light Coral\n '#D4F1F4', // Light Cyan\n ],\n },\n {\n name: 'vibrant',\n title: 'Vibrant Colors',\n category: 'theme',\n description: 'Bold and vibrant color palette',\n colors: [\n '#FF6B6B', // Vibrant Red\n '#4ECDC4', // Vibrant Teal\n '#45B7D1', // Vibrant Blue\n '#FFA07A', // Vibrant Salmon\n '#98D8C8', // Vibrant Mint\n '#F7DC6F', // Vibrant Yellow\n '#BB8FCE', // Vibrant Purple\n '#85C1E2', // Vibrant Sky Blue\n ],\n },\n {\n name: 'earth-tones',\n title: 'Earth Tones',\n category: 'theme',\n description: 'Natural earth tone color palette',\n colors: [\n '#8B4513', // Saddle Brown\n '#A0522D', // Sienna\n '#D2691E', // Chocolate\n '#CD853F', // Peru\n '#DEB887', // Burlywood\n '#F5DEB3', // Wheat\n '#556B2F', // Dark Olive Green\n '#6B8E23', // Olive Drab\n ],\n },\n {\n name: 'monochrome',\n title: 'Monochrome',\n category: 'theme',\n description: 'Grayscale color palette',\n colors: [\n '#000000', // Black\n '#262626', // Very Dark Gray\n '#404040', // Dark Gray\n '#595959', // Medium Dark Gray\n '#737373', // Medium Gray\n '#8C8C8C', // Light Medium Gray\n '#A6A6A6', // Light Gray\n '#BFBFBF', // Very Light Gray\n '#D9D9D9', // Lighter Gray\n '#F2F2F2', // Almost White\n '#FFFFFF', // White\n ],\n },\n ];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDefaultColorPalettesProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDefaultColorPalettesProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDefaultColorPalettesProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYWxldHRlcy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2NvbG9yLXBhbGV0dGUvZGVmYXVsdC1wYWxldHRlcy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUduRSx3REFBd0Q7QUFFeEQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHVCQUF1QjtJQUQ1RTs7UUFFSSxTQUFJLEdBQUcsUUFBUSxDQUFDO0tBaUduQjtJQS9GRyxLQUFLLENBQUMsT0FBTztRQUNULE9BQU87WUFDSDtnQkFDSSxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixLQUFLLEVBQUUsaUJBQWlCO2dCQUN4QixRQUFRLEVBQUUsVUFBVTtnQkFDcEIsV0FBVyxFQUFFLHNDQUFzQztnQkFDbkQsTUFBTSxFQUFFO29CQUNKLFNBQVMsRUFBRSxNQUFNO29CQUNqQixTQUFTLEVBQUUsT0FBTztvQkFDbEIsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFNBQVMsRUFBRSxjQUFjO29CQUN6QixTQUFTLEVBQUUsU0FBUztvQkFDcEIsU0FBUyxFQUFFLE9BQU87b0JBQ2xCLFNBQVMsRUFBRSxhQUFhO29CQUN4QixTQUFTLEVBQUUsT0FBTztvQkFDbEIsU0FBUyxFQUFFLE9BQU87b0JBQ2xCLFNBQVMsRUFBRSxRQUFRO29CQUNuQixTQUFTLEVBQUUsY0FBYztvQkFDekIsU0FBUyxFQUFFLE9BQU87b0JBQ2xCLFNBQVMsRUFBRSxTQUFTO29CQUNwQixTQUFTLEVBQUUsUUFBUTtvQkFDbkIsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFNBQVMsRUFBRSxjQUFjO2lCQUM1QjthQUNKO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixXQUFXLEVBQUUsMkJBQTJCO2dCQUN4QyxNQUFNLEVBQUU7b0JBQ0osU0FBUyxFQUFFLGFBQWE7b0JBQ3hCLFNBQVMsRUFBRSxjQUFjO29CQUN6QixTQUFTLEVBQUUsZUFBZTtvQkFDMUIsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLFNBQVMsRUFBRSxhQUFhO29CQUN4QixTQUFTLEVBQUUsZUFBZTtvQkFDMUIsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLFNBQVMsRUFBRSxhQUFhO2lCQUMzQjthQUNKO1lBQ0Q7Z0JBQ0ksSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLGdCQUFnQjtnQkFDdkIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFdBQVcsRUFBRSxnQ0FBZ0M7Z0JBQzdDLE1BQU0sRUFBRTtvQkFDSixTQUFTLEVBQUUsY0FBYztvQkFDekIsU0FBUyxFQUFFLGVBQWU7b0JBQzFCLFNBQVMsRUFBRSxlQUFlO29CQUMxQixTQUFTLEVBQUUsaUJBQWlCO29CQUM1QixTQUFTLEVBQUUsZUFBZTtvQkFDMUIsU0FBUyxFQUFFLGlCQUFpQjtvQkFDNUIsU0FBUyxFQUFFLGlCQUFpQjtvQkFDNUIsU0FBUyxFQUFFLG1CQUFtQjtpQkFDakM7YUFDSjtZQUNEO2dCQUNJLElBQUksRUFBRSxhQUFhO2dCQUNuQixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFdBQVcsRUFBRSxrQ0FBa0M7Z0JBQy9DLE1BQU0sRUFBRTtvQkFDSixTQUFTLEVBQUUsZUFBZTtvQkFDMUIsU0FBUyxFQUFFLFNBQVM7b0JBQ3BCLFNBQVMsRUFBRSxZQUFZO29CQUN2QixTQUFTLEVBQUUsT0FBTztvQkFDbEIsU0FBUyxFQUFFLFlBQVk7b0JBQ3ZCLFNBQVMsRUFBRSxRQUFRO29CQUNuQixTQUFTLEVBQUUsbUJBQW1CO29CQUM5QixTQUFTLEVBQUUsYUFBYTtpQkFDM0I7YUFDSjtZQUNEO2dCQUNJLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUsWUFBWTtnQkFDbkIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLFdBQVcsRUFBRSx5QkFBeUI7Z0JBQ3RDLE1BQU0sRUFBRTtvQkFDSixTQUFTLEVBQUUsUUFBUTtvQkFDbkIsU0FBUyxFQUFFLGlCQUFpQjtvQkFDNUIsU0FBUyxFQUFFLFlBQVk7b0JBQ3ZCLFNBQVMsRUFBRSxtQkFBbUI7b0JBQzlCLFNBQVMsRUFBRSxjQUFjO29CQUN6QixTQUFTLEVBQUUsb0JBQW9CO29CQUMvQixTQUFTLEVBQUUsYUFBYTtvQkFDeEIsU0FBUyxFQUFFLGtCQUFrQjtvQkFDN0IsU0FBUyxFQUFFLGVBQWU7b0JBQzFCLFNBQVMsRUFBRSxlQUFlO29CQUMxQixTQUFTLEVBQUUsUUFBUTtpQkFDdEI7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDOytHQWpHUSwrQkFBK0I7bUhBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFEM0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUENvbG9yUGFsZXR0ZVByb3ZpZGVyIH0gZnJvbSAnLi9jb2xvci1wYWxldHRlLnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUENvbG9yUGFsZXR0ZSB9IGZyb20gJy4vY29sb3ItcGFsZXR0ZS50eXBlcyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgRGVmYXVsdCBTeXN0ZW0gUGFsZXR0ZXMgUHJvdmlkZXIgICAtLS0tXG5cbi8qKlxuICogRGVmYXVsdCBzeXN0ZW0gY29sb3IgcGFsZXR0ZSBwcm92aWRlclxuICogUHJvdmlkZXMgYnVpbHQtaW4gY29sb3IgcGFsZXR0ZXNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUERlZmF1bHRDb2xvclBhbGV0dGVzUHJvdmlkZXIgZXh0ZW5kcyBBWFBDb2xvclBhbGV0dGVQcm92aWRlciB7XG4gICAgbmFtZSA9ICdzeXN0ZW0nO1xuXG4gICAgYXN5bmMgcHJvdmlkZSgpOiBQcm9taXNlPEFYUENvbG9yUGFsZXR0ZVtdPiB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ21hdGVyaWFsLWRlc2lnbicsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdNYXRlcmlhbCBEZXNpZ24nLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAnbWF0ZXJpYWwnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR29vZ2xlIE1hdGVyaWFsIERlc2lnbiBjb2xvciBwYWxldHRlJyxcbiAgICAgICAgICAgICAgICBjb2xvcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgJyNGNDQzMzYnLCAvLyBSZWRcbiAgICAgICAgICAgICAgICAgICAgJyNFOTFFNjMnLCAvLyBQaW5rXG4gICAgICAgICAgICAgICAgICAgICcjOUMyN0IwJywgLy8gUHVycGxlXG4gICAgICAgICAgICAgICAgICAgICcjNjczQUI3JywgLy8gRGVlcCBQdXJwbGVcbiAgICAgICAgICAgICAgICAgICAgJyMzRjUxQjUnLCAvLyBJbmRpZ29cbiAgICAgICAgICAgICAgICAgICAgJyMyMTk2RjMnLCAvLyBCbHVlXG4gICAgICAgICAgICAgICAgICAgICcjMDNBOUY0JywgLy8gTGlnaHQgQmx1ZVxuICAgICAgICAgICAgICAgICAgICAnIzAwQkNENCcsIC8vIEN5YW5cbiAgICAgICAgICAgICAgICAgICAgJyMwMDk2ODgnLCAvLyBUZWFsXG4gICAgICAgICAgICAgICAgICAgICcjNENBRjUwJywgLy8gR3JlZW5cbiAgICAgICAgICAgICAgICAgICAgJyM4QkMzNEEnLCAvLyBMaWdodCBHcmVlblxuICAgICAgICAgICAgICAgICAgICAnI0NEREMzOScsIC8vIExpbWVcbiAgICAgICAgICAgICAgICAgICAgJyNGRkVCM0InLCAvLyBZZWxsb3dcbiAgICAgICAgICAgICAgICAgICAgJyNGRkMxMDcnLCAvLyBBbWJlclxuICAgICAgICAgICAgICAgICAgICAnI0ZGOTgwMCcsIC8vIE9yYW5nZVxuICAgICAgICAgICAgICAgICAgICAnI0ZGNTcyMicsIC8vIERlZXAgT3JhbmdlXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3Bhc3RlbCcsXG4gICAgICAgICAgICAgICAgdGl0bGU6ICdQYXN0ZWwgQ29sb3JzJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ3RoZW1lJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NvZnQgcGFzdGVsIGNvbG9yIHBhbGV0dGUnLFxuICAgICAgICAgICAgICAgIGNvbG9yczogW1xuICAgICAgICAgICAgICAgICAgICAnI0ZGQjNCQScsIC8vIExpZ2h0IFBpbmtcbiAgICAgICAgICAgICAgICAgICAgJyNGRkRGQkEnLCAvLyBMaWdodCBQZWFjaFxuICAgICAgICAgICAgICAgICAgICAnI0ZGRkZCQScsIC8vIExpZ2h0IFllbGxvd1xuICAgICAgICAgICAgICAgICAgICAnI0JBRkZDOScsIC8vIExpZ2h0IEdyZWVuXG4gICAgICAgICAgICAgICAgICAgICcjQkFFMUZGJywgLy8gTGlnaHQgQmx1ZVxuICAgICAgICAgICAgICAgICAgICAnI0UwQkJFNCcsIC8vIExpZ2h0IFB1cnBsZVxuICAgICAgICAgICAgICAgICAgICAnI0ZGREZEMycsIC8vIExpZ2h0IENvcmFsXG4gICAgICAgICAgICAgICAgICAgICcjRDRGMUY0JywgLy8gTGlnaHQgQ3lhblxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICd2aWJyYW50JyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ1ZpYnJhbnQgQ29sb3JzJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ3RoZW1lJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0JvbGQgYW5kIHZpYnJhbnQgY29sb3IgcGFsZXR0ZScsXG4gICAgICAgICAgICAgICAgY29sb3JzOiBbXG4gICAgICAgICAgICAgICAgICAgICcjRkY2QjZCJywgLy8gVmlicmFudCBSZWRcbiAgICAgICAgICAgICAgICAgICAgJyM0RUNEQzQnLCAvLyBWaWJyYW50IFRlYWxcbiAgICAgICAgICAgICAgICAgICAgJyM0NUI3RDEnLCAvLyBWaWJyYW50IEJsdWVcbiAgICAgICAgICAgICAgICAgICAgJyNGRkEwN0EnLCAvLyBWaWJyYW50IFNhbG1vblxuICAgICAgICAgICAgICAgICAgICAnIzk4RDhDOCcsIC8vIFZpYnJhbnQgTWludFxuICAgICAgICAgICAgICAgICAgICAnI0Y3REM2RicsIC8vIFZpYnJhbnQgWWVsbG93XG4gICAgICAgICAgICAgICAgICAgICcjQkI4RkNFJywgLy8gVmlicmFudCBQdXJwbGVcbiAgICAgICAgICAgICAgICAgICAgJyM4NUMxRTInLCAvLyBWaWJyYW50IFNreSBCbHVlXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2VhcnRoLXRvbmVzJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ0VhcnRoIFRvbmVzJyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ3RoZW1lJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ05hdHVyYWwgZWFydGggdG9uZSBjb2xvciBwYWxldHRlJyxcbiAgICAgICAgICAgICAgICBjb2xvcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgJyM4QjQ1MTMnLCAvLyBTYWRkbGUgQnJvd25cbiAgICAgICAgICAgICAgICAgICAgJyNBMDUyMkQnLCAvLyBTaWVubmFcbiAgICAgICAgICAgICAgICAgICAgJyNEMjY5MUUnLCAvLyBDaG9jb2xhdGVcbiAgICAgICAgICAgICAgICAgICAgJyNDRDg1M0YnLCAvLyBQZXJ1XG4gICAgICAgICAgICAgICAgICAgICcjREVCODg3JywgLy8gQnVybHl3b29kXG4gICAgICAgICAgICAgICAgICAgICcjRjVERUIzJywgLy8gV2hlYXRcbiAgICAgICAgICAgICAgICAgICAgJyM1NTZCMkYnLCAvLyBEYXJrIE9saXZlIEdyZWVuXG4gICAgICAgICAgICAgICAgICAgICcjNkI4RTIzJywgLy8gT2xpdmUgRHJhYlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdtb25vY2hyb21lJyxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ01vbm9jaHJvbWUnLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiAndGhlbWUnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR3JheXNjYWxlIGNvbG9yIHBhbGV0dGUnLFxuICAgICAgICAgICAgICAgIGNvbG9yczogW1xuICAgICAgICAgICAgICAgICAgICAnIzAwMDAwMCcsIC8vIEJsYWNrXG4gICAgICAgICAgICAgICAgICAgICcjMjYyNjI2JywgLy8gVmVyeSBEYXJrIEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyM0MDQwNDAnLCAvLyBEYXJrIEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyM1OTU5NTknLCAvLyBNZWRpdW0gRGFyayBHcmF5XG4gICAgICAgICAgICAgICAgICAgICcjNzM3MzczJywgLy8gTWVkaXVtIEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyM4QzhDOEMnLCAvLyBMaWdodCBNZWRpdW0gR3JheVxuICAgICAgICAgICAgICAgICAgICAnI0E2QTZBNicsIC8vIExpZ2h0IEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyNCRkJGQkYnLCAvLyBWZXJ5IExpZ2h0IEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyNEOUQ5RDknLCAvLyBMaWdodGVyIEdyYXlcbiAgICAgICAgICAgICAgICAgICAgJyNGMkYyRjInLCAvLyBBbG1vc3QgV2hpdGVcbiAgICAgICAgICAgICAgICAgICAgJyNGRkZGRkYnLCAvLyBXaGl0ZVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { differenceWith, get, isArray, isEmpty, isEqual, isNil, isObjectLike, isPlainObject, merge, set, transform, union, } from 'lodash-es';\nexport function extractNestedFieldsWildcard(obj, basePath, fields) {\n const result = {};\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = get(obj, basePath);\n return isPlainObject(fullObj) ? fullObj : {};\n }\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const value = get(obj, fullPath);\n set(result, field, value);\n }\n return result;\n}\nexport function setSmart(obj, smartPath, value) {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n if (!fieldMatch) {\n set(obj, smartPath, value);\n return obj;\n }\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const [arrayKey, ...restPath] = basePath.split('.');\n // Make sure the array exists\n if (!obj[arrayKey])\n obj[arrayKey] = [];\n // 🟡 Case A: value is array (normal set)\n if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n if (restPath.length > 0) {\n const picked = extractNestedFieldsWildcard(item, restPath.join('.'), fields);\n set(nested, restPath.join('.'), picked);\n }\n else {\n const picked = extractNestedFieldsWildcard(item, '', fields);\n Object.assign(nested, picked);\n }\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n // 🟢 Case B: value is a single value → broadcast\n else {\n for (let i = 0; i < obj[arrayKey].length; i++) {\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n if (restPath.length > 0) {\n for (const field of fields) {\n set(nested, `${restPath.join('.')}.${field}`, value);\n }\n }\n else {\n for (const field of fields) {\n set(nested, field, value);\n }\n }\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n return obj;\n}\nfunction extractFieldsFromPath(obj, basePath, fields) {\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = basePath ? get(obj, basePath) : obj;\n return isPlainObject(fullObj) ? fullObj : {};\n }\n const result = {};\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const val = get(obj, fullPath);\n if (val !== undefined) {\n result[field] = val;\n }\n }\n return result;\n}\nexport function getSmart(obj, smartPath) {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n // Simple get (no fields)\n if (!fieldMatch) {\n return get(obj, smartPath);\n }\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const items = get(obj, basePath);\n if (!isArray(items))\n return [];\n const nestedPath = basePath.includes('.') ? basePath.split('.').slice(1).join('.') : '';\n return items.map((item) => {\n return extractFieldsFromPath(item, nestedPath, fields);\n });\n}\nexport function extractValue(value, key = 'id') {\n if (isNil(value)) {\n return null;\n }\n return isObjectLike(value) ? get(value, key) : value;\n}\nexport function cleanDeep(obj) {\n return transform(obj, (result, value, key) => {\n if (isObjectLike(value)) {\n const cleaned = cleanDeep(value);\n if (!isEmpty(cleaned)) {\n result[key] = cleaned;\n }\n }\n else if (!isNil(value) && // not null or undefined\n !(typeof value === 'string' && value.trim() === '') && // not empty string\n !(Array.isArray(value) && value.length === 0) // not empty array\n ) {\n result[key] = value;\n }\n });\n}\nfunction getDeepChanges(obj1, obj2) {\n const changes = [];\n function walk(o1, o2, currentPath = []) {\n // If both values are deeply equal, skip\n if (isEqual(o1, o2))\n return;\n const isObj1Nil = o1 === null || o1 === undefined;\n const isObj2Nil = o2 === null || o2 === undefined;\n // If obj1 is null/undefined and obj2 is not, treat entire obj2 as added\n if (isObj1Nil && !isObj2Nil) {\n if (isPlainObject(o2)) {\n for (const key of Object.keys(o2)) {\n walk(undefined, o2[key], [...currentPath, key]);\n }\n }\n else if (Array.isArray(o2)) {\n changes.push({\n path: currentPath.join('.'),\n oldValue: undefined,\n newValue: o2,\n arrayDiff: {\n added: o2,\n removed: [],\n },\n });\n }\n else {\n changes.push({\n path: currentPath.join('.'),\n oldValue: undefined,\n newValue: o2,\n });\n }\n return;\n }\n // If obj2 is null/undefined and obj1 is not, treat entire obj1 as removed\n if (!isObj1Nil && isObj2Nil) {\n if (isPlainObject(o1)) {\n for (const key of Object.keys(o1)) {\n walk(o1[key], undefined, [...currentPath, key]);\n }\n }\n else if (Array.isArray(o1)) {\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: undefined,\n arrayDiff: {\n added: [],\n removed: o1,\n },\n });\n }\n else {\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: undefined,\n });\n }\n return;\n }\n // If both are arrays, compare items\n if (Array.isArray(o1) && Array.isArray(o2)) {\n if (!isEqual(o1, o2)) {\n const added = differenceWith(o2, o1, isEqual);\n const removed = differenceWith(o1, o2, isEqual);\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: o2,\n arrayDiff: {\n added,\n removed,\n },\n });\n }\n return;\n }\n // If both are plain objects, walk each key\n if (isPlainObject(o1) && isPlainObject(o2)) {\n const allKeys = union(Object.keys(o1), Object.keys(o2));\n for (const key of allKeys) {\n walk(o1[key], o2[key], [...currentPath, key]);\n }\n return;\n }\n // Primitive values or mismatched types\n changes.push({\n path: currentPath.join('.'),\n oldValue: o1,\n newValue: o2,\n });\n }\n walk(obj1, obj2);\n return changes;\n}\n// Method 1: Returns only changed paths\nexport function getChangedPaths(obj1, obj2) {\n return getDeepChanges(obj1, obj2).map((change) => change.path);\n}\n// Method 2: Returns full change entries\nexport function getDetailedChanges(obj1, obj2) {\n return getDeepChanges(obj1, obj2);\n}\nexport function getEnumValues(enumType) {\n return Object.entries(enumType).map(([key, value]) => ({ id: value, title: key }));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9vYmplY3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLEdBQUcsRUFDSCxPQUFPLEVBQ1AsT0FBTyxFQUNQLE9BQU8sRUFDUCxLQUFLLEVBQ0wsWUFBWSxFQUNaLGFBQWEsRUFDYixLQUFLLEVBQ0wsR0FBRyxFQUNILFNBQVMsRUFDVCxLQUFLLEdBQ04sTUFBTSxXQUFXLENBQUM7QUFFbkIsTUFBTSxVQUFVLDJCQUEyQixDQUFDLEdBQVEsRUFBRSxRQUFnQixFQUFFLE1BQWdCO0lBQ3RGLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUV2QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztB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QUcsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsdUNBQXVDO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDWCxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDM0IsUUFBUSxFQUFFLEVBQUU7WUFDWixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFTLEVBQUUsSUFBUztJQUNsRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELHdDQUF3QztBQUN4QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBUyxFQUFFLElBQVM7SUFDckQsT0FBTyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFJRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFFBQWE7SUFDekMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQWUsRUFBRSxLQUFLLEVBQUUsR0FBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBkaWZmZXJlbmNlV2l0aCxcbiAgZ2V0LFxuICBpc0FycmF5LFxuICBpc0VtcHR5LFxuICBpc0VxdWFsLFxuICBpc05pbCxcbiAgaXNPYmplY3RMaWtlLFxuICBpc1BsYWluT2JqZWN0LFxuICBtZXJnZSxcbiAgc2V0LFxuICB0cmFuc2Zvcm0sXG4gIHVuaW9uLFxufSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE5lc3RlZEZpZWxkc1dpbGRjYXJkKG9iajogYW55LCBiYXNlUGF0aDogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdKTogYW55IHtcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcblxuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBnZXQob2JqLCBiYXNlUGF0aCk7XG4gICAgcmV0dXJuIGlzUGxhaW5PYmplY3QoZnVsbE9iaikgPyBmdWxsT2JqIDoge307XG4gIH1cblxuICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gYmFzZVBhdGggPyBgJHtiYXNlUGF0aH0uJHtmaWVsZH1gIDogZmllbGQ7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgc2V0KHJlc3VsdCwgZmllbGQsIHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTbWFydChvYmo6IGFueSwgc21hcnRQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiBhbnkge1xuICBjb25zdCBwYXRoUGFydHMgPSBzbWFydFBhdGguc3BsaXQoJy4nKTtcbiAgY29uc3QgbGFzdFBhcnQgPSBwYXRoUGFydHNbcGF0aFBhcnRzLmxlbmd0aCAtIDFdO1xuICBjb25zdCBmaWVsZE1hdGNoID0gbGFzdFBhcnQubWF0Y2goL15cXHsoLispXFx9JC8pO1xuXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHNldChvYmosIHNtYXJ0UGF0aCwgdmFsdWUpO1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBjb25zdCBmaWVsZHMgPSBmaWVsZE1hdGNoWzFdLnNwbGl0KCcsJykubWFwKChmKSA9PiBmLnRyaW0oKSk7XG4gIGNvbnN0IGJhc2VQYXRoID0gcGF0aFBhcnRzLnNsaWNlKDAsIC0xKS5qb2luKCcuJyk7XG4gIGNvbnN0IFthcnJheUtleSwgLi4ucmVzdFBhdGhdID0gYmFzZVBhdGguc3BsaXQoJy4nKTtcblxuICAvLyBNYWtlIHN1cmUgdGhlIGFycmF5IGV4aXN0c1xuICBpZiAoIW9ialthcnJheUtleV0pIG9ialthcnJheUtleV0gPSBbXTtcblxuICAvLyDwn5+hIENhc2UgQTogdmFsdWUgaXMgYXJyYXkgKG5vcm1hbCBzZXQpXG4gIGlmIChpc0FycmF5KHZhbHVlKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSB2YWx1ZVtpXTtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCByZXN0UGF0aC5qb2luKCcuJyksIGZpZWxkcyk7XG4gICAgICAgIHNldChuZXN0ZWQsIHJlc3RQYXRoLmpvaW4oJy4nKSwgcGlja2VkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IGV4dHJhY3ROZXN0ZWRGaWVsZHNXaWxkY2FyZChpdGVtLCAnJywgZmllbGRzKTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihuZXN0ZWQsIHBpY2tlZCk7XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICAvLyDwn5+iIENhc2UgQjogdmFsdWUgaXMgYSBzaW5nbGUgdmFsdWUg4oaSIGJyb2FkY2FzdFxuICBlbHNlIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9ialthcnJheUtleV0ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHRhcmdldEl0ZW0gPSBvYmpbYXJyYXlLZXldW2ldID8/IHt9O1xuICAgICAgY29uc3QgbmVzdGVkID0ge307XG5cbiAgICAgIGlmIChyZXN0UGF0aC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgICAgc2V0KG5lc3RlZCwgYCR7cmVzdFBhdGguam9pbignLicpfS4ke2ZpZWxkfWAsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICBzZXQobmVzdGVkLCBmaWVsZCwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9ialthcnJheUtleV1baV0gPSBtZXJnZSh7fSwgdGFyZ2V0SXRlbSwgbmVzdGVkKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RmllbGRzRnJvbVBhdGgob2JqOiBhbnksIGJhc2VQYXRoOiBzdHJpbmcsIGZpZWxkczogc3RyaW5nW10pOiBhbnkge1xuICBpZiAoZmllbGRzLmxlbmd0aCA9PT0gMSAmJiBmaWVsZHNbMF0gPT09ICcqJykge1xuICAgIGNvbnN0IGZ1bGxPYmogPSBiYXNlUGF0aCA/IGdldChvYmosIGJhc2VQYXRoKSA6IG9iajtcbiAgICByZXR1cm4gaXNQbGFpbk9iamVjdChmdWxsT2JqKSA/IGZ1bGxPYmogOiB7fTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBiYXNlUGF0aCA/IGAke2Jhc2VQYXRofS4ke2ZpZWxkfWAgOiBmaWVsZDtcbiAgICBjb25zdCB2YWwgPSBnZXQob2JqLCBmdWxsUGF0aCk7XG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHRbZmllbGRdID0gdmFsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U21hcnQob2JqOiBhbnksIHNtYXJ0UGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcGF0aFBhcnRzID0gc21hcnRQYXRoLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RQYXJ0ID0gcGF0aFBhcnRzW3BhdGhQYXJ0cy5sZW5ndGggLSAxXTtcbiAgY29uc3QgZmllbGRNYXRjaCA9IGxhc3RQYXJ0Lm1hdGNoKC9eXFx7KC4rKVxcfSQvKTtcblxuICAvLyBTaW1wbGUgZ2V0IChubyBmaWVsZHMpXG4gIGlmICghZmllbGRNYXRjaCkge1xuICAgIHJldHVybiBnZXQob2JqLCBzbWFydFBhdGgpO1xuICB9XG5cbiAgY29uc3QgZmllbGRzID0gZmllbGRNYXRjaFsxXS5zcGxpdCgnLCcpLm1hcCgoZikgPT4gZi50cmltKCkpO1xuICBjb25zdCBiYXNlUGF0aCA9IHBhdGhQYXJ0cy5zbGljZSgwLCAtMSkuam9pbignLicpO1xuICBjb25zdCBpdGVtcyA9IGdldChvYmosIGJhc2VQYXRoKTtcblxuICBpZiAoIWlzQXJyYXkoaXRlbXMpKSByZXR1cm4gW107XG5cbiAgY29uc3QgbmVzdGVkUGF0aCA9IGJhc2VQYXRoLmluY2x1ZGVzKCcuJykgPyBiYXNlUGF0aC5zcGxpdCgnLicpLnNsaWNlKDEpLmpvaW4oJy4nKSA6ICcnO1xuXG4gIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICByZXR1cm4gZXh0cmFjdEZpZWxkc0Zyb21QYXRoKGl0ZW0sIG5lc3RlZFBhdGgsIGZpZWxkcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFZhbHVlPFQgPSBhbnk+KHZhbHVlOiBhbnksIGtleTogc3RyaW5nID0gJ2lkJyk6IFQgfCBudWxsIHtcbiAgaWYgKGlzTmlsKHZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIHJldHVybiBpc09iamVjdExpa2UodmFsdWUpID8gZ2V0KHZhbHVlLCBrZXkpIDogdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRlZXAob2JqOiBhbnkpIHtcbiAgcmV0dXJuIHRyYW5zZm9ybShvYmosIChyZXN1bHQ6IGFueSwgdmFsdWU6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNPYmplY3RMaWtlKHZhbHVlKSkge1xuICAgICAgY29uc3QgY2xlYW5lZCA9IGNsZWFuRGVlcCh2YWx1ZSk7XG4gICAgICBpZiAoIWlzRW1wdHkoY2xlYW5lZCkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBjbGVhbmVkO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAhaXNOaWwodmFsdWUpICYmIC8vIG5vdCBudWxsIG9yIHVuZGVmaW5lZFxuICAgICAgISh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpICYmIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICEoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICApIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cblxudHlwZSBDaGFuZ2VFbnRyeSA9IHtcbiAgcGF0aDogc3RyaW5nO1xuICBvbGRWYWx1ZTogYW55O1xuICBuZXdWYWx1ZTogYW55O1xuICBhcnJheURpZmY/OiB7XG4gICAgYWRkZWQ6IGFueVtdO1xuICAgIHJlbW92ZWQ6IGFueVtdO1xuICB9O1xufTtcblxuZnVuY3Rpb24gZ2V0RGVlcENoYW5nZXMob2JqMTogYW55LCBvYmoyOiBhbnkpOiBDaGFuZ2VFbnRyeVtdIHtcbiAgY29uc3QgY2hhbmdlczogQ2hhbmdlRW50cnlbXSA9IFtdO1xuXG4gIGZ1bmN0aW9uIHdhbGsobzE6IGFueSwgbzI6IGFueSwgY3VycmVudFBhdGg6IHN0cmluZ1tdID0gW10pIHtcbiAgICAvLyBJZiBib3RoIHZhbHVlcyBhcmUgZGVlcGx5IGVxdWFsLCBza2lwXG4gICAgaWYgKGlzRXF1YWwobzEsIG8yKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaXNPYmoxTmlsID0gbzEgPT09IG51bGwgfHwgbzEgPT09IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpc09iajJOaWwgPSBvMiA9PT0gbnVsbCB8fCBvMiA9PT0gdW5kZWZpbmVkO1xuXG4gICAgLy8gSWYgb2JqMSBpcyBudWxsL3VuZGVmaW5lZCBhbmQgb2JqMiBpcyBub3QsIHRyZWF0IGVudGlyZSBvYmoyIGFzIGFkZGVkXG4gICAgaWYgKGlzT2JqMU5pbCAmJiAhaXNPYmoyTmlsKSB7XG4gICAgICBpZiAoaXNQbGFpbk9iamVjdChvMikpIHtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobzIpKSB7XG4gICAgICAgICAgd2Fsayh1bmRlZmluZWQsIG8yW2tleV0sIFsuLi5jdXJyZW50UGF0aCwga2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvMikpIHtcbiAgICAgICAgY2hhbmdlcy5wdXNoKHtcbiAgICAgICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICAgICAgb2xkVmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZDogbzIsXG4gICAgICAgICAgICByZW1vdmVkOiBbXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmV3VmFsdWU6IG8yLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBJZiBvYmoyIGlzIG51bGwvdW5kZWZpbmVkIGFuZCBvYmoxIGlzIG5vdCwgdHJlYXQgZW50aXJlIG9iajEgYXMgcmVtb3ZlZFxuICAgIGlmICghaXNPYmoxTmlsICYmIGlzT2JqMk5pbCkge1xuICAgICAgaWYgKGlzUGxhaW5PYmplY3QobzEpKSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG8xKSkge1xuICAgICAgICAgIHdhbGsobzFba2V5XSwgdW5kZWZpbmVkLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobzEpKSB7XG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICAgIGFycmF5RGlmZjoge1xuICAgICAgICAgICAgYWRkZWQ6IFtdLFxuICAgICAgICAgICAgcmVtb3ZlZDogbzEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGFuZ2VzLnB1c2goe1xuICAgICAgICAgIHBhdGg6IGN1cnJlbnRQYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICAgICAgbmV3VmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgYXJyYXlzLCBjb21wYXJlIGl0ZW1zXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobzEpICYmIEFycmF5LmlzQXJyYXkobzIpKSB7XG4gICAgICBpZiAoIWlzRXF1YWwobzEsIG8yKSkge1xuICAgICAgICBjb25zdCBhZGRlZCA9IGRpZmZlcmVuY2VXaXRoKG8yLCBvMSwgaXNFcXVhbCk7XG4gICAgICAgIGNvbnN0IHJlbW92ZWQgPSBkaWZmZXJlbmNlV2l0aChvMSwgbzIsIGlzRXF1YWwpO1xuXG4gICAgICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICAgICAgcGF0aDogY3VycmVudFBhdGguam9pbignLicpLFxuICAgICAgICAgIG9sZFZhbHVlOiBvMSxcbiAgICAgICAgICBuZXdWYWx1ZTogbzIsXG4gICAgICAgICAgYXJyYXlEaWZmOiB7XG4gICAgICAgICAgICBhZGRlZCxcbiAgICAgICAgICAgIHJlbW92ZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSWYgYm90aCBhcmUgcGxhaW4gb2JqZWN0cywgd2FsayBlYWNoIGtleVxuICAgIGlmIChpc1BsYWluT2JqZWN0KG8xKSAmJiBpc1BsYWluT2JqZWN0KG8yKSkge1xuICAgICAgY29uc3QgYWxsS2V5cyA9IHVuaW9uKE9iamVjdC5rZXlzKG8xKSwgT2JqZWN0LmtleXMobzIpKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGFsbEtleXMpIHtcbiAgICAgICAgd2FsayhvMVtrZXldLCBvMltrZXldLCBbLi4uY3VycmVudFBhdGgsIGtleV0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFByaW1pdGl2ZSB2YWx1ZXMgb3IgbWlzbWF0Y2hlZCB0eXBlc1xuICAgIGNoYW5nZXMucHVzaCh7XG4gICAgICBwYXRoOiBjdXJyZW50UGF0aC5qb2luKCcuJyksXG4gICAgICBvbGRWYWx1ZTogbzEsXG4gICAgICBuZXdWYWx1ZTogbzIsXG4gICAgfSk7XG4gIH1cblxuICB3YWxrKG9iajEsIG9iajIpO1xuICByZXR1cm4gY2hhbmdlcztcbn1cblxuLy8gTWV0aG9kIDE6IFJldHVybnMgb25seSBjaGFuZ2VkIHBhdGhzXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlZFBhdGhzKG9iajE6IGFueSwgb2JqMjogYW55KTogc3RyaW5nW10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMikubWFwKChjaGFuZ2UpID0+IGNoYW5nZS5wYXRoKTtcbn1cblxuLy8gTWV0aG9kIDI6IFJldHVybnMgZnVsbCBjaGFuZ2UgZW50cmllc1xuZXhwb3J0IGZ1bmN0aW9uIGdldERldGFpbGVkQ2hhbmdlcyhvYmoxOiBhbnksIG9iajI6IGFueSk6IENoYW5nZUVudHJ5W10ge1xuICByZXR1cm4gZ2V0RGVlcENoYW5nZXMob2JqMSwgb2JqMik7XG59XG5cblxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW51bVZhbHVlcyhlbnVtVHlwZTogYW55KTogeyBpZDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH1bXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhlbnVtVHlwZSkubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGlkOiB2YWx1ZSBhcyBzdHJpbmcsIHRpdGxlOiBrZXkgYXMgc3RyaW5nIH0pKTtcbn1cblxuXG5cblxuXG4iXX0=","import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport { computed } from '@angular/core';\nimport { getSmart, setSmart } from '../utils/object-util';\nexport class AXPContextChangeEvent {\n}\nexport const AXPContextStore = signalStore({\n providedIn: 'root',\n}, \n// Initial State\nwithState(() => ({\n data: {}, // Shared context data\n state: 'initiated', // Current state\n initialSnapshot: {}, // Snapshot of the first initialized state\n previousSnapshot: {}, // Snapshot of the previous state\n lastChange: {\n state: 'initiated',\n }, // Last change event\n})), \n// Computed Signals\nwithComputed(({ data, state, lastChange, initialSnapshot, previousSnapshot }) => ({\n isChanged: computed(() => state() === 'changed'),\n isReset: computed(() => state() === 'restored'),\n isInitiated: computed(() => state() === 'initiated'),\n isEmpty: computed(() => Object.keys(data()).length === 0),\n isDirty: computed(() => !isEqual(data(), previousSnapshot())),\n snapshot: computed(() => cloneDeep(data())), // Current data snapshot\n initial: computed(() => cloneDeep(initialSnapshot())), // Initial snapshot\n previous: computed(() => cloneDeep(previousSnapshot())), // Previous snapshot\n changeEvent: computed(() => lastChange()), // Reactive last change event\n})), \n// Methods for State Management\nwithMethods((store) => ({\n // Update a specific value\n update(path, value) {\n const currentData = cloneDeep(store.data());\n const oldValue = getSmart(currentData, path);\n // Skip if the value hasn't changed\n if (isEqual(oldValue, value)) {\n return;\n }\n // Update the value and prepare the change event\n const updatedData = setSmart(currentData, path, value);\n const changeEvent = {\n oldValue,\n newValue: value,\n path,\n state: 'changed',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n patch(context) {\n const currentData = cloneDeep(store.data());\n // Update the value and prepare the change event\n const updatedData = { ...currentData, ...context };\n const changeEvent = {\n state: 'patch',\n data: updatedData,\n };\n // Patch the state\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: updatedData,\n state: 'changed',\n lastChange: changeEvent,\n });\n },\n // Reset to the initial state\n reset() {\n const initialData = store.initial();\n const changeEvent = {\n oldValue: cloneDeep(store.data()), // Current data becomes old value\n newValue: cloneDeep(initialData), // Reset to the initial state\n path: '',\n state: 'restored',\n data: initialData,\n };\n patchState(store, {\n previousSnapshot: store.snapshot(), // Save the previous state\n data: initialData,\n state: 'restored',\n lastChange: changeEvent,\n });\n },\n // Initialize the state\n set(initialData) {\n const currentData = store.data();\n if (isEqual(currentData, initialData)) {\n return; // Skip if the current state matches the initial state\n }\n const changeEvent = {\n oldValue: null,\n newValue: cloneDeep(initialData),\n path: '',\n state: 'initiated',\n data: initialData,\n };\n patchState(store, {\n initialSnapshot: cloneDeep(initialData), // Save the initial state\n previousSnapshot: store.snapshot(), // Save the current state as the previous\n data: initialData,\n state: 'initiated',\n lastChange: changeEvent,\n });\n },\n // Get a specific value\n getValue(path) {\n return getSmart(store.data(), path);\n },\n})));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1zdG9yZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvY29udGV4dC9jb250ZXh0LXN0b3JlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBUzFELE1BQU0sT0FBTyxxQkFBcUI7Q0FNakM7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUN0QztJQUNJLFVBQVUsRUFBRSxNQUFNO0NBQ3JCO0FBQ0QsZ0JBQWdCO0FBQ2hCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ2IsSUFBSSxFQUFFLEVBQW9CLEVBQUUsc0JBQXNCO0lBQ2xELEtBQUssRUFBRSxXQUE4QixFQUFFLGdCQUFnQjtJQUN2RCxlQUFlLEVBQUUsRUFBRSxFQUFFLDBDQUEwQztJQUMvRCxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsaUNBQWlDO0lBQ3ZELFVBQVUsRUFBRTtRQUNSLEtBQUssRUFBRSxXQUFXO0tBQ0ksRUFBRSxvQkFBb0I7Q0FDbkQsQ0FBQyxDQUFDO0FBRUgsbUJBQW1CO0FBQ25CLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDaEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxVQUFVLENBQUM7SUFDL0MsV0FBVyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxXQUFXLENBQUM7SUFDcEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztJQUN6RCxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUM3RCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsd0JBQXdCO0lBQ3JFLE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRSxtQkFBbUI7SUFDMUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CO0lBQzdFLFdBQVcsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSw2QkFBNkI7Q0FDM0UsQ0FBQyxDQUFDO0FBRUgsK0JBQStCO0FBQy9CLFdBQVcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQiwwQkFBMEI7SUFDMUIsTUFBTSxDQUFDLElBQVksRUFBRSxLQUFVO1FBQzNCLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdDLG1DQUFtQztRQUNuQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPO1FBQ1gsQ0FBQztRQUVELGdEQUFnRDtRQUNoRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RCxNQUFNLFdBQVcsR0FBMEI7WUFDdkMsUUFBUTtZQUNSLFFBQVEsRUFBRSxLQUFLO1lBQ2YsSUFBSTtZQUNKLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixrQkFBa0I7UUFDbEIsVUFBVSxDQUFDLEtBQUssRUFBRTtZQUNkLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSwwQkFBMEI7WUFDOUQsSUFBSSxFQUFFLFdBQVc7WUFDakIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsVUFBVSxFQUFFLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFXO1FBQ2IsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLGdEQUFnRDtRQUNoRCxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDbkQsTUFBTSxXQUFXLEdBQTBCO1lBQ3ZDLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUFFLFdBQVc7U0FDcEIsQ0FBQztRQUVGLGtCQUFrQjtRQUNsQixVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLDBCQUEwQjtZQUM5RCxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsU0FBUztZQUNoQixVQUFVLEVBQUUsV0FBVztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsNkJBQTZCO0lBQzdCLEtBQUs7UUFDRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsTUFBTSxXQUFXLEdBQTBCO1lBQ3ZDLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsaUNBQWlDO1lBQ3BFLFFBQVEsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsNkJBQTZCO1lBQy9ELElBQUksRUFBRSxFQUFFO1lBQ1IsS0FBSyxFQUFFLFVBQVU7WUFDakIsSUFBSSxFQUFFLFdBQVc7U0FDcEIsQ0FBQztRQUVGLFVBQVUsQ0FBQyxLQUFLLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsMEJBQTBCO1lBQzlELElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFVBQVUsRUFBRSxXQUFXO1NBQzFCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCx1QkFBdUI7SUFDdkIsR0FBRyxDQUFDLFdBQWdCO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLENBQUMsc0RBQXNEO1FBQ2xFLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBMEI7WUFDdkMsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQztZQUNoQyxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxXQUFXO1lBQ2xCLElBQUksRUFBRSxXQUFXO1NBQ3BCLENBQUM7UUFFRixVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ2QsZUFBZSxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSx5QkFBeUI7WUFDbEUsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLHlDQUF5QztZQUM3RSxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsV0FBVztZQUNsQixVQUFVLEVBQUUsV0FBVztTQUMxQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsdUJBQXVCO0lBQ3ZCLFFBQVEsQ0FBQyxJQUFZO1FBQ2pCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0osQ0FBQyxDQUFDLENBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbFN0b3JlLCB3aXRoU3RhdGUsIHdpdGhDb21wdXRlZCwgd2l0aE1ldGhvZHMsIHBhdGNoU3RhdGUgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0U21hcnQsIHNldFNtYXJ0IH0gZnJvbSAnLi4vdXRpbHMvb2JqZWN0LXV0aWwnO1xuXG5cbmV4cG9ydCB0eXBlIEFYUENvbnRleHRTdGF0ZSA9ICdpbml0aWF0ZWQnIHwgJ3Jlc3RvcmVkJyB8ICdjaGFuZ2VkJyB8ICdwYXRjaCc7XG5cbmV4cG9ydCB0eXBlIEFYUENvbnRleHREYXRhID0ge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUENvbnRleHRDaGFuZ2VFdmVudCB7XG4gICAgb2xkVmFsdWU/OiBhbnk7XG4gICAgbmV3VmFsdWU/OiBhbnk7XG4gICAgcGF0aD86IHN0cmluZztcbiAgICBzdGF0ZTogQVhQQ29udGV4dFN0YXRlO1xuICAgIGRhdGE6IGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUENvbnRleHRTdG9yZSA9IHNpZ25hbFN0b3JlKFxuICAgIHtcbiAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIH0sXG4gICAgLy8gSW5pdGlhbCBTdGF0ZVxuICAgIHdpdGhTdGF0ZSgoKSA9PiAoe1xuICAgICAgICBkYXRhOiB7fSBhcyBBWFBDb250ZXh0RGF0YSwgLy8gU2hhcmVkIGNvbnRleHQgZGF0YVxuICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcgYXMgQVhQQ29udGV4dFN0YXRlLCAvLyBDdXJyZW50IHN0YXRlXG4gICAgICAgIGluaXRpYWxTbmFwc2hvdDoge30sIC8vIFNuYXBzaG90IG9mIHRoZSBmaXJzdCBpbml0aWFsaXplZCBzdGF0ZVxuICAgICAgICBwcmV2aW91c1NuYXBzaG90OiB7fSwgLy8gU25hcHNob3Qgb2YgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgIGxhc3RDaGFuZ2U6IHtcbiAgICAgICAgICAgIHN0YXRlOiAnaW5pdGlhdGVkJyxcbiAgICAgICAgfSBhcyBBWFBDb250ZXh0Q2hhbmdlRXZlbnQsIC8vIExhc3QgY2hhbmdlIGV2ZW50XG4gICAgfSkpLFxuXG4gICAgLy8gQ29tcHV0ZWQgU2lnbmFsc1xuICAgIHdpdGhDb21wdXRlZCgoeyBkYXRhLCBzdGF0ZSwgbGFzdENoYW5nZSwgaW5pdGlhbFNuYXBzaG90LCBwcmV2aW91c1NuYXBzaG90IH0pID0+ICh7XG4gICAgICAgIGlzQ2hhbmdlZDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ2NoYW5nZWQnKSxcbiAgICAgICAgaXNSZXNldDogY29tcHV0ZWQoKCkgPT4gc3RhdGUoKSA9PT0gJ3Jlc3RvcmVkJyksXG4gICAgICAgIGlzSW5pdGlhdGVkOiBjb21wdXRlZCgoKSA9PiBzdGF0ZSgpID09PSAnaW5pdGlhdGVkJyksXG4gICAgICAgIGlzRW1wdHk6IGNvbXB1dGVkKCgpID0+IE9iamVjdC5rZXlzKGRhdGEoKSkubGVuZ3RoID09PSAwKSxcbiAgICAgICAgaXNEaXJ0eTogY29tcHV0ZWQoKCkgPT4gIWlzRXF1YWwoZGF0YSgpLCBwcmV2aW91c1NuYXBzaG90KCkpKSwgXG4gICAgICAgIHNuYXBzaG90OiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoZGF0YSgpKSksIC8vIEN1cnJlbnQgZGF0YSBzbmFwc2hvdFxuICAgICAgICBpbml0aWFsOiBjb21wdXRlZCgoKSA9PiBjbG9uZURlZXAoaW5pdGlhbFNuYXBzaG90KCkpKSwgLy8gSW5pdGlhbCBzbmFwc2hvdFxuICAgICAgICBwcmV2aW91czogY29tcHV0ZWQoKCkgPT4gY2xvbmVEZWVwKHByZXZpb3VzU25hcHNob3QoKSkpLCAvLyBQcmV2aW91cyBzbmFwc2hvdFxuICAgICAgICBjaGFuZ2VFdmVudDogY29tcHV0ZWQoKCkgPT4gbGFzdENoYW5nZSgpKSwgLy8gUmVhY3RpdmUgbGFzdCBjaGFuZ2UgZXZlbnRcbiAgICB9KSksXG5cbiAgICAvLyBNZXRob2RzIGZvciBTdGF0ZSBNYW5hZ2VtZW50XG4gICAgd2l0aE1ldGhvZHMoKHN0b3JlKSA9PiAoe1xuICAgICAgICAvLyBVcGRhdGUgYSBzcGVjaWZpYyB2YWx1ZVxuICAgICAgICB1cGRhdGUocGF0aDogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpO1xuICAgICAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSBnZXRTbWFydChjdXJyZW50RGF0YSwgcGF0aCk7XG5cbiAgICAgICAgICAgIC8vIFNraXAgaWYgdGhlIHZhbHVlIGhhc24ndCBjaGFuZ2VkXG4gICAgICAgICAgICBpZiAoaXNFcXVhbChvbGRWYWx1ZSwgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHZhbHVlIGFuZCBwcmVwYXJlIHRoZSBjaGFuZ2UgZXZlbnRcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gc2V0U21hcnQoY3VycmVudERhdGEsIHBhdGgsIHZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgb2xkVmFsdWUsXG4gICAgICAgICAgICAgICAgbmV3VmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBkYXRhOiB1cGRhdGVkRGF0YSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFBhdGNoIHRoZSBzdGF0ZVxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBsYXN0Q2hhbmdlOiBjaGFuZ2VFdmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIHBhdGNoKGNvbnRleHQ6IHt9KSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNsb25lRGVlcChzdG9yZS5kYXRhKCkpO1xuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhbmQgcHJlcGFyZSB0aGUgY2hhbmdlIGV2ZW50XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRGF0YSA9IHsgLi4uY3VycmVudERhdGEsIC4uLmNvbnRleHQgfTtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUV2ZW50OiBBWFBDb250ZXh0Q2hhbmdlRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgc3RhdGU6ICdwYXRjaCcsXG4gICAgICAgICAgICAgICAgZGF0YTogdXBkYXRlZERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBQYXRjaCB0aGUgc3RhdGVcbiAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHtcbiAgICAgICAgICAgICAgICBwcmV2aW91c1NuYXBzaG90OiBzdG9yZS5zbmFwc2hvdCgpLCAvLyBTYXZlIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAgICAgICAgICAgIGRhdGE6IHVwZGF0ZWREYXRhLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAnY2hhbmdlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBSZXNldCB0byB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgIGNvbnN0IGluaXRpYWxEYXRhID0gc3RvcmUuaW5pdGlhbCgpO1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogY2xvbmVEZWVwKHN0b3JlLmRhdGEoKSksIC8vIEN1cnJlbnQgZGF0YSBiZWNvbWVzIG9sZCB2YWx1ZVxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLCAvLyBSZXNldCB0byB0aGUgaW5pdGlhbCBzdGF0ZVxuICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgIHN0YXRlOiAncmVzdG9yZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IGluaXRpYWxEYXRhLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwge1xuICAgICAgICAgICAgICAgIHByZXZpb3VzU25hcHNob3Q6IHN0b3JlLnNuYXBzaG90KCksIC8vIFNhdmUgdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICAgICAgc3RhdGU6ICdyZXN0b3JlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBzdGF0ZVxuICAgICAgICBzZXQoaW5pdGlhbERhdGE6IGFueSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSBzdG9yZS5kYXRhKCk7XG4gICAgICAgICAgICBpZiAoaXNFcXVhbChjdXJyZW50RGF0YSwgaW5pdGlhbERhdGEpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBTa2lwIGlmIHRoZSBjdXJyZW50IHN0YXRlIG1hdGNoZXMgdGhlIGluaXRpYWwgc3RhdGVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY2hhbmdlRXZlbnQ6IEFYUENvbnRleHRDaGFuZ2VFdmVudCA9IHtcbiAgICAgICAgICAgICAgICBvbGRWYWx1ZTogbnVsbCxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogY2xvbmVEZWVwKGluaXRpYWxEYXRhKSxcbiAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgICAgICAgICAgZGF0YTogaW5pdGlhbERhdGEsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCB7XG4gICAgICAgICAgICAgICAgaW5pdGlhbFNuYXBzaG90OiBjbG9uZURlZXAoaW5pdGlhbERhdGEpLCAvLyBTYXZlIHRoZSBpbml0aWFsIHN0YXRlXG4gICAgICAgICAgICAgICAgcHJldmlvdXNTbmFwc2hvdDogc3RvcmUuc25hcHNob3QoKSwgLy8gU2F2ZSB0aGUgY3VycmVudCBzdGF0ZSBhcyB0aGUgcHJldmlvdXNcbiAgICAgICAgICAgICAgICBkYXRhOiBpbml0aWFsRGF0YSxcbiAgICAgICAgICAgICAgICBzdGF0ZTogJ2luaXRpYXRlZCcsXG4gICAgICAgICAgICAgICAgbGFzdENoYW5nZTogY2hhbmdlRXZlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gR2V0IGEgc3BlY2lmaWMgdmFsdWVcbiAgICAgICAgZ2V0VmFsdWUocGF0aDogc3RyaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0U21hcnQoc3RvcmUuZGF0YSgpLCBwYXRoKTtcbiAgICAgICAgfSxcbiAgICB9KSlcbik7XG4iXX0=","export class AXPDataGenerator {\n static uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n static number(...args) {\n let min = 0;\n let max = 100;\n if (args.length == 1)\n max = args[0];\n if (args.length == 2) {\n min = args[0];\n max = args[1];\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n static date(...args) {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n if (args.length === 1) {\n start = args[0];\n }\n else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n static array(length = 5, generator) {\n return Array.from({ length }, generator);\n }\n static pick(...args) {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items = args[0];\n const count = args[1] ?? 1;\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n static string(length = 10) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static boolean() {\n return Math.random() >= 0.5;\n }\n static item(array = []) {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n static color(format = 'hex') {\n // Generate HSL values with safe ranges for good contrast\n const h = Math.floor(Math.random() * 360);\n const s = Math.floor(Math.random() * 20) + 60; // 60% - 80%\n const l = Math.floor(Math.random() * 20) + 40; // 40% - 60%\n if (format === 'hsl') {\n return `hsl(${h}, ${s}%, ${l}%)`;\n }\n // Convert HSL to RGB\n const { r, g, b } = this.hslToRgb(h, s / 100, l / 100);\n if (format === 'rgb') {\n return `rgb(${r}, ${g}, ${b})`;\n }\n // Convert RGB to HEX\n const toHex = (val) => val.toString(16).padStart(2, '0');\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n }\n //TODO: move or read from utils\n static hslToRgb(h, s, l) {\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let r = 0, g = 0, b = 0;\n if (h < 60)\n [r, g, b] = [c, x, 0];\n else if (h < 120)\n [r, g, b] = [x, c, 0];\n else if (h < 180)\n [r, g, b] = [0, c, x];\n else if (h < 240)\n [r, g, b] = [0, x, c];\n else if (h < 300)\n [r, g, b] = [x, 0, c];\n else\n [r, g, b] = [c, 0, x];\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255)\n };\n }\n static alphanumeric(length = 10) {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length = 10) {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static phone() {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n static firstName() {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n static lastName() {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n static email(...args) {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n static country() {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n static city() {\n const cities = ['Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n static state() {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n static address() {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL2RhdGEtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLElBQUk7UUFDVCxPQUFPLHNDQUFzQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0RSxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDM0QsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFjO1FBQzdCLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNaLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNkLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzNELENBQUM7SUFLRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBVztRQUN4QixJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUIsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUksU0FBaUIsQ0FBQyxFQUFFLFNBQWtCO1FBQ3BELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFJRCxNQUFNLENBQUMsSUFBSSxDQUFJLEdBQUcsSUFBVztRQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsNkZBQTZGO1FBQzdGLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCx5REFBeUQ7UUFDekQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0I7UUFDM0UsQ0FBQztRQUNELE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQWlCLEVBQUU7UUFDL0IsTUFBTSxLQUFLLEdBQUcsZ0VBQWdFLENBQUM7UUFDL0UsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxHQUFHLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUksUUFBYSxFQUFFO1FBQzVCLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQWdDLEtBQUs7UUFDaEQseURBQXlEO1FBQ3pELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFlBQVk7UUFDM0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsWUFBWTtRQUUzRCxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNyQixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNuQyxDQUFDO1FBRUQscUJBQXFCO1FBQ3JCLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBRXZELElBQUksTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3JCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxxQkFBcUI7UUFDckIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsK0JBQStCO0lBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO1FBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUc7WUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ25DLElBQUksQ0FBQyxHQUFHLEdBQUc7WUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ25DLElBQUksQ0FBQyxHQUFHLEdBQUc7WUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ25DLElBQUksQ0FBQyxHQUFHLEdBQUc7WUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOztZQUNwQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTFCLE9BQU87WUFDTCxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDNUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1lBQzVCLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBaUIsRUFBRTtRQUNyQyxNQUFNLEtBQUssR0FBRyxnRUFBZ0UsQ0FBQztRQUMvRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQWlCLEVBQUU7UUFDakMsTUFBTSxLQUFLLEdBQUcsc0RBQXNELENBQUM7UUFDckUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDVixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzQyxPQUFPLEdBQUcsUUFBUSxJQUFJLFlBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZCxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3BILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBSUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQVc7UUFDekIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN6RSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXpFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUyxHQUFHLFFBQVEsR0FBRyxZQUFZLElBQUksTUFBTSxFQUFFLENBQUM7UUFDeEUsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9DLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUyxHQUFHLFFBQVEsR0FBRyxZQUFZLElBQUksTUFBTSxFQUFFLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTztRQUNaLE1BQU0sU0FBUyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSTtRQUNULE1BQU0sTUFBTSxHQUFHLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLE1BQU0sTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPO1FBQ1osTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLFlBQVksSUFBSSxNQUFNLEtBQUssSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUM7SUFDM0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgY2xhc3MgQVhQRGF0YUdlbmVyYXRvciB7XG4gIHN0YXRpYyB1dWlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgKGNoYXIpID0+IHtcbiAgICAgIGNvbnN0IHJhbmRvbSA9IChNYXRoLnJhbmRvbSgpICogMTYpIHwgMDtcbiAgICAgIGNvbnN0IHZhbHVlID0gY2hhciA9PT0gJ3gnID8gcmFuZG9tIDogKHJhbmRvbSAmIDB4MykgfCAweDg7XG4gICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoMTYpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG51bWJlcihtYXg6IG51bWJlcik6IG51bWJlcjtcbiAgc3RhdGljIG51bWJlcihtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBudW1iZXI7XG4gIHN0YXRpYyBudW1iZXIoLi4uYXJnczogbnVtYmVyW10pOiBudW1iZXIge1xuICAgIGxldCBtaW4gPSAwO1xuICAgIGxldCBtYXggPSAxMDA7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDEpIG1heCA9IGFyZ3NbMF07XG4gICAgaWYgKGFyZ3MubGVuZ3RoID09IDIpIHtcbiAgICAgIG1pbiA9IGFyZ3NbMF07XG4gICAgICBtYXggPSBhcmdzWzFdO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcbiAgfVxuXG4gIHN0YXRpYyBkYXRlKCk6IERhdGU7XG4gIHN0YXRpYyBkYXRlKHN0YXJ0OiBEYXRlKTogRGF0ZTtcbiAgc3RhdGljIGRhdGUoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IERhdGU7XG4gIHN0YXRpYyBkYXRlKC4uLmFyZ3M6IGFueVtdKTogRGF0ZSB7XG4gICAgbGV0IHN0YXJ0ID0gbmV3IERhdGUoMjAwMCwgMCwgMSk7XG4gICAgbGV0IGVuZCA9IG5ldyBEYXRlKCk7XG5cbiAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHN0YXJ0ID0gYXJnc1swXTtcbiAgICB9IGVsc2UgaWYgKGFyZ3MubGVuZ3RoID09PSAyKSB7XG4gICAgICBzdGFydCA9IGFyZ3NbMF07XG4gICAgICBlbmQgPSBhcmdzWzFdO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHN0YXJ0LmdldFRpbWUoKTtcbiAgICBjb25zdCBlbmRUaW1lID0gZW5kLmdldFRpbWUoKTtcbiAgICByZXR1cm4gbmV3IERhdGUoc3RhcnRUaW1lICsgTWF0aC5yYW5kb20oKSAqIChlbmRUaW1lIC0gc3RhcnRUaW1lKSk7XG4gIH1cblxuICBzdGF0aWMgYXJyYXk8VD4obGVuZ3RoOiBudW1iZXIgPSA1LCBnZW5lcmF0b3I6ICgpID0+IFQpOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sIGdlbmVyYXRvcik7XG4gIH1cblxuICBzdGF0aWMgcGljazxUPihpdGVtczogVFtdKTogVDtcbiAgc3RhdGljIHBpY2s8VD4oaXRlbXM6IFRbXSwgY291bnQ6IG51bWJlcik6IFRbXTtcbiAgc3RhdGljIHBpY2s8VD4oLi4uYXJnczogYW55W10pOiBUIHwgVFtdIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcGFyYW1ldGVycycpO1xuICAgIH1cbiAgICBjb25zdCBpdGVtczogVFtdID0gYXJnc1swXTtcbiAgICBjb25zdCBjb3VudDogbnVtYmVyID0gYXJnc1sxXSA/PyAxO1xuICAgIGlmIChjb3VudCA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ291bnQgbXVzdCBiZSBhdCBsZWFzdCAxJyk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlIGNvdW50IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGl0ZW1zLCBqdXN0IHJldHVybiBhIHNodWZmbGVkIGNvcHkgb2YgdGhlIGFycmF5XG4gICAgaWYgKGNvdW50ID49IGl0ZW1zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIFsuLi5pdGVtc10uc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcbiAgICB9XG5cbiAgICAvLyBTaHVmZmxlIHRoZSBhcnJheSBhbmQgc2xpY2UgdGhlIGZpcnN0ICdjb3VudCcgZWxlbWVudHNcbiAgICBjb25zdCBzaHVmZmxlZCA9IGl0ZW1zLnNsaWNlKCk7XG4gICAgZm9yIChsZXQgaSA9IHNodWZmbGVkLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGogPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAoaSArIDEpKTtcbiAgICAgIFtzaHVmZmxlZFtpXSwgc2h1ZmZsZWRbal1dID0gW3NodWZmbGVkW2pdLCBzaHVmZmxlZFtpXV07IC8vIFN3YXAgZWxlbWVudHNcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50ID09IDEgPyBzaHVmZmxlZC5zbGljZSgwLCBjb3VudClbMF0gOiBzaHVmZmxlZC5zbGljZSgwLCBjb3VudCk7XG4gIH1cblxuICBzdGF0aWMgc3RyaW5nKGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNoYXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JztcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoKSA9PiBjaGFycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKSkpLmpvaW4oJycpO1xuICB9XG5cbiAgc3RhdGljIGJvb2xlYW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgPj0gMC41O1xuICB9XG5cbiAgc3RhdGljIGl0ZW08VD4oYXJyYXk6IFRbXSA9IFtdKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGFycmF5Lmxlbmd0aCA+IDAgPyBhcnJheVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhcnJheS5sZW5ndGgpXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHN0YXRpYyBjb2xvcihmb3JtYXQ6ICdoc2wnIHwgJ3JnYicgfCAnaGV4JyA9ICdoZXgnKTogc3RyaW5nIHtcbiAgICAvLyBHZW5lcmF0ZSBIU0wgdmFsdWVzIHdpdGggc2FmZSByYW5nZXMgZm9yIGdvb2QgY29udHJhc3RcbiAgICBjb25zdCBoID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMzYwKTtcbiAgICBjb25zdCBzID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjApICsgNjA7IC8vIDYwJSAtIDgwJVxuICAgIGNvbnN0IGwgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyMCkgKyA0MDsgLy8gNDAlIC0gNjAlXG5cbiAgICBpZiAoZm9ybWF0ID09PSAnaHNsJykge1xuICAgICAgcmV0dXJuIGBoc2woJHtofSwgJHtzfSUsICR7bH0lKWA7XG4gICAgfVxuXG4gICAgLy8gQ29udmVydCBIU0wgdG8gUkdCXG4gICAgY29uc3QgeyByLCBnLCBiIH0gPSB0aGlzLmhzbFRvUmdiKGgsIHMgLyAxMDAsIGwgLyAxMDApO1xuXG4gICAgaWYgKGZvcm1hdCA9PT0gJ3JnYicpIHtcbiAgICAgIHJldHVybiBgcmdiKCR7cn0sICR7Z30sICR7Yn0pYDtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IFJHQiB0byBIRVhcbiAgICBjb25zdCB0b0hleCA9ICh2YWw6IG51bWJlcikgPT4gdmFsLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCAnMCcpO1xuICAgIHJldHVybiBgIyR7dG9IZXgocil9JHt0b0hleChnKX0ke3RvSGV4KGIpfWA7XG4gIH1cblxuICAvL1RPRE86IG1vdmUgb3IgcmVhZCBmcm9tIHV0aWxzXG4gIHByaXZhdGUgc3RhdGljIGhzbFRvUmdiKGg6IG51bWJlciwgczogbnVtYmVyLCBsOiBudW1iZXIpOiB7IHI6IG51bWJlcjsgZzogbnVtYmVyOyBiOiBudW1iZXIgfSB7XG4gICAgY29uc3QgYyA9ICgxIC0gTWF0aC5hYnMoMiAqIGwgLSAxKSkgKiBzO1xuICAgIGNvbnN0IHggPSBjICogKDEgLSBNYXRoLmFicygoaCAvIDYwKSAlIDIgLSAxKSk7XG4gICAgY29uc3QgbSA9IGwgLSBjIC8gMjtcbiAgICBsZXQgciA9IDAsIGcgPSAwLCBiID0gMDtcblxuICAgIGlmIChoIDwgNjApIFtyLCBnLCBiXSA9IFtjLCB4LCAwXTtcbiAgICBlbHNlIGlmIChoIDwgMTIwKSBbciwgZywgYl0gPSBbeCwgYywgMF07XG4gICAgZWxzZSBpZiAoaCA8IDE4MCkgW3IsIGcsIGJdID0gWzAsIGMsIHhdO1xuICAgIGVsc2UgaWYgKGggPCAyNDApIFtyLCBnLCBiXSA9IFswLCB4LCBjXTtcbiAgICBlbHNlIGlmIChoIDwgMzAwKSBbciwgZywgYl0gPSBbeCwgMCwgY107XG4gICAgZWxzZVtyLCBnLCBiXSA9IFtjLCAwLCB4XTtcblxuICAgIHJldHVybiB7XG4gICAgICByOiBNYXRoLnJvdW5kKChyICsgbSkgKiAyNTUpLFxuICAgICAgZzogTWF0aC5yb3VuZCgoZyArIG0pICogMjU1KSxcbiAgICAgIGI6IE1hdGgucm91bmQoKGIgKyBtKSAqIDI1NSlcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGFscGhhbnVtZXJpYyhsZW5ndGg6IG51bWJlciA9IDEwKTogc3RyaW5nIHtcbiAgICBjb25zdCBjaGFycyA9ICcwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKCkgPT4gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpKS5qb2luKCcnKTtcbiAgfVxuICBzdGF0aWMgYWxwaGFiZXQobGVuZ3RoOiBudW1iZXIgPSAxMCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2hhcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eic7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGggfSwgKCkgPT4gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpKS5qb2luKCcnKTtcbiAgfVxuXG4gIHN0YXRpYyBwaG9uZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFyZWFDb2RlID0gdGhpcy5udW1iZXIoMTAwLCA5OTkpO1xuICAgIGNvbnN0IGV4Y2hhbmdlQ29kZSA9IHRoaXMubnVtYmVyKDEwMCwgOTk5KTtcbiAgICBjb25zdCBsaW5lTnVtYmVyID0gdGhpcy5udW1iZXIoMTAwMCwgOTk5OSk7XG4gICAgcmV0dXJuIGAke2FyZWFDb2RlfS0ke2V4Y2hhbmdlQ29kZX0tJHtsaW5lTnVtYmVyfWA7XG4gIH1cblxuICBzdGF0aWMgZmlyc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlyc3ROYW1lcyA9IFsnSm9obicsICdBbGxlbicsICdKYWsnLCAnUm9zZScsICdLYXRlJywgJ0xpYW0nLCAnT2xpdmlhJywgJ05vYWgnLCAnRW1tYScsICdBdmEnXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKGZpcnN0TmFtZXMpO1xuICB9XG5cbiAgc3RhdGljIGxhc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFzdE5hbWVzID0gWydHYXRlcycsICdKb25zZW4nLCAnU21pdGgnLCAnRm9yZCcsICdKYWtzb24nLCAnQnJvd24nLCAnSm9obnNvbicsICdXaWxsaWFtcycsICdKb25lcycsICdHYXJjaWEnXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKGxhc3ROYW1lcyk7XG4gIH1cblxuICBzdGF0aWMgZW1haWwoKTogc3RyaW5nO1xuICBzdGF0aWMgZW1haWwoZmlyc3ROYW1lOiBzdHJpbmcsIGxhc3ROYW1lOiBzdHJpbmcpOiBzdHJpbmc7XG4gIHN0YXRpYyBlbWFpbCguLi5hcmdzOiBhbnlbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgZG9tYWlucyA9IFsnZ21haWwuY29tJywgJ3lhaG9vLmNvbScsICdvdXRsb29rLmNvbScsICdleGFtcGxlLmNvbSddO1xuICAgIGNvbnN0IGRvbWFpbiA9IHRoaXMucGljayhkb21haW5zKTtcbiAgICBjb25zdCBzZXBhcmF0b3IgPSB0aGlzLnBpY2soWycuJywgJ18nLCAnJ10pO1xuICAgIGNvbnN0IHJhbmRvbVN1ZmZpeCA9IHRoaXMuYm9vbGVhbigpID8gdGhpcy5udW1iZXIoMSwgOTkpLnRvU3RyaW5nKCkgOiAnJztcblxuICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gMikge1xuICAgICAgY29uc3QgZmlyc3ROYW1lID0gYXJnc1swXS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY29uc3QgbGFzdE5hbWUgPSBhcmdzWzFdLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSR7c2VwYXJhdG9yfSR7bGFzdE5hbWV9JHtyYW5kb21TdWZmaXh9QCR7ZG9tYWlufWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpcnN0TmFtZSA9IHRoaXMuZmlyc3ROYW1lKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IGxhc3ROYW1lID0gdGhpcy5sYXN0TmFtZSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gYCR7Zmlyc3ROYW1lfSR7c2VwYXJhdG9yfSR7bGFzdE5hbWV9JHtyYW5kb21TdWZmaXh9QCR7ZG9tYWlufWA7XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGNvdW50cnkoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb3VudHJpZXMgPSBbJ1VTQScsICdDYW5hZGEnLCAnTWV4aWNvJywgJ0dlcm1hbnknLCAnRnJhbmNlJywgJ0phcGFuJywgJ0F1c3RyYWxpYSddO1xuICAgIHJldHVybiB0aGlzLnBpY2soY291bnRyaWVzKTtcbiAgfVxuXG4gIHN0YXRpYyBjaXR5KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2l0aWVzID0gWydMb3MgQW5nZWxlcycsICdUb3JvbnRvJywgJ1ZhbmNvdXZlcicsICdCZXJsaW4nLCAnUGFyaXMnLCAnVG9reW8nLCAnU3lkbmV5J107XG4gICAgcmV0dXJuIHRoaXMucGljayhjaXRpZXMpO1xuICB9XG5cbiAgc3RhdGljIHN0YXRlKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdGVzID0gWydOWScsICdDQScsICdUWCcsICdPTicsICdCQycsICdOU1cnLCAnQkVSJywgJ0lERicsICdUWU8nXTtcbiAgICByZXR1cm4gdGhpcy5waWNrKHN0YXRlcyk7XG4gIH1cblxuICBzdGF0aWMgYWRkcmVzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0cmVldHMgPSBbJ01haW4gU3QnLCAnSGlnaCBTdCcsICdNYXBsZSBBdmUnLCAnT2FrIFN0JywgJ1BpbmUgU3QnLCAnQ2VkYXIgU3QnXTtcbiAgICBjb25zdCBzdHJlZXROdW1iZXIgPSB0aGlzLm51bWJlcigxMDAsIDk5OTkpO1xuICAgIGNvbnN0IHN0cmVldCA9IHRoaXMucGljayhzdHJlZXRzKTtcbiAgICBjb25zdCBjaXR5ID0gdGhpcy5jaXR5KCk7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlKCk7XG4gICAgY29uc3QgemlwID0gdGhpcy5udW1iZXIoMTAwMDAsIDk5OTk5KTtcbiAgICBjb25zdCBjb3VudHJ5ID0gdGhpcy5jb3VudHJ5KCk7XG4gICAgcmV0dXJuIGAke3N0cmVldE51bWJlcn0gJHtzdHJlZXR9LCAke2NpdHl9LCAke3N0YXRlfSAke3ppcH0sICR7Y291bnRyeX1gO1xuICB9XG59XG4iXX0=","import { extractValue } from \"../utils/object-util\";\nexport function objectKeyValueTransforms(keyName) {\n return {\n getter: (value) => {\n return extractValue(value, keyName);\n },\n setter: (value) => {\n return extractValue(value, keyName);\n },\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtdHJhbnNmb3JtZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL3ZhbHVlLXRyYW5zZm9ybWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQVFwRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBZTtJQUNwRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDbkIsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNuQixPQUFPLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztLQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0cmFjdFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL29iamVjdC11dGlsXCI7XG5leHBvcnQgdHlwZSBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb24gPSAodmFsdWU6IGFueSkgPT4gYW55O1xuXG5leHBvcnQgdHlwZSBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb25zID0ge1xuICAgIGdldHRlcj86IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbjtcbiAgICBzZXR0ZXI/OiBBWFBWYWx1ZVRyYW5zZm9ybWVyRnVuY3Rpb247XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gb2JqZWN0S2V5VmFsdWVUcmFuc2Zvcm1zKGtleU5hbWU6IHN0cmluZyk6IEFYUFZhbHVlVHJhbnNmb3JtZXJGdW5jdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICAgIGdldHRlcjogKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBleHRyYWN0VmFsdWUodmFsdWUsIGtleU5hbWUpO1xuICAgICAgICB9LFxuICAgICAgICBzZXR0ZXI6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZXh0cmFjdFZhbHVlKHZhbHVlLCBrZXlOYW1lKTtcbiAgICAgICAgfSxcbiAgICB9O1xufSJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { set } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport const AXP_DATASOURCE_DEFINITION_PROVIDER = new InjectionToken('AXP_DATASOURCE_TYPE_PROVIDER');\nexport class AXPDataSourceDefinitionProviderService {\n constructor() {\n this.providers = inject(AXP_DATASOURCE_DEFINITION_PROVIDER, { optional: true });\n }\n async items() {\n const items = [];\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n set(provider, '__parent__', this);\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: AXPDataSourceDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDataSourceDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1kZWZpbml0aW9uLXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kYXRhL2RhdGFzb3VyY2UtZGVmaW5pdGlvbi1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQStCaEMsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQ2xFLDhCQUE4QixDQUMvQixDQUFDO0FBR0YsTUFBTSxPQUFPLHNDQUFzQztJQURuRDtRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsa0NBQWtDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQWdCcEY7SUFkQyxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sS0FBSyxHQUE4QixFQUFFLENBQUM7UUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2xDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0QyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFZO1FBQ3BCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDOytHQWhCVSxzQ0FBc0M7bUhBQXRDLHNDQUFzQyxjQUR6QixNQUFNOzs0RkFDbkIsc0NBQXNDO2tCQURsRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBGaWx0ZXJEZWZpbml0aW9uLCBBWFBPcHRpb25zRGF0YSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGF0YVNvdXJjZURhdGFGaWVsZERlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRhdGF0eXBlOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgb3B0aW9ucz86IEFYUE9wdGlvbnNEYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uPFQgPSBhbnk+IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICB2YWx1ZUZpZWxkPzoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICB9O1xuICB0ZXh0RmllbGQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gIH07XG4gIGNvbHVtbnM6IEFYUERhdGFTb3VyY2VEYXRhRmllbGREZWZpbml0aW9uW107XG4gIGZpbHRlcnM6IEFYUEZpbHRlckRlZmluaXRpb25bXTtcbiAgc2FtcGxlcz86IGFueVtdO1xuICBzb3VyY2U6ICgpID0+IEFYRGF0YVNvdXJjZTxUPiB8IFByb21pc2U8QVhEYXRhU291cmNlPFQ+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEYXRhU291cmNlRGVmaW5pdGlvblByb3ZpZGVyIHtcbiAgaXRlbXMoKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdPjtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9EQVRBU09VUkNFX0RFRklOSVRJT05fUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRGF0YVNvdXJjZURlZmluaXRpb25Qcm92aWRlcltdPihcbiAgJ0FYUF9EQVRBU09VUkNFX1RZUEVfUFJPVklERVInLFxuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBEYXRhU291cmNlRGVmaW5pdGlvblByb3ZpZGVyU2VydmljZSBpbXBsZW1lbnRzIEFYUERhdGFTb3VyY2VEZWZpbml0aW9uUHJvdmlkZXIge1xuICBwcml2YXRlIHByb3ZpZGVycyA9IGluamVjdChBWFBfREFUQVNPVVJDRV9ERUZJTklUSU9OX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIGFzeW5jIGl0ZW1zKCk6IFByb21pc2U8QVhQRGF0YVNvdXJjZURlZmluaXRpb25bXT4ge1xuICAgIGNvbnN0IGl0ZW1zOiBBWFBEYXRhU291cmNlRGVmaW5pdGlvbltdID0gW107XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgIHNldChwcm92aWRlciwgJ19fcGFyZW50X18nLCB0aGlzKTtcbiAgICAgICAgaXRlbXMucHVzaCguLi4oYXdhaXQgcHJvdmlkZXIuaXRlbXMoKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBhc3luYyBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBEYXRhU291cmNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5pdGVtcygpKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gbmFtZSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, input, effect } from '@angular/core';\nimport { set, get } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPElementDataDirective {\n constructor(elementRef) {\n this.elementRef = elementRef;\n this.data = input(null, ...(ngDevMode ? [{ debugName: \"data\", alias: 'axp-data' }] : [{ alias: 'axp-data' }]));\n this.path = input('__data__', ...(ngDevMode ? [{ debugName: \"path\", alias: 'axp-data-path' }] : [{ alias: 'axp-data-path' }]));\n // Effect to update element data when inputs change\n this.updateEffect = effect(() => {\n const currentData = this.data();\n const currentPath = this.path();\n set(this.elementRef.nativeElement, currentPath, currentData);\n }, ...(ngDevMode ? [{ debugName: \"updateEffect\" }] : []));\n }\n ngOnInit() {\n // Initial data setup\n set(this.elementRef.nativeElement, this.path(), this.data());\n }\n /**\n * Get data from the element\n */\n getData() {\n return get(this.elementRef.nativeElement, this.path());\n }\n /**\n * Update data at runtime\n */\n setData(data) {\n set(this.elementRef.nativeElement, this.path(), data);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPElementDataDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXPElementDataDirective, isStandalone: true, selector: \"[axp-data]\", inputs: { data: { classPropertyName: \"data\", publicName: \"axp-data\", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: \"path\", publicName: \"axp-data-path\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPElementDataDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-data]',\n standalone: true\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axp-data\", required: false }] }], path: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axp-data-path\", required: false }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1kYXRhLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZWxlbWVudC1kYXRhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU1yQyxNQUFNLE9BQU8sdUJBQXVCO0lBS2hDLFlBQW9CLFVBQW1DO1FBQW5DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBSHZELFNBQUksR0FBRyxLQUFLLENBQU0sSUFBSSx3Q0FBSSxLQUFLLEVBQUUsVUFBVSxPQUFuQixFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBQyxDQUFDO1FBQy9DLFNBQUksR0FBRyxLQUFLLENBQVMsVUFBVSx3Q0FBSSxLQUFLLEVBQUUsZUFBZSxPQUF4QixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsR0FBQyxDQUFDO1FBUzdELG1EQUFtRDtRQUMzQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsd0RBQUMsQ0FBQztJQVp3RCxDQUFDO0lBRTVELFFBQVE7UUFDSixxQkFBcUI7UUFDckIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBU0Q7O09BRUc7SUFDSCxPQUFPO1FBQ0gsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUFDLElBQVM7UUFDYixHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUM7K0dBL0JRLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGlucHV0LCBPbkluaXQsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0LCBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1theHAtZGF0YV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQVhQRWxlbWVudERhdGFEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgZGF0YSA9IGlucHV0PGFueT4obnVsbCwgeyBhbGlhczogJ2F4cC1kYXRhJyB9KTtcbiAgICBwYXRoID0gaW5wdXQ8c3RyaW5nPignX19kYXRhX18nLCB7IGFsaWFzOiAnYXhwLWRhdGEtcGF0aCcgfSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBJbml0aWFsIGRhdGEgc2V0dXBcbiAgICAgICAgc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLnBhdGgoKSwgdGhpcy5kYXRhKCkpO1xuICAgIH1cblxuICAgIC8vIEVmZmVjdCB0byB1cGRhdGUgZWxlbWVudCBkYXRhIHdoZW4gaW5wdXRzIGNoYW5nZVxuICAgIHByaXZhdGUgdXBkYXRlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudERhdGEgPSB0aGlzLmRhdGEoKTtcbiAgICAgICAgY29uc3QgY3VycmVudFBhdGggPSB0aGlzLnBhdGgoKTtcbiAgICAgICAgc2V0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjdXJyZW50UGF0aCwgY3VycmVudERhdGEpO1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogR2V0IGRhdGEgZnJvbSB0aGUgZWxlbWVudFxuICAgICAqL1xuICAgIGdldERhdGEoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIGdldCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5wYXRoKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSBkYXRhIGF0IHJ1bnRpbWVcbiAgICAgKi9cbiAgICBzZXREYXRhKGRhdGE6IGFueSkge1xuICAgICAgICBzZXQodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGF0aCgpLCBkYXRhKTtcbiAgICB9XG59ICJdfQ==","import { Directive, HostListener, Output, EventEmitter } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPDblClickDirective {\n constructor() {\n this.onDblClick = new EventEmitter();\n this.lastTap = 0;\n this.doubleTapThreshold = 300; // milliseconds\n }\n // Listen for the native dblclick event (desktop)\n handleOnDblClick(event) {\n this.onDblClick.emit(event);\n }\n // Listen for touchend events (mobile)\n onTouchEnd(event) {\n const currentTime = new Date().getTime();\n const tapGap = currentTime - this.lastTap;\n if (tapGap > 0 && tapGap < this.doubleTapThreshold) {\n // Detected a double-tap\n this.onDblClick.emit(event);\n event.preventDefault(); // Optionally prevent further default actions\n }\n this.lastTap = currentTime;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDblClickDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPDblClickDirective, isStandalone: true, selector: \"[onDblClick]\", outputs: { onDblClick: \"onDblClick\" }, host: { listeners: { \"dblclick\": \"handleOnDblClick($event)\", \"touchend\": \"onTouchEnd($event)\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDblClickDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[onDblClick]'\n }]\n }], propDecorators: { onDblClick: [{\n type: Output\n }], handleOnDblClick: [{\n type: HostListener,\n args: ['dblclick', ['$event']]\n }], onTouchEnd: [{\n type: HostListener,\n args: ['touchend', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGJsLWNsaWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZGJsLWNsaWNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUs5RSxNQUFNLE9BQU8sb0JBQW9CO0lBSGpDO1FBSWMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFFekMsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUNILHVCQUFrQixHQUFHLEdBQUcsQ0FBQyxDQUFDLGVBQWU7S0FxQjdEO0lBbkJHLGlEQUFpRDtJQUVqRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxzQ0FBc0M7SUFFdEMsVUFBVSxDQUFDLEtBQWlCO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFMUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNqRCx3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsNkNBQTZDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQztJQUMvQixDQUFDOytHQXhCUSxvQkFBb0I7bUdBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztpQkFDM0I7O3NCQUVJLE1BQU07O3NCQU1OLFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFNbkMsWUFBWTt1QkFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbb25EYmxDbGlja10nXG59KVxuZXhwb3J0IGNsYXNzIEFYUERibENsaWNrRGlyZWN0aXZlIHtcbiAgICBAT3V0cHV0KCkgb25EYmxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIGxhc3RUYXAgPSAwO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG91YmxlVGFwVGhyZXNob2xkID0gMzAwOyAvLyBtaWxsaXNlY29uZHNcblxuICAgIC8vIExpc3RlbiBmb3IgdGhlIG5hdGl2ZSBkYmxjbGljayBldmVudCAoZGVza3RvcClcbiAgICBASG9zdExpc3RlbmVyKCdkYmxjbGljaycsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlT25EYmxDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkRibENsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIExpc3RlbiBmb3IgdG91Y2hlbmQgZXZlbnRzIChtb2JpbGUpXG4gICAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnLCBbJyRldmVudCddKVxuICAgIG9uVG91Y2hFbmQoZXZlbnQ6IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgY29uc3QgdGFwR2FwID0gY3VycmVudFRpbWUgLSB0aGlzLmxhc3RUYXA7XG5cbiAgICAgICAgaWYgKHRhcEdhcCA+IDAgJiYgdGFwR2FwIDwgdGhpcy5kb3VibGVUYXBUaHJlc2hvbGQpIHtcbiAgICAgICAgICAgIC8vIERldGVjdGVkIGEgZG91YmxlLXRhcFxuICAgICAgICAgICAgdGhpcy5vbkRibENsaWNrLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gT3B0aW9uYWxseSBwcmV2ZW50IGZ1cnRoZXIgZGVmYXVsdCBhY3Rpb25zXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0VGFwID0gY3VycmVudFRpbWU7XG4gICAgfVxufVxuIl19","// src/app/directives/grid-layout.directive.ts\nimport { Directive, ElementRef, Renderer2, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPGridLayoutDirective {\n constructor(el, renderer) {\n this.el = el;\n this.renderer = renderer;\n this.options = input.required(...(ngDevMode ? [{ debugName: \"options\", alias: 'axp-grid-layout' }] : [{ alias: 'axp-grid-layout' }]));\n }\n ngOnChanges(changes) {\n if (changes['options']) {\n this.applyTailwindClasses();\n }\n }\n applyTailwindClasses() {\n const placement = this.options()?.positions;\n if (!placement)\n return;\n // Clear existing grid classes\n this.clearClasses();\n // Apply new grid classes based on the input options\n this.setClasses(placement.sm, '');\n this.setClasses(placement.md, 'md:');\n this.setClasses(placement.lg, 'lg:');\n this.setClasses(placement.xl, 'xl:');\n this.setClasses(placement.xxl, '2xl:');\n }\n setClasses(placement, prefix) {\n if (placement == null)\n return;\n const colStart = placement.colStart ? `${prefix}ax-col-start-${placement.colStart}` : '';\n const colEnd = placement.colEnd ? `${prefix}ax-col-end-${placement.colEnd}` : '';\n const colSpan = placement.colSpan ? `${prefix}ax-col-span-${placement.colSpan}` : '';\n const rowStart = placement.rowStart ? `${prefix}ax-row-start-${placement.rowStart}` : '';\n const rowEnd = placement.rowEnd ? `${prefix}ax-row-end-${placement.rowEnd}` : '';\n const rowSpan = placement.rowSpan ? `${prefix}ax-row-span-${placement.rowSpan}` : '';\n const order = placement.order ? `${prefix}ax-order-${placement.order}` : ''; // Handling order\n [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {\n if (cls) {\n this.renderer.addClass(this.el.nativeElement, cls);\n }\n });\n }\n clearClasses() {\n const currentClasses = this.el.nativeElement.className.split(' ');\n currentClasses.forEach((className) => {\n if (className.startsWith('ax-col-') || className.startsWith('ax-row-') || className.startsWith('ax-order-')) {\n this.renderer.removeClass(this.el.nativeElement, className);\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGridLayoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.12\", type: AXPGridLayoutDirective, isStandalone: true, selector: \"[axp-grid-layout]\", inputs: { options: { classPropertyName: \"options\", publicName: \"axp-grid-layout\", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPGridLayoutDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-grid-layout]',\n standalone: true,\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { options: [{ type: i0.Input, args: [{ isSignal: true, alias: \"axp-grid-layout\", required: true }] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1sYXlvdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9ncmlkLWxheW91dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOENBQThDO0FBRTlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBNEIsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9sRyxNQUFNLE9BQU8sc0JBQXNCO0lBRy9CLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUYvRCxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsMENBQXlCLEtBQUssRUFBRSxpQkFBaUIsT0FBMUIsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsR0FBQyxDQUFDO0lBRVYsQ0FBQztJQUVwRSxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN2Qiw4QkFBOEI7UUFDOUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLG9EQUFvRDtRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMs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ZW50IjpbIi8vIHNyYy9hcHAvZGlyZWN0aXZlcy9ncmlkLWxheW91dC5kaXJlY3RpdmUudHNcblxuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEdyaWRMYXlvdXRPcHRpb25zLCBBWFBHcmlkUGxhY2VtZW50IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1theHAtZ3JpZC1sYXlvdXRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBvcHRpb25zID0gaW5wdXQucmVxdWlyZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KHsgYWxpYXM6ICdheHAtZ3JpZC1sYXlvdXQnIH0pO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ29wdGlvbnMnXSkge1xuICAgICAgICAgICAgdGhpcy5hcHBseVRhaWx3aW5kQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcHBseVRhaWx3aW5kQ2xhc3NlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGxhY2VtZW50ID0gdGhpcy5vcHRpb25zKCk/LnBvc2l0aW9ucztcbiAgICAgICAgaWYgKCFwbGFjZW1lbnQpIHJldHVybjtcbiAgICAgICAgLy8gQ2xlYXIgZXhpc3RpbmcgZ3JpZCBjbGFzc2VzXG4gICAgICAgIHRoaXMuY2xlYXJDbGFzc2VzKCk7XG5cbiAgICAgICAgLy8gQXBwbHkgbmV3IGdyaWQgY2xhc3NlcyBiYXNlZCBvbiB0aGUgaW5wdXQgb3B0aW9uc1xuICAgICAgICB0aGlzLnNldENsYXNzZXMocGxhY2VtZW50LnNtLCAnJyk7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcyhwbGFjZW1lbnQubWQsICdtZDonKTtcbiAgICAgICAgdGhpcy5zZXRDbGFzc2VzKHBsYWNlbWVudC5sZywgJ2xnOicpO1xuICAgICAgICB0aGlzLnNldENsYXNzZXMocGxhY2VtZW50LnhsLCAneGw6Jyk7XG4gICAgICAgIHRoaXMuc2V0Q2xhc3NlcyhwbGFjZW1lbnQueHhsLCAnMnhsOicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q2xhc3NlcyhwbGFjZW1lbnQ6IEFYUEdyaWRQbGFjZW1lbnQgfCB1bmRlZmluZWQsIHByZWZpeDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChwbGFjZW1lbnQgPT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGNvbFN0YXJ0ID0gcGxhY2VtZW50LmNvbFN0YXJ0ID8gYCR7cHJlZml4fWF4LWNvbC1zdGFydC0ke3BsYWNlbWVudC5jb2xTdGFydH1gIDogJyc7XG4gICAgICAgIGNvbnN0IGNvbEVuZCA9IHBsYWNlbWVudC5jb2xFbmQgPyBgJHtwcmVmaXh9YXgtY29sLWVuZC0ke3BsYWNlbWVudC5jb2xFbmR9YCA6ICcnO1xuICAgICAgICBjb25zdCBjb2xTcGFuID0gcGxhY2VtZW50LmNvbFNwYW4gPyBgJHtwcmVmaXh9YXgtY29sLXNwYW4tJHtwbGFjZW1lbnQuY29sU3Bhbn1gIDogJyc7XG4gICAgICAgIGNvbnN0IHJvd1N0YXJ0ID0gcGxhY2VtZW50LnJvd1N0YXJ0ID8gYCR7cHJlZml4fWF4LXJvdy1zdGFydC0ke3BsYWNlbWVudC5yb3dTdGFydH1gIDogJyc7XG4gICAgICAgIGNvbnN0IHJvd0VuZCA9IHBsYWNlbWVudC5yb3dFbmQgPyBgJHtwcmVmaXh9YXgtcm93LWVuZC0ke3BsYWNlbWVudC5yb3dFbmR9YCA6ICcnO1xuICAgICAgICBjb25zdCByb3dTcGFuID0gcGxhY2VtZW50LnJvd1NwYW4gPyBgJHtwcmVmaXh9YXgtcm93LXNwYW4tJHtwbGFjZW1lbnQucm93U3Bhbn1gIDogJyc7XG4gICAgICAgIGNvbnN0IG9yZGVyID0gcGxhY2VtZW50Lm9yZGVyID8gYCR7cHJlZml4fWF4LW9yZGVyLSR7cGxhY2VtZW50Lm9yZGVyfWAgOiAnJzsgLy8gSGFuZGxpbmcgb3JkZXJcblxuICAgICAgICBbY29sU3RhcnQsIGNvbEVuZCwgY29sU3Bhbiwgcm93U3RhcnQsIHJvd0VuZCwgcm93U3Bhbiwgb3JkZXJdLmZvckVhY2goY2xzID0+IHtcbiAgICAgICAgICAgIGlmIChjbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckNsYXNzZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDbGFzc2VzID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTmFtZS5zcGxpdCgnICcpO1xuICAgICAgICBjdXJyZW50Q2xhc3Nlcy5mb3JFYWNoKChjbGFzc05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKGNsYXNzTmFtZS5zdGFydHNXaXRoKCdheC1jb2wtJykgfHwgY2xhc3NOYW1lLnN0YXJ0c1dpdGgoJ2F4LXJvdy0nKSB8fCBjbGFzc05hbWUuc3RhcnRzV2l0aCgnYXgtb3JkZXItJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","// src/app/directives/grid-layout.directive.ts\nimport { Directive, ElementRef, ViewContainerRef, computed, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPContentCheckerDirective {\n constructor() {\n this.viewContainerRef = inject(ViewContainerRef);\n this.elementRef = inject((ElementRef));\n this.isEmpty = computed(() => this.viewContainerRef.length === 0, ...(ngDevMode ? [{ debugName: \"isEmpty\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPContentCheckerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXPContentCheckerDirective, isStandalone: true, selector: \"[axp-content-checker]\", exportAs: [\"checker\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPContentCheckerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-content-checker]',\n standalone: true,\n exportAs: 'checker'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvY29udGVudC1jaGVja2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFFOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUYsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU9XLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBK0IsTUFBTSxDQUFDLENBQUEsVUFBMEIsQ0FBQSxDQUFDLENBQUM7UUFFNUUsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsbURBQUMsQ0FBQztLQUN2RTsrR0FOWSwwQkFBMEI7bUdBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLFNBQVM7aUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9kaXJlY3RpdmVzL2dyaWQtbGF5b3V0LmRpcmVjdGl2ZS50c1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLWNvbnRlbnQtY2hlY2tlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdjaGVja2VyJ1xufSlcbmV4cG9ydCBjbGFzcyBBWFBDb250ZW50Q2hlY2tlckRpcmVjdGl2ZSB7XG5cbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pO1xuXG4gICAgcHVibGljIGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnZpZXdDb250YWluZXJSZWYubGVuZ3RoID09PSAwKTtcbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nexport const AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER = new InjectionToken('AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9kaXN0cmlidXRlZC1ldmVudHMvZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0vQyxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDdkUseUNBQXlDLENBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlclRva2VuPFQ+ID1cbiAgfCBBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxUPlxuICB8IFByb21pc2U8QVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8VD4+O1xuXG5leHBvcnQgY29uc3QgQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyVG9rZW48YW55PltdPihcbiAgJ0FYUF9ESVNUUklCVVRFRF9FVkVOVF9MSVNURU5FUl9QUk9WSURFUidcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyUHJvdmlkZXI8VElucHV0ID0gYW55LCBUT3V0cHV0ID0gdm9pZD4ge1xuICBrZXk6IHN0cmluZztcbiAgZXhlY3V0ZShkYXRhOiBUSW5wdXQpOiBQcm9taXNlPFRPdXRwdXQ+IHwgVE91dHB1dDtcblxuICBwcmlvcml0eT86IG51bWJlcjtcbn0iXX0=","//#region ---- Imports ----\nimport { inject, Injectable, Injector, runInInjectionContext } from '@angular/core';\nimport { AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER } from './distributed-event-listener.provider';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class AXPDistributedEventListenerService {\n constructor() {\n //#region ---- Providers & Caches ----\n this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];\n this.injector = inject(Injector);\n /** Cache for listeners by key. */\n this.listenersByKey = new Map();\n /** Flag to track if providers have been loaded */\n this.providersLoaded = false;\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Dispatches an event to all registered listeners for the given key.\n * @param key The event key.\n * @param data The event data to pass to listeners.\n */\n async dispatch(key, data) {\n const providers = await this.resolveProviders();\n const matched = providers.filter(p => p.key === key);\n if (!matched.length) {\n return;\n }\n for (const provider of matched) {\n try {\n await Promise.resolve(runInInjectionContext(this.injector, () => provider.execute(data)));\n }\n catch (err) {\n console.error(`[AXPDistributedEventListenerService] Provider for key='${key}' failed`, err);\n }\n }\n }\n /**\n * Dispatch with async response (first matching provider, with retry/timeout)\n */\n async dispatchAsync(key, data, options = {\n timeout: 60_000,\n retries: 3,\n retryDelay: 1000,\n }) {\n const providers = await this.resolveProviders();\n const matched = providers.filter(p => p.key === key);\n if (!matched.length) {\n throw new Error(`No provider found for key='${key}'`);\n }\n const attempt = (n) => {\n return new Promise((resolve, reject) => {\n let finished = false;\n const timer = setTimeout(() => {\n if (!finished) {\n if (n < options.retries) {\n resolve(attempt(n + 1));\n }\n else {\n reject(new Error(`Timeout: no response for key='${key}' after ${options.retries} attempts.`));\n }\n }\n }, options.timeout);\n try {\n const provider = matched[0];\n const result = runInInjectionContext(this.injector, () => provider.execute(data));\n Promise.resolve(result)\n .then((r) => {\n finished = true;\n clearTimeout(timer);\n resolve(r);\n })\n .catch(err => {\n finished = true;\n clearTimeout(timer);\n reject(err);\n });\n }\n catch (err) {\n clearTimeout(timer);\n reject(err);\n }\n });\n };\n return attempt(0);\n }\n /**\n * Resolve all providers (handle both direct provider and Promise<provider>)\n */\n async resolveProviders() {\n return Promise.all(this.listenerProviders.map(p => p instanceof Promise ? p : Promise.resolve(p)));\n }\n /**\n * Returns all listeners for a specific event key.\n * @param key The event key.\n * @returns Array of listeners for the key.\n */\n async getListeners(key) {\n await this.ensureProvidersLoaded();\n return this.listenersByKey.get(key) || [];\n }\n /**\n * Returns all registered event keys.\n * @returns Array of all event keys that have listeners.\n */\n async getRegisteredKeys() {\n await this.ensureProvidersLoaded();\n return Array.from(this.listenersByKey.keys());\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Ensures that all providers have been loaded and cached.\n */\n async ensureProvidersLoaded() {\n if (this.providersLoaded) {\n return;\n }\n // Resolve all providers\n const resolvedProviders = await Promise.all(this.listenerProviders);\n // Group listeners by key\n for (const provider of resolvedProviders) {\n if (provider) {\n const existingListeners = this.listenersByKey.get(provider.key) || [];\n existingListeners.push(provider);\n this.listenersByKey.set(provider.key, existingListeners);\n }\n }\n this.providersLoaded = true;\n }\n //#endregion\n //#region ---- Cache Management ----\n /** Clears the listeners cache and forces reload on next access. */\n clearListenersCache() {\n this.listenersByKey.clear();\n this.providersLoaded = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDistributedEventListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDistributedEventListenerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDistributedEventListenerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2Rpc3RyaWJ1dGVkLWV2ZW50cy9kaXN0cmlidXRlZC1ldmVudC1saXN0ZW5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHVDQUF1QyxFQUF1QyxNQUFNLHVDQUF1QyxDQUFDOztBQUVySSxZQUFZO0FBS1osTUFBTSxPQUFPLGtDQUFrQztJQUgvQztRQUlFLDBDQUEwQztRQUV6QixzQkFBaUIsR0FBRyxNQUFNLENBQUMsdUNBQXVDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUYsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3QyxrQ0FBa0M7UUFDMUIsbUJBQWMsR0FBNEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU1RixrREFBa0Q7UUFDMUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7S0FpS2pDO0lBL0pDLFlBQVk7SUFFWixrQ0FBa0M7SUFFbEM7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBVyxFQUFFLElBQVU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLE9B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QWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWTtJQUVaLHdDQUF3QztJQUV4QyxtRUFBbUU7SUFDbkUsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQzsrR0F4S1Usa0NBQWtDO21IQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTs7NEZBRVAsa0NBQWtDO2tCQUg5QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBfRElTVFJJQlVURURfRVZFTlRfTElTVEVORVJfUFJPVklERVIsIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyIH0gZnJvbSAnLi9kaXN0cmlidXRlZC1ldmVudC1saXN0ZW5lci5wcm92aWRlcic7XG5cbi8vI2VuZHJlZ2lvblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyU2VydmljZSB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJvdmlkZXJzICYgQ2FjaGVzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgbGlzdGVuZXJQcm92aWRlcnMgPSBpbmplY3QoQVhQX0RJU1RSSUJVVEVEX0VWRU5UX0xJU1RFTkVSX1BST1ZJREVSLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAvKiogQ2FjaGUgZm9yIGxpc3RlbmVycyBieSBrZXkuICovXG4gIHByaXZhdGUgbGlzdGVuZXJzQnlLZXk6IE1hcDxzdHJpbmcsIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyPGFueT5bXT4gPSBuZXcgTWFwKCk7XG4gIFxuICAvKiogRmxhZyB0byB0cmFjayBpZiBwcm92aWRlcnMgaGF2ZSBiZWVuIGxvYWRlZCAqL1xuICBwcml2YXRlIHByb3ZpZGVyc0xvYWRlZCA9IGZhbHNlO1xuICBcbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBQdWJsaWMgQVBJICAgLS0tLVxuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGFuIGV2ZW50IHRvIGFsbCByZWdpc3RlcmVkIGxpc3RlbmVycyBmb3IgdGhlIGdpdmVuIGtleS5cbiAgICogQHBhcmFtIGtleSBUaGUgZXZlbnQga2V5LlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZXZlbnQgZGF0YSB0byBwYXNzIHRvIGxpc3RlbmVycy5cbiAgICovXG4gIGFzeW5jIGRpc3BhdGNoKGtleTogc3RyaW5nLCBkYXRhPzogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcHJvdmlkZXJzID0gYXdhaXQgdGhpcy5yZXNvbHZlUHJvdmlkZXJzKCk7XG4gICAgY29uc3QgbWF0Y2hlZCA9IHByb3ZpZGVycy5maWx0ZXIocCA9PiBwLmtleSA9PT0ga2V5KTtcblxuICAgIGlmICghbWF0Y2hlZC5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIG1hdGNoZWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gcHJvdmlkZXIuZXhlY3V0ZShkYXRhKSlcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbQVhQRGlzdHJpYnV0ZWRFdmVudExpc3RlbmVyU2VydmljZV0gUHJvdmlkZXIgZm9yIGtleT0nJHtrZXl9JyBmYWlsZWRgLCBlcnIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4vKipcbiAgICogRGlzcGF0Y2ggd2l0aCBhc3luYyByZXNwb25zZSAoZmlyc3QgbWF0Y2hpbmcgcHJvdmlkZXIsIHdpdGggcmV0cnkvdGltZW91dClcbiAgICovXG5wdWJsaWMgYXN5bmMgZGlzcGF0Y2hBc3luYzxULCBSPihcbiAga2V5OiBzdHJpbmcsXG4gIGRhdGE6IFQsXG4gIG9wdGlvbnM6IHsgdGltZW91dDogbnVtYmVyOyByZXRyaWVzOiBudW1iZXI7IHJldHJ5RGVsYXk6IG51bWJlciB9ID0ge1xuICAgIHRpbWVvdXQ6IDYwXzAwMCxcbiAgICByZXRyaWVzOiAzLFxuICAgIHJldHJ5RGVsYXk6IDEwMDAsXG4gIH1cbik6IFByb21pc2U8Uj4ge1xuICBjb25zdCBwcm92aWRlcnMgPSBhd2FpdCB0aGlzLnJlc29sdmVQcm92aWRlcnMoKTtcbiAgY29uc3QgbWF0Y2hlZCA9IHByb3ZpZGVycy5maWx0ZXIocCA9PiBwLmtleSA9PT0ga2V5KTtcblxuICBpZiAoIW1hdGNoZWQubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBwcm92aWRlciBmb3VuZCBmb3Iga2V5PScke2tleX0nYCk7XG4gIH1cblxuICBjb25zdCBhdHRlbXB0ID0gKG46IG51bWJlcik6IFByb21pc2U8Uj4gPT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxSPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBsZXQgZmluaXNoZWQgPSBmYWxzZTtcblxuICAgICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCFmaW5pc2hlZCkge1xuICAgICAgICAgIGlmIChuIDwgb3B0aW9ucy5yZXRyaWVzKSB7ICAgICAgICAgIFxuICAgICAgICAgICAgcmVzb2x2ZShhdHRlbXB0KG4gKyAxKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgbmV3IEVycm9yKGBUaW1lb3V0OiBubyByZXNwb25zZSBmb3Iga2V5PScke2tleX0nIGFmdGVyICR7b3B0aW9ucy5yZXRyaWVzfSBhdHRlbXB0cy5gKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIG9wdGlvbnMudGltZW91dCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyID0gbWF0Y2hlZFswXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+XG4gICAgICAgICAgcHJvdmlkZXIuZXhlY3V0ZShkYXRhKVxuICAgICAgICApO1xuXG4gICAgICAgIFByb21pc2UucmVzb2x2ZShyZXN1bHQpXG4gICAgICAgICAgLnRoZW4oKHI6IGFueSkgPT4ge1xuICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlO1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgICAgICAgIHJlc29sdmUocik7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZXIpO1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gYXR0ZW1wdCgwKTtcbn1cblxuIC8qKlxuICAgKiBSZXNvbHZlIGFsbCBwcm92aWRlcnMgKGhhbmRsZSBib3RoIGRpcmVjdCBwcm92aWRlciBhbmQgUHJvbWlzZTxwcm92aWRlcj4pXG4gICAqL1xuIHByaXZhdGUgYXN5bmMgcmVzb2x2ZVByb3ZpZGVycygpOiBQcm9taXNlPEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyPGFueT5bXT4ge1xuICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgdGhpcy5saXN0ZW5lclByb3ZpZGVycy5tYXAocCA9PlxuICAgICAgcCBpbnN0YW5jZW9mIFByb21pc2UgPyBwIDogUHJvbWlzZS5yZXNvbHZlKHApXG4gICAgKVxuICApO1xufVxuXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIGxpc3RlbmVycyBmb3IgYSBzcGVjaWZpYyBldmVudCBrZXkuXG4gICAqIEBwYXJhbSBrZXkgVGhlIGV2ZW50IGtleS5cbiAgICogQHJldHVybnMgQXJyYXkgb2YgbGlzdGVuZXJzIGZvciB0aGUga2V5LlxuICAgKi9cbiAgYXN5bmMgZ2V0TGlzdGVuZXJzKGtleTogc3RyaW5nKTogUHJvbWlzZTxBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxhbnk+W10+IHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVByb3ZpZGVyc0xvYWRlZCgpO1xuICAgIHJldHVybiB0aGlzLmxpc3RlbmVyc0J5S2V5LmdldChrZXkpIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHJlZ2lzdGVyZWQgZXZlbnQga2V5cy5cbiAgICogQHJldHVybnMgQXJyYXkgb2YgYWxsIGV2ZW50IGtleXMgdGhhdCBoYXZlIGxpc3RlbmVycy5cbiAgICovXG4gIGFzeW5jIGdldFJlZ2lzdGVyZWRLZXlzKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVByb3ZpZGVyc0xvYWRlZCgpO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMubGlzdGVuZXJzQnlLZXkua2V5cygpKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJpdmF0ZSBNZXRob2RzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoYXQgYWxsIHByb3ZpZGVycyBoYXZlIGJlZW4gbG9hZGVkIGFuZCBjYWNoZWQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGVuc3VyZVByb3ZpZGVyc0xvYWRlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5wcm92aWRlcnNMb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIGFsbCBwcm92aWRlcnNcbiAgICBjb25zdCByZXNvbHZlZFByb3ZpZGVycyA9IGF3YWl0IFByb21pc2UuYWxsKHRoaXMubGlzdGVuZXJQcm92aWRlcnMpO1xuXG4gICAgLy8gR3JvdXAgbGlzdGVuZXJzIGJ5IGtleVxuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgcmVzb2x2ZWRQcm92aWRlcnMpIHtcbiAgICAgIGlmIChwcm92aWRlcikge1xuICAgICAgICBjb25zdCBleGlzdGluZ0xpc3RlbmVycyA9IHRoaXMubGlzdGVuZXJzQnlLZXkuZ2V0KHByb3ZpZGVyLmtleSkgfHwgW107XG4gICAgICAgIGV4aXN0aW5nTGlzdGVuZXJzLnB1c2gocHJvdmlkZXIpO1xuICAgICAgICB0aGlzLmxpc3RlbmVyc0J5S2V5LnNldChwcm92aWRlci5rZXksIGV4aXN0aW5nTGlzdGVuZXJzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnByb3ZpZGVyc0xvYWRlZCA9IHRydWU7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIENhY2hlIE1hbmFnZW1lbnQgICAtLS0tXG5cbiAgLyoqIENsZWFycyB0aGUgbGlzdGVuZXJzIGNhY2hlIGFuZCBmb3JjZXMgcmVsb2FkIG9uIG5leHQgYWNjZXNzLiAqL1xuICBjbGVhckxpc3RlbmVyc0NhY2hlKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuZXJzQnlLZXkuY2xlYXIoKTtcbiAgICB0aGlzLnByb3ZpZGVyc0xvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59Il19","import { Injectable } from '@angular/core';\nimport { isUndefined } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXPDataGenerator } from '../data/data-generator';\nimport * as i0 from \"@angular/core\";\nexport class AXPBroadcastEventService {\n constructor() {\n this.eventSubjects = new Map();\n this.pendingRequests = new Map();\n this.multiTabEventHistory = new Set(); // Prevent duplicate processing of the same event\n this.instanceId = AXPDataGenerator.uuid();\n this.channel = new BroadcastChannel('platform_global_events');\n // Handle incoming messages\n this.channel.onmessage = (event) => {\n const { type, payload, requestId, response, sourceId } = event.data;\n // Prevent processing the same event multiple times (multi-tab synchronization)\n if (requestId && this.multiTabEventHistory.has(requestId)) {\n return;\n }\n if (requestId) {\n this.multiTabEventHistory.add(requestId); // Store processed requestId\n setTimeout(() => this.multiTabEventHistory.delete(requestId), 10000); // Cleanup after 10 sec\n }\n // Handle responses to pending requests\n if (requestId && !isUndefined(response) && this.pendingRequests.has(requestId)) {\n this.pendingRequests.get(requestId)(response);\n this.pendingRequests.delete(requestId);\n return;\n }\n // Handle normal broadcast events\n // Ignore events originating from this same instance to avoid double-delivery\n if (sourceId && sourceId === this.instanceId) {\n return;\n }\n if (type && this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).next({ data: payload, requestId });\n }\n };\n }\n /**\n * Publish an event without expecting a response\n */\n publish(type, payload) {\n this.channel.postMessage({ type, payload, sourceId: this.instanceId });\n // Local echo so same-tab listeners receive the event as well\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).next({ data: payload });\n }\n }\n /**\n * Subscribe to an event\n */\n listen(type) {\n if (!this.eventSubjects.has(type)) {\n this.eventSubjects.set(type, new Subject());\n }\n return this.eventSubjects.get(type).asObservable();\n }\n /**\n * Unsubscribe from an event\n */\n unsubscribe(type) {\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type).complete();\n this.eventSubjects.delete(type);\n }\n }\n /**\n * Send a message and wait for a response with retry logic\n */\n async sendAndWaitForResponse(type, payload, options = {\n timeout: 60 * 60 * 1000,\n retries: 3,\n retryDelay: 1000,\n }) {\n const requestId = AXPDataGenerator.uuid();\n const attemptRequest = (attempt) => {\n return new Promise((resolve, reject) => {\n this.pendingRequests.set(requestId, resolve);\n this.channel.postMessage({ type, payload, requestId });\n setTimeout(() => {\n if (this.pendingRequests.has(requestId)) {\n this.pendingRequests.delete(requestId);\n if (attempt < options.retries) {\n console.warn(`Retrying request '${type}' (${attempt + 1}/${options.retries})...`);\n resolve(attemptRequest(attempt + 1)); // Retry request\n }\n else {\n reject(new Error(`Timeout: No response received for event '${type}' after ${options.retries} attempts.`));\n }\n }\n }, options.timeout);\n });\n };\n return attemptRequest(0);\n }\n /**\n * Respond to a request\n */\n respondToRequest(requestId, response) {\n if (!requestId) {\n console.warn('Invalid requestId. Cannot send response.');\n return;\n }\n this.channel.postMessage({ requestId, response });\n }\n /**\n * Cleanup when the service is destroyed\n */\n ngOnDestroy() {\n this.channel.close();\n // Complete all subjects\n this.eventSubjects.forEach((subject) => subject.complete());\n this.eventSubjects.clear();\n // Reject all pending requests to avoid dangling promises\n this.pendingRequests.forEach((resolve, requestId) => {\n resolve(Promise.reject(new Error(`Service destroyed. Request ${requestId} was not completed.`)));\n });\n this.pendingRequests.clear();\n // Cleanup multi-tab event history\n this.multiTabEventHistory.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPBroadcastEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPBroadcastEventService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPBroadcastEventService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V2ZW50LXNlcnZpY2UvZXZlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFLMUQsTUFBTSxPQUFPLHdCQUF3QjtJQU9uQztRQUxRLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQXNELENBQUM7UUFDOUUsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUM3RCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsaURBQWlEO1FBQ2xGLGVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUdwRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUU5RCwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDcEUsK0VBQStFO1lBQy9FLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDMUQsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLElBQUks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QUksQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1lBQ3pELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVyQix3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFM0IseURBQXlEO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDhCQUE4QixTQUFTLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25HLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUU3QixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7K0dBMUlVLHdCQUF3QjttSEFBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUERhdGFHZW5lcmF0b3IgfSBmcm9tICcuLi9kYXRhL2RhdGEtZ2VuZXJhdG9yJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY2hhbm5lbDogQnJvYWRjYXN0Q2hhbm5lbDtcbiAgcHJpdmF0ZSBldmVudFN1YmplY3RzID0gbmV3IE1hcDxzdHJpbmcsIFN1YmplY3Q8eyBkYXRhOiBhbnk7IHJlcXVlc3RJZD86IHN0cmluZyB9Pj4oKTtcbiAgcHJpdmF0ZSBwZW5kaW5nUmVxdWVzdHMgPSBuZXcgTWFwPHN0cmluZywgKHJlc3BvbnNlOiBhbnkpID0+IHZvaWQ+KCk7XG4gIHByaXZhdGUgbXVsdGlUYWJFdmVudEhpc3RvcnkgPSBuZXcgU2V0PHN0cmluZz4oKTsgLy8gUHJldmVudCBkdXBsaWNhdGUgcHJvY2Vzc2luZyBvZiB0aGUgc2FtZSBldmVudFxuICBwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlSWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNoYW5uZWwgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbCgncGxhdGZvcm1fZ2xvYmFsX2V2ZW50cycpO1xuXG4gICAgLy8gSGFuZGxlIGluY29taW5nIG1lc3NhZ2VzXG4gICAgdGhpcy5jaGFubmVsLm9ubWVzc2FnZSA9IChldmVudCkgPT4ge1xuICAgICAgY29uc3QgeyB0eXBlLCBwYXlsb2FkLCByZXF1ZXN0SWQsIHJlc3BvbnNlLCBzb3VyY2VJZCB9ID0gZXZlbnQuZGF0YTtcbiAgICAgIC8vIFByZXZlbnQgcHJvY2Vzc2luZyB0aGUgc2FtZSBldmVudCBtdWx0aXBsZSB0aW1lcyAobXVsdGktdGFiIHN5bmNocm9uaXphdGlvbilcbiAgICAgIGlmIChyZXF1ZXN0SWQgJiYgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1ZXN0SWQpIHtcbiAgICAgICAgdGhpcy5tdWx0aVRhYkV2ZW50SGlzdG9yeS5hZGQocmVxdWVzdElkKTsgLy8gU3RvcmUgcHJvY2Vzc2VkIHJlcXVlc3RJZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubXVsdGlUYWJFdmVudEhpc3RvcnkuZGVsZXRlKHJlcXVlc3RJZCksIDEwMDAwKTsgLy8gQ2xlYW51cCBhZnRlciAxMCBzZWNcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHJlc3BvbnNlcyB0byBwZW5kaW5nIHJlcXVlc3RzXG4gICAgICBpZiAocmVxdWVzdElkICYmICFpc1VuZGVmaW5lZChyZXNwb25zZSkgJiYgdGhpcy5wZW5kaW5nUmVxdWVzdHMuaGFzKHJlcXVlc3RJZCkpIHtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZ2V0KHJlcXVlc3RJZCkhKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIG5vcm1hbCBicm9hZGNhc3QgZXZlbnRzXG4gICAgICAvLyBJZ25vcmUgZXZlbnRzIG9yaWdpbmF0aW5nIGZyb20gdGhpcyBzYW1lIGluc3RhbmNlIHRvIGF2b2lkIGRvdWJsZS1kZWxpdmVyeVxuICAgICAgaWYgKHNvdXJjZUlkICYmIHNvdXJjZUlkID09PSB0aGlzLmluc3RhbmNlSWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgJiYgdGhpcy5ldmVudFN1YmplY3RzLmhhcyh0eXBlKSkge1xuICAgICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5uZXh0KHsgZGF0YTogcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaCBhbiBldmVudCB3aXRob3V0IGV4cGVjdGluZyBhIHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgcHVibGlzaDxUPih0eXBlOiBzdHJpbmcsIHBheWxvYWQ/OiBUKTogdm9pZCB7XG4gICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgc291cmNlSWQ6IHRoaXMuaW5zdGFuY2VJZCB9KTtcbiAgICAvLyBMb2NhbCBlY2hvIHNvIHNhbWUtdGFiIGxpc3RlbmVycyByZWNlaXZlIHRoZSBldmVudCBhcyB3ZWxsXG4gICAgaWYgKHRoaXMuZXZlbnRTdWJqZWN0cy5oYXModHlwZSkpIHtcbiAgICAgIHRoaXMuZXZlbnRTdWJqZWN0cy5nZXQodHlwZSkhLm5leHQoeyBkYXRhOiBwYXlsb2FkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gYW4gZXZlbnRcbiAgICovXG4gIHB1YmxpYyBsaXN0ZW48VD4odHlwZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IGRhdGE6IFQ7IHJlcXVlc3RJZD86IHN0cmluZyB9PiB7XG4gICAgaWYgKCF0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdHMuc2V0KHR5cGUsIG5ldyBTdWJqZWN0PHsgZGF0YTogVDsgcmVxdWVzdElkPzogc3RyaW5nIH0+KCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5ldmVudFN1YmplY3RzLmdldCh0eXBlKSEuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgZnJvbSBhbiBldmVudFxuICAgKi9cbiAgcHVibGljIHVuc3Vic2NyaWJlKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV2ZW50U3ViamVjdHMuaGFzKHR5cGUpKSB7XG4gICAgICB0aGlzLmV2ZW50U3ViamVjdHMuZ2V0KHR5cGUpIS5jb21wbGV0ZSgpO1xuICAgICAgdGhpcy5ldmVudFN1YmplY3RzLmRlbGV0ZSh0eXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIG1lc3NhZ2UgYW5kIHdhaXQgZm9yIGEgcmVzcG9uc2Ugd2l0aCByZXRyeSBsb2dpY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbmRBbmRXYWl0Rm9yUmVzcG9uc2U8VCwgUj4oXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIHBheWxvYWQ/OiBULFxuICAgIG9wdGlvbnM6IHsgdGltZW91dDogbnVtYmVyOyByZXRyaWVzOiBudW1iZXI7IHJldHJ5RGVsYXk6IG51bWJlciB9ID0ge1xuICAgICAgdGltZW91dDogNjAgKiA2MCAqIDEwMDAsXG4gICAgICByZXRyaWVzOiAzLFxuICAgICAgcmV0cnlEZWxheTogMTAwMCxcbiAgICB9LFxuICApOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCByZXF1ZXN0SWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcblxuICAgIGNvbnN0IGF0dGVtcHRSZXF1ZXN0ID0gKGF0dGVtcHQ6IG51bWJlcik6IFByb21pc2U8Uj4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPFI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuc2V0KHJlcXVlc3RJZCwgcmVzb2x2ZSk7XG5cbiAgICAgICAgdGhpcy5jaGFubmVsLnBvc3RNZXNzYWdlKHsgdHlwZSwgcGF5bG9hZCwgcmVxdWVzdElkIH0pO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnBlbmRpbmdSZXF1ZXN0cy5oYXMocmVxdWVzdElkKSkge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nUmVxdWVzdHMuZGVsZXRlKHJlcXVlc3RJZCk7XG4gICAgICAgICAgICBpZiAoYXR0ZW1wdCA8IG9wdGlvbnMucmV0cmllcykge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFJldHJ5aW5nIHJlcXVlc3QgJyR7dHlwZX0nICgke2F0dGVtcHQgKyAxfS8ke29wdGlvbnMucmV0cmllc30pLi4uYCk7XG4gICAgICAgICAgICAgIHJlc29sdmUoYXR0ZW1wdFJlcXVlc3QoYXR0ZW1wdCArIDEpKTsgLy8gUmV0cnkgcmVxdWVzdFxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihgVGltZW91dDogTm8gcmVzcG9uc2UgcmVjZWl2ZWQgZm9yIGV2ZW50ICcke3R5cGV9JyBhZnRlciAke29wdGlvbnMucmV0cmllc30gYXR0ZW1wdHMuYCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgb3B0aW9ucy50aW1lb3V0KTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gYXR0ZW1wdFJlcXVlc3QoMCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzcG9uZCB0byBhIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyByZXNwb25kVG9SZXF1ZXN0KHJlcXVlc3RJZDogc3RyaW5nLCByZXNwb25zZTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFyZXF1ZXN0SWQpIHtcbiAgICAgIGNvbnNvbGUud2FybignSW52YWxpZCByZXF1ZXN0SWQuIENhbm5vdCBzZW5kIHJlc3BvbnNlLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoYW5uZWwucG9zdE1lc3NhZ2UoeyByZXF1ZXN0SWQsIHJlc3BvbnNlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFudXAgd2hlbiB0aGUgc2VydmljZSBpcyBkZXN0cm95ZWRcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbm5lbC5jbG9zZSgpO1xuXG4gICAgLy8gQ29tcGxldGUgYWxsIHN1YmplY3RzXG4gICAgdGhpcy5ldmVudFN1YmplY3RzLmZvckVhY2goKHN1YmplY3QpID0+IHN1YmplY3QuY29tcGxldGUoKSk7XG4gICAgdGhpcy5ldmVudFN1YmplY3RzLmNsZWFyKCk7XG5cbiAgICAvLyBSZWplY3QgYWxsIHBlbmRpbmcgcmVxdWVzdHMgdG8gYXZvaWQgZGFuZ2xpbmcgcHJvbWlzZXNcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5mb3JFYWNoKChyZXNvbHZlLCByZXF1ZXN0SWQpID0+IHtcbiAgICAgIHJlc29sdmUoUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGBTZXJ2aWNlIGRlc3Ryb3llZC4gUmVxdWVzdCAke3JlcXVlc3RJZH0gd2FzIG5vdCBjb21wbGV0ZWQuYCkpKTtcbiAgICB9KTtcbiAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cy5jbGVhcigpO1xuXG4gICAgLy8gQ2xlYW51cCBtdWx0aS10YWIgZXZlbnQgaGlzdG9yeVxuICAgIHRoaXMubXVsdGlUYWJFdmVudEhpc3RvcnkuY2xlYXIoKTtcbiAgfVxufVxuIl19","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPExpressionEvaluatorScopeProviderContext {\n constructor() {\n this.scopes = {};\n }\n addScope(namespace, functions) {\n this.scopes[namespace] = { ...this.scopes[namespace], ...functions };\n }\n getScopes() {\n return this.scopes;\n }\n}\nexport const AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER = new InjectionToken('AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER');\nexport class AXPExpressionEvaluatorScopeProviderService {\n constructor() {\n this.providers = inject(AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, { optional: true });\n this.cache = null;\n }\n async load() {\n if (this.cache)\n return;\n const context = new AXPExpressionEvaluatorScopeProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n await provider.provide(context);\n }\n }\n this.cache = context.getScopes();\n }\n async getScopesAsync() {\n await this.load();\n return this.cache || {};\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPExpressionEvaluatorScopeProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1ldmFsdWF0b3Itc2NvcGUtcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V4cHJlc3Npb24tZXZhbHVhdG9yL2V4cHJlc3Npb24tZXZhbHVhdG9yLXNjb3BlLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9uRSxNQUFNLE9BQU8sMENBQTBDO0lBQXZEO1FBQ1ksV0FBTSxHQUFnQyxFQUFFLENBQUM7SUFPckQsQ0FBQztJQU5HLFFBQVEsQ0FBQyxTQUFpQixFQUFFLFNBQXVDO1FBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0NBQ0o7QUFHRCxNQUFNLENBQUMsTUFBTSx1Q0FBdUMsR0FBRyxJQUFJLGNBQWMsQ0FDckUseUNBQXlDLENBQzVDLENBQUM7QUFHRixNQUFNLE9BQU8sMENBQTBDO0lBRHZEO1FBRVksY0FBUyxHQUFHLE1BQU0sQ0FBQyx1Q0FBdUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLFVBQUssR0FBdUMsSUFBSSxDQUFDO0tBaUI1RDtJQWZXLEtBQUssQ0FBQyxJQUFJO1FBQ2QsSUFBSSxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQ0FBMEMsRUFBRSxDQUFDO1FBQ2pFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjO1FBQ3ZCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzsrR0FsQlEsMENBQTBDO21IQUExQywwQ0FBMEMsY0FEN0IsTUFBTTs7NEZBQ25CLDBDQUEwQztrQkFEdEQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgfSBmcm9tICcuL2V4cHJlc3Npb24tZXZhbHVhdG9yLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyIHtcbiAgICBwcm92aWRlKGNvbnRleHQ6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQge1xuICAgIHByaXZhdGUgc2NvcGVzOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7fTtcbiAgICBhZGRTY29wZShuYW1lc3BhY2U6IHN0cmluZywgZnVuY3Rpb25zOiB7IFtuYW1lOiBzdHJpbmddOiBGdW5jdGlvbiB9KSB7XG4gICAgICAgIHRoaXMuc2NvcGVzW25hbWVzcGFjZV0gPSB7IC4uLnRoaXMuc2NvcGVzW25hbWVzcGFjZV0sIC4uLmZ1bmN0aW9ucyB9O1xuICAgIH1cbiAgICBnZXRTY29wZXMoKTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NvcGVzO1xuICAgIH1cbn1cbmV4cG9ydCB0eXBlIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVycyA9IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyW10gfCAoKCkgPT4gQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJbXSk7XG5cbmV4cG9ydCBjb25zdCBBWFBfRVhQUkVTU0lPTl9FVkFMVUFUT1JfU0NPUEVfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlUHJvdmlkZXJzPihcbiAgICAnQVhQX0VYUFJFU1NJT05fRVZBTFVBVE9SX1NDT1BFX1BST1ZJREVSJ1xuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9FWFBSRVNTSU9OX0VWQUxVQVRPUl9TQ09QRV9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIGNhY2hlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHJldHVybjtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlckNvbnRleHQoKTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgcHJvdmlkZXIucHJvdmlkZShjb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhY2hlID0gY29udGV4dC5nZXRTY29wZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0U2NvcGVzQXN5bmMoKTogUHJvbWlzZTxBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGU+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLmNhY2hlIHx8IHt9O1xuICAgIH1cbn0gIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPExpressionEvaluatorScopeProviderService } from './expression-evaluator-scope-provider.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPExpressionEvaluatorService {\n constructor() {\n // Memoization cache for compiled expressions\n this.expressionCache = new Map();\n this.providerService = inject(AXPExpressionEvaluatorScopeProviderService);\n }\n getOrCompileFunction(expression) {\n if (!this.expressionCache.has(expression)) {\n // Check if expression contains multiple statements (has semicolons or newlines)\n const hasMultipleStatements = expression.includes(';') || expression.includes('\\n');\n let fn;\n if (hasMultipleStatements) {\n // For multiple statements, execute them in sequence and return the last expression\n fn = new Function('scope', `with (scope) { return (async function() { ${expression} })(); }`);\n }\n else {\n // For single expressions, use return\n fn = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n }\n this.expressionCache.set(expression, fn);\n }\n return this.expressionCache.get(expression);\n }\n async getMergedScope(userScope) {\n const pluginScopes = await this.providerService.getScopesAsync();\n // Merge pluginScopes and userScope (userScope takes precedence)\n return { ...pluginScopes, ...userScope };\n }\n async evaluate(source, scope = {}) {\n try {\n const mergedScope = await this.getMergedScope(scope);\n if (typeof source === 'string' && source.includes('{{')) {\n return await this.evaluateStringExpression(source, mergedScope);\n }\n else if (Array.isArray(source)) {\n const evaluatedArray = [];\n for (const item of source) {\n evaluatedArray.push(await this.evaluate(item, mergedScope));\n }\n return evaluatedArray;\n }\n else if (typeof source === 'object' && source !== null) {\n const evaluatedObject = {};\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n evaluatedObject[key] = await this.evaluate(source[key], mergedScope);\n }\n }\n return evaluatedObject;\n }\n else {\n return source;\n }\n }\n catch (error) {\n console.error('Expression evaluator - Error evaluating expression:', source, error);\n return false;\n }\n }\n async evaluateStringExpression(templateExpression, scope) {\n // Check if the input is exactly a single {{ ... }} expression (handle multiline)\n const exactMatch = templateExpression.match(/^\\s*\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}\\s*$/);\n if (exactMatch) {\n const expression = exactMatch[1];\n const sandbox = this.getOrCompileFunction(expression);\n const result = await sandbox(scope);\n return result;\n }\n // Otherwise, interpolate all {{ ... }} expressions in the string\n const regex = /\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}/g;\n // Collect all matches and their positions\n const matches = [];\n let match;\n while ((match = regex.exec(templateExpression)) !== null) {\n matches.push({\n expression: match[1],\n start: match.index,\n end: regex.lastIndex,\n raw: match[0],\n });\n }\n // Evaluate all expressions in parallel\n const values = await Promise.all(matches.map((m) => {\n const sandbox = this.getOrCompileFunction(m.expression);\n return sandbox(scope);\n }));\n // Reconstruct the string with evaluated values\n let result = '';\n let lastIndex = 0;\n matches.forEach((m, i) => {\n result += templateExpression.slice(lastIndex, m.start);\n const value = values[i];\n result += value !== undefined && value !== null ? value : '';\n lastIndex = m.end;\n });\n result += templateExpression.slice(lastIndex);\n return result;\n }\n isExpression(expression) {\n if (typeof expression === 'string') {\n return expression.includes('{{');\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPExpressionEvaluatorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPExpressionEvaluatorService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPExpressionEvaluatorService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbi1ldmFsdWF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2V4cHJlc3Npb24tZXZhbHVhdG9yL2V4cHJlc3Npb24tZXZhbHVhdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBSzNHLE1BQU0sT0FBTyw2QkFBNkI7SUFEMUM7UUFFRSw2Q0FBNkM7UUFDckMsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUM5QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0tBdUc5RTtJQXJHUyxvQkFBb0IsQ0FBQyxVQUFrQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxnRkFBZ0Y7WUFDaEYsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFcEYsSUFBSSxFQUFZLENBQUM7WUFDakIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO2dCQUMxQixtRkFBbUY7Z0JBQ25GLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsNkNBQTZDLFVBQVUsVUFBVSxDQUFDLENBQUM7WUFDaEcsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHFDQUFxQztnQkFDckMsRUFBRSxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxvREFBb0QsVUFBVSxXQUFXLENBQUMsQ0FBQztZQUN4RyxDQUFDO1lBRUQsSUFBSSxDQUFDLGVBQWUsQ0FB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Q0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sWUFBWSxDQUFDLFVBQWtCO1FBQ3BDLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBekdVLDZCQUE2QjttSEFBN0IsNkJBQTZCLGNBRGhCLE1BQU07OzRGQUNuQiw2QkFBNkI7a0JBRHpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGVQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2V4cHJlc3Npb24tZXZhbHVhdG9yLXNjb3BlLXByb3ZpZGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7IFtuYW1lOiBzdHJpbmddOiB7IFtuYW1lOiBzdHJpbmddOiBGdW5jdGlvbiB9IH07XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2Uge1xuICAvLyBNZW1vaXphdGlvbiBjYWNoZSBmb3IgY29tcGlsZWQgZXhwcmVzc2lvbnNcbiAgcHJpdmF0ZSBleHByZXNzaW9uQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgRnVuY3Rpb24+KCk7XG4gIHByaXZhdGUgcHJvdmlkZXJTZXJ2aWNlID0gaW5qZWN0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZVByb3ZpZGVyU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBnZXRPckNvbXBpbGVGdW5jdGlvbihleHByZXNzaW9uOiBzdHJpbmcpOiBGdW5jdGlvbiB7XG4gICAgaWYgKCF0aGlzLmV4cHJlc3Npb25DYWNoZS5oYXMoZXhwcmVzc2lvbikpIHtcbiAgICAgIC8vIENoZWNrIGlmIGV4cHJlc3Npb24gY29udGFpbnMgbXVsdGlwbGUgc3RhdGVtZW50cyAoaGFzIHNlbWljb2xvbnMgb3IgbmV3bGluZXMpXG4gICAgICBjb25zdCBoYXNNdWx0aXBsZVN0YXRlbWVudHMgPSBleHByZXNzaW9uLmluY2x1ZGVzKCc7JykgfHwgZXhwcmVzc2lvbi5pbmNsdWRlcygnXFxuJyk7XG5cbiAgICAgIGxldCBmbjogRnVuY3Rpb247XG4gICAgICBpZiAoaGFzTXVsdGlwbGVTdGF0ZW1lbnRzKSB7XG4gICAgICAgIC8vIEZvciBtdWx0aXBsZSBzdGF0ZW1lbnRzLCBleGVjdXRlIHRoZW0gaW4gc2VxdWVuY2UgYW5kIHJldHVybiB0aGUgbGFzdCBleHByZXNzaW9uXG4gICAgICAgIGZuID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGB3aXRoIChzY29wZSkgeyByZXR1cm4gKGFzeW5jIGZ1bmN0aW9uKCkgeyAke2V4cHJlc3Npb259IH0pKCk7IH1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEZvciBzaW5nbGUgZXhwcmVzc2lvbnMsIHVzZSByZXR1cm5cbiAgICAgICAgZm4gPSBuZXcgRnVuY3Rpb24oJ3Njb3BlJywgYHdpdGggKHNjb3BlKSB7IHJldHVybiAoYXN5bmMgZnVuY3Rpb24oKSB7IHJldHVybiAke2V4cHJlc3Npb259OyB9KSgpOyB9YCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZXhwcmVzc2lvbkNhY2hlLnNldChleHByZXNzaW9uLCBmbik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb25DYWNoZS5nZXQoZXhwcmVzc2lvbikhO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRNZXJnZWRTY29wZSh1c2VyU2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSk6IFByb21pc2U8QVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlPiB7XG4gICAgY29uc3QgcGx1Z2luU2NvcGVzID0gYXdhaXQgdGhpcy5wcm92aWRlclNlcnZpY2UuZ2V0U2NvcGVzQXN5bmMoKTtcbiAgICAvLyBNZXJnZSBwbHVnaW5TY29wZXMgYW5kIHVzZXJTY29wZSAodXNlclNjb3BlIHRha2VzIHByZWNlZGVuY2UpXG4gICAgcmV0dXJuIHsgLi4ucGx1Z2luU2NvcGVzLCAuLi51c2VyU2NvcGUgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBldmFsdWF0ZShzb3VyY2U6IGFueSB8IGFueVtdLCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtZXJnZWRTY29wZSA9IGF3YWl0IHRoaXMuZ2V0TWVyZ2VkU2NvcGUoc2NvcGUpO1xuICAgICAgaWYgKHR5cGVvZiBzb3VyY2UgPT09ICdzdHJpbmcnICYmIHNvdXJjZS5pbmNsdWRlcygne3snKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5ldmFsdWF0ZVN0cmluZ0V4cHJlc3Npb24oc291cmNlLCBtZXJnZWRTY29wZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgICBjb25zdCBldmFsdWF0ZWRBcnJheSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygc291cmNlKSB7XG4gICAgICAgICAgZXZhbHVhdGVkQXJyYXkucHVzaChhd2FpdCB0aGlzLmV2YWx1YXRlKGl0ZW0sIG1lcmdlZFNjb3BlKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2YWx1YXRlZEFycmF5O1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc291cmNlID09PSAnb2JqZWN0JyAmJiBzb3VyY2UgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZXZhbHVhdGVkT2JqZWN0OiBhbnkgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICBldmFsdWF0ZWRPYmplY3Rba2V5XSA9IGF3YWl0IHRoaXMuZXZhbHVhdGUoc291cmNlW2tleV0sIG1lcmdlZFNjb3BlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV2YWx1YXRlZE9iamVjdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0V4cHJlc3Npb24gZXZhbHVhdG9yIC0gRXJyb3IgZXZhbHVhdGluZyBleHByZXNzaW9uOicsIHNvdXJjZSwgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVTdHJpbmdFeHByZXNzaW9uKHRlbXBsYXRlRXhwcmVzc2lvbjogc3RyaW5nLCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlKTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBDaGVjayBpZiB0aGUgaW5wdXQgaXMgZXhhY3RseSBhIHNpbmdsZSB7eyAuLi4gfX0gZXhwcmVzc2lvbiAoaGFuZGxlIG11bHRpbGluZSlcbiAgICBjb25zdCBleGFjdE1hdGNoID0gdGVtcGxhdGVFeHByZXNzaW9uLm1hdGNoKC9eXFxzKlxce1xce1xccyooW1xcc1xcU10qPylcXHMqXFx9XFx9XFxzKiQvKTtcbiAgICBpZiAoZXhhY3RNYXRjaCkge1xuICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGV4YWN0TWF0Y2hbMV07XG4gICAgICBjb25zdCBzYW5kYm94ID0gdGhpcy5nZXRPckNvbXBpbGVGdW5jdGlvbihleHByZXNzaW9uKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHNhbmRib3goc2NvcGUpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgLy8gT3RoZXJ3aXNlLCBpbnRlcnBvbGF0ZSBhbGwge3sgLi4uIH19IGV4cHJlc3Npb25zIGluIHRoZSBzdHJpbmdcbiAgICBjb25zdCByZWdleCA9IC9cXHtcXHtcXHMqKFtcXHNcXFNdKj8pXFxzKlxcfVxcfS9nO1xuICAgIC8vIENvbGxlY3QgYWxsIG1hdGNoZXMgYW5kIHRoZWlyIHBvc2l0aW9uc1xuICAgIGNvbnN0IG1hdGNoZXMgPSBbXTtcbiAgICBsZXQgbWF0Y2g7XG4gICAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWModGVtcGxhdGVFeHByZXNzaW9uKSkgIT09IG51bGwpIHtcbiAgICAgIG1hdGNoZXMucHVzaCh7XG4gICAgICAgIGV4cHJlc3Npb246IG1hdGNoWzFdLFxuICAgICAgICBzdGFydDogbWF0Y2guaW5kZXgsXG4gICAgICAgIGVuZDogcmVnZXgubGFzdEluZGV4LFxuICAgICAgICByYXc6IG1hdGNoWzBdLFxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIEV2YWx1YXRlIGFsbCBleHByZXNzaW9ucyBpbiBwYXJhbGxlbFxuICAgIGNvbnN0IHZhbHVlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbWF0Y2hlcy5tYXAoKG0pID0+IHtcbiAgICAgICAgY29uc3Qgc2FuZGJveCA9IHRoaXMuZ2V0T3JDb21waWxlRnVuY3Rpb24obS5leHByZXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIHNhbmRib3goc2NvcGUpO1xuICAgICAgfSksXG4gICAgKTtcbiAgICAvLyBSZWNvbnN0cnVjdCB0aGUgc3RyaW5nIHdpdGggZXZhbHVhdGVkIHZhbHVlc1xuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBsZXQgbGFzdEluZGV4ID0gMDtcbiAgICBtYXRjaGVzLmZvckVhY2goKG0sIGkpID0+IHtcbiAgICAgIHJlc3VsdCArPSB0ZW1wbGF0ZUV4cHJlc3Npb24uc2xpY2UobGFzdEluZGV4LCBtLnN0YXJ0KTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2ldO1xuICAgICAgcmVzdWx0ICs9IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwgPyB2YWx1ZSA6ICcnO1xuICAgICAgbGFzdEluZGV4ID0gbS5lbmQ7XG4gICAgfSk7XG4gICAgcmVzdWx0ICs9IHRlbXBsYXRlRXhwcmVzc2lvbi5zbGljZShsYXN0SW5kZXgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgaXNFeHByZXNzaW9uKGV4cHJlc3Npb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgZXhwcmVzc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBleHByZXNzaW9uLmluY2x1ZGVzKCd7eycpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiJdfQ==","import { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';\nimport { AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, } from '../distributed-events/distributed-event-listener.provider';\nimport * as i0 from \"@angular/core\";\nexport class AXPHookService {\n constructor() {\n this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];\n this.injector = inject(Injector);\n }\n /**\n * Resolve all providers (handle both direct providers and Promise<provider>)\n */\n async resolveProviders() {\n return Promise.all(this.listenerProviders.map(p => p instanceof Promise ? p : Promise.resolve(p)));\n }\n /**\n * Fire sync hooks (fire-and-forget).\n * All providers with the given key will be executed.\n * Execution is not awaited.\n */\n fire(key, data) {\n this.resolveProviders().then(providers => {\n providers\n .filter(p => p.key === key)\n .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0))\n .forEach(p => {\n try {\n runInInjectionContext(this.injector, () => p.execute(data));\n }\n catch (err) {\n console.error(`[AXPHookService] Hook '${key}' failed`, err);\n }\n });\n });\n }\n /**\n * Run async hooks sequentially (waterfall).\n * The output of each hook is passed as input to the next hook.\n * Returns the final merged data after all hooks are executed.\n */\n async runAsync(key, initialData) {\n const providers = (await this.resolveProviders())\n .filter(p => p.key === key)\n .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));\n let data = initialData;\n for (const p of providers) {\n data = await Promise.resolve(runInInjectionContext(this.injector, () => p.execute(data)));\n }\n return data;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHookService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHookService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPHookService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL2hvb2svdXRpbGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUNMLHVDQUF1QyxHQUV4QyxNQUFNLDJEQUEyRCxDQUFDOztBQUduRSxNQUFNLE9BQU8sY0FBYztJQUQzQjtRQUVtQixzQkFBaUIsR0FDaEMsTUFBTSxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FtRDlDO0lBakRDOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGdCQUFnQjtRQUM1QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDN0IsQ0FBQyxZQUFZLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUM5QyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLElBQUksQ0FBSSxHQUFXLEVBQUUsSUFBTztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdkMsU0FBUztpQkFDTixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQztpQkFDMUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDckQsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNYLElBQUksQ0FBQztvQkFDSCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLEdBQUcsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBSSxHQUFXLEVBQUUsV0FBYztRQUNsRCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDOUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUM7YUFDMUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXpELElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUN2QixLQUFLLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzFCLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQzFCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM1RCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FyRFUsY0FBYzttSEFBZCxjQUFjLGNBREQsTUFBTTs7NEZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWFBfRElTVFJJQlVURURfRVZFTlRfTElTVEVORVJfUFJPVklERVIsXG4gIEFYUERpc3RyaWJ1dGVkRXZlbnRMaXN0ZW5lclByb3ZpZGVyLFxufSBmcm9tICcuLi9kaXN0cmlidXRlZC1ldmVudHMvZGlzdHJpYnV0ZWQtZXZlbnQtbGlzdGVuZXIucHJvdmlkZXInO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEhvb2tTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBsaXN0ZW5lclByb3ZpZGVycyA9XG4gICAgaW5qZWN0KEFYUF9ESVNUUklCVVRFRF9FVkVOVF9MSVNURU5FUl9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYWxsIHByb3ZpZGVycyAoaGFuZGxlIGJvdGggZGlyZWN0IHByb3ZpZGVycyBhbmQgUHJvbWlzZTxwcm92aWRlcj4pXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlc29sdmVQcm92aWRlcnMoKTogUHJvbWlzZTxBWFBEaXN0cmlidXRlZEV2ZW50TGlzdGVuZXJQcm92aWRlcjxhbnksIGFueT5bXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMubGlzdGVuZXJQcm92aWRlcnMubWFwKHAgPT5cbiAgICAgICAgcCBpbnN0YW5jZW9mIFByb21pc2UgPyBwIDogUHJvbWlzZS5yZXNvbHZlKHApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlIHN5bmMgaG9va3MgKGZpcmUtYW5kLWZvcmdldCkuXG4gICAqIEFsbCBwcm92aWRlcnMgd2l0aCB0aGUgZ2l2ZW4ga2V5IHdpbGwgYmUgZXhlY3V0ZWQuXG4gICAqIEV4ZWN1dGlvbiBpcyBub3QgYXdhaXRlZC5cbiAgICovXG4gIHB1YmxpYyBmaXJlPFQ+KGtleTogc3RyaW5nLCBkYXRhOiBUKTogdm9pZCB7XG4gICAgdGhpcy5yZXNvbHZlUHJvdmlkZXJzKCkudGhlbihwcm92aWRlcnMgPT4ge1xuICAgICAgcHJvdmlkZXJzXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLmtleSA9PT0ga2V5KVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gKGEucHJpb3JpdHkgPz8gMCkgLSAoYi5wcmlvcml0eSA/PyAwKSlcbiAgICAgICAgLmZvckVhY2gocCA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiBwLmV4ZWN1dGUoZGF0YSkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgW0FYUEhvb2tTZXJ2aWNlXSBIb29rICcke2tleX0nIGZhaWxlZGAsIGVycik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gYXN5bmMgaG9va3Mgc2VxdWVudGlhbGx5ICh3YXRlcmZhbGwpLlxuICAgKiBUaGUgb3V0cHV0IG9mIGVhY2ggaG9vayBpcyBwYXNzZWQgYXMgaW5wdXQgdG8gdGhlIG5leHQgaG9vay5cbiAgICogUmV0dXJucyB0aGUgZmluYWwgbWVyZ2VkIGRhdGEgYWZ0ZXIgYWxsIGhvb2tzIGFyZSBleGVjdXRlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBydW5Bc3luYzxUPihrZXk6IHN0cmluZywgaW5pdGlhbERhdGE6IFQpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBwcm92aWRlcnMgPSAoYXdhaXQgdGhpcy5yZXNvbHZlUHJvdmlkZXJzKCkpXG4gICAgICAuZmlsdGVyKHAgPT4gcC5rZXkgPT09IGtleSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiAoYS5wcmlvcml0eSA/PyAwKSAtIChiLnByaW9yaXR5ID8/IDApKTtcblxuICAgIGxldCBkYXRhID0gaW5pdGlhbERhdGE7XG4gICAgZm9yIChjb25zdCBwIG9mIHByb3ZpZGVycykge1xuICAgICAgZGF0YSA9IGF3YWl0IFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHAuZXhlY3V0ZShkYXRhKSlcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG59XG4iXX0=","import { Injectable, inject, provideAppInitializer } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPAppStartUpService {\n constructor() {\n this.tasks = [];\n }\n registerTask(task) {\n this.tasks.push(task);\n }\n async runAllTasks() {\n for (const task of this.tasks.sort((a, b) => a.priority - b.priority)) {\n console.log(`Running \"${task.statusText}\" with priority \"${task.priority}\"`);\n this.updateStatus(task.statusText);\n await task.run();\n }\n }\n updateStatus(status) {\n const loadingText = document.querySelector('#loadingText');\n if (loadingText) {\n loadingText.innerHTML = status;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPAppStartUpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPAppStartUpService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPAppStartUpService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\nfunction initAppFactory(appInitService) {\n return () => appInitService.runAllTasks();\n}\nexport const AXPAppStartUpProvider = provideAppInitializer(() => {\n const initializerFn = initAppFactory(inject(AXPAppStartUpService));\n return initializerFn();\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXN0YXJ0dXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3N0YXJ0dXAvYXBwLXN0YXJ0dXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLG9CQUFvQjtJQUhqQztRQUlVLFVBQUssR0FBcUIsRUFBRSxDQUFDO0tBb0J0QztJQWxCQyxZQUFZLENBQUMsSUFBb0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxVQUFVLG9CQUFvQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNuQyxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxNQUFjO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixXQUFXLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzsrR0FwQlUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7QUF3QkQsU0FBUyxjQUFjLENBQUMsY0FBb0M7SUFDMUQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtJQUM5RCxNQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztJQUNuRSxPQUFPLGFBQWEsRUFBRSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBwcm92aWRlQXBwSW5pdGlhbGl6ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFN0YXJ0VXBUYXNrIH0gZnJvbSAnLi9hcHAtc3RhcnR1cC50eXBlcyc7XG5cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQXBwU3RhcnRVcFNlcnZpY2Uge1xuICBwcml2YXRlIHRhc2tzOiBBWFBTdGFydFVwVGFza1tdID0gW107XG5cbiAgcmVnaXN0ZXJUYXNrKHRhc2s6IEFYUFN0YXJ0VXBUYXNrKSB7XG4gICAgdGhpcy50YXNrcy5wdXNoKHRhc2spO1xuICB9XG5cbiAgYXN5bmMgcnVuQWxsVGFza3MoKSB7XG4gICAgZm9yIChjb25zdCB0YXNrIG9mIHRoaXMudGFza3Muc29ydCgoYSwgYikgPT4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHkpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgUnVubmluZyBcIiR7dGFzay5zdGF0dXNUZXh0fVwiIHdpdGggcHJpb3JpdHkgXCIke3Rhc2sucHJpb3JpdHl9XCJgKTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdHVzKHRhc2suc3RhdHVzVGV4dCk7XG4gICAgICBhd2FpdCB0YXNrLnJ1bigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU3RhdHVzKHN0YXR1czogc3RyaW5nKSB7XG4gICAgY29uc3QgbG9hZGluZ1RleHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbG9hZGluZ1RleHQnKTtcbiAgICBpZiAobG9hZGluZ1RleHQpIHtcbiAgICAgIGxvYWRpbmdUZXh0LmlubmVySFRNTCA9IHN0YXR1cztcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdEFwcEZhY3RvcnkoYXBwSW5pdFNlcnZpY2U6IEFYUEFwcFN0YXJ0VXBTZXJ2aWNlKSB7XG4gIHJldHVybiAoKSA9PiBhcHBJbml0U2VydmljZS5ydW5BbGxUYXNrcygpO1xufVxuXG5leHBvcnQgY29uc3QgQVhQQXBwU3RhcnRVcFByb3ZpZGVyID0gcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJGbiA9IGluaXRBcHBGYWN0b3J5KGluamVjdChBWFBBcHBTdGFydFVwU2VydmljZSkpO1xuICByZXR1cm4gaW5pdGlhbGl6ZXJGbigpO1xufSk7XG4iXX0=","/**\n * Status Definition Types\n * Defines the structure for status definitions and their transitions\n */\n/**\n * Abstract class for status providers\n * Similar to AXPTaskBadgeProvider pattern\n */\nexport class AXPStatusProvider {\n}\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWRlZmluaXRpb24udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9zdGF0dXMtZGVmaW5pdGlvbi9zdGF0dXMtZGVmaW5pdGlvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUF5SEg7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixpQkFBaUI7Q0F5QnRDO0FBNERELFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFN0YXR1cyBEZWZpbml0aW9uIFR5cGVzXG4gKiBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgZm9yIHN0YXR1cyBkZWZpbml0aW9ucyBhbmQgdGhlaXIgdHJhbnNpdGlvbnNcbiAqL1xuXG4vLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IEFYUFN5c3RlbUFjdGlvblR5cGUgfSBmcm9tICcuLi90eXBlcy9hY3Rpb25zLnR5cGVzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgU3RhdHVzIERlZmluaXRpb24gQ29udHJhY3RzICAgLS0tLVxuXG4vKipcbiAqIFN0YXR1cyBkZWZpbml0aW9uIHdpdGggbWV0YWRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBTdGF0dXNEZWZpbml0aW9uIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgc3RhdHVzXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpc3BsYXkgdGl0bGUgZm9yIHRoZSBzdGF0dXNcbiAgICovXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbG9yIGNvZGUgb3Igc2VtYW50aWMgY29sb3IgbmFtZSBmb3IgdGhlIHN0YXR1c1xuICAgKi9cbiAgY29sb3I6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgaWNvbiBjbGFzcyAoZS5nLiwgJ2ZhLWxpZ2h0IGZhLWNoZWNrJylcbiAgICovXG4gIGljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGRlc2NyaXB0aW9uXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgb3JkZXIgZm9yIHNvcnRpbmdcbiAgICovXG4gIG9yZGVyPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc3RhdHVzIGlzIGFjdGl2ZS9hdmFpbGFibGVcbiAgICovXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIGEgZmluYWwgc3RhdHVzIChlbmQgc3RhdGUpXG4gICAqL1xuICBpc0ZpbmFsPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGlzIGFuIGluaXRpYWwgc3RhdHVzIChzdGFydGluZyBzdGF0ZSlcbiAgICovXG4gIGlzSW5pdGlhbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgbGlzdCB2aWV3cyBzaG91bGQgYmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZm9yIHRoaXMgc3RhdHVzXG4gICAqL1xuICBnZW5lcmF0ZVZpZXc/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFN0YXR1cyB0cmFuc2l0aW9uIGRlZmluaXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBTdGF0dXNUcmFuc2l0aW9uIHtcbiAgLyoqXG4gICAqIFNvdXJjZSBzdGF0dXMgbmFtZVxuICAgKi9cbiAgZnJvbTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYXJnZXQgc3RhdHVzIG5hbWVcbiAgICovXG4gIHRvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbmRpdGlvbiBleHByZXNzaW9uIHRvIGV2YWx1YXRlIGJlZm9yZSBhbGxvd2luZyB0cmFuc2l0aW9uXG4gICAqIFVzZXMgZXhwcmVzc2lvbiBldmFsdWF0b3Igc3ludGF4IChlLmcuLCBcInt7dXNlci5pc0FkbWlufX1cIiwgXCJ7e2l0ZW0ucHJpb3JpdHkgPiA1fX1cIilcbiAgICovXG4gIGNvbmRpdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGlzcGxheSB0aXRsZSBmb3IgdGhlIHRyYW5zaXRpb25cbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvblxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGFjdGlvbiBpZGVudGlmaWVyXG4gICAqL1xuICBhY3Rpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbG9yIGZvciB0aGUgdHJhbnNpdGlvbiBidXR0b24vaW5kaWNhdG9yXG4gICAqL1xuICBjb2xvcj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgaWNvbiBmb3IgdGhlIHRyYW5zaXRpb25cbiAgICovXG4gIGljb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyB0cmFuc2l0aW9uIGlzIGF1dG9tYXRpYyAobm8gdXNlciBhY3Rpb24gcmVxdWlyZWQpXG4gICAqL1xuICBpc0F1dG9tYXRpYz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyB0cmFuc2l0aW9uIHJlcXVpcmVzIGFwcHJvdmFsXG4gICAqL1xuICByZXF1aXJlc0FwcHJvdmFsPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBYnN0cmFjdCBjbGFzcyBmb3Igc3RhdHVzIHByb3ZpZGVyc1xuICogU2ltaWxhciB0byBBWFBUYXNrQmFkZ2VQcm92aWRlciBwYXR0ZXJuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBTdGF0dXNQcm92aWRlciB7XG4gIC8qKlxuICAgKiBVbmlxdWUga2V5IGZvciB0aGUgc3RhdHVzIChlLmcuLCAndGFzay1tYW5hZ2VtZW50LnN0YXR1cycpXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBrZXk6IHN0cmluZztcblxuICAvKipcbiAgICogTGlzdCBvZiBhdmFpbGFibGUgc3RhdHVzIGRlZmluaXRpb25zXG4gICAqL1xuICBhYnN0cmFjdCByZWFkb25seSBzdGF0dXNlczogQVhQU3RhdHVzRGVmaW5pdGlvbltdO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGFsbG93ZWQgdHJhbnNpdGlvbnMgYmV0d2VlbiBzdGF0dXNlc1xuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgdHJhbnNpdGlvbnM6IEFYUFN0YXR1c1RyYW5zaXRpb25bXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGVmYXVsdCBzdGF0dXMgbmFtZVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgZGVmYXVsdFN0YXR1cz86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgd29ya2Zsb3cgYWN0aW9ucyB0aGF0IHNob3VsZCBiZSBleHBvc2VkIG9uIGVudGl0eSBsaXN0cy9yZWNvcmRzXG4gICAqL1xuICByZWFkb25seSB3b3JrZmxvd0FjdGlvbnM/OiBBWFBTdGF0dXNXb3JrZmxvd0FjdGlvbltdO1xufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBXb3JrZmxvdyBBY3Rpb24gQ29udHJhY3RzICAgLS0tLVxuXG5leHBvcnQgdHlwZSBBWFBTdGF0dXNBY3Rpb25Qcmlvcml0eSA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknO1xuXG5leHBvcnQgdHlwZSBBWFBTdGF0dXNBY3Rpb25TY29wZSA9ICdpbmRpdmlkdWFsJyB8ICdzZWxlY3RlZCcgfCAndHlwZUxldmVsJyB8ICdzZWN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBTdGF0dXNXb3JrZmxvd0FjdGlvbiB7XG4gIC8qKlxuICAgKiBVbmlxdWUgYWN0aW9uIG5hbWVcbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogTG9jYWxpemVkIHRpdGxlIGtleVxuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tbWFuZCBkZXNjcmlwdG9yIHRvIGV4ZWN1dGVcbiAgICovXG4gIGNvbW1hbmQ6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB9O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBoaWRkZW4gZXhwcmVzc2lvblxuICAgKi9cbiAgaGlkZGVuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBY3Rpb24gcHJpb3JpdHkgKHByaW1hcnkvc2Vjb25kYXJ5KVxuICAgKi9cbiAgcHJpb3JpdHk/OiBBWFBTdGF0dXNBY3Rpb25Qcmlvcml0eTtcblxuICAvKipcbiAgICogU3lzdGVtIGFjdGlvbiB0eXBlIGZvciB0ZWxlbWV0cnkvYXVkaXRcbiAgICovXG4gIHR5cGU/OiBBWFBTeXN0ZW1BY3Rpb25UeXBlO1xuXG4gIC8qKlxuICAgKiBDb21tYW5kIHNjb3BlIChpbmRpdmlkdWFsLCBzZWxlY3RlZCwgdHlwZUxldmVsLCBzZWN0aW9uKVxuICAgKi9cbiAgc2NvcGU/OiBBWFBTdGF0dXNBY3Rpb25TY29wZTtcblxuICAvKipcbiAgICogV2hldGhlciBhY3Rpb24gc2hvdWxkIGJlIHJlbmRlcmVkIHNlcGFyYXRlZCBmcm9tIG90aGVyc1xuICAgKi9cbiAgc2VwYXJhdGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgaWNvbiByZXByZXNlbnRhdGlvblxuICAgKi9cbiAgaWNvbj86IHN0cmluZztcbn1cblxuLy8jZW5kcmVnaW9uXG5cbiJdfQ==","import { Injectable, InjectionToken, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n//#region ---- Injection Token ----\n/**\n * Injection token for status providers\n * Use with multi: true to register multiple providers\n */\nexport const AXP_STATUS_PROVIDERS = new InjectionToken('AXP_STATUS_PROVIDERS');\n//#endregion\n//#region ---- Provider Service ----\n/**\n * Service for managing status definitions from multiple providers\n * Similar to AXPTaskBadgeService pattern - no cache, direct access\n *\n * @example\n * ```typescript\n * // In a module providers array:\n * {\n * provide: AXP_STATUS_PROVIDERS,\n * useClass: TaskStatusProvider,\n * multi: true,\n * }\n *\n * // Example provider implementation:\n * export class TaskStatusProvider extends AXPStatusProvider {\n * readonly key = 'task-management.status';\n * readonly statuses = [\n * { name: 'todo', title: 'To Do', color: '#6b7280', icon: 'fa-light fa-circle', isInitial: true },\n * { name: 'in-progress', title: 'In Progress', color: '#3b82f6', icon: 'fa-light fa-play' },\n * { name: 'done', title: 'Done', color: '#10b981', icon: 'fa-light fa-check-circle', isFinal: true },\n * ];\n * readonly transitions = [\n * { from: 'todo', to: 'in-progress', title: 'Start', condition: '{{user.canEdit}}' },\n * { from: 'in-progress', to: 'done', title: 'Complete' },\n * ];\n * readonly defaultStatus = 'todo';\n * }\n *\n * // Later, get the status:\n * const status = statusService.getStatus('task-management.status');\n * if (status) {\n * console.log('Statuses:', status.statuses);\n * console.log('Transitions:', status.transitions);\n * }\n * ```\n */\nexport class AXPStatusDefinitionProviderService {\n //#endregion\n //#region ---- Constructor ----\n constructor() {\n //#region ---- Dependencies ----\n this.providers = inject(AXP_STATUS_PROVIDERS, { optional: true }) ?? [];\n //#endregion\n //#region ---- State ----\n this.statusMap = new Map();\n // Register all providers in constructor (like badge service)\n for (const provider of this.providers) {\n if (this.statusMap.has(provider.key)) {\n console.warn(`Status with key \"${provider.key}\" already exists. Overwriting with new status.`);\n }\n this.statusMap.set(provider.key, provider);\n }\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Get a status provider by key\n * Direct access from Map (no lazy load, no cache)\n *\n * @param key - Status key (e.g., 'task-management.status')\n * @returns Status provider with all statuses and transitions, or undefined if not found\n *\n * @example\n * ```typescript\n * const status = statusService.getStatus('task-management.status');\n * if (status) {\n * console.log('Statuses:', status.statuses);\n * console.log('Transitions:', status.transitions);\n * }\n * ```\n */\n getStatus(key) {\n return this.statusMap.get(key);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStatusDefinitionProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStatusDefinitionProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStatusDefinitionProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWRlZmluaXRpb24tcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3N0YXR1cy1kZWZpbml0aW9uL3N0YXR1cy1kZWZpbml0aW9uLXByb3ZpZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUduRSx1Q0FBdUM7QUFFdkM7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQXNCLHNCQUFzQixDQUFDLENBQUM7QUFFcEcsWUFBWTtBQUVaLHdDQUF3QztBQUV4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ0c7QUFFSCxNQUFNLE9BQU8sa0NBQWtDO0lBVzdDLFlBQVk7SUFFWixtQ0FBbUM7SUFFbkM7UUFkQSxvQ0FBb0M7UUFFNUIsY0FBUyxHQUF3QixNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFaEcsWUFBWTtRQUVaLDZCQUE2QjtRQUVyQixjQUFTLEdBQUcsSUFBSSxHQUFHLEVBQTZCLENBQUM7UUFPdkQsNkRBQTZEO1FBQzdELEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLFFBQVEsQ0FBQyxHQUFHLGdEQUFnRCxDQUFDLENBQUM7WUFDakcsQ0FBQztZQUVELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO0lBRVosa0NBQWtDO0lBRWxDOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNJLFNBQVMsQ0FBQyxHQUFXO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0FoRFUsa0NBQWtDO21IQUFsQyxrQ0FBa0MsY0FEckIsTUFBTTs7NEZBQ25CLGtDQUFrQztrQkFEOUMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBTdGF0dXNQcm92aWRlciB9IGZyb20gJy4vc3RhdHVzLWRlZmluaXRpb24udHlwZXMnO1xuXG4vLyNyZWdpb24gLS0tLSAgIEluamVjdGlvbiBUb2tlbiAgIC0tLS1cblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gZm9yIHN0YXR1cyBwcm92aWRlcnNcbiAqIFVzZSB3aXRoIG11bHRpOiB0cnVlIHRvIHJlZ2lzdGVyIG11bHRpcGxlIHByb3ZpZGVyc1xuICovXG5leHBvcnQgY29uc3QgQVhQX1NUQVRVU19QUk9WSURFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQU3RhdHVzUHJvdmlkZXJbXT4oJ0FYUF9TVEFUVVNfUFJPVklERVJTJyk7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIFByb3ZpZGVyIFNlcnZpY2UgICAtLS0tXG5cbi8qKlxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgc3RhdHVzIGRlZmluaXRpb25zIGZyb20gbXVsdGlwbGUgcHJvdmlkZXJzXG4gKiBTaW1pbGFyIHRvIEFYUFRhc2tCYWRnZVNlcnZpY2UgcGF0dGVybiAtIG5vIGNhY2hlLCBkaXJlY3QgYWNjZXNzXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhIG1vZHVsZSBwcm92aWRlcnMgYXJyYXk6XG4gKiB7XG4gKiAgIHByb3ZpZGU6IEFYUF9TVEFUVVNfUFJPVklERVJTLFxuICogICB1c2VDbGFzczogVGFza1N0YXR1c1Byb3ZpZGVyLFxuICogICBtdWx0aTogdHJ1ZSxcbiAqIH1cbiAqIFxuICogLy8gRXhhbXBsZSBwcm92aWRlciBpbXBsZW1lbnRhdGlvbjpcbiAqIGV4cG9ydCBjbGFzcyBUYXNrU3RhdHVzUHJvdmlkZXIgZXh0ZW5kcyBBWFBTdGF0dXNQcm92aWRlciB7XG4gKiAgIHJlYWRvbmx5IGtleSA9ICd0YXNrLW1hbmFnZW1lbnQuc3RhdHVzJztcbiAqICAgcmVhZG9ubHkgc3RhdHVzZXMgPSBbXG4gKiAgICAgeyBuYW1lOiAndG9kbycsIHRpdGxlOiAnVG8gRG8nLCBjb2xvcjogJyM2YjcyODAnLCBpY29uOiAnZmEtbGlnaHQgZmEtY2lyY2xlJywgaXNJbml0aWFsOiB0cnVlIH0sXG4gKiAgICAgeyBuYW1lOiAnaW4tcHJvZ3Jlc3MnLCB0aXRsZTogJ0luIFByb2dyZXNzJywgY29sb3I6ICcjM2I4MmY2JywgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBsYXknIH0sXG4gKiAgICAgeyBuYW1lOiAnZG9uZScsIHRpdGxlOiAnRG9uZScsIGNvbG9yOiAnIzEwYjk4MScsIGljb246ICdmYS1saWdodCBmYS1jaGVjay1jaXJjbGUnLCBpc0ZpbmFsOiB0cnVlIH0sXG4gKiAgIF07XG4gKiAgIHJlYWRvbmx5IHRyYW5zaXRpb25zID0gW1xuICogICAgIHsgZnJvbTogJ3RvZG8nLCB0bzogJ2luLXByb2dyZXNzJywgdGl0bGU6ICdTdGFydCcsIGNvbmRpdGlvbjogJ3t7dXNlci5jYW5FZGl0fX0nIH0sXG4gKiAgICAgeyBmcm9tOiAnaW4tcHJvZ3Jlc3MnLCB0bzogJ2RvbmUnLCB0aXRsZTogJ0NvbXBsZXRlJyB9LFxuICogICBdO1xuICogICByZWFkb25seSBkZWZhdWx0U3RhdHVzID0gJ3RvZG8nO1xuICogfVxuICogXG4gKiAvLyBMYXRlciwgZ2V0IHRoZSBzdGF0dXM6XG4gKiBjb25zdCBzdGF0dXMgPSBzdGF0dXNTZXJ2aWNlLmdldFN0YXR1cygndGFzay1tYW5hZ2VtZW50LnN0YXR1cycpO1xuICogaWYgKHN0YXR1cykge1xuICogICBjb25zb2xlLmxvZygnU3RhdHVzZXM6Jywgc3RhdHVzLnN0YXR1c2VzKTtcbiAqICAgY29uc29sZS5sb2coJ1RyYW5zaXRpb25zOicsIHN0YXR1cy50cmFuc2l0aW9ucyk7XG4gKiB9XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBTdGF0dXNEZWZpbml0aW9uUHJvdmlkZXJTZXJ2aWNlIHtcbiAgLy8jcmVnaW9uIC0tLS0gICBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgcHJpdmF0ZSBwcm92aWRlcnM6IEFYUFN0YXR1c1Byb3ZpZGVyW10gPSBpbmplY3QoQVhQX1NUQVRVU19QUk9WSURFUlMsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBTdGF0ZSAgIC0tLS1cblxuICBwcml2YXRlIHN0YXR1c01hcCA9IG5ldyBNYXA8c3RyaW5nLCBBWFBTdGF0dXNQcm92aWRlcj4oKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIENvbnN0cnVjdG9yICAgLS0tLVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFJlZ2lzdGVyIGFsbCBwcm92aWRlcnMgaW4gY29uc3RydWN0b3IgKGxpa2UgYmFkZ2Ugc2VydmljZSlcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICBpZiAodGhpcy5zdGF0dXNNYXAuaGFzKHByb3ZpZGVyLmtleSkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBTdGF0dXMgd2l0aCBrZXkgXCIke3Byb3ZpZGVyLmtleX1cIiBhbHJlYWR5IGV4aXN0cy4gT3ZlcndyaXRpbmcgd2l0aCBuZXcgc3RhdHVzLmApO1xuICAgICAgfVxuICAgICAgXG4gICAgICB0aGlzLnN0YXR1c01hcC5zZXQocHJvdmlkZXIua2V5LCBwcm92aWRlcik7XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBQdWJsaWMgQVBJICAgLS0tLVxuXG4gIC8qKlxuICAgKiBHZXQgYSBzdGF0dXMgcHJvdmlkZXIgYnkga2V5XG4gICAqIERpcmVjdCBhY2Nlc3MgZnJvbSBNYXAgKG5vIGxhenkgbG9hZCwgbm8gY2FjaGUpXG4gICAqIFxuICAgKiBAcGFyYW0ga2V5IC0gU3RhdHVzIGtleSAoZS5nLiwgJ3Rhc2stbWFuYWdlbWVudC5zdGF0dXMnKVxuICAgKiBAcmV0dXJucyBTdGF0dXMgcHJvdmlkZXIgd2l0aCBhbGwgc3RhdHVzZXMgYW5kIHRyYW5zaXRpb25zLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gICAqIFxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHN0YXR1cyA9IHN0YXR1c1NlcnZpY2UuZ2V0U3RhdHVzKCd0YXNrLW1hbmFnZW1lbnQuc3RhdHVzJyk7XG4gICAqIGlmIChzdGF0dXMpIHtcbiAgICogICBjb25zb2xlLmxvZygnU3RhdHVzZXM6Jywgc3RhdHVzLnN0YXR1c2VzKTtcbiAgICogICBjb25zb2xlLmxvZygnVHJhbnNpdGlvbnM6Jywgc3RhdHVzLnRyYW5zaXRpb25zKTtcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBnZXRTdGF0dXMoa2V5OiBzdHJpbmcpOiBBWFBTdGF0dXNQcm92aWRlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzTWFwLmdldChrZXkpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","/**\n * Standard system status types\n * These are the predefined status values used across the platform\n */\nexport var AXPSystemStatusType;\n(function (AXPSystemStatusType) {\n AXPSystemStatusType[\"Todo\"] = \"todo\";\n AXPSystemStatusType[\"InProgress\"] = \"in-progress\";\n AXPSystemStatusType[\"InReview\"] = \"in-review\";\n AXPSystemStatusType[\"Blocked\"] = \"blocked\";\n AXPSystemStatusType[\"Done\"] = \"done\";\n AXPSystemStatusType[\"Cancelled\"] = \"cancelled\";\n AXPSystemStatusType[\"Draft\"] = \"draft\";\n AXPSystemStatusType[\"PendingReview\"] = \"pending-review\";\n AXPSystemStatusType[\"Approved\"] = \"approved\";\n AXPSystemStatusType[\"Published\"] = \"published\";\n AXPSystemStatusType[\"Archived\"] = \"archived\";\n AXPSystemStatusType[\"Rejected\"] = \"rejected\";\n AXPSystemStatusType[\"Active\"] = \"active\";\n AXPSystemStatusType[\"Inactive\"] = \"inactive\";\n AXPSystemStatusType[\"Pending\"] = \"pending\";\n AXPSystemStatusType[\"Completed\"] = \"completed\";\n AXPSystemStatusType[\"Suspended\"] = \"suspended\";\n AXPSystemStatusType[\"Failed\"] = \"failed\";\n AXPSystemStatusType[\"Review\"] = \"review\";\n})(AXPSystemStatusType || (AXPSystemStatusType = {}));\nconst i18n = (key) => `@general:statuses.${key}`;\n/**\n * Standard system status definitions\n * Provides consistent status definitions across the platform\n * Uses AXPStatusDefinition interface from status-definition.types.ts\n */\nexport const AXPSystemStatuses = Object.freeze({\n Todo: {\n name: AXPSystemStatusType.Todo,\n title: i18n('todo.title'),\n icon: 'fa-light fa-circle',\n color: 'secondary',\n description: i18n('todo.description'),\n order: 1,\n isActive: true,\n isInitial: true,\n isFinal: false,\n },\n InProgress: {\n name: AXPSystemStatusType.InProgress,\n title: i18n('in-progress.title'),\n icon: 'fa-light fa-play',\n color: 'info',\n description: i18n('in-progress.description'),\n order: 2,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n InReview: {\n name: AXPSystemStatusType.InReview,\n title: i18n('in-review.title'),\n icon: 'fa-light fa-eye',\n color: 'info',\n description: i18n('in-review.description'),\n order: 3,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Blocked: {\n name: AXPSystemStatusType.Blocked,\n title: i18n('blocked.title'),\n icon: 'fa-light fa-ban',\n color: 'danger',\n description: i18n('blocked.description'),\n order: 4,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Done: {\n name: AXPSystemStatusType.Done,\n title: i18n('done.title'),\n icon: 'fa-light fa-check-circle',\n color: 'success',\n description: i18n('done.description'),\n order: 5,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Cancelled: {\n name: AXPSystemStatusType.Cancelled,\n title: i18n('cancelled.title'),\n icon: 'fa-light fa-times-circle',\n color: 'neutral',\n description: i18n('cancelled.description'),\n order: 6,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Draft: {\n name: AXPSystemStatusType.Draft,\n title: i18n('draft.title'),\n icon: 'fa-light fa-file-pen',\n color: 'neutral',\n description: i18n('draft.description'),\n order: 1,\n isActive: true,\n isInitial: true,\n isFinal: false,\n },\n PendingReview: {\n name: AXPSystemStatusType.PendingReview,\n title: i18n('pending-review.title'),\n icon: 'fa-light fa-clock',\n color: 'warning',\n description: i18n('pending-review.description'),\n order: 2,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Approved: {\n name: AXPSystemStatusType.Approved,\n title: i18n('approved.title'),\n icon: 'fa-light fa-check-circle',\n color: 'success',\n description: i18n('approved.description'),\n order: 3,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Published: {\n name: AXPSystemStatusType.Published,\n title: i18n('published.title'),\n icon: 'fa-light fa-globe',\n color: 'primary',\n description: i18n('published.description'),\n order: 4,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Archived: {\n name: AXPSystemStatusType.Archived,\n title: i18n('archived.title'),\n icon: 'fa-light fa-archive',\n color: 'neutral',\n description: i18n('archived.description'),\n order: 5,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Rejected: {\n name: AXPSystemStatusType.Rejected,\n title: i18n('rejected.title'),\n icon: 'fa-light fa-times-circle',\n color: 'danger',\n description: i18n('rejected.description'),\n order: 6,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Active: {\n name: AXPSystemStatusType.Active,\n title: i18n('active.title'),\n icon: 'fa-light fa-check-circle',\n color: 'success',\n description: i18n('active.description'),\n order: 1,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Inactive: {\n name: AXPSystemStatusType.Inactive,\n title: i18n('inactive.title'),\n icon: 'fa-light fa-circle',\n color: 'secondary',\n description: i18n('inactive.description'),\n order: 2,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Pending: {\n name: AXPSystemStatusType.Pending,\n title: i18n('pending.title'),\n icon: 'fa-light fa-clock',\n color: 'warning',\n description: i18n('pending.description'),\n order: 1,\n isActive: true,\n isInitial: true,\n isFinal: false,\n },\n Completed: {\n name: AXPSystemStatusType.Completed,\n title: i18n('completed.title'),\n icon: 'fa-light fa-check-circle',\n color: 'success',\n description: i18n('completed.description'),\n order: 10,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Suspended: {\n name: AXPSystemStatusType.Suspended,\n title: i18n('suspended.title'),\n icon: 'fa-light fa-pause-circle',\n color: 'neutral',\n description: i18n('suspended.description'),\n order: 5,\n isActive: true,\n isInitial: false,\n isFinal: false,\n },\n Failed: {\n name: AXPSystemStatusType.Failed,\n title: i18n('failed.title'),\n icon: 'fa-light fa-xmark-circle',\n color: 'danger',\n description: i18n('failed.description'),\n order: 10,\n isActive: true,\n isInitial: false,\n isFinal: true,\n },\n Review: {\n name: AXPSystemStatusType.Review,\n title: i18n('review.title'),\n icon: 'fa-light fa-eye',\n color: 'info',\n description: i18n('review.description'),\n order: 3,\n isActive: true,\n },\n});\n/**\n * Get system status definition by type\n * @param type - Status type\n * @returns System status definition or undefined\n */\nexport function getSystemStatus(type) {\n return Object.values(AXPSystemStatuses).find(status => status.name === type);\n}\n/**\n * Resolves the visual appearance (color and icon) for status\n * using the system statuses from the core module.\n * @param statusType - Status type string\n * @returns Color and icon for the status\n */\nexport function resolveStatusLook(statusType) {\n // Try to get system status first\n const systemStatusType = statusType;\n if (systemStatusType) {\n const systemStatus = getSystemStatus(systemStatusType);\n if (systemStatus) {\n // Convert hex color to semantic color type if needed\n // For now, return as-is and let the UI handle it\n return {\n color: systemStatus.color,\n icon: systemStatus.icon || ''\n };\n }\n }\n // Fallback for unknown statuses\n return {\n color: 'secondary',\n icon: ''\n };\n}\n/**\n * Resolves the complete status information (title, description, icon, color) for a status\n * using the system statuses from the core module.\n * @param statusType - Status type string\n * @returns Complete status information as AXPStatusDefinition\n */\nexport function getStatusInfo(statusType) {\n const systemStatusType = statusType;\n if (systemStatusType) {\n const systemStatus = getSystemStatus(systemStatusType);\n if (systemStatus) {\n return systemStatus;\n }\n }\n // Fallback for unknown statuses\n return {\n name: statusType,\n title: statusType,\n description: `Status: ${statusType}`,\n icon: '',\n color: 'secondary'\n };\n}\n/**\n * Get system status definition directly (no conversion needed since it's already AXPStatusDefinition)\n * @param statusType - Status type\n * @param overrides - Optional overrides for the status definition\n * @returns AXPStatusDefinition\n */\nexport function systemStatusToDefinition(statusType, overrides) {\n const systemStatus = getSystemStatus(statusType);\n if (!systemStatus) {\n throw new Error(`System status ${statusType} not found`);\n }\n return {\n ...systemStatus,\n ...overrides,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzZXMudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi9zdGF0dXMtZGVmaW5pdGlvbi9zdGF0dXNlcy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSxtQkFvQlg7QUFwQkQsV0FBWSxtQkFBbUI7SUFDN0Isb0NBQWEsQ0FBQTtJQUNiLGlEQUEwQixDQUFBO0lBQzFCLDZDQUFzQixDQUFBO0lBQ3RCLDBDQUFtQixDQUFBO0lBQ25CLG9DQUFhLENBQUE7SUFDYiw4Q0FBdUIsQ0FBQTtJQUN2QixzQ0FBZSxDQUFBO0lBQ2YsdURBQWdDLENBQUE7SUFDaEMsNENBQXFCLENBQUE7SUFDckIsOENBQXVCLENBQUE7SUFDdkIsNENBQXFCLENBQUE7SUFDckIsNENBQXFCLENBQUE7SUFDckIsd0NBQWlCLENBQUE7SUFDakIsNENBQXFCLENBQUE7SUFDckIsMENBQW1CLENBQUE7SUFDbkIsOENBQXVCLENBQUE7SUFDdkIsOENBQXVCLENBQUE7SUFDdkIsd0NBQWlCLENBQUE7SUFDakIsd0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQXBCVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBb0I5QjtBQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUM7QUFFekQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDN0MsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7UUFDOUIsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDekIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixLQUFLLEVBQUUsV0FBVztRQUNsQixXQUFXLEVBQUUsSUFBSSxDQUFD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Q2pCLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLE9BQU87UUFDTCxJQUFJLEVBQUUsVUFBVTtRQUNoQixLQUFLLEVBQUUsVUFBVTtRQUNqQixXQUFXLEVBQUUsV0FBVyxVQUFVLEVBQUU7UUFDcEMsSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsV0FBVztLQUNuQixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxVQUErQixFQUMvQixTQUF3QztJQUV4QyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLFVBQVUsWUFBWSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU87UUFDTCxHQUFHLFlBQVk7UUFDZixHQUFHLFNBQVM7S0FDYixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQU3RhdHVzRGVmaW5pdGlvbiB9IGZyb20gJy4vc3RhdHVzLWRlZmluaXRpb24udHlwZXMnO1xuXG4vKipcbiAqIFN0YW5kYXJkIHN5c3RlbSBzdGF0dXMgdHlwZXNcbiAqIFRoZXNlIGFyZSB0aGUgcHJlZGVmaW5lZCBzdGF0dXMgdmFsdWVzIHVzZWQgYWNyb3NzIHRoZSBwbGF0Zm9ybVxuICovXG5leHBvcnQgZW51bSBBWFBTeXN0ZW1TdGF0dXNUeXBlIHtcbiAgVG9kbyA9ICd0b2RvJyxcbiAgSW5Qcm9ncmVzcyA9ICdpbi1wcm9ncmVzcycsXG4gIEluUmV2aWV3ID0gJ2luLXJldmlldycsXG4gIEJsb2NrZWQgPSAnYmxvY2tlZCcsXG4gIERvbmUgPSAnZG9uZScsXG4gIENhbmNlbGxlZCA9ICdjYW5jZWxsZWQnLFxuICBEcmFmdCA9ICdkcmFmdCcsXG4gIFBlbmRpbmdSZXZpZXcgPSAncGVuZGluZy1yZXZpZXcnLFxuICBBcHByb3ZlZCA9ICdhcHByb3ZlZCcsXG4gIFB1Ymxpc2hlZCA9ICdwdWJsaXNoZWQnLFxuICBBcmNoaXZlZCA9ICdhcmNoaXZlZCcsXG4gIFJlamVjdGVkID0gJ3JlamVjdGVkJyxcbiAgQWN0aXZlID0gJ2FjdGl2ZScsXG4gIEluYWN0aXZlID0gJ2luYWN0aXZlJyxcbiAgUGVuZGluZyA9ICdwZW5kaW5nJyxcbiAgQ29tcGxldGVkID0gJ2NvbXBsZXRlZCcsXG4gIFN1c3BlbmRlZCA9ICdzdXNwZW5kZWQnLFxuICBGYWlsZWQgPSAnZmFpbGVkJyxcbiAgUmV2aWV3ID0gJ3JldmlldycsXG59XG5cbmNvbnN0IGkxOG4gPSAoa2V5OiBzdHJpbmcpID0+IGBAZ2VuZXJhbDpzdGF0dXNlcy4ke2tleX1gO1xuXG4vKipcbiAqIFN0YW5kYXJkIHN5c3RlbSBzdGF0dXMgZGVmaW5pdGlvbnNcbiAqIFByb3ZpZGVzIGNvbnNpc3RlbnQgc3RhdHVzIGRlZmluaXRpb25zIGFjcm9zcyB0aGUgcGxhdGZvcm1cbiAqIFVzZXMgQVhQU3RhdHVzRGVmaW5pdGlvbiBpbnRlcmZhY2UgZnJvbSBzdGF0dXMtZGVmaW5pdGlvbi50eXBlcy50c1xuICovXG5leHBvcnQgY29uc3QgQVhQU3lzdGVtU3RhdHVzZXMgPSBPYmplY3QuZnJlZXplKHtcbiAgVG9kbzoge1xuICAgIG5hbWU6IEFYUFN5c3RlbVN0YXR1c1R5cGUuVG9kbyxcbiAgICB0aXRsZTogaTE4bigndG9kby50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1jaXJjbGUnLFxuICAgIGNvbG9yOiAnc2Vjb25kYXJ5JyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bigndG9kby5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAxLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogdHJ1ZSxcbiAgICBpc0ZpbmFsOiBmYWxzZSxcbiAgfSxcbiAgSW5Qcm9ncmVzczoge1xuICAgIG5hbWU6IEFYUFN5c3RlbVN0YXR1c1R5cGUuSW5Qcm9ncmVzcyxcbiAgICB0aXRsZTogaTE4bignaW4tcHJvZ3Jlc3MudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGxheScsXG4gICAgY29sb3I6ICdpbmZvJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignaW4tcHJvZ3Jlc3MuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogMixcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IGZhbHNlLFxuICAgIGlzRmluYWw6IGZhbHNlLFxuICB9LFxuICBJblJldmlldzoge1xuICAgIG5hbWU6IEFYUFN5c3RlbVN0YXR1c1R5cGUuSW5SZXZpZXcsXG4gICAgdGl0bGU6IGkxOG4oJ2luLXJldmlldy50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1leWUnLFxuICAgIGNvbG9yOiAnaW5mbycsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ2luLXJldmlldy5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAzLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIEJsb2NrZWQ6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLkJsb2NrZWQsXG4gICAgdGl0bGU6IGkxOG4oJ2Jsb2NrZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtYmFuJyxcbiAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ2Jsb2NrZWQuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogNCxcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IGZhbHNlLFxuICAgIGlzRmluYWw6IGZhbHNlLFxuICB9LFxuICBEb25lOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5Eb25lLFxuICAgIHRpdGxlOiBpMThuKCdkb25lLnRpdGxlJyksXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNoZWNrLWNpcmNsZScsXG4gICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignZG9uZS5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiA1LFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogdHJ1ZSxcbiAgfSxcbiAgQ2FuY2VsbGVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5DYW5jZWxsZWQsXG4gICAgdGl0bGU6IGkxOG4oJ2NhbmNlbGxlZC50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS10aW1lcy1jaXJjbGUnLFxuICAgIGNvbG9yOiAnbmV1dHJhbCcsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ2NhbmNlbGxlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiA2LFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogdHJ1ZSxcbiAgfSxcbiAgRHJhZnQ6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLkRyYWZ0LFxuICAgIHRpdGxlOiBpMThuKCdkcmFmdC50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1maWxlLXBlbicsXG4gICAgY29sb3I6ICduZXV0cmFsJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignZHJhZnQuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogMSxcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IHRydWUsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIFBlbmRpbmdSZXZpZXc6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLlBlbmRpbmdSZXZpZXcsXG4gICAgdGl0bGU6IGkxOG4oJ3BlbmRpbmctcmV2aWV3LnRpdGxlJyksXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNsb2NrJyxcbiAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCdwZW5kaW5nLXJldmlldy5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAyLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIEFwcHJvdmVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5BcHByb3ZlZCxcbiAgICB0aXRsZTogaTE4bignYXBwcm92ZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2hlY2stY2lyY2xlJyxcbiAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCdhcHByb3ZlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAzLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIFB1Ymxpc2hlZDoge1xuICAgIG5hbWU6IEFYUFN5c3RlbVN0YXR1c1R5cGUuUHVibGlzaGVkLFxuICAgIHRpdGxlOiBpMThuKCdwdWJsaXNoZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2xvYmUnLFxuICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ3B1Ymxpc2hlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiA0LFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIEFyY2hpdmVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5BcmNoaXZlZCxcbiAgICB0aXRsZTogaTE4bignYXJjaGl2ZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtYXJjaGl2ZScsXG4gICAgY29sb3I6ICduZXV0cmFsJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignYXJjaGl2ZWQuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogNSxcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IGZhbHNlLFxuICAgIGlzRmluYWw6IHRydWUsXG4gIH0sXG4gIFJlamVjdGVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5SZWplY3RlZCxcbiAgICB0aXRsZTogaTE4bigncmVqZWN0ZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtdGltZXMtY2lyY2xlJyxcbiAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ3JlamVjdGVkLmRlc2NyaXB0aW9uJyksXG4gICAgb3JkZXI6IDYsXG4gICAgaXNBY3RpdmU6IHRydWUsXG4gICAgaXNJbml0aWFsOiBmYWxzZSxcbiAgICBpc0ZpbmFsOiB0cnVlLFxuICB9LFxuICBBY3RpdmU6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLkFjdGl2ZSxcbiAgICB0aXRsZTogaTE4bignYWN0aXZlLnRpdGxlJyksXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNoZWNrLWNpcmNsZScsXG4gICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignYWN0aXZlLmRlc2NyaXB0aW9uJyksXG4gICAgb3JkZXI6IDEsXG4gICAgaXNBY3RpdmU6IHRydWUsXG4gICAgaXNJbml0aWFsOiBmYWxzZSxcbiAgICBpc0ZpbmFsOiBmYWxzZSxcbiAgfSxcbiAgSW5hY3RpdmU6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLkluYWN0aXZlLFxuICAgIHRpdGxlOiBpMThuKCdpbmFjdGl2ZS50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1jaXJjbGUnLFxuICAgIGNvbG9yOiAnc2Vjb25kYXJ5JyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignaW5hY3RpdmUuZGVzY3JpcHRpb24nKSxcbiAgICBvcmRlcjogMixcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IGZhbHNlLFxuICAgIGlzRmluYWw6IGZhbHNlLFxuICB9LFxuICBQZW5kaW5nOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5QZW5kaW5nLFxuICAgIHRpdGxlOiBpMThuKCdwZW5kaW5nLnRpdGxlJyksXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNsb2NrJyxcbiAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgIGRlc2NyaXB0aW9uOiBpMThuKCdwZW5kaW5nLmRlc2NyaXB0aW9uJyksXG4gICAgb3JkZXI6IDEsXG4gICAgaXNBY3RpdmU6IHRydWUsXG4gICAgaXNJbml0aWFsOiB0cnVlLFxuICAgIGlzRmluYWw6IGZhbHNlLFxuICB9LFxuICBDb21wbGV0ZWQ6IHtcbiAgICBuYW1lOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLkNvbXBsZXRlZCxcbiAgICB0aXRsZTogaTE4bignY29tcGxldGVkLnRpdGxlJyksXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNoZWNrLWNpcmNsZScsXG4gICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICBkZXNjcmlwdGlvbjogaTE4bignY29tcGxldGVkLmRlc2NyaXB0aW9uJyksXG4gICAgb3JkZXI6IDEwLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogdHJ1ZSxcbiAgfSxcbiAgU3VzcGVuZGVkOiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5TdXNwZW5kZWQsXG4gICAgdGl0bGU6IGkxOG4oJ3N1c3BlbmRlZC50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1wYXVzZS1jaXJjbGUnLFxuICAgIGNvbG9yOiAnbmV1dHJhbCcsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ3N1c3BlbmRlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiA1LFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIGlzSW5pdGlhbDogZmFsc2UsXG4gICAgaXNGaW5hbDogZmFsc2UsXG4gIH0sXG4gIEZhaWxlZDoge1xuICAgIG5hbWU6IEFYUFN5c3RlbVN0YXR1c1R5cGUuRmFpbGVkLFxuICAgIHRpdGxlOiBpMThuKCdmYWlsZWQudGl0bGUnKSxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEteG1hcmstY2lyY2xlJyxcbiAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ2ZhaWxlZC5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAxMCxcbiAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICBpc0luaXRpYWw6IGZhbHNlLFxuICAgIGlzRmluYWw6IHRydWUsXG4gIH0sXG5cbiAgUmV2aWV3OiB7XG4gICAgbmFtZTogQVhQU3lzdGVtU3RhdHVzVHlwZS5SZXZpZXcsXG4gICAgdGl0bGU6IGkxOG4oJ3Jldmlldy50aXRsZScpLFxuICAgIGljb246ICdmYS1saWdodCBmYS1leWUnLFxuICAgIGNvbG9yOiAnaW5mbycsXG4gICAgZGVzY3JpcHRpb246IGkxOG4oJ3Jldmlldy5kZXNjcmlwdGlvbicpLFxuICAgIG9yZGVyOiAzLFxuICAgIGlzQWN0aXZlOiB0cnVlLFxuICB9LFxufSBhcyBjb25zdCBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgQVhQU3RhdHVzRGVmaW5pdGlvbj4pO1xuXG4vKipcbiAqIEdldCBzeXN0ZW0gc3RhdHVzIGRlZmluaXRpb24gYnkgdHlwZVxuICogQHBhcmFtIHR5cGUgLSBTdGF0dXMgdHlwZVxuICogQHJldHVybnMgU3lzdGVtIHN0YXR1cyBkZWZpbml0aW9uIG9yIHVuZGVmaW5lZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3lzdGVtU3RhdHVzKHR5cGU6IEFYUFN5c3RlbVN0YXR1c1R5cGUpOiBBWFBTdGF0dXNEZWZpbml0aW9uIHtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoQVhQU3lzdGVtU3RhdHVzZXMpLmZpbmQoc3RhdHVzID0+IHN0YXR1cy5uYW1lID09PSB0eXBlKSBhcyBBWFBTdGF0dXNEZWZpbml0aW9uO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSB2aXN1YWwgYXBwZWFyYW5jZSAoY29sb3IgYW5kIGljb24pIGZvciBzdGF0dXNcbiAqIHVzaW5nIHRoZSBzeXN0ZW0gc3RhdHVzZXMgZnJvbSB0aGUgY29yZSBtb2R1bGUuXG4gKiBAcGFyYW0gc3RhdHVzVHlwZSAtIFN0YXR1cyB0eXBlIHN0cmluZ1xuICogQHJldHVybnMgQ29sb3IgYW5kIGljb24gZm9yIHRoZSBzdGF0dXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTdGF0dXNMb29rKHN0YXR1c1R5cGU6IHN0cmluZyk6IHsgY29sb3I6IEFYU3R5bGVDb2xvclR5cGU7IGljb246IHN0cmluZyB9IHtcbiAgLy8gVHJ5IHRvIGdldCBzeXN0ZW0gc3RhdHVzIGZpcnN0XG4gIGNvbnN0IHN5c3RlbVN0YXR1c1R5cGUgPSBzdGF0dXNUeXBlIGFzIEFYUFN5c3RlbVN0YXR1c1R5cGU7XG4gIGlmIChzeXN0ZW1TdGF0dXNUeXBlKSB7XG4gICAgY29uc3Qgc3lzdGVtU3RhdHVzID0gZ2V0U3lzdGVtU3RhdHVzKHN5c3RlbVN0YXR1c1R5cGUpO1xuICAgIGlmIChzeXN0ZW1TdGF0dXMpIHtcbiAgICAgIC8vIENvbnZlcnQgaGV4IGNvbG9yIHRvIHNlbWFudGljIGNvbG9yIHR5cGUgaWYgbmVlZGVkXG4gICAgICAvLyBGb3Igbm93LCByZXR1cm4gYXMtaXMgYW5kIGxldCB0aGUgVUkgaGFuZGxlIGl0XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogc3lzdGVtU3RhdHVzLmNvbG9yIGFzIEFYU3R5bGVDb2xvclR5cGUsXG4gICAgICAgIGljb246IHN5c3RlbVN0YXR1cy5pY29uIHx8ICcnXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8vIEZhbGxiYWNrIGZvciB1bmtub3duIHN0YXR1c2VzXG4gIHJldHVybiB7XG4gICAgY29sb3I6ICdzZWNvbmRhcnknIGFzIEFYU3R5bGVDb2xvclR5cGUsXG4gICAgaWNvbjogJydcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgY29tcGxldGUgc3RhdHVzIGluZm9ybWF0aW9uICh0aXRsZSwgZGVzY3JpcHRpb24sIGljb24sIGNvbG9yKSBmb3IgYSBzdGF0dXNcbiAqIHVzaW5nIHRoZSBzeXN0ZW0gc3RhdHVzZXMgZnJvbSB0aGUgY29yZSBtb2R1bGUuXG4gKiBAcGFyYW0gc3RhdHVzVHlwZSAtIFN0YXR1cyB0eXBlIHN0cmluZ1xuICogQHJldHVybnMgQ29tcGxldGUgc3RhdHVzIGluZm9ybWF0aW9uIGFzIEFYUFN0YXR1c0RlZmluaXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0luZm8oc3RhdHVzVHlwZTogc3RyaW5nKTogQVhQU3RhdHVzRGVmaW5pdGlvbiB7XG4gIGNvbnN0IHN5c3RlbVN0YXR1c1R5cGUgPSBzdGF0dXNUeXBlIGFzIEFYUFN5c3RlbVN0YXR1c1R5cGU7XG4gIGlmIChzeXN0ZW1TdGF0dXNUeXBlKSB7XG4gICAgY29uc3Qgc3lzdGVtU3RhdHVzID0gZ2V0U3lzdGVtU3RhdHVzKHN5c3RlbVN0YXR1c1R5cGUpO1xuICAgIGlmIChzeXN0ZW1TdGF0dXMpIHtcbiAgICAgIHJldHVybiBzeXN0ZW1TdGF0dXM7XG4gICAgfVxuICB9XG5cbiAgLy8gRmFsbGJhY2sgZm9yIHVua25vd24gc3RhdHVzZXNcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBzdGF0dXNUeXBlLFxuICAgIHRpdGxlOiBzdGF0dXNUeXBlLFxuICAgIGRlc2NyaXB0aW9uOiBgU3RhdHVzOiAke3N0YXR1c1R5cGV9YCxcbiAgICBpY29uOiAnJyxcbiAgICBjb2xvcjogJ3NlY29uZGFyeSdcbiAgfTtcbn1cblxuLyoqXG4gKiBHZXQgc3lzdGVtIHN0YXR1cyBkZWZpbml0aW9uIGRpcmVjdGx5IChubyBjb252ZXJzaW9uIG5lZWRlZCBzaW5jZSBpdCdzIGFscmVhZHkgQVhQU3RhdHVzRGVmaW5pdGlvbilcbiAqIEBwYXJhbSBzdGF0dXNUeXBlIC0gU3RhdHVzIHR5cGVcbiAqIEBwYXJhbSBvdmVycmlkZXMgLSBPcHRpb25hbCBvdmVycmlkZXMgZm9yIHRoZSBzdGF0dXMgZGVmaW5pdGlvblxuICogQHJldHVybnMgQVhQU3RhdHVzRGVmaW5pdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gc3lzdGVtU3RhdHVzVG9EZWZpbml0aW9uKFxuICBzdGF0dXNUeXBlOiBBWFBTeXN0ZW1TdGF0dXNUeXBlLFxuICBvdmVycmlkZXM/OiBQYXJ0aWFsPEFYUFN0YXR1c0RlZmluaXRpb24+XG4pOiBBWFBTdGF0dXNEZWZpbml0aW9uIHtcbiAgY29uc3Qgc3lzdGVtU3RhdHVzID0gZ2V0U3lzdGVtU3RhdHVzKHN0YXR1c1R5cGUpO1xuICBpZiAoIXN5c3RlbVN0YXR1cykge1xuICAgIHRocm93IG5ldyBFcnJvcihgU3lzdGVtIHN0YXR1cyAke3N0YXR1c1R5cGV9IG5vdCBmb3VuZGApO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zeXN0ZW1TdGF0dXMsXG4gICAgLi4ub3ZlcnJpZGVzLFxuICB9O1xufVxuXG4iXX0=","//#region ---- Tag Types ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdGFncy90YWcudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDOztBQXFCakMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgVGFnIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0YWcgd2l0aCB0ZXh0LCBjb2xvciwgYW5kIG1ldGFkYXRhXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQVGFnIHtcbiAgICBpZD86IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGNvbG9yOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgc2NvcGU/OiAnc3lzdGVtJyB8ICd0ZW5hbnQnIHwgJ3VzZXInO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIGZpbHRlcmluZyB0YWdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQVGFnRmlsdGVyT3B0aW9ucyB7XG4gICAgc2NvcGU/OiAoJ3N5c3RlbScgfCAndGVuYW50JyB8ICd1c2VyJylbXTtcbiAgICBzZWFyY2g/OiBzdHJpbmc7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { InjectionToken } from '@angular/core';\n//#region ---- Tag Provider ----\n/**\n * Abstract class for tag providers\n * Implement this to provide tags from different sources (system, tenant, user, etc.)\n */\nexport class AXPTagProvider {\n /**\n * Create a new tag (optional - not all providers support creation)\n * @param tag Tag to create\n * @returns Created tag with id\n */\n async create(tag) {\n throw new Error(`Provider ${this.name} does not support tag creation`);\n }\n /**\n * Update an existing tag (optional)\n * @param tag Tag to update\n * @returns Updated tag\n */\n async update(tag) {\n throw new Error(`Provider ${this.name} does not support tag updates`);\n }\n /**\n * Delete a tag (optional)\n * @param id Tag id to delete\n */\n async delete(id) {\n throw new Error(`Provider ${this.name} does not support tag deletion`);\n }\n}\n/**\n * Injection token for tag providers\n * Use this to register multiple tag providers\n */\nexport const AXP_TAG_PROVIDER = new InjectionToken('AXP_TAG_PROVIDER');\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdGFncy90YWcucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxvQ0FBb0M7QUFFcEM7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixjQUFjO0lBWWhDOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFFLEdBQXVCO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE1BQU0sQ0FBRSxHQUFXO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFFLEVBQVU7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLGdDQUFnQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztDQUNKO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQW1CLGtCQUFrQixDQUFDLENBQUM7QUFFekYsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBUYWcgfSBmcm9tICcuL3RhZy50eXBlcyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgVGFnIFByb3ZpZGVyICAgLS0tLVxuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGZvciB0YWcgcHJvdmlkZXJzXG4gKiBJbXBsZW1lbnQgdGhpcyB0byBwcm92aWRlIHRhZ3MgZnJvbSBkaWZmZXJlbnQgc291cmNlcyAoc3lzdGVtLCB0ZW5hbnQsIHVzZXIsIGV0Yy4pXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBUYWdQcm92aWRlciB7XG4gICAgLyoqXG4gICAgICogVW5pcXVlIG5hbWUgZm9yIHRoaXMgcHJvdmlkZXIgKGUuZy4sICdzeXN0ZW0nLCAndGVuYW50JywgJ3VzZXInKVxuICAgICAqL1xuICAgIGFic3RyYWN0IG5hbWU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGUgdGFncyBmcm9tIHRoaXMgc291cmNlXG4gICAgICogQHJldHVybnMgUHJvbWlzZSBvZiB0YWdzXG4gICAgICovXG4gICAgYWJzdHJhY3QgcHJvdmlkZSgpOiBQcm9taXNlPEFYUFRhZ1tdPjtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIG5ldyB0YWcgKG9wdGlvbmFsIC0gbm90IGFsbCBwcm92aWRlcnMgc3VwcG9ydCBjcmVhdGlvbilcbiAgICAgKiBAcGFyYW0gdGFnIFRhZyB0byBjcmVhdGVcbiAgICAgKiBAcmV0dXJucyBDcmVhdGVkIHRhZyB3aXRoIGlkXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlPyh0YWc6IE9taXQ8QVhQVGFnLCAnaWQnPik6IFByb21pc2U8QVhQVGFnPiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvdmlkZXIgJHt0aGlzLm5hbWV9IGRvZXMgbm90IHN1cHBvcnQgdGFnIGNyZWF0aW9uYCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGFuIGV4aXN0aW5nIHRhZyAob3B0aW9uYWwpXG4gICAgICogQHBhcmFtIHRhZyBUYWcgdG8gdXBkYXRlXG4gICAgICogQHJldHVybnMgVXBkYXRlZCB0YWdcbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGU/KHRhZzogQVhQVGFnKTogUHJvbWlzZTxBWFBUYWc+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciAke3RoaXMubmFtZX0gZG9lcyBub3Qgc3VwcG9ydCB0YWcgdXBkYXRlc2ApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlbGV0ZSBhIHRhZyAob3B0aW9uYWwpXG4gICAgICogQHBhcmFtIGlkIFRhZyBpZCB0byBkZWxldGVcbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGU/KGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciAke3RoaXMubmFtZX0gZG9lcyBub3Qgc3VwcG9ydCB0YWcgZGVsZXRpb25gKTtcbiAgICB9XG59XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciB0YWcgcHJvdmlkZXJzXG4gKiBVc2UgdGhpcyB0byByZWdpc3RlciBtdWx0aXBsZSB0YWcgcHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBBWFBfVEFHX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUFRhZ1Byb3ZpZGVyW10+KCdBWFBfVEFHX1BST1ZJREVSJyk7XG5cbi8vI2VuZHJlZ2lvblxuXG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { AXP_TAG_PROVIDER } from './tag.provider';\nimport * as i0 from \"@angular/core\";\n//#region ---- Tag Service ----\n/**\n * Service for managing tags from multiple providers\n * Aggregates tags from all registered providers\n */\nexport class AXPTagService {\n constructor() {\n //#region ---- Dependencies ----\n this.providers = inject(AXP_TAG_PROVIDER, { optional: true }) ?? [];\n //#endregion\n //#region ---- State ----\n this.cache = null;\n }\n //#endregion\n //#region ---- Public API ----\n /**\n * Get all tags from all providers\n * @param options Filter options\n * @returns Promise of tags\n */\n async getTags(options) {\n if (!this.cache) {\n await this.loadTags();\n }\n let tags = this.cache;\n // Apply scope filter\n if (options?.scope && options.scope.length > 0) {\n tags = tags.filter((tag) => tag.scope && options.scope.includes(tag.scope));\n }\n // Apply search filter\n if (options?.search) {\n const searchLower = options.search.toLowerCase();\n tags = tags.filter((tag) => tag.title.toLowerCase().includes(searchLower) ||\n tag.description?.toLowerCase().includes(searchLower));\n }\n return tags;\n }\n /**\n * Create a new tag using the appropriate provider\n * @param tag Tag to create\n * @param providerName Provider to use (defaults to first writable provider)\n * @returns Created tag\n */\n async createTag(tag, providerName) {\n const provider = providerName\n ? this.providers.find((p) => p.name === providerName)\n : this.providers.find((p) => p.create);\n if (!provider || !provider.create) {\n throw new Error('No writable tag provider available');\n }\n const createdTag = await provider.create(tag);\n // Invalidate cache\n this.cache = null;\n return createdTag;\n }\n /**\n * Update an existing tag\n * @param tag Tag to update\n * @returns Updated tag\n */\n async updateTag(tag) {\n const provider = this.providers.find((p) => p.name === tag.scope && p.update);\n if (!provider || !provider.update) {\n throw new Error(`No provider found for updating tag with scope: ${tag.scope}`);\n }\n const updatedTag = await provider.update(tag);\n // Invalidate cache\n this.cache = null;\n return updatedTag;\n }\n /**\n * Delete a tag\n * @param tagId Tag id to delete\n * @param scope Tag scope\n */\n async deleteTag(tagId, scope) {\n const provider = this.providers.find((p) => p.name === scope && p.delete);\n if (!provider || !provider.delete) {\n throw new Error(`No provider found for deleting tag with scope: ${scope}`);\n }\n await provider.delete(tagId);\n // Invalidate cache\n this.cache = null;\n }\n /**\n * Reload tags from all providers\n */\n async reload() {\n this.cache = null;\n await this.loadTags();\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Load tags from all providers\n */\n async loadTags() {\n const allTags = [];\n for (const provider of this.providers) {\n try {\n const tags = await provider.provide();\n allTags.push(...tags);\n }\n catch (error) {\n console.error(`Error loading tags from provider ${provider.name}:`, error);\n }\n }\n // Remove duplicates based on title (case-insensitive)\n const uniqueTags = allTags.filter((tag, index, self) => index === self.findIndex((t) => t.title.toLowerCase() === tag.title.toLowerCase()));\n this.cache = uniqueTags;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPTagService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPTagService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPTagService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90YWdzL3RhZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbEUsbUNBQW1DO0FBRW5DOzs7R0FHRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBS0ksb0NBQW9DO1FBRTVCLGNBQVMsR0FBcUIsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpGLFlBQVk7UUFFWiw2QkFBNkI7UUFFckIsVUFBSyxHQUFvQixJQUFJLENBQUM7S0FzSXpDO0lBcElHLFlBQVk7SUFFWixrQ0FBa0M7SUFFbEM7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBNkI7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDO1FBRXZCLHFCQUFxQjtRQUNyQixJQUFJLE9BQU8sRUFBRSxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUVELHNCQUFzQjtRQUN0QixJQUFJLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNsQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pELElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUNkLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDSixHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7Z0JBQzdDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUMzRCxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBdUIsRUFBRSxZQUFxQjtRQUMxRCxNQUFNLFFBQVEsR0FBRyxZQUFZO1lBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUM7WUFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5QyxtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFbEIsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQVc7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTlDLG1CQUFtQjtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxRSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELEtBQUssRUFBRSxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUVELE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QixtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWTtJQUVaLHVDQUF1QztJQUV2Qzs7T0FFRztJQUNLLEtBQUssQ0FBQyxRQUFRO1FBQ2xCLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztRQUU3QixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxRQUFRLENBQUMsSUFBSSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNMLENBQUM7UUFFRCxzREFBc0Q7UUFDdEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDN0IsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ2pCLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDekYsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDO0lBQzVCLENBQUM7K0dBN0lRLGFBQWE7bUhBQWIsYUFBYSxjQUZWLE1BQU07OzRGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBUYWcsIEFYUFRhZ0ZpbHRlck9wdGlvbnMgfSBmcm9tICcuL3RhZy50eXBlcyc7XG5pbXBvcnQgeyBBWFBfVEFHX1BST1ZJREVSLCBBWFBUYWdQcm92aWRlciB9IGZyb20gJy4vdGFnLnByb3ZpZGVyJztcblxuLy8jcmVnaW9uIC0tLS0gICBUYWcgU2VydmljZSAgIC0tLS1cblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBtYW5hZ2luZyB0YWdzIGZyb20gbXVsdGlwbGUgcHJvdmlkZXJzXG4gKiBBZ2dyZWdhdGVzIHRhZ3MgZnJvbSBhbGwgcmVnaXN0ZXJlZCBwcm92aWRlcnNcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGFnU2VydmljZSB7XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICAgIHByaXZhdGUgcHJvdmlkZXJzOiBBWFBUYWdQcm92aWRlcltdID0gaW5qZWN0KEFYUF9UQUdfUFJPVklERVIsIHsgb3B0aW9uYWw6IHRydWUgfSkgPz8gW107XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgU3RhdGUgICAtLS0tXG5cbiAgICBwcml2YXRlIGNhY2hlOiBBWFBUYWdbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBBUEkgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWxsIHRhZ3MgZnJvbSBhbGwgcHJvdmlkZXJzXG4gICAgICogQHBhcmFtIG9wdGlvbnMgRmlsdGVyIG9wdGlvbnNcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIG9mIHRhZ3NcbiAgICAgKi9cbiAgICBhc3luYyBnZXRUYWdzKG9wdGlvbnM/OiBBWFBUYWdGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxBWFBUYWdbXT4ge1xuICAgICAgICBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubG9hZFRhZ3MoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB0YWdzID0gdGhpcy5jYWNoZSE7XG5cbiAgICAgICAgLy8gQXBwbHkgc2NvcGUgZmlsdGVyXG4gICAgICAgIGlmIChvcHRpb25zPy5zY29wZSAmJiBvcHRpb25zLnNjb3BlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRhZ3MgPSB0YWdzLmZpbHRlcigodGFnKSA9PiB0YWcuc2NvcGUgJiYgb3B0aW9ucy5zY29wZSEuaW5jbHVkZXModGFnLnNjb3BlKSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBcHBseSBzZWFyY2ggZmlsdGVyXG4gICAgICAgIGlmIChvcHRpb25zPy5zZWFyY2gpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaExvd2VyID0gb3B0aW9ucy5zZWFyY2gudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHRhZ3MgPSB0YWdzLmZpbHRlcihcbiAgICAgICAgICAgICAgICAodGFnKSA9PlxuICAgICAgICAgICAgICAgICAgICB0YWcudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hMb3dlcikgfHxcbiAgICAgICAgICAgICAgICAgICAgdGFnLmRlc2NyaXB0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaExvd2VyKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFncztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgdGFnIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBwcm92aWRlclxuICAgICAqIEBwYXJhbSB0YWcgVGFnIHRvIGNyZWF0ZVxuICAgICAqIEBwYXJhbSBwcm92aWRlck5hbWUgUHJvdmlkZXIgdG8gdXNlIChkZWZhdWx0cyB0byBmaXJzdCB3cml0YWJsZSBwcm92aWRlcilcbiAgICAgKiBAcmV0dXJucyBDcmVhdGVkIHRhZ1xuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZVRhZyh0YWc6IE9taXQ8QVhQVGFnLCAnaWQnPiwgcHJvdmlkZXJOYW1lPzogc3RyaW5nKTogUHJvbWlzZTxBWFBUYWc+IHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSBwcm92aWRlck5hbWVcbiAgICAgICAgICAgID8gdGhpcy5wcm92aWRlcnMuZmluZCgocCkgPT4gcC5uYW1lID09PSBwcm92aWRlck5hbWUpXG4gICAgICAgICAgICA6IHRoaXMucHJvdmlkZXJzLmZpbmQoKHApID0+IHAuY3JlYXRlKTtcblxuICAgICAgICBpZiAoIXByb3ZpZGVyIHx8ICFwcm92aWRlci5jcmVhdGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gd3JpdGFibGUgdGFnIHByb3ZpZGVyIGF2YWlsYWJsZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3JlYXRlZFRhZyA9IGF3YWl0IHByb3ZpZGVyLmNyZWF0ZSh0YWcpO1xuXG4gICAgICAgIC8vIEludmFsaWRhdGUgY2FjaGVcbiAgICAgICAgdGhpcy5jYWNoZSA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIGNyZWF0ZWRUYWc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIGFuIGV4aXN0aW5nIHRhZ1xuICAgICAqIEBwYXJhbSB0YWcgVGFnIHRvIHVwZGF0ZVxuICAgICAqIEByZXR1cm5zIFVwZGF0ZWQgdGFnXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlVGFnKHRhZzogQVhQVGFnKTogUHJvbWlzZTxBWFBUYWc+IHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSB0aGlzLnByb3ZpZGVycy5maW5kKChwKSA9PiBwLm5hbWUgPT09IHRhZy5zY29wZSAmJiBwLnVwZGF0ZSk7XG5cbiAgICAgICAgaWYgKCFwcm92aWRlciB8fCAhcHJvdmlkZXIudXBkYXRlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHByb3ZpZGVyIGZvdW5kIGZvciB1cGRhdGluZyB0YWcgd2l0aCBzY29wZTogJHt0YWcuc2NvcGV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cGRhdGVkVGFnID0gYXdhaXQgcHJvdmlkZXIudXBkYXRlKHRhZyk7XG5cbiAgICAgICAgLy8gSW52YWxpZGF0ZSBjYWNoZVxuICAgICAgICB0aGlzLmNhY2hlID0gbnVsbDtcblxuICAgICAgICByZXR1cm4gdXBkYXRlZFRhZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWxldGUgYSB0YWdcbiAgICAgKiBAcGFyYW0gdGFnSWQgVGFnIGlkIHRvIGRlbGV0ZVxuICAgICAqIEBwYXJhbSBzY29wZSBUYWcgc2NvcGVcbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGVUYWcodGFnSWQ6IHN0cmluZywgc2NvcGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMucHJvdmlkZXJzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gc2NvcGUgJiYgcC5kZWxldGUpO1xuXG4gICAgICAgIGlmICghcHJvdmlkZXIgfHwgIXByb3ZpZGVyLmRlbGV0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBwcm92aWRlciBmb3VuZCBmb3IgZGVsZXRpbmcgdGFnIHdpdGggc2NvcGU6ICR7c2NvcGV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBwcm92aWRlci5kZWxldGUodGFnSWQpO1xuXG4gICAgICAgIC8vIEludmFsaWRhdGUgY2FjaGVcbiAgICAgICAgdGhpcy5jYWNoZSA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVsb2FkIHRhZ3MgZnJvbSBhbGwgcHJvdmlkZXJzXG4gICAgICovXG4gICAgYXN5bmMgcmVsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmNhY2hlID0gbnVsbDtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkVGFncygpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQcml2YXRlIE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBMb2FkIHRhZ3MgZnJvbSBhbGwgcHJvdmlkZXJzXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkVGFncygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgYWxsVGFnczogQVhQVGFnW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSBhd2FpdCBwcm92aWRlci5wcm92aWRlKCk7XG4gICAgICAgICAgICAgICAgYWxsVGFncy5wdXNoKC4uLnRhZ3MpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBsb2FkaW5nIHRhZ3MgZnJvbSBwcm92aWRlciAke3Byb3ZpZGVyLm5hbWV9OmAsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGVzIGJhc2VkIG9uIHRpdGxlIChjYXNlLWluc2Vuc2l0aXZlKVxuICAgICAgICBjb25zdCB1bmlxdWVUYWdzID0gYWxsVGFncy5maWx0ZXIoXG4gICAgICAgICAgICAodGFnLCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICAgICAgICBpbmRleCA9PT0gc2VsZi5maW5kSW5kZXgoKHQpID0+IHQudGl0bGUudG9Mb3dlckNhc2UoKSA9PT0gdGFnLnRpdGxlLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY2FjaGUgPSB1bmlxdWVUYWdzO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuXG4vLyNlbmRyZWdpb25cblxuIl19","/**\n * Additional suggested generic actions for future consideration:\n *\n * Data & Content Actions:\n * - Search = 'search' - Search functionality\n * - Filter = 'filter' - Apply filters\n * - Sort = 'sort' - Sort data\n * - Group = 'group' - Group data\n * - Expand = 'expand' - Expand details\n * - Collapse = 'collapse' - Collapse details\n * - Pin = 'pin' - Pin to favorites\n * - Bookmark = 'bookmark' - Bookmark item\n * - Favorite = 'favorite' - Mark as favorite\n * - Star = 'star' - Star rating\n *\n * Workflow Actions:\n * - Start = 'start' - Start process/workflow\n * - Stop = 'stop' - Stop process\n * - Pause = 'pause' - Pause process\n * - Resume = 'resume' - Resume process\n * - Cancel = 'cancel' - Cancel operation\n * - Complete = 'complete' - Mark as complete\n * - Close = 'close' - Close item\n * - Reopen = 'reopen' - Reopen closed item\n * - Forward = 'forward' - Forward to next step\n * - Back = 'back' - Go back\n *\n * Communication Actions:\n * - Reply = 'reply' - Reply to message\n * - Forward = 'forward' - Forward message\n * - Notify = 'notify' - Send notification\n * - Invite = 'invite' - Invite user\n * - Join = 'join' - Join group/meeting\n * - Leave = 'leave' - Leave group/meeting\n *\n * Security Actions:\n * - Login = 'login' - User login\n * - Logout = 'logout' - User logout\n * - Block = 'block' - Block user/content\n * - Unblock = 'unblock' - Unblock user/content\n * - Ban = 'ban' - Ban user\n * - Unban = 'unban' - Unban user\n * - Verify = 'verify' - Verify identity\n * - Authenticate = 'authenticate' - Authenticate\n *\n * File & Media Actions:\n * - Open = 'open' - Open file\n * - Save = 'save' - Save file\n * - SaveAs = 'save-as' - Save as new file\n * - Attach = 'attach' - Attach file\n * - Detach = 'detach' - Detach file\n * - Compress = 'compress' - Compress files\n * - Extract = 'extract' - Extract archive\n * - Convert = 'convert' - Convert format\n * - Crop = 'crop' - Crop image\n * - Resize = 'resize' - Resize image\n *\n * System Actions:\n * - Sync = 'sync' - Synchronize data\n * - Backup = 'backup' - Create backup\n * - Restore = 'restore' - Restore from backup\n * - Reset = 'reset' - Reset to defaults\n * - Clear = 'clear' - Clear data\n * - Optimize = 'optimize' - Optimize performance\n * - Update = 'update' - Update system\n * - Install = 'install' - Install component\n * - Uninstall = 'uninstall' - Uninstall component\n * - Enable = 'enable' - Enable feature\n * - Disable = 'disable' - Disable feature\n *\n * Analytics & Monitoring:\n * - Monitor = 'monitor' - Monitor activity\n * - Track = 'track' - Track progress\n * - Analyze = 'analyze' - Analyze data\n * - Debug = 'debug' - Debug issue\n * - Log = 'log' - View logs\n * - Alert = 'alert' - Set alert\n * - Dashboard = 'dashboard' - View dashboard\n * - Metrics = 'metrics' - View metrics\n *\n * Collaboration Actions:\n * - Collaborate = 'collaborate' - Start collaboration\n * - Share = 'share' - Share content\n * - Comment = 'comment' - Add comment\n * - Like = 'like' - Like content\n * - Follow = 'follow' - Follow user/content\n * - Subscribe = 'subscribe' - Subscribe to updates\n * - Unsubscribe = 'unsubscribe' - Unsubscribe\n * - Rate = 'rate' - Rate content\n * - Review = 'review' - Review content\n * - Recommend = 'recommend' - Recommend content\n */\nexport var AXPSystemActionType;\n(function (AXPSystemActionType) {\n AXPSystemActionType[\"View\"] = \"view\";\n AXPSystemActionType[\"Create\"] = \"create\";\n AXPSystemActionType[\"Update\"] = \"update\";\n AXPSystemActionType[\"Delete\"] = \"delete\";\n AXPSystemActionType[\"Approve\"] = \"approve\";\n AXPSystemActionType[\"Reject\"] = \"reject\";\n AXPSystemActionType[\"Submit\"] = \"submit\";\n AXPSystemActionType[\"Export\"] = \"export\";\n AXPSystemActionType[\"Import\"] = \"import\";\n AXPSystemActionType[\"Print\"] = \"print\";\n AXPSystemActionType[\"Assign\"] = \"assign\";\n AXPSystemActionType[\"Lock\"] = \"lock\";\n AXPSystemActionType[\"Unlock\"] = \"unlock\";\n AXPSystemActionType[\"Share\"] = \"share\";\n AXPSystemActionType[\"Configure\"] = \"configure\";\n AXPSystemActionType[\"Reorder\"] = \"reorder\";\n AXPSystemActionType[\"Preview\"] = \"preview\";\n AXPSystemActionType[\"Duplicate\"] = \"duplicate\";\n AXPSystemActionType[\"Archive\"] = \"archive\";\n AXPSystemActionType[\"Publish\"] = \"publish\";\n AXPSystemActionType[\"Unpublish\"] = \"unpublish\";\n AXPSystemActionType[\"Upload\"] = \"upload\";\n AXPSystemActionType[\"Download\"] = \"download\";\n AXPSystemActionType[\"Copy\"] = \"copy\";\n AXPSystemActionType[\"Move\"] = \"move\";\n AXPSystemActionType[\"Rename\"] = \"rename\";\n AXPSystemActionType[\"Restore\"] = \"restore\";\n AXPSystemActionType[\"Manage\"] = \"manage\";\n AXPSystemActionType[\"Info\"] = \"info\";\n AXPSystemActionType[\"Confirm\"] = \"confirm\";\n AXPSystemActionType[\"Design\"] = \"design\";\n AXPSystemActionType[\"VersionHistory\"] = \"version-history\";\n AXPSystemActionType[\"Compare\"] = \"compare\";\n AXPSystemActionType[\"Comments\"] = \"comments\";\n AXPSystemActionType[\"Sign\"] = \"sign\";\n AXPSystemActionType[\"Setup\"] = \"setup\";\n AXPSystemActionType[\"Send\"] = \"send\";\n AXPSystemActionType[\"Report\"] = \"report\";\n AXPSystemActionType[\"Sent\"] = \"sent\";\n AXPSystemActionType[\"Review\"] = \"review\";\n AXPSystemActionType[\"Generate\"] = \"generate\";\n AXPSystemActionType[\"Refresh\"] = \"refresh\";\n AXPSystemActionType[\"Reload\"] = \"reload\";\n AXPSystemActionType[\"Search\"] = \"search\";\n AXPSystemActionType[\"Filter\"] = \"filter\";\n AXPSystemActionType[\"Sort\"] = \"sort\";\n AXPSystemActionType[\"Start\"] = \"start\";\n AXPSystemActionType[\"Stop\"] = \"stop\";\n AXPSystemActionType[\"Pause\"] = \"pause\";\n AXPSystemActionType[\"Cancel\"] = \"cancel\";\n AXPSystemActionType[\"Close\"] = \"close\";\n AXPSystemActionType[\"Complete\"] = \"complete\";\n AXPSystemActionType[\"Save\"] = \"save\";\n AXPSystemActionType[\"SaveAs\"] = \"save-as\";\n AXPSystemActionType[\"Sync\"] = \"sync\";\n AXPSystemActionType[\"Reset\"] = \"reset\";\n AXPSystemActionType[\"Clear\"] = \"clear\";\n AXPSystemActionType[\"Distribution\"] = \"distribution\";\n})(AXPSystemActionType || (AXPSystemActionType = {}));\nconst i18n = (key) => `@general:actions.${key}`;\nexport const AXPSystemActions = Object.freeze({\n View: {\n key: AXPSystemActionType.View,\n title: i18n('view.title'),\n icon: 'fa-light fa-eye',\n color: 'primary',\n descriptions: {\n title: i18n('view.title'),\n tooltip: i18n('view.description'),\n permission: i18n('view.permission'),\n audit: i18n('view.audit')\n }\n },\n Create: {\n key: AXPSystemActionType.Create,\n title: i18n('create.title'),\n icon: 'fa-light fa-plus',\n color: 'primary',\n descriptions: {\n title: i18n('create.title'),\n tooltip: i18n('create.description'),\n permission: i18n('create.permission'),\n audit: i18n('create.audit')\n }\n },\n Edit: {\n key: AXPSystemActionType.Update,\n title: i18n('edit.title'),\n icon: 'fa-light fa-pen',\n color: 'default',\n descriptions: {\n title: i18n('edit.title'),\n tooltip: i18n('edit.description'),\n permission: i18n('edit.permission'),\n audit: i18n('edit.audit')\n }\n },\n Delete: {\n key: AXPSystemActionType.Delete,\n title: i18n('delete.title'),\n icon: 'fa-light fa-trash',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('delete.title'),\n tooltip: i18n('delete.description'),\n permission: i18n('delete.permission'),\n audit: i18n('delete.audit')\n }\n },\n Approve: {\n key: AXPSystemActionType.Approve,\n title: i18n('approve.title'),\n icon: 'fa-light fa-circle-check',\n color: 'success',\n critical: true,\n descriptions: {\n title: i18n('approve.title'),\n tooltip: i18n('approve.description'),\n permission: i18n('approve.permission'),\n audit: i18n('approve.audit')\n }\n },\n Submit: {\n key: AXPSystemActionType.Submit,\n title: i18n('submit.title'),\n icon: 'fa-light fa-paper-plane',\n color: 'primary',\n descriptions: {\n title: i18n('submit.title'),\n tooltip: i18n('submit.description'),\n permission: i18n('submit.permission'),\n audit: i18n('submit.audit')\n }\n },\n Reject: {\n key: AXPSystemActionType.Reject,\n title: i18n('reject.title'),\n icon: 'fa-light fa-ban',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('reject.title'),\n tooltip: i18n('reject.description'),\n permission: i18n('reject.permission'),\n audit: i18n('reject.audit')\n }\n },\n Export: {\n key: AXPSystemActionType.Export,\n title: i18n('export.title'),\n icon: 'fa-light fa-download',\n color: 'default',\n descriptions: {\n title: i18n('export.title'),\n tooltip: i18n('export.description'),\n permission: i18n('export.permission'),\n audit: i18n('export.audit')\n }\n },\n Import: {\n key: AXPSystemActionType.Import,\n title: i18n('import.title'),\n icon: 'fa-light fa-upload',\n color: 'default',\n descriptions: {\n title: i18n('import.title'),\n tooltip: i18n('import.description'),\n permission: i18n('import.permission'),\n audit: i18n('import.audit')\n }\n },\n Print: {\n key: AXPSystemActionType.Print,\n title: i18n('print.title'),\n icon: 'fa-light fa-print',\n color: 'default',\n descriptions: {\n title: i18n('print.title'),\n tooltip: i18n('print.description'),\n permission: i18n('print.permission'),\n audit: i18n('print.audit')\n }\n },\n Duplicate: {\n key: AXPSystemActionType.Duplicate,\n title: i18n('duplicate.title'),\n icon: 'fa-light fa-clone',\n color: 'warning',\n descriptions: {\n title: i18n('duplicate.title'),\n tooltip: i18n('duplicate.description'),\n permission: i18n('duplicate.permission'),\n audit: i18n('duplicate.audit')\n }\n },\n Archive: {\n key: AXPSystemActionType.Archive,\n title: i18n('archive.title'),\n icon: 'fa-light fa-box-archive',\n color: 'default',\n descriptions: {\n title: i18n('archive.title'),\n tooltip: i18n('archive.description'),\n permission: i18n('archive.permission'),\n audit: i18n('archive.audit')\n }\n },\n Restore: {\n key: AXPSystemActionType.Restore,\n title: i18n('restore.title'),\n icon: 'fa-light fa-arrow-rotate-left',\n color: 'default',\n descriptions: {\n title: i18n('restore.title'),\n tooltip: i18n('restore.description'),\n permission: i18n('restore.permission'),\n audit: i18n('restore.audit')\n }\n },\n Assign: {\n key: AXPSystemActionType.Assign,\n title: i18n('assign.title'),\n icon: 'fa-light fa-user-plus',\n color: 'primary',\n descriptions: {\n title: i18n('assign.title'),\n tooltip: i18n('assign.description'),\n permission: i18n('assign.permission'),\n audit: i18n('assign.audit')\n }\n },\n Lock: {\n key: AXPSystemActionType.Lock,\n title: i18n('lock.title'),\n icon: 'fa-light fa-lock',\n color: 'warning',\n descriptions: {\n title: i18n('lock.title'),\n tooltip: i18n('lock.description'),\n permission: i18n('lock.permission'),\n audit: i18n('lock.audit')\n }\n },\n Unlock: {\n key: AXPSystemActionType.Unlock,\n title: i18n('unlock.title'),\n icon: 'fa-light fa-unlock',\n color: 'success',\n descriptions: {\n title: i18n('unlock.title'),\n tooltip: i18n('unlock.description'),\n permission: i18n('unlock.permission'),\n audit: i18n('unlock.audit')\n }\n },\n Share: {\n key: AXPSystemActionType.Share,\n title: i18n('share.title'),\n icon: 'fa-light fa-share-nodes',\n color: 'info',\n descriptions: {\n title: i18n('share.title'),\n tooltip: i18n('share.description'),\n permission: i18n('share.permission'),\n audit: i18n('share.audit')\n }\n },\n Configure: {\n key: AXPSystemActionType.Configure,\n title: i18n('configure.title'),\n icon: 'fa-light fa-sliders',\n color: 'primary',\n descriptions: {\n title: i18n('configure.title'),\n tooltip: i18n('configure.description'),\n permission: i18n('configure.permission'),\n audit: i18n('configure.audit')\n }\n },\n Reorder: {\n key: AXPSystemActionType.Reorder,\n title: i18n('reorder.title'),\n icon: 'fa-light fa-arrow-down-up-across-line',\n color: 'default',\n descriptions: {\n title: i18n('reorder.title'),\n tooltip: i18n('reorder.description'),\n permission: i18n('reorder.permission'),\n audit: i18n('reorder.audit')\n }\n },\n Preview: {\n key: AXPSystemActionType.Preview,\n title: i18n('preview.title'),\n icon: 'fa-light fa-magnifying-glass',\n color: 'default',\n descriptions: {\n title: i18n('preview.title'),\n tooltip: i18n('preview.description'),\n permission: i18n('preview.permission'),\n audit: i18n('preview.audit')\n }\n },\n Publish: {\n key: AXPSystemActionType.Publish,\n title: i18n('publish.title'),\n icon: 'fa-light fa-globe',\n color: 'success',\n descriptions: {\n title: i18n('publish.title'),\n tooltip: i18n('publish.description'),\n permission: i18n('publish.permission'),\n audit: i18n('publish.audit')\n }\n },\n Unpublish: {\n key: AXPSystemActionType.Unpublish,\n title: i18n('unpublish.title'),\n icon: 'fa-light fa-globe-slash',\n color: 'danger',\n descriptions: {\n title: i18n('unpublish.title'),\n tooltip: i18n('unpublish.description'),\n permission: i18n('unpublish.permission'),\n audit: i18n('unpublish.audit')\n }\n },\n Upload: {\n key: AXPSystemActionType.Upload,\n title: i18n('upload.title'),\n icon: 'fa-light fa-upload',\n color: 'default',\n descriptions: {\n title: i18n('upload.title'),\n tooltip: i18n('upload.description'),\n permission: i18n('upload.permission'),\n audit: i18n('upload.audit')\n }\n },\n Download: {\n key: AXPSystemActionType.Download,\n title: i18n('download.title'),\n icon: 'fa-light fa-download',\n color: 'default',\n descriptions: {\n title: i18n('download.title'),\n tooltip: i18n('download.description'),\n permission: i18n('download.permission'),\n audit: i18n('download.audit')\n }\n },\n Copy: {\n key: AXPSystemActionType.Copy,\n title: i18n('copy.title'),\n icon: 'fa-light fa-copy',\n color: 'default',\n descriptions: {\n title: i18n('copy.title'),\n tooltip: i18n('copy.description'),\n permission: i18n('copy.permission'),\n audit: i18n('copy.audit')\n }\n },\n Move: {\n key: AXPSystemActionType.Move,\n title: i18n('move.title'),\n icon: 'fa-light fa-arrow-right-arrow-left',\n color: 'default',\n descriptions: {\n title: i18n('move.title'),\n tooltip: i18n('move.description'),\n permission: i18n('move.permission'),\n audit: i18n('move.audit')\n }\n },\n Rename: {\n key: AXPSystemActionType.Rename,\n title: i18n('rename.title'),\n icon: 'fa-light fa-pen',\n color: 'default',\n descriptions: {\n title: i18n('rename.title'),\n tooltip: i18n('rename.description'),\n permission: i18n('rename.permission'),\n audit: i18n('rename.audit')\n }\n },\n Manage: {\n key: AXPSystemActionType.Manage,\n title: i18n('manage.title'),\n icon: 'fa-light fa-gear',\n color: 'default',\n descriptions: {\n title: i18n('manage.title'),\n tooltip: i18n('manage.description'),\n permission: i18n('manage.permission'),\n audit: i18n('manage.audit')\n }\n },\n Info: {\n key: AXPSystemActionType.Info,\n title: i18n('info.title'),\n icon: 'fa-light fa-info',\n color: 'default',\n descriptions: {\n title: i18n('info.title'),\n tooltip: i18n('info.description'),\n permission: i18n('info.permission'),\n audit: i18n('info.audit')\n }\n },\n Confirm: {\n key: AXPSystemActionType.Confirm,\n title: i18n('confirm.title'),\n icon: 'fa-light fa-check',\n color: 'success',\n descriptions: {\n title: i18n('confirm.title'),\n tooltip: i18n('confirm.description'),\n permission: i18n('confirm.permission'),\n audit: i18n('confirm.audit')\n }\n },\n Design: {\n key: AXPSystemActionType.Design,\n title: i18n('design.title'),\n icon: 'fa-light fa-paintbrush',\n color: 'default',\n descriptions: {\n title: i18n('design.title'),\n tooltip: i18n('design.description'),\n permission: i18n('design.permission'),\n audit: i18n('design.audit')\n }\n },\n VersionHistory: {\n key: AXPSystemActionType.VersionHistory,\n title: i18n('version-history.title'),\n icon: 'fa-light fa-history',\n color: 'default',\n descriptions: {\n title: i18n('version-history.title'),\n tooltip: i18n('version-history.description'),\n permission: i18n('version-history.permission'),\n audit: i18n('version-history.audit')\n }\n },\n Compare: {\n key: AXPSystemActionType.Compare,\n title: i18n('compare.title'),\n icon: 'fa-light fa-code-compare',\n color: 'default',\n descriptions: {\n title: i18n('compare.title'),\n tooltip: i18n('compare.description'),\n permission: i18n('compare.permission'),\n audit: i18n('compare.audit')\n }\n },\n Comments: {\n key: AXPSystemActionType.Comments,\n title: i18n('comments.title'),\n icon: 'fa-light fa-comments',\n color: 'default',\n descriptions: {\n title: i18n('comments.title'),\n tooltip: i18n('comments.description'),\n permission: i18n('comments.permission'),\n audit: i18n('comments.audit')\n }\n },\n Sign: {\n key: AXPSystemActionType.Sign,\n title: i18n('sign.title'),\n icon: 'fa-light fa-signature',\n color: 'default',\n descriptions: {\n title: i18n('sign.title'),\n tooltip: i18n('sign.description'),\n permission: i18n('sign.permission'),\n audit: i18n('sign.audit')\n }\n },\n Setup: {\n key: AXPSystemActionType.Setup,\n title: i18n('setup.title'),\n icon: 'fa-light fa-cog',\n color: 'default',\n descriptions: {\n title: i18n('setup.title'),\n tooltip: i18n('setup.description'),\n permission: i18n('setup.permission'),\n audit: i18n('setup.audit')\n }\n },\n Send: {\n key: AXPSystemActionType.Send,\n title: i18n('send.title'),\n icon: 'fa-light fa-envelope',\n color: 'default',\n descriptions: {\n title: i18n('send.title'),\n tooltip: i18n('send.description'),\n permission: i18n('send.permission'),\n audit: i18n('send.audit')\n }\n },\n Report: {\n key: AXPSystemActionType.Report,\n title: i18n('report.title'),\n icon: 'fa-light fa-chart-line',\n color: 'default',\n descriptions: {\n title: i18n('report.title'),\n tooltip: i18n('report.description'),\n permission: i18n('report.permission'),\n audit: i18n('report.audit')\n }\n },\n Sent: {\n key: AXPSystemActionType.Sent,\n title: i18n('sent.title'),\n icon: 'fa-light fa-paper-plane',\n color: 'default',\n descriptions: {\n title: i18n('sent.title'),\n tooltip: i18n('sent.description'),\n permission: i18n('sent.permission'),\n audit: i18n('sent.audit')\n }\n },\n Review: {\n key: AXPSystemActionType.Review,\n title: i18n('review.title'),\n icon: 'fa-light fa-eye',\n color: 'default',\n descriptions: {\n title: i18n('review.title'),\n tooltip: i18n('review.description'),\n permission: i18n('review.permission'),\n audit: i18n('review.audit')\n }\n },\n Generate: {\n key: AXPSystemActionType.Generate,\n title: i18n('generate.title'),\n icon: 'fa-light fa-wand-magic-sparkles',\n color: 'primary',\n descriptions: {\n title: i18n('generate.title'),\n tooltip: i18n('generate.description'),\n permission: i18n('generate.permission'),\n audit: i18n('generate.audit')\n }\n },\n Refresh: {\n key: AXPSystemActionType.Refresh,\n title: i18n('refresh.title'),\n icon: 'fa-light fa-arrows-rotate',\n color: 'default',\n descriptions: {\n title: i18n('refresh.title'),\n tooltip: i18n('refresh.description'),\n permission: i18n('refresh.permission'),\n audit: i18n('refresh.audit')\n }\n },\n Reload: {\n key: AXPSystemActionType.Reload,\n title: i18n('reload.title'),\n icon: 'fa-light fa-arrows-rotate',\n color: 'default',\n descriptions: {\n title: i18n('reload.title'),\n tooltip: i18n('reload.description'),\n permission: i18n('reload.permission'),\n audit: i18n('reload.audit')\n }\n },\n Search: {\n key: AXPSystemActionType.Search,\n title: i18n('search.title'),\n icon: 'fa-light fa-magnifying-glass',\n color: 'default',\n descriptions: {\n title: i18n('search.title'),\n tooltip: i18n('search.description'),\n permission: i18n('search.permission'),\n audit: i18n('search.audit')\n }\n },\n Filter: {\n key: AXPSystemActionType.Filter,\n title: i18n('filter.title'),\n icon: 'fa-light fa-filter',\n color: 'default',\n descriptions: {\n title: i18n('filter.title'),\n tooltip: i18n('filter.description'),\n permission: i18n('filter.permission'),\n audit: i18n('filter.audit')\n }\n },\n Sort: {\n key: AXPSystemActionType.Sort,\n title: i18n('sort.title'),\n icon: 'fa-light fa-arrow-down-up-across-line',\n color: 'default',\n descriptions: {\n title: i18n('sort.title'),\n tooltip: i18n('sort.description'),\n permission: i18n('sort.permission'),\n audit: i18n('sort.audit')\n }\n },\n Start: {\n key: AXPSystemActionType.Start,\n title: i18n('start.title'),\n icon: 'fa-light fa-play',\n color: 'success',\n descriptions: {\n title: i18n('start.title'),\n tooltip: i18n('start.description'),\n permission: i18n('start.permission'),\n audit: i18n('start.audit')\n }\n },\n Stop: {\n key: AXPSystemActionType.Stop,\n title: i18n('stop.title'),\n icon: 'fa-light fa-stop',\n color: 'danger',\n critical: true,\n descriptions: {\n title: i18n('stop.title'),\n tooltip: i18n('stop.description'),\n permission: i18n('stop.permission'),\n audit: i18n('stop.audit')\n }\n },\n Pause: {\n key: AXPSystemActionType.Pause,\n title: i18n('pause.title'),\n icon: 'fa-light fa-pause',\n color: 'warning',\n descriptions: {\n title: i18n('pause.title'),\n tooltip: i18n('pause.description'),\n permission: i18n('pause.permission'),\n audit: i18n('pause.audit')\n }\n },\n Cancel: {\n key: AXPSystemActionType.Cancel,\n title: i18n('cancel.title'),\n icon: 'fa-light fa-xmark',\n critical: true,\n descriptions: {\n title: i18n('cancel.title'),\n tooltip: i18n('cancel.description'),\n permission: i18n('cancel.permission'),\n audit: i18n('cancel.audit')\n }\n },\n Close: {\n key: AXPSystemActionType.Close,\n title: i18n('close.title'),\n icon: 'fa-light fa-xmark',\n color: 'default',\n descriptions: {\n title: i18n('close.title'),\n tooltip: i18n('close.description'),\n permission: i18n('close.permission'),\n audit: i18n('close.audit')\n }\n },\n Complete: {\n key: AXPSystemActionType.Complete,\n title: i18n('complete.title'),\n icon: 'fa-light fa-check',\n color: 'success',\n descriptions: {\n title: i18n('complete.title'),\n tooltip: i18n('complete.description'),\n permission: i18n('complete.permission'),\n audit: i18n('complete.audit')\n }\n },\n Save: {\n key: AXPSystemActionType.Save,\n title: i18n('save.title'),\n icon: 'fa-light fa-floppy-disk',\n color: 'primary',\n descriptions: {\n title: i18n('save.title'),\n tooltip: i18n('save.description'),\n permission: i18n('save.permission'),\n audit: i18n('save.audit')\n }\n },\n SaveAs: {\n key: AXPSystemActionType.SaveAs,\n title: i18n('save-as.title'),\n icon: 'fa-light fa-floppy-disk',\n color: 'default',\n descriptions: {\n title: i18n('save-as.title'),\n tooltip: i18n('save-as.description'),\n permission: i18n('save-as.permission'),\n audit: i18n('save-as.audit')\n }\n },\n Sync: {\n key: AXPSystemActionType.Sync,\n title: i18n('sync.title'),\n icon: 'fa-light fa-arrows-rotate',\n color: 'default',\n descriptions: {\n title: i18n('sync.title'),\n tooltip: i18n('sync.description'),\n permission: i18n('sync.permission'),\n audit: i18n('sync.audit')\n }\n },\n Reset: {\n key: AXPSystemActionType.Reset,\n title: i18n('reset.title'),\n icon: 'fa-light fa-arrow-rotate-left',\n color: 'warning',\n critical: true,\n descriptions: {\n title: i18n('reset.title'),\n tooltip: i18n('reset.description'),\n permission: i18n('reset.permission'),\n audit: i18n('reset.audit')\n }\n },\n Clear: {\n key: AXPSystemActionType.Clear,\n title: i18n('clear.title'),\n icon: 'fa-light fa-eraser',\n color: 'default',\n descriptions: {\n title: i18n('clear.title'),\n tooltip: i18n('clear.description'),\n permission: i18n('clear.permission'),\n audit: i18n('clear.audit')\n }\n },\n Distribution: {\n key: AXPSystemActionType.Distribution,\n title: i18n('distribution.title'),\n icon: 'fa-light fa-share-nodes',\n color: 'default',\n descriptions: {\n title: i18n('distribution.title'),\n tooltip: i18n('distribution.description'),\n permission: i18n('distribution.permission'),\n audit: i18n('distribution.audit')\n }\n },\n});\nexport function getSystemActions(type) {\n return Object.values(AXPSystemActions).find(action => action.key === type);\n}\n/**\n * Resolves the visual appearance (color and icon) for entity actions\n * using the system actions from the core module.\n */\nexport function resolveActionLook(actionType) {\n // Try to get system action first\n const systemActionType = actionType;\n if (systemActionType) {\n const systemAction = getSystemActions(systemActionType);\n if (systemAction) {\n return {\n color: (systemAction.color || 'default'),\n icon: systemAction.icon || ''\n };\n }\n }\n // Fallback for unknown actions\n return {\n color: 'default',\n icon: ''\n };\n}\n/**\n * Resolves the title, description, icon and color for button actions\n * using the system actions from the core module.\n * @param actionType\n * @returns\n */\nexport function getActionButton(actionType) {\n const systemActionType = actionType;\n if (systemActionType) {\n const systemAction = getSystemActions(systemActionType);\n if (systemAction) {\n return {\n name: actionType,\n icon: systemAction.icon || '',\n color: systemAction.color || 'default',\n title: systemAction.title,\n description: systemAction.descriptions.title\n };\n }\n }\n // Fallback for unknown actions\n return {\n name: actionType,\n title: actionType,\n description: `Perform ${actionType} action`,\n icon: '',\n color: 'default'\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2FjdGlvbnMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyRkc7QUFFSCxNQUFNLENBQU4sSUFBWSxtQkEyRFg7QUEzREQsV0FBWSxtQkFBbUI7SUFDM0Isb0NBQWEsQ0FBQTtJQUNiLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLDBDQUFtQixDQUFBO0lBQ25CLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHdDQUFpQixDQUFBO0lBQ2pCLHNDQUFlLENBQUE7SUFDZix3Q0FBaUIsQ0FBQTtJQUNqQixvQ0FBYSxDQUFBO0lBQ2Isd0NBQWlCLENBQUE7SUFDakIsc0NBQWUsQ0FBQTtJQUNmLDhDQUF1QixDQUFBO0lBQ3ZCLDBDQUFtQixDQUFBO0lBQ25CLDBDQUFtQixDQUFBO0lBQ25CLDhDQUF1QixDQUFBO0lBQ3ZCLDBDQUFtQixDQUFBO0lBQ25CLDBDQUFtQixDQUFBO0lBQ25CLDhDQUF1QixDQUFBO0lBQ3ZCLHdDQUFpQixDQUFBO0lBQ2pCLDRDQUFxQixDQUFBO0lBQ3JCLG9DQUFhLENBQUE7SUFDYixvQ0FBYSxDQUFBO0lBQ2Isd0NBQWlCLENBQUE7SUFDakIsMENBQW1CLENBQUE7SUFDbkIsd0NBQWlCLENBQUE7SUFDakIsb0NBQWEsQ0FBQTtJQUNiLDBDQUFtQixDQUFBO0lBQ25CLHdDQUFpQixDQUFBO0lBQ2pCLHlEQUFrQyxDQUFBO0lBQ2xDLDBDQUFtQixDQUFBO0lBQ25CLDRDQUFx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QUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2YsT0FBTztnQkFDSCxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDN0IsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLElBQUksU0FBUztnQkFDdEMsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO2dCQUN6QixXQUFXLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLO2FBQy9DLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUVELCtCQUErQjtJQUMvQixPQUFPO1FBQ0gsSUFBSSxFQUFFLFVBQVU7UUFDaEIsS0FBSyxFQUFFLFVBQVU7UUFDakIsV0FBVyxFQUFFLFdBQVcsVUFBVSxTQUFTO1FBQzNDLElBQUksRUFBRSxFQUFFO1FBQ1IsS0FBSyxFQUFFLFNBQVM7S0FDbkIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFN0eWxlQ29sb3JUeXBlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcblxuLyoqXG4gKiBBZGRpdGlvbmFsIHN1Z2dlc3RlZCBnZW5lcmljIGFjdGlvbnMgZm9yIGZ1dHVyZSBjb25zaWRlcmF0aW9uOlxuICogXG4gKiBEYXRhICYgQ29udGVudCBBY3Rpb25zOlxuICogLSBTZWFyY2ggPSAnc2VhcmNoJyAtIFNlYXJjaCBmdW5jdGlvbmFsaXR5XG4gKiAtIEZpbHRlciA9ICdmaWx0ZXInIC0gQXBwbHkgZmlsdGVyc1xuICogLSBTb3J0ID0gJ3NvcnQnIC0gU29ydCBkYXRhXG4gKiAtIEdyb3VwID0gJ2dyb3VwJyAtIEdyb3VwIGRhdGFcbiAqIC0gRXhwYW5kID0gJ2V4cGFuZCcgLSBFeHBhbmQgZGV0YWlsc1xuICogLSBDb2xsYXBzZSA9ICdjb2xsYXBzZScgLSBDb2xsYXBzZSBkZXRhaWxzXG4gKiAtIFBpbiA9ICdwaW4nIC0gUGluIHRvIGZhdm9yaXRlc1xuICogLSBCb29rbWFyayA9ICdib29rbWFyaycgLSBCb29rbWFyayBpdGVtXG4gKiAtIEZhdm9yaXRlID0gJ2Zhdm9yaXRlJyAtIE1hcmsgYXMgZmF2b3JpdGVcbiAqIC0gU3RhciA9ICdzdGFyJyAtIFN0YXIgcmF0aW5nXG4gKiBcbiAqIFdvcmtmbG93IEFjdGlvbnM6XG4gKiAtIFN0YXJ0ID0gJ3N0YXJ0JyAtIFN0YXJ0IHByb2Nlc3Mvd29ya2Zsb3dcbiAqIC0gU3RvcCA9ICdzdG9wJyAtIFN0b3AgcHJvY2Vzc1xuICogLSBQYXVzZSA9ICdwYXVzZScgLSBQYXVzZSBwcm9jZXNzXG4gKiAtIFJlc3VtZSA9ICdyZXN1bWUnIC0gUmVzdW1lIHByb2Nlc3NcbiAqIC0gQ2FuY2VsID0gJ2NhbmNlbCcgLSBDYW5jZWwgb3BlcmF0aW9uXG4gKiAtIENvbXBsZXRlID0gJ2NvbXBsZXRlJyAtIE1hcmsgYXMgY29tcGxldGVcbiAqIC0gQ2xvc2UgPSAnY2xvc2UnIC0gQ2xvc2UgaXRlbVxuICogLSBSZW9wZW4gPSAncmVvcGVuJyAtIFJlb3BlbiBjbG9zZWQgaXRlbVxuICogLSBGb3J3YXJkID0gJ2ZvcndhcmQnIC0gRm9yd2FyZCB0byBuZXh0IHN0ZXBcbiAqIC0gQmFjayA9ICdiYWNrJyAtIEdvIGJhY2tcbiAqIFxuICogQ29tbXVuaWNhdGlvbiBBY3Rpb25zOlxuICogLSBSZXBseSA9ICdyZXBseScgLSBSZXBseSB0byBtZXNzYWdlXG4gKiAtIEZvcndhcmQgPSAnZm9yd2FyZCcgLSBGb3J3YXJkIG1lc3NhZ2VcbiAqIC0gTm90aWZ5ID0gJ25vdGlmeScgLSBTZW5kIG5vdGlmaWNhdGlvblxuICogLSBJbnZpdGUgPSAnaW52aXRlJyAtIEludml0ZSB1c2VyXG4gKiAtIEpvaW4gPSAnam9pbicgLSBKb2luIGdyb3VwL21lZXRpbmdcbiAqIC0gTGVhdmUgPSAnbGVhdmUnIC0gTGVhdmUgZ3JvdXAvbWVldGluZ1xuICogXG4gKiBTZWN1cml0eSBBY3Rpb25zOlxuICogLSBMb2dpbiA9ICdsb2dpbicgLSBVc2VyIGxvZ2luXG4gKiAtIExvZ291dCA9ICdsb2dvdXQnIC0gVXNlciBsb2dvdXRcbiAqIC0gQmxvY2sgPSAnYmxvY2snIC0gQmxvY2sgdXNlci9jb250ZW50XG4gKiAtIFVuYmxvY2sgPSAndW5ibG9jaycgLSBVbmJsb2NrIHVzZXIvY29udGVudFxuICogLSBCYW4gPSAnYmFuJyAtIEJhbiB1c2VyXG4gKiAtIFVuYmFuID0gJ3VuYmFuJyAtIFVuYmFuIHVzZXJcbiAqIC0gVmVyaWZ5ID0gJ3ZlcmlmeScgLSBWZXJpZnkgaWRlbnRpdHlcbiAqIC0gQXV0aGVudGljYXRlID0gJ2F1dGhlbnRpY2F0ZScgLSBBdXRoZW50aWNhdGVcbiAqIFxuICogRmlsZSAmIE1lZGlhIEFjdGlvbnM6XG4gKiAtIE9wZW4gPSAnb3BlbicgLSBPcGVuIGZpbGVcbiAqIC0gU2F2ZSA9ICdzYXZlJyAtIFNhdmUgZmlsZVxuICogLSBTYXZlQXMgPSAnc2F2ZS1hcycgLSBTYXZlIGFzIG5ldyBmaWxlXG4gKiAtIEF0dGFjaCA9ICdhdHRhY2gnIC0gQXR0YWNoIGZpbGVcbiAqIC0gRGV0YWNoID0gJ2RldGFjaCcgLSBEZXRhY2ggZmlsZVxuICogLSBDb21wcmVzcyA9ICdjb21wcmVzcycgLSBDb21wcmVzcyBmaWxlc1xuICogLSBFeHRyYWN0ID0gJ2V4dHJhY3QnIC0gRXh0cmFjdCBhcmNoaXZlXG4gKiAtIENvbnZlcnQgPSAnY29udmVydCcgLSBDb252ZXJ0IGZvcm1hdFxuICogLSBDcm9wID0gJ2Nyb3AnIC0gQ3JvcCBpbWFnZVxuICogLSBSZXNpemUgPSAncmVzaXplJyAtIFJlc2l6ZSBpbWFnZVxuICogXG4gKiBTeXN0ZW0gQWN0aW9uczpcbiAqIC0gU3luYyA9ICdzeW5jJyAtIFN5bmNocm9uaXplIGRhdGFcbiAqIC0gQmFja3VwID0gJ2JhY2t1cCcgLSBDcmVhdGUgYmFja3VwXG4gKiAtIFJlc3RvcmUgPSAncmVzdG9yZScgLSBSZXN0b3JlIGZyb20gYmFja3VwXG4gKiAtIFJlc2V0ID0gJ3Jlc2V0JyAtIFJlc2V0IHRvIGRlZmF1bHRzXG4gKiAtIENsZWFyID0gJ2NsZWFyJyAtIENsZWFyIGRhdGFcbiAqIC0gT3B0aW1pemUgPSAnb3B0aW1pemUnIC0gT3B0aW1pemUgcGVyZm9ybWFuY2VcbiAqIC0gVXBkYXRlID0gJ3VwZGF0ZScgLSBVcGRhdGUgc3lzdGVtXG4gKiAtIEluc3RhbGwgPSAnaW5zdGFsbCcgLSBJbnN0YWxsIGNvbXBvbmVudFxuICogLSBVbmluc3RhbGwgPSAndW5pbnN0YWxsJyAtIFVuaW5zdGFsbCBjb21wb25lbnRcbiAqIC0gRW5hYmxlID0gJ2VuYWJsZScgLSBFbmFibGUgZmVhdHVyZVxuICogLSBEaXNhYmxlID0gJ2Rpc2FibGUnIC0gRGlzYWJsZSBmZWF0dXJlXG4gKiBcbiAqIEFuYWx5dGljcyAmIE1vbml0b3Jpbmc6XG4gKiAtIE1vbml0b3IgPSAnbW9uaXRvcicgLSBNb25pdG9yIGFjdGl2aXR5XG4gKiAtIFRyYWNrID0gJ3RyYWNrJyAtIFRyYWNrIHByb2dyZXNzXG4gKiAtIEFuYWx5emUgPSAnYW5hbHl6ZScgLSBBbmFseXplIGRhdGFcbiAqIC0gRGVidWcgPSAnZGVidWcnIC0gRGVidWcgaXNzdWVcbiAqIC0gTG9nID0gJ2xvZycgLSBWaWV3IGxvZ3NcbiAqIC0gQWxlcnQgPSAnYWxlcnQnIC0gU2V0IGFsZXJ0XG4gKiAtIERhc2hib2FyZCA9ICdkYXNoYm9hcmQnIC0gVmlldyBkYXNoYm9hcmRcbiAqIC0gTWV0cmljcyA9ICdtZXRyaWNzJyAtIFZpZXcgbWV0cmljc1xuICogXG4gKiBDb2xsYWJvcmF0aW9uIEFjdGlvbnM6XG4gKiAtIENvbGxhYm9yYXRlID0gJ2NvbGxhYm9yYXRlJyAtIFN0YXJ0IGNvbGxhYm9yYXRpb25cbiAqIC0gU2hhcmUgPSAnc2hhcmUnIC0gU2hhcmUgY29udGVudFxuICogLSBDb21tZW50ID0gJ2NvbW1lbnQnIC0gQWRkIGNvbW1lbnRcbiAqIC0gTGlrZSA9ICdsaWtlJyAtIExpa2UgY29udGVudFxuICogLSBGb2xsb3cgPSAnZm9sbG93JyAtIEZvbGxvdyB1c2VyL2NvbnRlbnRcbiAqIC0gU3Vic2NyaWJlID0gJ3N1YnNjcmliZScgLSBTdWJzY3JpYmUgdG8gdXBkYXRlc1xuICogLSBVbnN1YnNjcmliZSA9ICd1bnN1YnNjcmliZScgLSBVbnN1YnNjcmliZVxuICogLSBSYXRlID0gJ3JhdGUnIC0gUmF0ZSBjb250ZW50XG4gKiAtIFJldmlldyA9ICdyZXZpZXcnIC0gUmV2aWV3IGNvbnRlbnRcbiAqIC0gUmVjb21tZW5kID0gJ3JlY29tbWVuZCcgLSBSZWNvbW1lbmQgY29udGVudFxuICovXG5cbmV4cG9ydCBlbnVtIEFYUFN5c3RlbUFjdGlvblR5cGUge1xuICAgIFZpZXcgPSAndmlldycsXG4gICAgQ3JlYXRlID0gJ2NyZWF0ZScsXG4gICAgVXBkYXRlID0gJ3VwZGF0ZScsXG4gICAgRGVsZXRlID0gJ2RlbGV0ZScsXG4gICAgQXBwcm92ZSA9ICdhcHByb3ZlJyxcbiAgICBSZWplY3QgPSAncmVqZWN0JyxcbiAgICBTdWJtaXQgPSAnc3VibWl0JyxcbiAgICBFeHBvcnQgPSAnZXhwb3J0JyxcbiAgICBJbXBvcnQgPSAnaW1wb3J0JyxcbiAgICBQcmludCA9ICdwcmludCcsXG4gICAgQXNzaWduID0gJ2Fzc2lnbicsXG4gICAgTG9jayA9ICdsb2NrJyxcbiAgICBVbmxvY2sgPSAndW5sb2NrJyxcbiAgICBTaGFyZSA9ICdzaGFyZScsXG4gICAgQ29uZmlndXJlID0gJ2NvbmZpZ3VyZScsXG4gICAgUmVvcmRlciA9ICdyZW9yZGVyJyxcbiAgICBQcmV2aWV3ID0gJ3ByZXZpZXcnLFxuICAgIER1cGxpY2F0ZSA9ICdkdXBsaWNhdGUnLFxuICAgIEFyY2hpdmUgPSAnYXJjaGl2ZScsXG4gICAgUHVibGlzaCA9ICdwdWJsaXNoJyxcbiAgICBVbnB1Ymxpc2ggPSAndW5wdWJsaXNoJyxcbiAgICBVcGxvYWQgPSAndXBsb2FkJyxcbiAgICBEb3dubG9hZCA9ICdkb3dubG9hZCcsXG4gICAgQ29weSA9ICdjb3B5JyxcbiAgICBNb3ZlID0gJ21vdmUnLFxuICAgIFJlbmFtZSA9ICdyZW5hbWUnLFxuICAgIFJlc3RvcmUgPSAncmVzdG9yZScsXG4gICAgTWFuYWdlID0gJ21hbmFnZScsXG4gICAgSW5mbyA9ICdpbmZvJyxcbiAgICBDb25maXJtID0gJ2NvbmZpcm0nLFxuICAgIERlc2lnbiA9ICdkZXNpZ24nLFxuICAgIFZlcnNpb25IaXN0b3J5ID0gJ3ZlcnNpb24taGlzdG9yeScsXG4gICAgQ29tcGFyZSA9ICdjb21wYXJlJyxcbiAgICBDb21tZW50cyA9ICdjb21tZW50cycsXG4gICAgU2lnbiA9ICdzaWduJyxcbiAgICBTZXR1cCA9ICdzZXR1cCcsXG4gICAgU2VuZCA9ICdzZW5kJyxcbiAgICBSZXBvcnQgPSAncmVwb3J0JyxcbiAgICBTZW50ID0gJ3NlbnQnLFxuICAgIFJldmlldyA9ICdyZXZpZXcnLFxuICAgIEdlbmVyYXRlID0gJ2dlbmVyYXRlJyxcbiAgICBSZWZyZXNoID0gJ3JlZnJlc2gnLFxuICAgIFJlbG9hZCA9ICdyZWxvYWQnLFxuICAgIFNlYXJjaCA9ICdzZWFyY2gnLFxuICAgIEZpbHRlciA9ICdmaWx0ZXInLFxuICAgIFNvcnQgPSAnc29ydCcsXG4gICAgU3RhcnQgPSAnc3RhcnQnLFxuICAgIFN0b3AgPSAnc3RvcCcsXG4gICAgUGF1c2UgPSAncGF1c2UnLFxuICAgIENhbmNlbCA9ICdjYW5jZWwnLFxuICAgIENsb3NlID0gJ2Nsb3NlJyxcbiAgICBDb21wbGV0ZSA9ICdjb21wbGV0ZScsXG4gICAgU2F2ZSA9ICdzYXZlJyxcbiAgICBTYXZlQXMgPSAnc2F2ZS1hcycsXG4gICAgU3luYyA9ICdzeW5jJyxcbiAgICBSZXNldCA9ICdyZXNldCcsXG4gICAgQ2xlYXIgPSAnY2xlYXInLFxuICAgIERpc3RyaWJ1dGlvbiA9ICdkaXN0cmlidXRpb24nLFxufVxuZXhwb3J0IGludGVyZmFjZSBBWFBTeXN0ZW1BY3Rpb24ge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICBjcml0aWNhbD86IGJvb2xlYW47XG4gICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICAgIHRvb2x0aXA6IHN0cmluZztcbiAgICAgICAgcGVybWlzc2lvbjogc3RyaW5nO1xuICAgICAgICBhdWRpdDogc3RyaW5nO1xuICAgIH07XG59XG5cbmNvbnN0IGkxOG4gPSAoa2V5OiBzdHJpbmcpID0+IGBAZ2VuZXJhbDphY3Rpb25zLiR7a2V5fWA7XG5cbmV4cG9ydCBjb25zdCBBWFBTeXN0ZW1BY3Rpb25zID0gT2JqZWN0LmZyZWV6ZSh7XG4gICAgVmlldzoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuVmlldyxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3ZpZXcudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWV5ZScsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3ZpZXcudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3ZpZXcuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3ZpZXcucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3ZpZXcuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBDcmVhdGU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNyZWF0ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2NyZWF0ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGx1cycsXG4gICAgICAgIGNvbG9yOiAncHJpbWFyeScsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2NyZWF0ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY3JlYXRlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjcmVhdGUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NyZWF0ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEVkaXQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlVwZGF0ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2VkaXQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBlbicsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2VkaXQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2VkaXQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2VkaXQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2VkaXQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBEZWxldGU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkRlbGV0ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2RlbGV0ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdHJhc2gnLFxuICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgIGNyaXRpY2FsOiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdkZWxldGUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2RlbGV0ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignZGVsZXRlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdkZWxldGUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBBcHByb3ZlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5BcHByb3ZlLFxuICAgICAgICB0aXRsZTogaTE4bignYXBwcm92ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2lyY2xlLWNoZWNrJyxcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgY3JpdGljYWw6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2FwcHJvdmUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2FwcHJvdmUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2FwcHJvdmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2FwcHJvdmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTdWJtaXQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlN1Ym1pdCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3N1Ym1pdC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGFwZXItcGxhbmUnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzdWJtaXQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3N1Ym1pdC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc3VibWl0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzdWJtaXQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZWplY3Q6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlamVjdCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3JlamVjdC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtYmFuJyxcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICBjcml0aWNhbDogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVqZWN0LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdyZWplY3QuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3JlamVjdC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVqZWN0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRXhwb3J0OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5FeHBvcnQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdleHBvcnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWRvd25sb2FkJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignZXhwb3J0LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdleHBvcnQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2V4cG9ydC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZXhwb3J0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgSW1wb3J0OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5JbXBvcnQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdpbXBvcnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXVwbG9hZCcsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2ltcG9ydC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignaW1wb3J0LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdpbXBvcnQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2ltcG9ydC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFByaW50OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5QcmludCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3ByaW50LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wcmludCcsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3ByaW50LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdwcmludC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncHJpbnQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3ByaW50LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRHVwbGljYXRlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5EdXBsaWNhdGUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdkdXBsaWNhdGUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNsb25lJyxcbiAgICAgICAgY29sb3I6ICd3YXJuaW5nJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignZHVwbGljYXRlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdkdXBsaWNhdGUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2R1cGxpY2F0ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZHVwbGljYXRlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQXJjaGl2ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQXJjaGl2ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2FyY2hpdmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWJveC1hcmNoaXZlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignYXJjaGl2ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignYXJjaGl2ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignYXJjaGl2ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignYXJjaGl2ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFJlc3RvcmU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlc3RvcmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdyZXN0b3JlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvdy1yb3RhdGUtbGVmdCcsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3Jlc3RvcmUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3Jlc3RvcmUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3Jlc3RvcmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3Jlc3RvcmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBBc3NpZ246IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkFzc2lnbixcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2Fzc2lnbi50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdXNlci1wbHVzJyxcbiAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignYXNzaWduLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdhc3NpZ24uZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2Fzc2lnbi5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignYXNzaWduLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgTG9jazoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuTG9jayxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2xvY2sudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWxvY2snLFxuICAgICAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdsb2NrLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdsb2NrLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdsb2NrLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdsb2NrLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgVW5sb2NrOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5VbmxvY2ssXG4gICAgICAgIHRpdGxlOiBpMThuKCd1bmxvY2sudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXVubG9jaycsXG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3VubG9jay50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigndW5sb2NrLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCd1bmxvY2sucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3VubG9jay5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNoYXJlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TaGFyZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3NoYXJlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1zaGFyZS1ub2RlcycsXG4gICAgICAgIGNvbG9yOiAnaW5mbycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3NoYXJlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdzaGFyZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc2hhcmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3NoYXJlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ29uZmlndXJlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Db25maWd1cmUsXG4gICAgICAgIHRpdGxlOiBpMThuKCdjb25maWd1cmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXNsaWRlcnMnLFxuICAgICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjb25maWd1cmUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2NvbmZpZ3VyZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignY29uZmlndXJlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjb25maWd1cmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZW9yZGVyOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5SZW9yZGVyLFxuICAgICAgICB0aXRsZTogaTE4bigncmVvcmRlci50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtYXJyb3ctZG93bi11cC1hY3Jvc3MtbGluZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3Jlb3JkZXIudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3Jlb3JkZXIuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3Jlb3JkZXIucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3Jlb3JkZXIuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBQcmV2aWV3OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5QcmV2aWV3LFxuICAgICAgICB0aXRsZTogaTE4bigncHJldmlldy50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtbWFnbmlmeWluZy1nbGFzcycsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3ByZXZpZXcudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3ByZXZpZXcuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3ByZXZpZXcucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3ByZXZpZXcuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBQdWJsaXNoOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5QdWJsaXNoLFxuICAgICAgICB0aXRsZTogaTE4bigncHVibGlzaC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZ2xvYmUnLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdwdWJsaXNoLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdwdWJsaXNoLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdwdWJsaXNoLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdwdWJsaXNoLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgVW5wdWJsaXNoOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5VbnB1Ymxpc2gsXG4gICAgICAgIHRpdGxlOiBpMThuKCd1bnB1Ymxpc2gudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWdsb2JlLXNsYXNoJyxcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCd1bnB1Ymxpc2gudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3VucHVibGlzaC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigndW5wdWJsaXNoLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCd1bnB1Ymxpc2guYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBVcGxvYWQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlVwbG9hZCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3VwbG9hZC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtdXBsb2FkJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigndXBsb2FkLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCd1cGxvYWQuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3VwbG9hZC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigndXBsb2FkLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRG93bmxvYWQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkRvd25sb2FkLFxuICAgICAgICB0aXRsZTogaTE4bignZG93bmxvYWQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWRvd25sb2FkJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignZG93bmxvYWQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2Rvd25sb2FkLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdkb3dubG9hZC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZG93bmxvYWQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBDb3B5OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Db3B5LFxuICAgICAgICB0aXRsZTogaTE4bignY29weS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY29weScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2NvcHkudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2NvcHkuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2NvcHkucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NvcHkuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBNb3ZlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Nb3ZlLFxuICAgICAgICB0aXRsZTogaTE4bignbW92ZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtYXJyb3ctcmlnaHQtYXJyb3ctbGVmdCcsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ21vdmUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ21vdmUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ21vdmUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ21vdmUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZW5hbWU6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlbmFtZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3JlbmFtZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGVuJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bigncmVuYW1lLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdyZW5hbWUuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3JlbmFtZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bigncmVuYW1lLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgTWFuYWdlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5NYW5hZ2UsXG4gICAgICAgIHRpdGxlOiBpMThuKCdtYW5hZ2UudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWdlYXInLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdtYW5hZ2UudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ21hbmFnZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignbWFuYWdlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdtYW5hZ2UuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBJbmZvOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5JbmZvLFxuICAgICAgICB0aXRsZTogaTE4bignaW5mby50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtaW5mbycsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2luZm8udGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2luZm8uZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2luZm8ucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2luZm8uYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBDb25maXJtOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Db25maXJtLFxuICAgICAgICB0aXRsZTogaTE4bignY29uZmlybS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY2hlY2snLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjb25maXJtLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjb25maXJtLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdjb25maXJtLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjb25maXJtLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRGVzaWduOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5EZXNpZ24sXG4gICAgICAgIHRpdGxlOiBpMThuKCdkZXNpZ24udGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBhaW50YnJ1c2gnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdkZXNpZ24udGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2Rlc2lnbi5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignZGVzaWduLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdkZXNpZ24uYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBWZXJzaW9uSGlzdG9yeToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuVmVyc2lvbkhpc3RvcnksXG4gICAgICAgIHRpdGxlOiBpMThuKCd2ZXJzaW9uLWhpc3RvcnkudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWhpc3RvcnknLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCd2ZXJzaW9uLWhpc3RvcnkudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3ZlcnNpb24taGlzdG9yeS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigndmVyc2lvbi1oaXN0b3J5LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCd2ZXJzaW9uLWhpc3RvcnkuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBDb21wYXJlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Db21wYXJlLFxuICAgICAgICB0aXRsZTogaTE4bignY29tcGFyZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY29kZS1jb21wYXJlJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignY29tcGFyZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY29tcGFyZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignY29tcGFyZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignY29tcGFyZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENvbW1lbnRzOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Db21tZW50cyxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbW1lbnRzLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jb21tZW50cycsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbW1lbnRzLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjb21tZW50cy5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignY29tbWVudHMucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NvbW1lbnRzLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU2lnbjoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU2lnbixcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3NpZ24udGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXNpZ25hdHVyZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3NpZ24udGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NpZ24uZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NpZ24ucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3NpZ24uYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTZXR1cDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU2V0dXAsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzZXR1cC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtY29nJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc2V0dXAudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3NldHVwLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzZXR1cC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc2V0dXAuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTZW5kOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TZW5kLFxuICAgICAgICB0aXRsZTogaTE4bignc2VuZC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZW52ZWxvcGUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzZW5kLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdzZW5kLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzZW5kLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzZW5kLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgUmVwb3J0OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5SZXBvcnQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdyZXBvcnQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNoYXJ0LWxpbmUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdyZXBvcnQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3JlcG9ydC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVwb3J0LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdyZXBvcnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTZW50OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TZW50LFxuICAgICAgICB0aXRsZTogaTE4bignc2VudC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGFwZXItcGxhbmUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzZW50LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdzZW50LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzZW50LnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzZW50LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgUmV2aWV3OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5SZXZpZXcsXG4gICAgICAgIHRpdGxlOiBpMThuKCdyZXZpZXcudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWV5ZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3Jldmlldy50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmV2aWV3LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdyZXZpZXcucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3Jldmlldy5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIEdlbmVyYXRlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5HZW5lcmF0ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2dlbmVyYXRlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS13YW5kLW1hZ2ljLXNwYXJrbGVzJyxcbiAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignZ2VuZXJhdGUudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2dlbmVyYXRlLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdnZW5lcmF0ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZ2VuZXJhdGUuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZWZyZXNoOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5SZWZyZXNoLFxuICAgICAgICB0aXRsZTogaTE4bigncmVmcmVzaC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtYXJyb3dzLXJvdGF0ZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3JlZnJlc2gudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3JlZnJlc2guZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3JlZnJlc2gucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3JlZnJlc2guYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZWxvYWQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlbG9hZCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3JlbG9hZC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtYXJyb3dzLXJvdGF0ZScsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3JlbG9hZC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncmVsb2FkLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdyZWxvYWQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3JlbG9hZC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNlYXJjaDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU2VhcmNoLFxuICAgICAgICB0aXRsZTogaTE4bignc2VhcmNoLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1tYWduaWZ5aW5nLWdsYXNzJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc2VhcmNoLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdzZWFyY2guZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3NlYXJjaC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc2VhcmNoLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRmlsdGVyOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5GaWx0ZXIsXG4gICAgICAgIHRpdGxlOiBpMThuKCdmaWx0ZXIudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZpbHRlcicsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2ZpbHRlci50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignZmlsdGVyLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdmaWx0ZXIucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2ZpbHRlci5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNvcnQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlNvcnQsXG4gICAgICAgIHRpdGxlOiBpMThuKCdzb3J0LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1hcnJvdy1kb3duLXVwLWFjcm9zcy1saW5lJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc29ydC50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc29ydC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc29ydC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc29ydC5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFN0YXJ0OiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TdGFydCxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3N0YXJ0LnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1wbGF5JyxcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc3RhcnQudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3N0YXJ0LmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzdGFydC5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc3RhcnQuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBTdG9wOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5TdG9wLFxuICAgICAgICB0aXRsZTogaTE4bignc3RvcC50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtc3RvcCcsXG4gICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgY3JpdGljYWw6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3N0b3AudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ3N0b3AuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3N0b3AucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3N0b3AuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBQYXVzZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuUGF1c2UsXG4gICAgICAgIHRpdGxlOiBpMThuKCdwYXVzZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGF1c2UnLFxuICAgICAgICBjb2xvcjogJ3dhcm5pbmcnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdwYXVzZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bigncGF1c2UuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ3BhdXNlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdwYXVzZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENhbmNlbDoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQ2FuY2VsLFxuICAgICAgICB0aXRsZTogaTE4bignY2FuY2VsLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS14bWFyaycsXG4gICAgICAgIGNyaXRpY2FsOiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjYW5jZWwudGl0bGUnKSxcbiAgICAgICAgICAgIHRvb2x0aXA6IGkxOG4oJ2NhbmNlbC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignY2FuY2VsLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjYW5jZWwuYXVkaXQnKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBDbG9zZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuQ2xvc2UsXG4gICAgICAgIHRpdGxlOiBpMThuKCdjbG9zZS50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEteG1hcmsnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdjbG9zZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignY2xvc2UuZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2Nsb3NlLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdjbG9zZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIENvbXBsZXRlOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5Db21wbGV0ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbXBsZXRlLnRpdGxlJyksXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jaGVjaycsXG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2NvbXBsZXRlLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjb21wbGV0ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignY29tcGxldGUucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NvbXBsZXRlLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU2F2ZToge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU2F2ZSxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3NhdmUudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZsb3BweS1kaXNrJyxcbiAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignc2F2ZS50aXRsZScpLFxuICAgICAgICAgICAgdG9vbHRpcDogaTE4bignc2F2ZS5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignc2F2ZS5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignc2F2ZS5hdWRpdCcpXG4gICAgICAgIH1cbiAgICB9LFxuICAgIFNhdmVBczoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU2F2ZUFzLFxuICAgICAgICB0aXRsZTogaTE4bignc2F2ZS1hcy50aXRsZScpLFxuICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZmxvcHB5LWRpc2snLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzYXZlLWFzLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdzYXZlLWFzLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzYXZlLWFzLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzYXZlLWFzLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgU3luYzoge1xuICAgICAgICBrZXk6IEFYUFN5c3RlbUFjdGlvblR5cGUuU3luYyxcbiAgICAgICAgdGl0bGU6IGkxOG4oJ3N5bmMudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWFycm93cy1yb3RhdGUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICBkZXNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgIHRpdGxlOiBpMThuKCdzeW5jLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdzeW5jLmRlc2NyaXB0aW9uJyksXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiBpMThuKCdzeW5jLnBlcm1pc3Npb24nKSxcbiAgICAgICAgICAgIGF1ZGl0OiBpMThuKCdzeW5jLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgUmVzZXQ6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLlJlc2V0LFxuICAgICAgICB0aXRsZTogaTE4bigncmVzZXQudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWFycm93LXJvdGF0ZS1sZWZ0JyxcbiAgICAgICAgY29sb3I6ICd3YXJuaW5nJyxcbiAgICAgICAgY3JpdGljYWw6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ3Jlc2V0LnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdyZXNldC5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bigncmVzZXQucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ3Jlc2V0LmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgQ2xlYXI6IHtcbiAgICAgICAga2V5OiBBWFBTeXN0ZW1BY3Rpb25UeXBlLkNsZWFyLFxuICAgICAgICB0aXRsZTogaTE4bignY2xlYXIudGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWVyYXNlcicsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uczoge1xuICAgICAgICAgICAgdGl0bGU6IGkxOG4oJ2NsZWFyLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdjbGVhci5kZXNjcmlwdGlvbicpLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogaTE4bignY2xlYXIucGVybWlzc2lvbicpLFxuICAgICAgICAgICAgYXVkaXQ6IGkxOG4oJ2NsZWFyLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG4gICAgRGlzdHJpYnV0aW9uOiB7XG4gICAgICAgIGtleTogQVhQU3lzdGVtQWN0aW9uVHlwZS5EaXN0cmlidXRpb24sXG4gICAgICAgIHRpdGxlOiBpMThuKCdkaXN0cmlidXRpb24udGl0bGUnKSxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXNoYXJlLW5vZGVzJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgICAgZGVzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICB0aXRsZTogaTE4bignZGlzdHJpYnV0aW9uLnRpdGxlJyksXG4gICAgICAgICAgICB0b29sdGlwOiBpMThuKCdkaXN0cmlidXRpb24uZGVzY3JpcHRpb24nKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IGkxOG4oJ2Rpc3RyaWJ1dGlvbi5wZXJtaXNzaW9uJyksXG4gICAgICAgICAgICBhdWRpdDogaTE4bignZGlzdHJpYnV0aW9uLmF1ZGl0JylcbiAgICAgICAgfVxuICAgIH0sXG5cbn0gYXMgY29uc3Qgc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIEFYUFN5c3RlbUFjdGlvbj4pO1xuXG5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN5c3RlbUFjdGlvbnModHlwZTogQVhQU3lzdGVtQWN0aW9uVHlwZSk6IEFYUFN5c3RlbUFjdGlvbiB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoQVhQU3lzdGVtQWN0aW9ucykuZmluZChhY3Rpb24gPT4gYWN0aW9uLmtleSA9PT0gdHlwZSkgYXMgQVhQU3lzdGVtQWN0aW9uO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSB2aXN1YWwgYXBwZWFyYW5jZSAoY29sb3IgYW5kIGljb24pIGZvciBlbnRpdHkgYWN0aW9uc1xuICogdXNpbmcgdGhlIHN5c3RlbSBhY3Rpb25zIGZyb20gdGhlIGNvcmUgbW9kdWxlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFjdGlvbkxvb2soYWN0aW9uVHlwZTogc3RyaW5nKTogeyBjb2xvcjogQVhTdHlsZUNvbG9yVHlwZTsgaWNvbjogc3RyaW5nIH0ge1xuICAgIC8vIFRyeSB0byBnZXQgc3lzdGVtIGFjdGlvbiBmaXJzdFxuICAgIGNvbnN0IHN5c3RlbUFjdGlvblR5cGUgPSBhY3Rpb25UeXBlIGFzIEFYUFN5c3RlbUFjdGlvblR5cGU7XG4gICAgaWYgKHN5c3RlbUFjdGlvblR5cGUpIHtcbiAgICAgICAgY29uc3Qgc3lzdGVtQWN0aW9uID0gZ2V0U3lzdGVtQWN0aW9ucyhzeXN0ZW1BY3Rpb25UeXBlKTtcbiAgICAgICAgaWYgKHN5c3RlbUFjdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogKHN5c3RlbUFjdGlvbi5jb2xvciB8fCAnZGVmYXVsdCcpIGFzIEFYU3R5bGVDb2xvclR5cGUsXG4gICAgICAgICAgICAgICAgaWNvbjogc3lzdGVtQWN0aW9uLmljb24gfHwgJydcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBGYWxsYmFjayBmb3IgdW5rbm93biBhY3Rpb25zXG4gICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyBhcyBBWFN0eWxlQ29sb3JUeXBlLFxuICAgICAgICBpY29uOiAnJ1xuICAgIH07XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHRpdGxlLCBkZXNjcmlwdGlvbiwgaWNvbiBhbmQgY29sb3IgZm9yIGJ1dHRvbiBhY3Rpb25zXG4gKiB1c2luZyB0aGUgc3lzdGVtIGFjdGlvbnMgZnJvbSB0aGUgY29yZSBtb2R1bGUuXG4gKiBAcGFyYW0gYWN0aW9uVHlwZSBcbiAqIEByZXR1cm5zIFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWN0aW9uQnV0dG9uKGFjdGlvblR5cGU6IHN0cmluZyk6IHsgbmFtZTogc3RyaW5nOyB0aXRsZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nLCBpY29uOiBzdHJpbmcsIGNvbG9yOiBzdHJpbmcgfSB7XG4gICAgY29uc3Qgc3lzdGVtQWN0aW9uVHlwZSA9IGFjdGlvblR5cGUgYXMgQVhQU3lzdGVtQWN0aW9uVHlwZTtcbiAgICBpZiAoc3lzdGVtQWN0aW9uVHlwZSkge1xuICAgICAgICBjb25zdCBzeXN0ZW1BY3Rpb24gPSBnZXRTeXN0ZW1BY3Rpb25zKHN5c3RlbUFjdGlvblR5cGUpO1xuICAgICAgICBpZiAoc3lzdGVtQWN0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGFjdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgaWNvbjogc3lzdGVtQWN0aW9uLmljb24gfHwgJycsXG4gICAgICAgICAgICAgICAgY29sb3I6IHN5c3RlbUFjdGlvbi5jb2xvciB8fCAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHN5c3RlbUFjdGlvbi50aXRsZSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogc3lzdGVtQWN0aW9uLmRlc2NyaXB0aW9ucy50aXRsZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZhbGxiYWNrIGZvciB1bmtub3duIGFjdGlvbnNcbiAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBhY3Rpb25UeXBlLFxuICAgICAgICB0aXRsZTogYWN0aW9uVHlwZSxcbiAgICAgICAgZGVzY3JpcHRpb246IGBQZXJmb3JtICR7YWN0aW9uVHlwZX0gYWN0aW9uYCxcbiAgICAgICAgaWNvbjogJycsXG4gICAgICAgIGNvbG9yOiAnZGVmYXVsdCdcbiAgICB9O1xufVxuIl19","export function getNestedKeys(obj, prefix = '') {\n let keys = [];\n for (const key in obj) {\n if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {\n keys = [...keys, ...getNestedKeys(obj[key], prefix + key + '.')];\n }\n else {\n keys.push(prefix + key);\n }\n }\n return keys;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2NvcmUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxVQUFVLGFBQWEsQ0FBQyxHQUFRLEVBQUUsU0FBaUIsRUFBRTtJQUN6RCxJQUFJLElBQUksR0FBYSxFQUFFLENBQUM7SUFDeEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xGLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUFBhcnRpYWxOZXN0ZWQ8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdPzogVFtLXSBleHRlbmRzIG9iamVjdCA/IEFYUFBhcnRpYWxOZXN0ZWQ8VFtLXT4gOiBUW0tdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE5lc3RlZEtleXMob2JqOiBhbnksIHByZWZpeDogc3RyaW5nID0gJycpOiBzdHJpbmdbXSB7XG4gIGxldCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0JyAmJiBvYmpba2V5XSAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcbiAgICAgIGtleXMgPSBbLi4ua2V5cywgLi4uZ2V0TmVzdGVkS2V5cyhvYmpba2V5XSwgcHJlZml4ICsga2V5ICsgJy4nKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleXMucHVzaChwcmVmaXggKyBrZXkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4ga2V5cztcbn1cblxuZXhwb3J0IHR5cGUgQVhQRXhwcmVzc2lvbiA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgQVhQTWV0YURhdGEgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG5leHBvcnQgdHlwZSBBWFBPcHRpb25zRGF0YTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IFQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQVmFsdWVVbml0IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICByYXRpbzogbnVtYmVyO1xuICBvcmRlcjogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFZhbHVlVW5pdHMge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGl0ZW1zOiBBWFBWYWx1ZVVuaXRbXTtcbiAgZGVmYXVsdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVJlZmVyZW5jZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBVc2VyUmVmZXJlbmNlIHtcbiAgaWQ6IHN0cmluZztcbiAgdHlwZT86ICd1c2VyJztcbiAgZnVsbE5hbWU/OiBzdHJpbmc7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFwcGxpY2F0aW9uVXNlclJlZmVyZW5jZSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQVhQQ29udGVudFR5cGUgPSAndGV4dCcgfCAnaW1hZ2UnIHwgJ2ZpbGUnIHwgJ3ZpZGVvJyB8ICdsaW5rJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb250ZW50IHtcbiAgY29udGVudDogc3RyaW5nO1xuICBjb250ZW50VHlwZTogQVhQQ29udGVudFR5cGU7XG59XG4iXX0=","import { getSystemActions } from './actions.types';\nexport function applySystemActionDefault(action, type) {\n const systemAction = getSystemActions(type);\n return {\n name: systemAction.key,\n title: systemAction.title,\n icon: systemAction.icon,\n color: systemAction.color,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90eXBlcy9pbnRlcmFjdGl2ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQXVCLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFtRnhFLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxNQUF5QixFQUFFLElBQXlCO0lBQzNGLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLE9BQU87UUFDTCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUc7UUFDdEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1FBQ3pCLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtRQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7S0FDMUIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRXh0cmFzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYUFN5c3RlbUFjdGlvblR5cGUsIGdldFN5c3RlbUFjdGlvbnMgfSBmcm9tICcuL2FjdGlvbnMudHlwZXMnO1xuaW1wb3J0IHsgQVhQTWV0YURhdGEgfSBmcm9tICcuL2NvcmUudHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBWFBBY3Rpb25NZW51SXRlbSA9IHtcbiAgbmFtZT86IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGJyZWFrPzogYm9vbGVhbjtcbiAgaXRlbXM/OiBBWFBBY3Rpb25NZW51SXRlbVtdO1xuICBjb21tYW5kPzogQVhQRXhlY3V0ZUNvbW1hbmQ7XG4gIGRpc2FibGVkPzogYm9vbGVhbiB8IHN0cmluZztcbiAgdmlzaWJsZT86IGJvb2xlYW4gfCBzdHJpbmc7XG4gIHBvbGljeT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFYUEJhY2tCdXR0b24gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBWFBCcmVhZGNydW1iSXRlbSA9IHtcbiAgbmFtZT86IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY29tbWFuZD86IEFYUEV4ZWN1dGVDb21tYW5kO1xufTtcblxuZXhwb3J0IHR5cGUgQVhQQmFkZ2UgPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjb2xvcj86ICdwcmltYXJ5JyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb21tYW5kTWVzc2FnZSB7XG4gIHR5cGU/OiAnaW5mbycgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZXJyb3InO1xuICBjb2RlPzogc3RyaW5nO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGRldGFpbHM/OiB1bmtub3duO1xufVxuXG5leHBvcnQgdHlwZSBBWFBFeGVjdXRlQ29tbWFuZCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBvcHRpb25zPzogQVhQTWV0YURhdGE7XG4gIG1ldGFkYXRhPzogQVhQTWV0YURhdGE7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PFQgPSBhbnk+IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZGF0YT86IFQ7XG4gIG1lc3NhZ2U/OiBBWFBDb21tYW5kTWVzc2FnZTtcbiAgbWV0YWRhdGE/OiBBWFBNZXRhRGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBRdWVyeUZldGNoUmVzdWx0PFQgPSBhbnk+IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZGF0YT86IHtcbiAgICBpdGVtcz86IFRbXTtcbiAgICB0b3RhbD86IG51bWJlcjtcbiAgfTtcbiAgbWVzc2FnZT86IHtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgZGV0YWlscz86IGFueTtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQVhQTmF2aWdhdGVBY3Rpb25PcHRpb25zID0ge1xuICByb3V0ZXI6IHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgZXh0cmFzPzogTmF2aWdhdGlvbkV4dHJhcyAmIHsgdGFyZ2V0Pzogc3RyaW5nIH07XG4gIH07XG4gIG1vZGFsOiB7XG4gICAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBvcHRpb25zPzogYW55O1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBOYXZpZ2F0ZUFjdGlvbkNvbW1hbmQ8VCBleHRlbmRzIGtleW9mIEFYUE5hdmlnYXRlQWN0aW9uT3B0aW9ucz4ge1xuICB0eXBlOiBUO1xuICBvcHRpb25zOiBBWFBOYXZpZ2F0ZUFjdGlvbk9wdGlvbnNbVF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVN5c3RlbUFjdGlvbkRlZmF1bHQoYWN0aW9uOiBBWFBBY3Rpb25NZW51SXRlbSwgdHlwZTogQVhQU3lzdGVtQWN0aW9uVHlwZSk6IEFYUEFjdGlvbk1lbnVJdGVtIHtcbiAgY29uc3Qgc3lzdGVtQWN0aW9uID0gZ2V0U3lzdGVtQWN0aW9ucyh0eXBlKTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBzeXN0ZW1BY3Rpb24ua2V5LFxuICAgIHRpdGxlOiBzeXN0ZW1BY3Rpb24udGl0bGUsXG4gICAgaWNvbjogc3lzdGVtQWN0aW9uLmljb24sXG4gICAgY29sb3I6IHN5c3RlbUFjdGlvbi5jb2xvcixcbiAgfTtcbn1cbiJdfQ==","export class AXPImageUrlLogoConfig {\n constructor(url, width, height) {\n this.url = url;\n this.width = width;\n this.height = height;\n }\n}\nexport class AXPComponentLogoConfig {\n constructor(component) {\n this.component = component;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nby50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3R5cGVzL2xvZ28udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFtQixHQUFXLEVBQVMsS0FBYyxFQUFTLE1BQWU7UUFBMUQsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVM7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQUcsQ0FBQztDQUNsRjtBQUNELE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFBbUIsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUFHLENBQUM7Q0FDNUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQTG9nb0NvbmZpZyB7fVxuXG5leHBvcnQgY2xhc3MgQVhQSW1hZ2VVcmxMb2dvQ29uZmlnIGltcGxlbWVudHMgQVhQTG9nb0NvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1cmw6IHN0cmluZywgcHVibGljIHdpZHRoPzogbnVtYmVyLCBwdWJsaWMgaGVpZ2h0PzogbnVtYmVyKSB7fVxufVxuZXhwb3J0IGNsYXNzIEFYUENvbXBvbmVudExvZ29Db25maWcgaW1wbGVtZW50cyBBWFBMb2dvQ29uZmlnIHtcbiAgaGVpZ2h0PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICB3aWR0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBvbmVudDogVHlwZTxhbnk+KSB7fVxufVxuIl19","export var AXPPlatformScope;\n(function (AXPPlatformScope) {\n AXPPlatformScope[\"Environment\"] = \"C\";\n AXPPlatformScope[\"Global\"] = \"G\";\n AXPPlatformScope[\"Platform\"] = \"P\";\n AXPPlatformScope[\"Tenant\"] = \"T\";\n AXPPlatformScope[\"User\"] = \"U\";\n})(AXPPlatformScope || (AXPPlatformScope = {}));\n;\nexport function resolvePlatformScopeKey(name) {\n const scopeMap = {\n environment: AXPPlatformScope.Environment,\n global: AXPPlatformScope.Global,\n platform: AXPPlatformScope.Platform,\n tenant: AXPPlatformScope.Tenant,\n user: AXPPlatformScope.User,\n };\n return scopeMap[name.toLowerCase()] ?? AXPPlatformScope.User;\n}\nexport function resolvePlatformScopeName(scope) {\n const scopeMap = {\n C: 'environment',\n G: 'global',\n P: 'platform',\n T: 'tenant',\n U: 'user',\n };\n return scopeMap[scope] ?? 'user';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi90eXBlcy9zY29wZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQU4sSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQ3hCLHFDQUFpQixDQUFBO0lBQ2pCLGdDQUFZLENBQUE7SUFDWixrQ0FBYyxDQUFBO0lBQ2QsZ0NBQVksQ0FBQTtJQUNaLDhCQUFVLENBQUE7QUFDZCxDQUFDLEVBTlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU0zQjtBQUFBLENBQUM7QUFFRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsSUFBWTtJQUNoRCxNQUFNLFFBQVEsR0FBd0M7UUFDbEQsV0FBVyxFQUFFLGdCQUFnQixDQUFDLFdBQVc7UUFDekMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07UUFDL0IsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7UUFDbkMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE1BQU07UUFDL0IsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7S0FDOUIsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQztBQUNqRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQTBCO0lBQy9ELE1BQU0sUUFBUSxHQUF3QztRQUNsRCxDQUFDLEVBQUUsYUFBYTtRQUNoQixDQUFDLEVBQUUsUUFBUTtRQUNYLENBQUMsRUFBRSxVQUFVO1FBQ2IsQ0FBQyxFQUFFLFFBQVE7UUFDWCxDQUFDLEVBQUUsTUFBTTtLQUNaLENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEFYUFBsYXRmb3JtU2NvcGVLZXkgPSAnQycgfCAnRycgfCAnUCcgfCAnVCcgfCAnVSc7XG5leHBvcnQgZW51bSBBWFBQbGF0Zm9ybVNjb3BlIHtcbiAgICBFbnZpcm9ubWVudCA9ICdDJyxcbiAgICBHbG9iYWwgPSAnRycsXG4gICAgUGxhdGZvcm0gPSAnUCcsXG4gICAgVGVuYW50ID0gJ1QnLFxuICAgIFVzZXIgPSAnVSdcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlUGxhdGZvcm1TY29wZUtleShuYW1lOiBzdHJpbmcpOiBBWFBQbGF0Zm9ybVNjb3BlS2V5IHtcbiAgICBjb25zdCBzY29wZU1hcDogUmVjb3JkPHN0cmluZywgQVhQUGxhdGZvcm1TY29wZUtleT4gPSB7XG4gICAgICAgIGVudmlyb25tZW50OiBBWFBQbGF0Zm9ybVNjb3BlLkVudmlyb25tZW50LFxuICAgICAgICBnbG9iYWw6IEFYUFBsYXRmb3JtU2NvcGUuR2xvYmFsLFxuICAgICAgICBwbGF0Zm9ybTogQVhQUGxhdGZvcm1TY29wZS5QbGF0Zm9ybSxcbiAgICAgICAgdGVuYW50OiBBWFBQbGF0Zm9ybVNjb3BlLlRlbmFudCxcbiAgICAgICAgdXNlcjogQVhQUGxhdGZvcm1TY29wZS5Vc2VyLFxuICAgIH07XG4gICAgcmV0dXJuIHNjb3BlTWFwW25hbWUudG9Mb3dlckNhc2UoKV0gPz8gQVhQUGxhdGZvcm1TY29wZS5Vc2VyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBsYXRmb3JtU2NvcGVOYW1lKHNjb3BlOiBBWFBQbGF0Zm9ybVNjb3BlS2V5KTogc3RyaW5nIHtcbiAgICBjb25zdCBzY29wZU1hcDogUmVjb3JkPEFYUFBsYXRmb3JtU2NvcGVLZXksIHN0cmluZz4gPSB7XG4gICAgICAgIEM6ICdlbnZpcm9ubWVudCcsXG4gICAgICAgIEc6ICdnbG9iYWwnLFxuICAgICAgICBQOiAncGxhdGZvcm0nLFxuICAgICAgICBUOiAndGVuYW50JyxcbiAgICAgICAgVTogJ3VzZXInLFxuICAgIH07XG4gICAgcmV0dXJuIHNjb3BlTWFwW3Njb3BlXSA/PyAndXNlcic7XG59Il19","export var AXPExportTemplateToken;\n(function (AXPExportTemplateToken) {\n AXPExportTemplateToken[\"Date\"] = \"{date}\";\n AXPExportTemplateToken[\"Time\"] = \"{time}\";\n AXPExportTemplateToken[\"User\"] = \"{user}\";\n AXPExportTemplateToken[\"ReportTitle\"] = \"{title}\";\n AXPExportTemplateToken[\"UUID\"] = \"{uuid}\";\n})(AXPExportTemplateToken || (AXPExportTemplateToken = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdHlwZXMvZXhwb3J0LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFQSxNQUFNLENBQU4sSUFBWSxzQkFNWDtBQU5ELFdBQVksc0JBQXNCO0lBQzlCLHlDQUFlLENBQUE7SUFDZix5Q0FBZSxDQUFBO0lBQ2YseUNBQWUsQ0FBQTtJQUNmLGlEQUF1QixDQUFBO0lBQ3ZCLHlDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQU5XLHNCQUFzQixLQUF0QixzQkFBc0IsUUFNakMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0T3B0aW9ucyB7XG4gICAgZmlsZU5hbWVUZW1wbGF0ZT86IHN0cmluZzsgLy8g2YXYq9in2YQ6IFwiUmVwb3J0X3tkYXRlfV97dXNlcn1cIlxuXG4gICAgcGRmPzogQVhQRXhwb3J0UGRmT3B0aW9ucztcbiAgICBleGNlbD86IEFYUEV4cG9ydEV4Y2VsT3B0aW9ucztcbiAgICBjc3Y/OiBBWFBFeHBvcnRDc3ZPcHRpb25zO1xuICAgIHByaW50PzogQVhQRXhwb3J0UHJpbnRPcHRpb25zO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0UGRmT3B0aW9ucyB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcblxuICAgIHBhZ2VTaXplPzogJ0E0JyB8ICdBMycgfCAnTGV0dGVyJyB8ICdMZWdhbCc7XG4gICAgb3JpZW50YXRpb24/OiAncG9ydHJhaXQnIHwgJ2xhbmRzY2FwZSc7XG5cbiAgICBtYXJnaW4/OiBudW1iZXIgfCB7XG4gICAgICAgIHRvcDogbnVtYmVyO1xuICAgICAgICBib3R0b206IG51bWJlcjtcbiAgICAgICAgbGVmdDogbnVtYmVyO1xuICAgICAgICByaWdodDogbnVtYmVyO1xuICAgIH07XG5cbiAgICBmb250Pzogc3RyaW5nO1xuICAgIGZvbnRTaXplPzogbnVtYmVyO1xuXG4gICAgaGVhZGVyRW5hYmxlZD86IGJvb2xlYW47XG4gICAgZm9vdGVyRW5hYmxlZD86IGJvb2xlYW47XG4gICAgc2hvd1BhZ2VOdW1iZXJzPzogYm9vbGVhbjtcblxuICAgIHdhdGVybWFya1RleHQ/OiBzdHJpbmc7XG4gICAgd2F0ZXJtYXJrT3BhY2l0eT86IG51bWJlcjtcblxuICAgIGNvbXByZXNzaW9uPzogYm9vbGVhbjtcbiAgICBlbWJlZEltYWdlcz86IGJvb2xlYW47XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFeHBvcnRFeGNlbE9wdGlvbnMge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBzaGVldE5hbWU/OiBzdHJpbmc7XG4gICAgaW5jbHVkZUZpbHRlcnM/OiBib29sZWFuO1xuICAgIGZyZWV6ZUhlYWRlcj86IGJvb2xlYW47XG4gICAgYXV0b0ZpdENvbHVtbnM/OiBib29sZWFuO1xuXG4gICAgc3R5bGU/OiB7XG4gICAgICAgIGhlYWRlckNvbG9yPzogc3RyaW5nO1xuICAgICAgICBmb250Pzogc3RyaW5nO1xuICAgICAgICBmb250U2l6ZT86IG51bWJlcjtcbiAgICAgICAgbnVtYmVyRm9ybWF0PzogJ2F1dG8nIHwgJ2N1cnJlbmN5JyB8ICdwZXJjZW50JyB8ICdkZWNpbWFsJztcbiAgICB9O1xuXG4gICAgc3VtbWFyeVJvd0VuYWJsZWQ/OiBib29sZWFuO1xuICAgIGV4cG9ydEhpZGRlbkNvbHVtbnM/OiBib29sZWFuO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXhwb3J0Q3N2T3B0aW9ucyB7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcblxuICAgIGRlbGltaXRlcj86ICcsJyB8ICc7JyB8ICdcXHQnO1xuICAgIGluY2x1ZGVIZWFkZXJzPzogYm9vbGVhbjtcbiAgICBxdW90ZVZhbHVlcz86IGJvb2xlYW47XG4gICAgZW5jb2Rpbmc/OiAndXRmLTgnIHwgJ3V0Zi0xNicgfCAnaXNvLTg4NTktMSc7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBBWFBFeHBvcnRQcmludE9wdGlvbnMge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBpbmNsdWRlSGVhZGVyPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlRm9vdGVyPzogYm9vbGVhbjtcbiAgICBzaG93UGFnZUJyZWFrcz86IGJvb2xlYW47XG4gICAgY3VzdG9tQ3NzVXJsPzogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBlbnVtIEFYUEV4cG9ydFRlbXBsYXRlVG9rZW4ge1xuICAgIERhdGUgPSAne2RhdGV9JyxcbiAgICBUaW1lID0gJ3t0aW1lfScsXG4gICAgVXNlciA9ICd7dXNlcn0nLFxuICAgIFJlcG9ydFRpdGxlID0gJ3t0aXRsZX0nLFxuICAgIFVVSUQgPSAne3V1aWR9Jyxcbn1cbiJdfQ==","import { AXCalendarService } from '@acorex/core/date-time';\nimport { inject, Pipe, signal } from '@angular/core';\nimport { interval } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class AXPCountdownPipe {\n constructor() {\n this.calendarService = inject(AXCalendarService);\n this.countdownSignal = signal(this.setupTimer(), ...(ngDevMode ? [{ debugName: \"countdownSignal\" }] : []));\n this.targetDate = 0;\n this.prevValue = 0;\n }\n transform(value) {\n if (this.prevValue != value) {\n this.prevValue = value;\n const expireTime = this.calendarService.calendar.add(new Date(), 'second', value).date;\n this.updateTargetDate(expireTime.toISOString());\n }\n return this.countdownSignal();\n }\n setupTimer() {\n return interval(1000).pipe(startWith(0), map(() => {\n const diff = this.targetDate - new Date().getTime();\n if (diff < 0) {\n return \"Time's up!\";\n }\n const times = [86400, 3600, 60, 1].map((seconds) => Math.floor((diff / 1000 / seconds) % (seconds === 1 ? 60 : 24)));\n const labels = ['d', 'h', 'm', 's'];\n return times\n .map((t, i) => (t > 0 || i === 3 ? `${t}${labels[i]}` : ''))\n .join(' ')\n .trim();\n }));\n }\n updateTargetDate(value) {\n this.targetDate = new Date(value).getTime();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCountdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCountdownPipe, isStandalone: true, name: \"countdown\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPCountdownPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'countdown',\n pure: false,\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRkb3duLXRpbWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdXRpbHMvY291bnRkb3duLXRpbWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU9oRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBTVUsb0JBQWUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU1QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLDJEQUFDLENBQUM7UUFFNUMsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQUcsQ0FBQyxDQUFDO0tBaUN2QjtJQS9CQyxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxVQUFVO1FBQ2hCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDeEIsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUNaLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxZQUFZLENBQUM7WUFDdEIsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JILE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDcEMsT0FBTyxLQUFLO2lCQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzNELElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQ1QsSUFBSSxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QyxDQUFDOytHQXRDVSxnQkFBZ0I7NkdBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFMNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztvQkFDakIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IGluamVjdCwgUGlwZSwgUGlwZVRyYW5zZm9ybSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbnRlcnZhbCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NvdW50ZG93bicsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb3VudGRvd25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIGNvdW50ZG93blNpZ25hbCA9IHNpZ25hbCh0aGlzLnNldHVwVGltZXIoKSk7XG5cbiAgcHJpdmF0ZSB0YXJnZXREYXRlOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIHByZXZWYWx1ZSA9IDA7XG5cbiAgdHJhbnNmb3JtKHZhbHVlOiBudW1iZXIpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLnByZXZWYWx1ZSAhPSB2YWx1ZSkge1xuICAgICAgdGhpcy5wcmV2VmFsdWUgPSB2YWx1ZTtcbiAgICAgIGNvbnN0IGV4cGlyZVRpbWUgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jYWxlbmRhci5hZGQobmV3IERhdGUoKSwgJ3NlY29uZCcsIHZhbHVlKS5kYXRlO1xuICAgICAgdGhpcy51cGRhdGVUYXJnZXREYXRlKGV4cGlyZVRpbWUudG9JU09TdHJpbmcoKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvdW50ZG93blNpZ25hbCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFRpbWVyKCkge1xuICAgIHJldHVybiBpbnRlcnZhbCgxMDAwKS5waXBlKFxuICAgICAgc3RhcnRXaXRoKDApLFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGlmZiA9IHRoaXMudGFyZ2V0RGF0ZSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgICAgICBpZiAoZGlmZiA8IDApIHtcbiAgICAgICAgICByZXR1cm4gXCJUaW1lJ3MgdXAhXCI7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0aW1lcyA9IFs4NjQwMCwgMzYwMCwgNjAsIDFdLm1hcCgoc2Vjb25kcykgPT4gTWF0aC5mbG9vcigoZGlmZiAvIDEwMDAgLyBzZWNvbmRzKSAlIChzZWNvbmRzID09PSAxID8gNjAgOiAyNCkpKTtcbiAgICAgICAgY29uc3QgbGFiZWxzID0gWydkJywgJ2gnLCAnbScsICdzJ107XG4gICAgICAgIHJldHVybiB0aW1lc1xuICAgICAgICAgIC5tYXAoKHQsIGkpID0+ICh0ID4gMCB8fCBpID09PSAzID8gYCR7dH0ke2xhYmVsc1tpXX1gIDogJycpKVxuICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAudHJpbSgpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUYXJnZXREYXRlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRhcmdldERhdGUgPSBuZXcgRGF0ZSh2YWx1ZSkuZ2V0VGltZSgpO1xuICB9XG59XG4iXX0=","import { endsWith, get, gt, gte, includes, isEmpty, isEqual, isNil, lt, lte, orderBy, startsWith } from 'lodash-es';\nconst loggingEnabled = false; // Set to true to enable logging, false to disable\nfunction applyCondition(item, condition) {\n const rawValue = condition.field ? get(item, condition.field) : null;\n const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;\n const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;\n // Conditional Logging for debugging\n if (loggingEnabled) {\n console.log('Condition:', condition);\n console.log('Item Value:', itemValue);\n console.log('Condition Value:', conditionValue);\n }\n let result;\n const valueToCompare = isNil(condition.field) || condition.field === '' ? conditionValue : itemValue;\n const conditionType = condition?.operator?.type;\n if (!conditionType) {\n return true;\n }\n const op = String(conditionType);\n switch (op) {\n case 'equal':\n case 'eq':\n result = isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Equal check result:', result);\n }\n break;\n case 'notEqual':\n case 'ne':\n case 'neq':\n result = !isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Not equal check result:', result);\n }\n break;\n case 'greaterThan':\n case 'gt':\n result = gt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than check result:', result);\n }\n break;\n case 'lessThan':\n case 'lt':\n result = lt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than check result:', result);\n }\n break;\n case 'greaterThanOrEqual':\n case 'gte':\n result = gte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than or equal check result:', result);\n }\n break;\n case 'lessThanOrEqual':\n case 'lte':\n result = lte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than or equal check result:', result);\n }\n break;\n case 'contains':\n if (typeof valueToCompare === 'string') {\n result = includes(valueToCompare, conditionValue);\n }\n else if (Array.isArray(valueToCompare)) {\n result = includes(valueToCompare.map((val) => val.toString().toLowerCase()), conditionValue);\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Contains check result:', result);\n }\n break;\n case 'in':\n if (Array.isArray(conditionValue)) {\n if (typeof valueToCompare === 'string') {\n result = conditionValue.some(val => typeof val === 'string' ? val.toLowerCase() === valueToCompare : val === valueToCompare);\n }\n else if (Array.isArray(valueToCompare)) {\n result = valueToCompare.some(val => conditionValue.some(condVal => typeof val === 'string' && typeof condVal === 'string'\n ? val.toLowerCase() === condVal.toLowerCase()\n : val === condVal));\n }\n else {\n result = conditionValue.includes(valueToCompare);\n }\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('In check result:', result);\n }\n break;\n case 'notContains':\n if (typeof valueToCompare === 'string') {\n result = !includes(valueToCompare, conditionValue);\n }\n else if (Array.isArray(valueToCompare)) {\n result = !includes(valueToCompare.map((val) => val.toString().toLowerCase()), conditionValue);\n }\n else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Not contains check result:', result);\n }\n break;\n case 'startsWith':\n result = typeof valueToCompare === 'string' && startsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Starts with check result:', result);\n }\n break;\n case 'endsWith':\n result = typeof valueToCompare === 'string' && endsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Ends with check result:', result);\n }\n break;\n case 'isEmpty':\n result = isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is empty check result:', result);\n }\n break;\n case 'isNull':\n result = isNil(valueToCompare);\n if (loggingEnabled) {\n console.log('Is null check result:', result);\n }\n break;\n case 'isNotEmpty':\n result = !isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is not empty check result:', result);\n }\n break;\n case 'between':\n result = !isNil(valueToCompare) && valueToCompare >= condition.value.from && valueToCompare <= condition.value.to;\n if (loggingEnabled) {\n console.log('Between check result:', result);\n }\n break;\n default:\n result = true;\n if (loggingEnabled) {\n console.log('Default case, returning true');\n }\n }\n // Apply negative flag if present on operator (invert the result)\n const isNegative = !!condition?.operator?.negative;\n return isNegative ? !result : result;\n}\nexport function applyFilterArray(dataArray, filters, logic = 'and') {\n if (filters && filters.length) {\n return dataArray.filter((item) => {\n if (logic === 'and') {\n return filters.every((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n else {\n // logic === 'or'\n return filters.some((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n });\n }\n else {\n return dataArray;\n }\n}\nexport function applySortArray(dataArray, sorts) {\n if (sorts && sorts.length > 0) {\n const sortFields = sorts.map((s) => s.field);\n const sortOrders = sorts.map((s) => s.dir);\n return orderBy(dataArray, sortFields, sortOrders);\n }\n else\n return dataArray;\n}\nexport function applyPagination(dataArray, skip, take) {\n return dataArray.slice(skip, skip + take);\n}\nexport async function applyQueryArray(dataArray, query) {\n let result = [...dataArray];\n // Apply filtering\n if (query.filter) {\n result = applyFilterArray(result, [query.filter], query.filter.logic ?? 'and');\n }\n // Store total count before pagination\n const total = result.length;\n // Apply sorting\n if (query.sort && query.sort.length > 0) {\n result = applySortArray(result, query.sort);\n }\n // Apply pagination\n result = applyPagination(result, query.skip, query.take);\n return {\n items: result,\n total,\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb25kaXRpb25lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vY29yZS9zcmMvbGliL3V0aWxzL2RhdGEtY29uZGl0aW9uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBILE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtBQUVoRixTQUFTLGNBQWMsQ0FBQyxJQUFTLEVBQUUsU0FBbUM7SUFDcEUsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRSxNQUFNLFNBQVMsR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ25GLE1BQU0sY0FBYyxHQUFHLE9BQU8sU0FBUyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFFN0csb0NBQW9DO0lBQ3BDLElBQUksY0FBYyxFQUFFLENBQUM7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxNQUFlLENBQUM7SUFDcEIsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckcsTUFBTSxhQUFhLEdBQUcsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7SUFDaEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVqQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1FBQ1gsS0FBSyxPQUFPLENBQUM7UUFDYixLQUFLLElBQUk7WUFDUCxNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNqRCxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLENBQUM7WUFDRCxNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUM7UUFDVixLQUFLLEtBQUs7WUFDUixNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2xELElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLGFBQWEsQ0FBQztRQUNuQixLQUFLLElBQUk7WUFDUCxNQUFNLEdBQUcsRUFBRSxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUM1QyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELENBQUM7WUFDRCxNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUM7UUFDaEIsS0FBSyxJQUFJO1lBQ1AsTUFBTSxHQUFHLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDNUMsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNqRCxDQUFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssb0JBQW9CLENBQUM7UUFDMUIsS0FBSyxLQUFLO1lBQ1IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDN0MsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM3RCxDQUFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssaUJBQWlCLENBQUM7UUFDdkIsS0FBSyxLQUFLO1lBQ1IsTUFBTSxHQUFHLEdBQUcsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDN0MsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssVUFBVTtZQUNiLElBQUksT0FBTyxjQUFjLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3ZDLE1BQU0sR0FBRyxRQUFRLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ3BELENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE1BQU0sR0FBRyxRQUFRLENBQ2YsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQ3pELGNBQWMsQ0FDZixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUNELElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLElBQUk7WUFDUCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxPQUFPLGNBQWMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDdkMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDakMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssY0FBYyxDQUN4RixDQUFDO2dCQUNKLENBQUM7cUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7b0JBQ3pDLE1BQU0sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ2pDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDNUIsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVE7d0JBQ3BELENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssT0FBTyxDQUFDLFdBQVcsRUFBRTt3QkFDN0MsQ0FBQyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQ3BCLENBQ0YsQ0FBQztnQkFDSixDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ25ELENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNqQixDQUFDO1lBQ0QsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxQyxDQUFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssYUFBYTtZQUNoQixJQUFJLE9BQU8sY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN2QyxNQUFNLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ3JELENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE1BQU0sR0FBRyxDQUFDLFFBQVEsQ0FDaEIsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQ3pELGNBQWMsQ0FDZixDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDakIsQ0FBQztZQUNELElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFlBQVk7WUFDZixNQUFNLEdBQUcsT0FBTyxjQUFjLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxjQUFjLEVBQUUsY0FBd0IsQ0FBQyxDQUFDO1lBQ3BHLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFVBQVU7WUFDYixNQUFNLEdBQUcsT0FBTyxjQUFjLEtBQUssUUFBUSxJQUFJLFFBQVEsQ0FBQyxjQUFjLEVBQUUsY0FBd0IsQ0FBQyxDQUFDO1lBQ2xHLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFNBQVM7WUFDWixNQUFNLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDaEQsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFFBQVE7WUFDWCxNQUFNLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQy9CLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0MsQ0FBQztZQUNELE1BQU07UUFDUixLQUFLLFlBQVk7WUFDZixNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbEMsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsTUFBTTtRQUNSLEtBQUssU0FBUztZQUNaLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxjQUFjLElBQUssU0FBUyxDQUFDLEtBQXNDLENBQUMsSUFBSSxJQUFJLGNBQWMsSUFBSyxTQUFTLENBQUMsS0FBc0MsQ0FBQyxFQUFFLENBQUM7WUFDdEwsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQyxDQUFDO1lBQ0QsTUFBTTtRQUNSO1lBQ0UsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNkLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUM5QyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlFQUFpRTtJQUNqRSxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDbkQsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsU0FBZ0IsRUFDaEIsT0FBb0MsRUFDcEMsUUFBc0IsS0FBSztJQUUzQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUIsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0IsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN6QixPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdkcsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04saUJBQWlCO2dCQUNqQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDeEIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZHLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsU0FBYyxFQUFFLEtBQStCO0lBQzVFLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDOUIsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxPQUFPLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7O1FBQU0sT0FBTyxTQUFTLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUksU0FBYyxFQUFFLElBQVksRUFBRSxJQUFZO0lBQzNFLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGVBQWUsQ0FDbkMsU0FBYyxFQUNkLEtBQXdCO0lBRXhCLElBQUksTUFBTSxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUU1QixrQkFBa0I7SUFDbEIsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsTUFBTSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFFNUIsZ0JBQWdCO0lBQ2hCLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RCxPQUFPO1FBQ0wsS0FBSyxFQUFFLE1BQU07UUFDYixLQUFLO0tBQ04sQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdCxcbiAgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLFxuICBBWERhdGFTb3VyY2VMb2FkQ2FsbGJhY2ssXG4gIEFYRGF0YVNvdXJjZVF1ZXJ5LFxuICBBWERhdGFTb3VyY2VTb3J0T3B0aW9uLFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgZW5kc1dpdGgsIGdldCwgZ3QsIGd0ZSwgaW5jbHVkZXMsIGlzRW1wdHksIGlzRXF1YWwsIGlzTmlsLCBsdCwgbHRlLCBvcmRlckJ5LCBzdGFydHNXaXRoIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3QgbG9nZ2luZ0VuYWJsZWQgPSBmYWxzZTsgLy8gU2V0IHRvIHRydWUgdG8gZW5hYmxlIGxvZ2dpbmcsIGZhbHNlIHRvIGRpc2FibGVcblxuZnVuY3Rpb24gYXBwbHlDb25kaXRpb24oaXRlbTogYW55LCBjb25kaXRpb246IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbikge1xuICBjb25zdCByYXdWYWx1ZSA9IGNvbmRpdGlvbi5maWVsZCA/IGdldChpdGVtLCBjb25kaXRpb24uZmllbGQpIDogbnVsbDtcbiAgY29uc3QgaXRlbVZhbHVlID0gdHlwZW9mIHJhd1ZhbHVlID09PSAnc3RyaW5nJyA/IHJhd1ZhbHVlLnRvTG93ZXJDYXNlKCkgOiByYXdWYWx1ZTtcbiAgY29uc3QgY29uZGl0aW9uVmFsdWUgPSB0eXBlb2YgY29uZGl0aW9uLnZhbHVlID09PSAnc3RyaW5nJyA/IGNvbmRpdGlvbi52YWx1ZS50b0xvd2VyQ2FzZSgpIDogY29uZGl0aW9uLnZhbHVlO1xuXG4gIC8vIENvbmRpdGlvbmFsIExvZ2dpbmcgZm9yIGRlYnVnZ2luZ1xuICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICBjb25zb2xlLmxvZygnQ29uZGl0aW9uOicsIGNvbmRpdGlvbik7XG4gICAgY29uc29sZS5sb2coJ0l0ZW0gVmFsdWU6JywgaXRlbVZhbHVlKTtcbiAgICBjb25zb2xlLmxvZygnQ29uZGl0aW9uIFZhbHVlOicsIGNvbmRpdGlvblZhbHVlKTtcbiAgfVxuXG4gIGxldCByZXN1bHQ6IGJvb2xlYW47XG4gIGNvbnN0IHZhbHVlVG9Db21wYXJlID0gaXNOaWwoY29uZGl0aW9uLmZpZWxkKSB8fCBjb25kaXRpb24uZmllbGQgPT09ICcnID8gY29uZGl0aW9uVmFsdWUgOiBpdGVtVmFsdWU7XG4gIGNvbnN0IGNvbmRpdGlvblR5cGUgPSBjb25kaXRpb24/Lm9wZXJhdG9yPy50eXBlO1xuICBpZiAoIWNvbmRpdGlvblR5cGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IG9wID0gU3RyaW5nKGNvbmRpdGlvblR5cGUpO1xuXG4gIHN3aXRjaCAob3ApIHtcbiAgICBjYXNlICdlcXVhbCc6XG4gICAgY2FzZSAnZXEnOlxuICAgICAgcmVzdWx0ID0gaXNFcXVhbCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdFcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ25vdEVxdWFsJzpcbiAgICBjYXNlICduZSc6XG4gICAgY2FzZSAnbmVxJzpcbiAgICAgIHJlc3VsdCA9ICFpc0VxdWFsKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ05vdCBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2dyZWF0ZXJUaGFuJzpcbiAgICBjYXNlICdndCc6XG4gICAgICByZXN1bHQgPSBndCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdHcmVhdGVyIHRoYW4gY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdsZXNzVGhhbic6XG4gICAgY2FzZSAnbHQnOlxuICAgICAgcmVzdWx0ID0gbHQodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTGVzcyB0aGFuIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZ3JlYXRlclRoYW5PckVxdWFsJzpcbiAgICBjYXNlICdndGUnOlxuICAgICAgcmVzdWx0ID0gZ3RlKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0dyZWF0ZXIgdGhhbiBvciBlcXVhbCBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xlc3NUaGFuT3JFcXVhbCc6XG4gICAgY2FzZSAnbHRlJzpcbiAgICAgIHJlc3VsdCA9IGx0ZSh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdMZXNzIHRoYW4gb3IgZXF1YWwgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdjb250YWlucyc6XG4gICAgICBpZiAodHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXN1bHQgPSBpbmNsdWRlcyh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICByZXN1bHQgPSBpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnQ29udGFpbnMgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdpbic6XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb25kaXRpb25WYWx1ZSkpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXN1bHQgPSBjb25kaXRpb25WYWx1ZS5zb21lKHZhbCA9PlxuICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gdmFsdWVUb0NvbXBhcmUgOiB2YWwgPT09IHZhbHVlVG9Db21wYXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlVG9Db21wYXJlKSkge1xuICAgICAgICAgIHJlc3VsdCA9IHZhbHVlVG9Db21wYXJlLnNvbWUodmFsID0+XG4gICAgICAgICAgICBjb25kaXRpb25WYWx1ZS5zb21lKGNvbmRWYWwgPT5cbiAgICAgICAgICAgICAgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGNvbmRWYWwgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgPyB2YWwudG9Mb3dlckNhc2UoKSA9PT0gY29uZFZhbC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgOiB2YWwgPT09IGNvbmRWYWxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IGNvbmRpdGlvblZhbHVlLmluY2x1ZGVzKHZhbHVlVG9Db21wYXJlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0luIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnbm90Q29udGFpbnMnOlxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZVRvQ29tcGFyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gIWluY2x1ZGVzKHZhbHVlVG9Db21wYXJlLCBjb25kaXRpb25WYWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUb0NvbXBhcmUpKSB7XG4gICAgICAgIHJlc3VsdCA9ICFpbmNsdWRlcyhcbiAgICAgICAgICB2YWx1ZVRvQ29tcGFyZS5tYXAoKHZhbCkgPT4gdmFsLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSksXG4gICAgICAgICAgY29uZGl0aW9uVmFsdWUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnTm90IGNvbnRhaW5zIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc3RhcnRzV2l0aCc6XG4gICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWVUb0NvbXBhcmUgPT09ICdzdHJpbmcnICYmIHN0YXJ0c1dpdGgodmFsdWVUb0NvbXBhcmUsIGNvbmRpdGlvblZhbHVlIGFzIHN0cmluZyk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1N0YXJ0cyB3aXRoIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZW5kc1dpdGgnOlxuICAgICAgcmVzdWx0ID0gdHlwZW9mIHZhbHVlVG9Db21wYXJlID09PSAnc3RyaW5nJyAmJiBlbmRzV2l0aCh2YWx1ZVRvQ29tcGFyZSwgY29uZGl0aW9uVmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnRW5kcyB3aXRoIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNFbXB0eSc6XG4gICAgICByZXN1bHQgPSBpc0VtcHR5KHZhbHVlVG9Db21wYXJlKTtcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnSXMgZW1wdHkgY2hlY2sgcmVzdWx0OicsIHJlc3VsdCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlICdpc051bGwnOlxuICAgICAgcmVzdWx0ID0gaXNOaWwodmFsdWVUb0NvbXBhcmUpO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJcyBudWxsIGNoZWNrIHJlc3VsdDonLCByZXN1bHQpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnaXNOb3RFbXB0eSc6XG4gICAgICByZXN1bHQgPSAhaXNFbXB0eSh2YWx1ZVRvQ29tcGFyZSk7XG4gICAgICBpZiAobG9nZ2luZ0VuYWJsZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0lzIG5vdCBlbXB0eSBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JldHdlZW4nOlxuICAgICAgcmVzdWx0ID0gIWlzTmlsKHZhbHVlVG9Db21wYXJlKSAmJiB2YWx1ZVRvQ29tcGFyZSA+PSAoY29uZGl0aW9uLnZhbHVlIGFzIHsgZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyIH0pLmZyb20gJiYgdmFsdWVUb0NvbXBhcmUgPD0gKGNvbmRpdGlvbi52YWx1ZSBhcyB7IGZyb206IG51bWJlcjsgdG86IG51bWJlciB9KS50bztcbiAgICAgIGlmIChsb2dnaW5nRW5hYmxlZCkge1xuICAgICAgICBjb25zb2xlLmxvZygnQmV0d2VlbiBjaGVjayByZXN1bHQ6JywgcmVzdWx0KTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXN1bHQgPSB0cnVlO1xuICAgICAgaWYgKGxvZ2dpbmdFbmFibGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdEZWZhdWx0IGNhc2UsIHJldHVybmluZyB0cnVlJyk7XG4gICAgICB9XG4gIH1cblxuICAvLyBBcHBseSBuZWdhdGl2ZSBmbGFnIGlmIHByZXNlbnQgb24gb3BlcmF0b3IgKGludmVydCB0aGUgcmVzdWx0KVxuICBjb25zdCBpc05lZ2F0aXZlID0gISFjb25kaXRpb24/Lm9wZXJhdG9yPy5uZWdhdGl2ZTtcbiAgcmV0dXJuIGlzTmVnYXRpdmUgPyAhcmVzdWx0IDogcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlGaWx0ZXJBcnJheShcbiAgZGF0YUFycmF5OiBhbnlbXSxcbiAgZmlsdGVycz86IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdLFxuICBsb2dpYzogJ2FuZCcgfCAnb3InID0gJ2FuZCcsXG4pOiBhbnlbXSB7XG4gIGlmIChmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGRhdGFBcnJheS5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChsb2dpYyA9PT0gJ2FuZCcpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlcnMuZXZlcnkoKGYpID0+IHtcbiAgICAgICAgICByZXR1cm4gZi5maWx0ZXJzID8gYXBwbHlGaWx0ZXJBcnJheShbaXRlbV0sIGYuZmlsdGVycywgZi5sb2dpYykubGVuZ3RoID4gMCA6IGFwcGx5Q29uZGl0aW9uKGl0ZW0sIGYpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGxvZ2ljID09PSAnb3InXG4gICAgICAgIHJldHVybiBmaWx0ZXJzLnNvbWUoKGYpID0+IHtcbiAgICAgICAgICByZXR1cm4gZi5maWx0ZXJzID8gYXBwbHlGaWx0ZXJBcnJheShbaXRlbV0sIGYuZmlsdGVycywgZi5sb2dpYykubGVuZ3RoID4gMCA6IGFwcGx5Q29uZGl0aW9uKGl0ZW0sIGYpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZGF0YUFycmF5O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNvcnRBcnJheShkYXRhQXJyYXk6IGFueSwgc29ydHM6IEFYRGF0YVNvdXJjZVNvcnRPcHRpb25bXSkge1xuICBpZiAoc29ydHMgJiYgc29ydHMubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHNvcnRGaWVsZHMgPSBzb3J0cy5tYXAoKHMpID0+IHMuZmllbGQpO1xuICAgIGNvbnN0IHNvcnRPcmRlcnMgPSBzb3J0cy5tYXAoKHMpID0+IHMuZGlyKTtcbiAgICByZXR1cm4gb3JkZXJCeShkYXRhQXJyYXksIHNvcnRGaWVsZHMsIHNvcnRPcmRlcnMpO1xuICB9IGVsc2UgcmV0dXJuIGRhdGFBcnJheTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGFnaW5hdGlvbjxUPihkYXRhQXJyYXk6IFRbXSwgc2tpcDogbnVtYmVyLCB0YWtlOiBudW1iZXIpOiBUW10ge1xuICByZXR1cm4gZGF0YUFycmF5LnNsaWNlKHNraXAsIHNraXAgKyB0YWtlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5UXVlcnlBcnJheTxUPihcbiAgZGF0YUFycmF5OiBUW10sXG4gIHF1ZXJ5OiBBWERhdGFTb3VyY2VRdWVyeSxcbik6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8VD4+IHtcbiAgbGV0IHJlc3VsdCA9IFsuLi5kYXRhQXJyYXldO1xuXG4gIC8vIEFwcGx5IGZpbHRlcmluZ1xuICBpZiAocXVlcnkuZmlsdGVyKSB7XG4gICAgcmVzdWx0ID0gYXBwbHlGaWx0ZXJBcnJheShyZXN1bHQsIFtxdWVyeS5maWx0ZXJdLCBxdWVyeS5maWx0ZXIubG9naWMgPz8gJ2FuZCcpO1xuICB9XG5cbiAgLy8gU3RvcmUgdG90YWwgY291bnQgYmVmb3JlIHBhZ2luYXRpb25cbiAgY29uc3QgdG90YWwgPSByZXN1bHQubGVuZ3RoO1xuXG4gIC8vIEFwcGx5IHNvcnRpbmdcbiAgaWYgKHF1ZXJ5LnNvcnQgJiYgcXVlcnkuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgcmVzdWx0ID0gYXBwbHlTb3J0QXJyYXkocmVzdWx0LCBxdWVyeS5zb3J0KTtcbiAgfVxuXG4gIC8vIEFwcGx5IHBhZ2luYXRpb25cbiAgcmVzdWx0ID0gYXBwbHlQYWdpbmF0aW9uKHJlc3VsdCwgcXVlcnkuc2tpcCwgcXVlcnkudGFrZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBpdGVtczogcmVzdWx0LFxuICAgIHRvdGFsLFxuICB9O1xufVxuIl19","import { computed, Injectable, signal } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\n//#region ---- Type Definitions ----\n/**\n * Screen Size Enum\n */\nexport var AXPScreenSize;\n(function (AXPScreenSize) {\n AXPScreenSize[\"Small\"] = \"small\";\n AXPScreenSize[\"Medium\"] = \"medium\";\n AXPScreenSize[\"Large\"] = \"large\";\n})(AXPScreenSize || (AXPScreenSize = {}));\n/**\n * Device Type Enum\n */\nexport var AXPDeviceType;\n(function (AXPDeviceType) {\n AXPDeviceType[\"Mobile\"] = \"mobile\";\n AXPDeviceType[\"Tablet\"] = \"tablet\";\n AXPDeviceType[\"Desktop\"] = \"desktop\";\n})(AXPDeviceType || (AXPDeviceType = {}));\n//#endregion\n//#region ---- Helper Functions ----\n/**\n * Get the initial screen size based on window width\n */\nconst getScreenSize = () => {\n const width = window.innerWidth;\n if (width <= 600)\n return AXPScreenSize.Small;\n if (width <= 1024)\n return AXPScreenSize.Medium;\n return AXPScreenSize.Large;\n};\n/**\n * Determine device type based on viewport width\n */\nconst getDeviceType = () => {\n const width = window.innerWidth;\n if (width <= 600) {\n return AXPDeviceType.Mobile;\n }\n else if (width <= 1024) {\n return AXPDeviceType.Tablet;\n }\n return AXPDeviceType.Desktop;\n};\n/**\n * Determine if the device supports touch\n */\nconst isTouchDevice = () => {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n};\n//#endregion\n//#region ---- Device Service ----\n/**\n * Injectable service that provides reactive device and screen size information.\n * Monitors window resize events and updates signals accordingly.\n */\nexport class AXPDeviceService {\n //#endregion\n //#region ---- Constructor & Lifecycle ----\n constructor() {\n //#region ---- State Signals ----\n /**\n * Current screen size (Small, Medium, Large)\n */\n this.screenSize = signal(getScreenSize(), ...(ngDevMode ? [{ debugName: \"screenSize\" }] : []));\n /**\n * Current device type (Mobile, Tablet, Desktop)\n */\n this.deviceType = signal(getDeviceType(), ...(ngDevMode ? [{ debugName: \"deviceType\" }] : []));\n /**\n * Whether the device supports touch input\n */\n this.isTouchDevice = signal(isTouchDevice(), ...(ngDevMode ? [{ debugName: \"isTouchDevice\" }] : []));\n //#endregion\n //#region ---- Computed Signals ----\n /**\n * Whether the screen size is Small\n */\n this.isSmall = computed(() => this.screenSize() === AXPScreenSize.Small, ...(ngDevMode ? [{ debugName: \"isSmall\" }] : []));\n /**\n * Whether the screen size is Medium\n */\n this.isMedium = computed(() => this.screenSize() === AXPScreenSize.Medium, ...(ngDevMode ? [{ debugName: \"isMedium\" }] : []));\n /**\n * Whether the screen size is Large\n */\n this.isLarge = computed(() => this.screenSize() === AXPScreenSize.Large, ...(ngDevMode ? [{ debugName: \"isLarge\" }] : []));\n /**\n * Whether the device is Mobile\n */\n this.isMobileDevice = computed(() => this.deviceType() === AXPDeviceType.Mobile, ...(ngDevMode ? [{ debugName: \"isMobileDevice\" }] : []));\n /**\n * Whether the device is Tablet\n */\n this.isTabletDevice = computed(() => this.deviceType() === AXPDeviceType.Tablet, ...(ngDevMode ? [{ debugName: \"isTabletDevice\" }] : []));\n /**\n * Whether the device is Desktop\n */\n this.isDesktopDevice = computed(() => this.deviceType() === AXPDeviceType.Desktop, ...(ngDevMode ? [{ debugName: \"isDesktopDevice\" }] : []));\n /**\n * Whether the device supports touch (alias for isTouchDevice)\n */\n this.isTouchScreen = computed(() => this.isTouchDevice(), ...(ngDevMode ? [{ debugName: \"isTouchScreen\" }] : []));\n //#endregion\n //#region ---- Private Properties ----\n this._resizeListener = null;\n this._setupResizeListener();\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Update screen size and device type based on window width\n */\n _updateScreenSize() {\n const width = window.innerWidth;\n let newScreenSize;\n if (width <= 600) {\n newScreenSize = AXPScreenSize.Small;\n }\n else if (width <= 1024) {\n newScreenSize = AXPScreenSize.Medium;\n }\n else {\n newScreenSize = AXPScreenSize.Large;\n }\n // Determine device type based on width to keep it reactive to devtools emulation\n let newDeviceType;\n if (width <= 600) {\n newDeviceType = AXPDeviceType.Mobile;\n }\n else if (width <= 1024) {\n newDeviceType = AXPDeviceType.Tablet;\n }\n else {\n newDeviceType = AXPDeviceType.Desktop;\n }\n if (newScreenSize !== this.screenSize() || newDeviceType !== this.deviceType()) {\n this.screenSize.set(newScreenSize);\n this.deviceType.set(newDeviceType);\n }\n }\n /**\n * Set up event listener for window resize\n */\n _setupResizeListener() {\n this._resizeListener = fromEvent(window, 'resize')\n .pipe(debounceTime(250)) // 250ms debounce delay\n .subscribe(() => {\n this._updateScreenSize();\n });\n }\n /**\n * Remove event listener for window resize\n */\n _removeResizeListener() {\n if (this._resizeListener) {\n this._resizeListener.unsubscribe();\n this._resizeListener = null;\n }\n }\n //#endregion\n //#region ---- Public Methods ----\n /**\n * Clean up resources when service is destroyed\n */\n destroy() {\n this._removeResizeListener();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDeviceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDeviceService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPDeviceService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9kZXZpY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU5Qyx3Q0FBd0M7QUFFeEM7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxhQUlYO0FBSkQsV0FBWSxhQUFhO0lBQ3ZCLGdDQUFlLENBQUE7SUFDZixrQ0FBaUIsQ0FBQTtJQUNqQixnQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksYUFJWDtBQUpELFdBQVksYUFBYTtJQUN2QixrQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEI7QUFFRCxZQUFZO0FBRVosd0NBQXdDO0FBRXhDOztHQUVHO0FBQ0gsTUFBTSxhQUFhLEdBQUcsR0FBa0IsRUFBRTtJQUN4QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2hDLElBQUksS0FBSyxJQUFJLEdBQUc7UUFBRSxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUM7SUFDN0MsSUFBSSxLQUFLLElBQUksSUFBSTtRQUFFLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUMvQyxPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUM7QUFDN0IsQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FB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QUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDOytHQXhJVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGUgRGVmaW5pdGlvbnMgICAtLS0tXG5cbi8qKlxuICogU2NyZWVuIFNpemUgRW51bVxuICovXG5leHBvcnQgZW51bSBBWFBTY3JlZW5TaXplIHtcbiAgU21hbGwgPSAnc21hbGwnLFxuICBNZWRpdW0gPSAnbWVkaXVtJyxcbiAgTGFyZ2UgPSAnbGFyZ2UnLFxufVxuXG4vKipcbiAqIERldmljZSBUeXBlIEVudW1cbiAqL1xuZXhwb3J0IGVudW0gQVhQRGV2aWNlVHlwZSB7XG4gIE1vYmlsZSA9ICdtb2JpbGUnLFxuICBUYWJsZXQgPSAndGFibGV0JyxcbiAgRGVza3RvcCA9ICdkZXNrdG9wJyxcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgSGVscGVyIEZ1bmN0aW9ucyAgIC0tLS1cblxuLyoqXG4gKiBHZXQgdGhlIGluaXRpYWwgc2NyZWVuIHNpemUgYmFzZWQgb24gd2luZG93IHdpZHRoXG4gKi9cbmNvbnN0IGdldFNjcmVlblNpemUgPSAoKTogQVhQU2NyZWVuU2l6ZSA9PiB7XG4gIGNvbnN0IHdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gIGlmICh3aWR0aCA8PSA2MDApIHJldHVybiBBWFBTY3JlZW5TaXplLlNtYWxsO1xuICBpZiAod2lkdGggPD0gMTAyNCkgcmV0dXJuIEFYUFNjcmVlblNpemUuTWVkaXVtO1xuICByZXR1cm4gQVhQU2NyZWVuU2l6ZS5MYXJnZTtcbn07XG5cbi8qKlxuICogRGV0ZXJtaW5lIGRldmljZSB0eXBlIGJhc2VkIG9uIHZpZXdwb3J0IHdpZHRoXG4gKi9cbmNvbnN0IGdldERldmljZVR5cGUgPSAoKTogQVhQRGV2aWNlVHlwZSA9PiB7XG4gIGNvbnN0IHdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gIGlmICh3aWR0aCA8PSA2MDApIHtcbiAgICByZXR1cm4gQVhQRGV2aWNlVHlwZS5Nb2JpbGU7XG4gIH0gZWxzZSBpZiAod2lkdGggPD0gMTAyNCkge1xuICAgIHJldHVybiBBWFBEZXZpY2VUeXBlLlRhYmxldDtcbiAgfVxuICByZXR1cm4gQVhQRGV2aWNlVHlwZS5EZXNrdG9wO1xufTtcblxuLyoqXG4gKiBEZXRlcm1pbmUgaWYgdGhlIGRldmljZSBzdXBwb3J0cyB0b3VjaFxuICovXG5jb25zdCBpc1RvdWNoRGV2aWNlID0gKCk6IGJvb2xlYW4gPT4ge1xuICByZXR1cm4gJ29udG91Y2hzdGFydCcgaW4gd2luZG93IHx8IG5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyA+IDA7XG59O1xuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBEZXZpY2UgU2VydmljZSAgIC0tLS1cblxuLyoqXG4gKiBJbmplY3RhYmxlIHNlcnZpY2UgdGhhdCBwcm92aWRlcyByZWFjdGl2ZSBkZXZpY2UgYW5kIHNjcmVlbiBzaXplIGluZm9ybWF0aW9uLlxuICogTW9uaXRvcnMgd2luZG93IHJlc2l6ZSBldmVudHMgYW5kIHVwZGF0ZXMgc2lnbmFscyBhY2NvcmRpbmdseS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUERldmljZVNlcnZpY2Uge1xuICAvLyNyZWdpb24gLS0tLSAgIFN0YXRlIFNpZ25hbHMgICAtLS0tXG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgc2NyZWVuIHNpemUgKFNtYWxsLCBNZWRpdW0sIExhcmdlKVxuICAgKi9cbiAgcmVhZG9ubHkgc2NyZWVuU2l6ZSA9IHNpZ25hbDxBWFBTY3JlZW5TaXplPihnZXRTY3JlZW5TaXplKCkpO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IGRldmljZSB0eXBlIChNb2JpbGUsIFRhYmxldCwgRGVza3RvcClcbiAgICovXG4gIHJlYWRvbmx5IGRldmljZVR5cGUgPSBzaWduYWw8QVhQRGV2aWNlVHlwZT4oZ2V0RGV2aWNlVHlwZSgpKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZGV2aWNlIHN1cHBvcnRzIHRvdWNoIGlucHV0XG4gICAqL1xuICByZWFkb25seSBpc1RvdWNoRGV2aWNlID0gc2lnbmFsPGJvb2xlYW4+KGlzVG91Y2hEZXZpY2UoKSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDb21wdXRlZCBTaWduYWxzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzY3JlZW4gc2l6ZSBpcyBTbWFsbFxuICAgKi9cbiAgcmVhZG9ubHkgaXNTbWFsbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2NyZWVuU2l6ZSgpID09PSBBWFBTY3JlZW5TaXplLlNtYWxsKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgc2NyZWVuIHNpemUgaXMgTWVkaXVtXG4gICAqL1xuICByZWFkb25seSBpc01lZGl1bSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2NyZWVuU2l6ZSgpID09PSBBWFBTY3JlZW5TaXplLk1lZGl1bSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHNjcmVlbiBzaXplIGlzIExhcmdlXG4gICAqL1xuICByZWFkb25seSBpc0xhcmdlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zY3JlZW5TaXplKCkgPT09IEFYUFNjcmVlblNpemUuTGFyZ2UpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBkZXZpY2UgaXMgTW9iaWxlXG4gICAqL1xuICByZWFkb25seSBpc01vYmlsZURldmljZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGV2aWNlVHlwZSgpID09PSBBWFBEZXZpY2VUeXBlLk1vYmlsZSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGRldmljZSBpcyBUYWJsZXRcbiAgICovXG4gIHJlYWRvbmx5IGlzVGFibGV0RGV2aWNlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kZXZpY2VUeXBlKCkgPT09IEFYUERldmljZVR5cGUuVGFibGV0KTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZGV2aWNlIGlzIERlc2t0b3BcbiAgICovXG4gIHJlYWRvbmx5IGlzRGVza3RvcERldmljZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGV2aWNlVHlwZSgpID09PSBBWFBEZXZpY2VUeXBlLkRlc2t0b3ApO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBkZXZpY2Ugc3VwcG9ydHMgdG91Y2ggKGFsaWFzIGZvciBpc1RvdWNoRGV2aWNlKVxuICAgKi9cbiAgcmVhZG9ubHkgaXNUb3VjaFNjcmVlbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXNUb3VjaERldmljZSgpKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFByaXZhdGUgUHJvcGVydGllcyAgIC0tLS1cblxuICBwcml2YXRlIF9yZXNpemVMaXN0ZW5lcjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDb25zdHJ1Y3RvciAmIExpZmVjeWNsZSAgIC0tLS1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLl9zZXR1cFJlc2l6ZUxpc3RlbmVyKCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFByaXZhdGUgTWV0aG9kcyAgIC0tLS1cblxuICAvKipcbiAgICogVXBkYXRlIHNjcmVlbiBzaXplIGFuZCBkZXZpY2UgdHlwZSBiYXNlZCBvbiB3aW5kb3cgd2lkdGhcbiAgICovXG4gIHByaXZhdGUgX3VwZGF0ZVNjcmVlblNpemUoKTogdm9pZCB7XG4gICAgY29uc3Qgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICBsZXQgbmV3U2NyZWVuU2l6ZTogQVhQU2NyZWVuU2l6ZTtcblxuICAgIGlmICh3aWR0aCA8PSA2MDApIHtcbiAgICAgIG5ld1NjcmVlblNpemUgPSBBWFBTY3JlZW5TaXplLlNtYWxsO1xuICAgIH0gZWxzZSBpZiAod2lkdGggPD0gMTAyNCkge1xuICAgICAgbmV3U2NyZWVuU2l6ZSA9IEFYUFNjcmVlblNpemUuTWVkaXVtO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTY3JlZW5TaXplID0gQVhQU2NyZWVuU2l6ZS5MYXJnZTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgZGV2aWNlIHR5cGUgYmFzZWQgb24gd2lkdGggdG8ga2VlcCBpdCByZWFjdGl2ZSB0byBkZXZ0b29scyBlbXVsYXRpb25cbiAgICBsZXQgbmV3RGV2aWNlVHlwZTogQVhQRGV2aWNlVHlwZTtcbiAgICBpZiAod2lkdGggPD0gNjAwKSB7XG4gICAgICBuZXdEZXZpY2VUeXBlID0gQVhQRGV2aWNlVHlwZS5Nb2JpbGU7XG4gICAgfSBlbHNlIGlmICh3aWR0aCA8PSAxMDI0KSB7XG4gICAgICBuZXdEZXZpY2VUeXBlID0gQVhQRGV2aWNlVHlwZS5UYWJsZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0RldmljZVR5cGUgPSBBWFBEZXZpY2VUeXBlLkRlc2t0b3A7XG4gICAgfVxuXG4gICAgaWYgKG5ld1NjcmVlblNpemUgIT09IHRoaXMuc2NyZWVuU2l6ZSgpIHx8IG5ld0RldmljZVR5cGUgIT09IHRoaXMuZGV2aWNlVHlwZSgpKSB7XG4gICAgICB0aGlzLnNjcmVlblNpemUuc2V0KG5ld1NjcmVlblNpemUpO1xuICAgICAgdGhpcy5kZXZpY2VUeXBlLnNldChuZXdEZXZpY2VUeXBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwIGV2ZW50IGxpc3RlbmVyIGZvciB3aW5kb3cgcmVzaXplXG4gICAqL1xuICBwcml2YXRlIF9zZXR1cFJlc2l6ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2l6ZUxpc3RlbmVyID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjUwKSkgLy8gMjUwbXMgZGVib3VuY2UgZGVsYXlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl91cGRhdGVTY3JlZW5TaXplKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgZXZlbnQgbGlzdGVuZXIgZm9yIHdpbmRvdyByZXNpemVcbiAgICovXG4gIHByaXZhdGUgX3JlbW92ZVJlc2l6ZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZXNpemVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5fcmVzaXplTGlzdGVuZXIudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX3Jlc2l6ZUxpc3RlbmVyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBNZXRob2RzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBDbGVhbiB1cCByZXNvdXJjZXMgd2hlbiBzZXJ2aWNlIGlzIGRlc3Ryb3llZFxuICAgKi9cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW1vdmVSZXNpemVMaXN0ZW5lcigpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cbi8vI2VuZHJlZ2lvblxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Service for applying and resetting text highlighting within specified HTML elements.\n */\nexport class AXHighlightService {\n constructor() { }\n /**\n * Highlights all occurrences of a search value within the elements matching the provided query selector.\n *\n * @param querySelector - CSS selector to identify target elements.\n * @param searchValue - Text to search and highlight.\n */\n highlight(querySelector, searchValue) {\n this.clear();\n if (!querySelector || !searchValue) {\n return;\n }\n this.querySelector = querySelector;\n this.searchValue = searchValue;\n const elements = document.querySelectorAll(querySelector);\n elements.forEach((element) => {\n this.applyHighlight(element);\n });\n }\n /**\n * Resets all highlighted text within the elements matching the previously used query selector.\n */\n clear() {\n const elements = document.querySelectorAll(`${this.querySelector} .ax-highlight-text`);\n elements.forEach((element) => {\n let combinedText = '';\n element.querySelectorAll('span').forEach((span) => {\n combinedText += span.textContent;\n });\n const mergedSpan = document.createElement('span');\n mergedSpan.textContent = combinedText;\n element?.parentNode?.replaceChild(mergedSpan, element);\n });\n }\n /**\n * Applies highlighting to a specific element by matching text against the search value.\n *\n * @param element - The HTML element to apply highlights to.\n */\n applyHighlight(element) {\n const searchRegex = new RegExp(`(${this.searchValue})`, 'gi');\n this.recursivelyHighlight(element, searchRegex);\n }\n /**\n * Recursively applies highlighting to text nodes within an element.\n *\n * @param element - The current node being processed.\n * @param searchRegex - Regular expression for matching text to highlight.\n */\n recursivelyHighlight(element, searchRegex) {\n const childNodes = Array.from(element.childNodes);\n childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const textContent = node.textContent || '';\n if (textContent.match(searchRegex)) {\n const highlightedHTML = this.createHighlightedHTML(textContent, searchRegex);\n const tempContainer = document.createElement('div');\n tempContainer.innerHTML = highlightedHTML;\n const fragment = document.createDocumentFragment();\n Array.from(tempContainer.childNodes).forEach((child) => fragment.appendChild(child));\n node.replaceWith(fragment);\n }\n }\n else if (node.nodeType === Node.ELEMENT_NODE) {\n this.recursivelyHighlight(node, searchRegex);\n }\n });\n }\n /**\n * Generates the HTML structure for highlighted text.\n *\n * @param textContent - The original text content to process.\n * @param searchRegex - Regular expression for matching text to highlight.\n * @returns A string of HTML with highlighted portions wrapped in span elements.\n */\n createHighlightedHTML(textContent, searchRegex) {\n let parts = [];\n let match;\n let lastIndex = 0;\n let resultHTML = '<span class=\"ax-highlight-text\">';\n while ((match = searchRegex.exec(textContent)) !== null) {\n if (match.index > lastIndex) {\n resultHTML += `<span>${textContent.slice(lastIndex, match.index)}</span>`;\n }\n resultHTML += `<span class=\"ax-highlight\">${match[0]}</span>`;\n lastIndex = searchRegex.lastIndex;\n }\n if (lastIndex < textContent.length) {\n resultHTML += `<span>${textContent.slice(lastIndex)}</span>`;\n }\n resultHTML += '</span>';\n return resultHTML;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXHighlightService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXHighlightService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXHighlightService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2xpYi91dGlscy9oaWdobGlnaHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQzs7R0FFRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsZ0JBQWdCLENBQUM7SUFFakI7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsYUFBcUIsRUFBRSxXQUFtQjtRQUNsRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBc0IsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLHNCQUFzQixDQUFDLENBQUM7UUFDeEYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUN0QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hE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TUFBTSxFQUFFLENBQUM7WUFDbkMsVUFBVSxJQUFJLFNBQVMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQy9ELENBQUM7UUFFRCxVQUFVLElBQUksU0FBUyxDQUFDO1FBRXhCLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7K0dBN0dVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU2VydmljZSBmb3IgYXBwbHlpbmcgYW5kIHJlc2V0dGluZyB0ZXh0IGhpZ2hsaWdodGluZyB3aXRoaW4gc3BlY2lmaWVkIEhUTUwgZWxlbWVudHMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWEhpZ2hsaWdodFNlcnZpY2Uge1xuICBwcml2YXRlIHF1ZXJ5U2VsZWN0b3I6IHN0cmluZyB8IG51bGw7XG4gIHByaXZhdGUgc2VhcmNoVmFsdWU6IHN0cmluZyB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICAvKipcbiAgICogSGlnaGxpZ2h0cyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzZWFyY2ggdmFsdWUgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJvdmlkZWQgcXVlcnkgc2VsZWN0b3IuXG4gICAqXG4gICAqIEBwYXJhbSBxdWVyeVNlbGVjdG9yIC0gQ1NTIHNlbGVjdG9yIHRvIGlkZW50aWZ5IHRhcmdldCBlbGVtZW50cy5cbiAgICogQHBhcmFtIHNlYXJjaFZhbHVlIC0gVGV4dCB0byBzZWFyY2ggYW5kIGhpZ2hsaWdodC5cbiAgICovXG4gIGhpZ2hsaWdodChxdWVyeVNlbGVjdG9yOiBzdHJpbmcsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgaWYgKCFxdWVyeVNlbGVjdG9yIHx8ICFzZWFyY2hWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IgPSBxdWVyeVNlbGVjdG9yO1xuICAgIHRoaXMuc2VhcmNoVmFsdWUgPSBzZWFyY2hWYWx1ZTtcbiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwocXVlcnlTZWxlY3Rvcik7XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5hcHBseUhpZ2hsaWdodChlbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgYWxsIGhpZ2hsaWdodGVkIHRleHQgd2l0aGluIHRoZSBlbGVtZW50cyBtYXRjaGluZyB0aGUgcHJldmlvdXNseSB1c2VkIHF1ZXJ5IHNlbGVjdG9yLlxuICAgKi9cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgJHt0aGlzLnF1ZXJ5U2VsZWN0b3J9ICAuYXgtaGlnaGxpZ2h0LXRleHRgKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBsZXQgY29tYmluZWRUZXh0ID0gJyc7XG4gICAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW4nKS5mb3JFYWNoKChzcGFuKSA9PiB7XG4gICAgICAgIGNvbWJpbmVkVGV4dCArPSBzcGFuLnRleHRDb250ZW50O1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG1lcmdlZFNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICBtZXJnZWRTcGFuLnRleHRDb250ZW50ID0gY29tYmluZWRUZXh0O1xuXG4gICAgICBlbGVtZW50Py5wYXJlbnROb2RlPy5yZXBsYWNlQ2hpbGQobWVyZ2VkU3BhbiwgZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBoaWdobGlnaHRpbmcgdG8gYSBzcGVjaWZpYyBlbGVtZW50IGJ5IG1hdGNoaW5nIHRleHQgYWdhaW5zdCB0aGUgc2VhcmNoIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBIVE1MIGVsZW1lbnQgdG8gYXBwbHkgaGlnaGxpZ2h0cyB0by5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlIaWdobGlnaHQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hSZWdleCA9IG5ldyBSZWdFeHAoYCgke3RoaXMuc2VhcmNoVmFsdWV9KWAsICdnaScpO1xuICAgIHRoaXMucmVjdXJzaXZlbHlIaWdobGlnaHQoZWxlbWVudCwgc2VhcmNoUmVnZXgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGFwcGxpZXMgaGlnaGxpZ2h0aW5nIHRvIHRleHQgbm9kZXMgd2l0aGluIGFuIGVsZW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIGN1cnJlbnQgbm9kZSBiZWluZyBwcm9jZXNzZWQuXG4gICAqIEBwYXJhbSBzZWFyY2hSZWdleCAtIFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgbWF0Y2hpbmcgdGV4dCB0byBoaWdobGlnaHQuXG4gICAqL1xuICBwcml2YXRlIHJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KGVsZW1lbnQ6IE5vZGUsIHNlYXJjaFJlZ2V4OiBSZWdFeHApOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gQXJyYXkuZnJvbShlbGVtZW50LmNoaWxkTm9kZXMpO1xuXG4gICAgY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgICAgY29uc3QgdGV4dENvbnRlbnQgPSBub2RlLnRleHRDb250ZW50IHx8ICcnO1xuICAgICAgICBpZiAodGV4dENvbnRlbnQubWF0Y2goc2VhcmNoUmVnZXgpKSB7XG4gICAgICAgICAgY29uc3QgaGlnaGxpZ2h0ZWRIVE1MID0gdGhpcy5jcmVhdGVIaWdobGlnaHRlZEhUTUwodGV4dENvbnRlbnQsIHNlYXJjaFJlZ2V4KTtcbiAgICAgICAgICBjb25zdCB0ZW1wQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgdGVtcENvbnRhaW5lci5pbm5lckhUTUwgPSBoaWdobGlnaHRlZEhUTUw7XG5cbiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcbiAgICAgICAgICBBcnJheS5mcm9tKHRlbXBDb250YWluZXIuY2hpbGROb2RlcykuZm9yRWFjaCgoY2hpbGQpID0+IGZyYWdtZW50LmFwcGVuZENoaWxkKGNoaWxkKSk7XG5cbiAgICAgICAgICBub2RlLnJlcGxhY2VXaXRoKGZyYWdtZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkge1xuICAgICAgICB0aGlzLnJlY3Vyc2l2ZWx5SGlnaGxpZ2h0KG5vZGUsIHNlYXJjaFJlZ2V4KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIEhUTUwgc3RydWN0dXJlIGZvciBoaWdobGlnaHRlZCB0ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gdGV4dENvbnRlbnQgLSBUaGUgb3JpZ2luYWwgdGV4dCBjb250ZW50IHRvIHByb2Nlc3MuXG4gICAqIEBwYXJhbSBzZWFyY2hSZWdleCAtIFJlZ3VsYXIgZXhwcmVzc2lvbiBmb3IgbWF0Y2hpbmcgdGV4dCB0byBoaWdobGlnaHQuXG4gICAqIEByZXR1cm5zIEEgc3RyaW5nIG9mIEhUTUwgd2l0aCBoaWdobGlnaHRlZCBwb3J0aW9ucyB3cmFwcGVkIGluIHNwYW4gZWxlbWVudHMuXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUhpZ2hsaWdodGVkSFRNTCh0ZXh0Q29udGVudDogc3RyaW5nLCBzZWFyY2hSZWdleDogUmVnRXhwKTogc3RyaW5nIHtcbiAgICBsZXQgcGFydHM6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IG1hdGNoO1xuICAgIGxldCBsYXN0SW5kZXggPSAwO1xuICAgIGxldCByZXN1bHRIVE1MID0gJzxzcGFuIGNsYXNzPVwiYXgtaGlnaGxpZ2h0LXRleHRcIj4nO1xuXG4gICAgd2hpbGUgKChtYXRjaCA9IHNlYXJjaFJlZ2V4LmV4ZWModGV4dENvbnRlbnQpKSAhPT0gbnVsbCkge1xuICAgICAgaWYgKG1hdGNoLmluZGV4ID4gbGFzdEluZGV4KSB7XG4gICAgICAgIHJlc3VsdEhUTUwgKz0gYDxzcGFuPiR7dGV4dENvbnRlbnQuc2xpY2UobGFzdEluZGV4LCBtYXRjaC5pbmRleCl9PC9zcGFuPmA7XG4gICAgICB9XG4gICAgICByZXN1bHRIVE1MICs9IGA8c3BhbiBjbGFzcz1cImF4LWhpZ2hsaWdodFwiPiR7bWF0Y2hbMF19PC9zcGFuPmA7XG4gICAgICBsYXN0SW5kZXggPSBzZWFyY2hSZWdleC5sYXN0SW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGxhc3RJbmRleCA8IHRleHRDb250ZW50Lmxlbmd0aCkge1xuICAgICAgcmVzdWx0SFRNTCArPSBgPHNwYW4+JHt0ZXh0Q29udGVudC5zbGljZShsYXN0SW5kZXgpfTwvc3Bhbj5gO1xuICAgIH1cblxuICAgIHJlc3VsdEhUTUwgKz0gJzwvc3Bhbj4nO1xuXG4gICAgcmV0dXJuIHJlc3VsdEhUTUw7XG4gIH1cbn1cbiJdfQ==","export function extractTextFromHtml(value) {\n const div = document.createElement('div');\n div.innerHTML = value;\n return div.textContent || div.innerText || '';\n}\n/**\n * Generate kebab-case group name from title\n */\nexport function generateKebabCase(title) {\n return title\n .toLowerCase()\n .trim()\n .replace(/[^a-z0-9\\s-]/g, '') // Remove special characters\n .replace(/\\s+/g, '-') // Replace spaces with hyphens\n .replace(/-+/g, '-') // Replace multiple hyphens with single\n .replace(/^-+|-+$/g, ''); // Remove leading/trailing hyphens\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9jb3JlL3NyYy9saWIvdXRpbHMvc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxLQUFhO0lBQy9DLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsT0FBTyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO0FBQ2hELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFhO0lBQzdDLE9BQU8sS0FBSztTQUNULFdBQVcsRUFBRTtTQUNiLElBQUksRUFBRTtTQUNOLE9BQU8sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsNEJBQTRCO1NBQ3pELE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsOEJBQThCO1NBQ25ELE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsdUNBQXVDO1NBQzNELE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0M7QUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBleHRyYWN0VGV4dEZyb21IdG1sKHZhbHVlOiBzdHJpbmcpIHtcbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gIGRpdi5pbm5lckhUTUwgPSB2YWx1ZTtcbiAgcmV0dXJuIGRpdi50ZXh0Q29udGVudCB8fCBkaXYuaW5uZXJUZXh0IHx8ICcnO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGtlYmFiLWNhc2UgZ3JvdXAgbmFtZSBmcm9tIHRpdGxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUtlYmFiQ2FzZSh0aXRsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRpdGxlXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAudHJpbSgpXG4gICAgLnJlcGxhY2UoL1teYS16MC05XFxzLV0vZywgJycpIC8vIFJlbW92ZSBzcGVjaWFsIGNoYXJhY3RlcnNcbiAgICAucmVwbGFjZSgvXFxzKy9nLCAnLScpIC8vIFJlcGxhY2Ugc3BhY2VzIHdpdGggaHlwaGVuc1xuICAgIC5yZXBsYWNlKC8tKy9nLCAnLScpIC8vIFJlcGxhY2UgbXVsdGlwbGUgaHlwaGVucyB3aXRoIHNpbmdsZVxuICAgIC5yZXBsYWNlKC9eLSt8LSskL2csICcnKTsgLy8gUmVtb3ZlIGxlYWRpbmcvdHJhaWxpbmcgaHlwaGVuc1xufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWNvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2NvcmUvc3JjL2Fjb3JleC1wbGF0Zm9ybS1jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i18n"],"mappings":"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"}
|