@acorex/platform 20.3.0-next.1 → 20.3.0-next.11
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 +125 -12
- package/core/index.d.ts +656 -100
- package/fesm2022/acorex-platform-auth.mjs +20 -20
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +120 -148
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +885 -261
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +16 -16
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +1615 -662
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +3327 -157
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +172 -210
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs +52 -0
- package/fesm2022/acorex-platform-layout-entity-create-entity.command-764ie8R8.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity.mjs +4522 -1643
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +398 -89
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +40 -40
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-hHXxHlFG.mjs → acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs} +7 -7
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Ct-ri59W.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs +706 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-7BB4LdjK.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs +101 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BDJR088o.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs +244 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BExtm1JE.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D4glpFvU.mjs.map → acorex-platform-themes-default-error-401.component-DrO1PEOH.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-404.component-BvGeDMjo.mjs.map → acorex-platform-themes-default-error-404.component-DqVq0oHX.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs} +4 -4
- package/fesm2022/{acorex-platform-themes-default-error-offline.component-BINy-Zo3.mjs.map → acorex-platform-themes-default-error-offline.component-Bt2PTL7_.mjs.map} +1 -1
- package/fesm2022/acorex-platform-themes-default.mjs +64 -509
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs} +24 -14
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BgEh06Tn.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs → acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs} +2 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CLUKU4y0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs} +23 -8
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-AeOQxjbS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs} +23 -8
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DEVzRd6-.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +250 -85
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-lNF95FJv.mjs → acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs} +7 -7
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-DSaD9Fwc.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs +50 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-edit.component-D9mf08rU.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs +42 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-schema-widget-view.component-D6GQ-eyr.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs +55 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-edit.component-DVbIdVZ6.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs +50 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-values-widget-view.component-D-aM64Hu.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs +48 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-edit.component-em2-aU8E.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs +42 -0
- package/fesm2022/acorex-platform-widgets-extra-properties-widget-view.component-BeuIofdr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-DFbPO0ud.mjs → acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs} +72 -7
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-Cmtq2bBV.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DRsLkulH.mjs → acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs} +79 -69
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-B-ZEi2yd.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-nLZYiPnF.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs} +13 -13
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-CMqq_iOj.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-D6kiasYM.mjs → acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs} +8 -7
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CRpjdiNz.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-CCMQtH3e.mjs → acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs} +9 -14
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-DeSmBqMa.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +9152 -7181
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +28 -25
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/layout/builder/index.d.ts +419 -185
- package/layout/components/index.d.ts +1129 -24
- package/layout/designer/index.d.ts +20 -49
- package/layout/entity/index.d.ts +424 -332
- package/layout/views/index.d.ts +129 -22
- package/package.json +23 -37
- package/widgets/index.d.ts +1908 -783
- package/workflow/index.d.ts +4 -1
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-SY0oMDoH.mjs +0 -22
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-SY0oMDoH.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-hHXxHlFG.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-hf4QOz_4.mjs +0 -665
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-hf4QOz_4.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DC3MrDtI.mjs +0 -108
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DC3MrDtI.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bb90PeHq.mjs +0 -236
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Bb90PeHq.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-color-chooser-column.component-DjKLg513.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-color-chooser-view.component-DE0wO98F.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-C833prGO.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-lNF95FJv.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-BNBOATPB.mjs +0 -85
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-BNBOATPB.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-BI18uzNZ.mjs +0 -55
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-BI18uzNZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs +0 -76
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-C6-QPsnb.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-pYOQv5g8.mjs +0 -55
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-pYOQv5g8.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-DFbPO0ud.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs +0 -211
- package/fesm2022/acorex-platform-widgets-file-rename-popup.component-DA_CgIvm.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DRsLkulH.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs +0 -40
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CM_v-cL4.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-nLZYiPnF.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-D6kiasYM.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-CCMQtH3e.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-components.mjs","sources":["../tmp-esm2022/layout/components/lib/activity-log/activity-log.component.js","../tmp-esm2022/layout/components/lib/badge/task-badge.type.js","../tmp-esm2022/layout/components/lib/badge/task-badge.service.js","../tmp-esm2022/layout/components/lib/badge/badge.directive.js","../tmp-esm2022/layout/components/lib/badge/badge-helper.js","../tmp-esm2022/layout/components/lib/blocks/layout-actions.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-blocks.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-footer.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-header.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-list.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-section.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-side.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-tool-bar.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-container.component.js","../tmp-esm2022/layout/components/lib/compare-view/compare-view.component.js","../tmp-esm2022/layout/components/lib/component-slot/component-slot.types.js","../tmp-esm2022/layout/components/lib/component-slot/component-slot-registery.service.js","../tmp-esm2022/layout/components/lib/component-slot/component-slot.directive.js","../tmp-esm2022/layout/components/lib/component-slot/component-slot.module.js","../tmp-esm2022/layout/components/lib/dynamic-form/dynamic-form.component.js","../tmp-esm2022/layout/components/lib/filters/layout-filters.component.js","../tmp-esm2022/layout/components/lib/user-avatar/user-avatar.provider.js","../tmp-esm2022/layout/components/lib/user-avatar/user-avatar.service.js","../tmp-esm2022/layout/components/lib/user-avatar/user-avatar.component.js","../tmp-esm2022/layout/components/lib/widget-item/widget-item.component.js","../tmp-esm2022/layout/components/acorex-platform-layout-components.js"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { getSystemActions } from '@acorex/platform/core';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, inject, ViewEncapsulation, signal, effect } from '@angular/core';\nimport { AXAccordionCdkModule } from '@acorex/cdk/accordion';\nimport { AXTagModule } from '@acorex/components/tag';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/core/translation\";\nimport * as i3 from \"@acorex/components/skeleton\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"@acorex/core/format\";\n//#region ---- Component Definition ----\nexport class AXPActivityLogComponent {\n //#endregion\n //#region ---- Constructor & Lifecycle ----\n constructor() {\n //#endregion\n //#region ---- Services & Dependencies ----\n this.translateService = inject(AXTranslationService);\n this.workflowService = inject(AXPWorkflowService);\n //#endregion\n //#region ---- Input Properties ----\n /**\n * Array of activity logs to display\n */\n this.activities = input([], ...(ngDevMode ? [{ debugName: \"activities\" }] : []));\n /**\n * Whether the component is in loading state\n */\n this.loading = input(false, ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n //#endregion\n //#region ---- Component Properties ----\n this.i18nScope = 'activity-log';\n this.Object = Object;\n /**\n * Set of expanded activity IDs\n */\n this.expandedItems = signal(new Set(), ...(ngDevMode ? [{ debugName: \"expandedItems\" }] : []));\n /**\n * Flag to track if component has been initialized\n */\n this.isInitialized = signal(false, ...(ngDevMode ? [{ debugName: \"isInitialized\" }] : []));\n /**\n * Set of items that have been manually toggled (for animation control)\n */\n this.manuallyToggledItems = signal(new Set(), ...(ngDevMode ? [{ debugName: \"manuallyToggledItems\" }] : []));\n // Auto-expand top 5 items when activities change\n effect(() => {\n const activities = this.activities();\n const currentExpanded = this.expandedItems();\n const initialized = this.isInitialized();\n // Only auto-expand if not initialized and activities exist\n if (!initialized && activities.length > 0 && currentExpanded.size === 0) {\n const top5Ids = activities.slice(0, 5).map((activity) => activity.id);\n this.expandedItems.set(new Set(top5Ids));\n this.isInitialized.set(true);\n }\n });\n }\n //#endregion\n //#region ---- Utility Methods ----\n /**\n * Gets the appropriate CSS class for the change type\n */\n getChangeClasses(changeType) {\n const action = getSystemActions(changeType);\n return {\n surface: action?.color ? `ax-${action.color}-surface` : 'ax-muted-surface',\n text: action?.color ? `ax-text-${action.color}` : 'ax-text-muted',\n icon: action?.icon ? `${action.icon}` : 'fa-light fa-pen'\n };\n }\n /**\n * Checks if an activity item is expanded\n */\n isExpanded(activityId) {\n return this.expandedItems().has(activityId);\n }\n /**\n * Toggles the expanded state of an activity item\n */\n toggleExpanded(activityId) {\n const currentExpanded = new Set(this.expandedItems());\n const currentManuallyToggled = new Set(this.manuallyToggledItems());\n // Mark this item as manually toggled for animation purposes\n currentManuallyToggled.add(activityId);\n this.manuallyToggledItems.set(currentManuallyToggled);\n if (currentExpanded.has(activityId)) {\n currentExpanded.delete(activityId);\n }\n else {\n currentExpanded.add(activityId);\n }\n this.expandedItems.set(currentExpanded);\n }\n /**\n * Checks if an item should have expand/collapse animation\n */\n shouldAnimate(activityId) {\n return this.manuallyToggledItems().has(activityId);\n }\n /**\n * Checks if an activity has expandable content (changes)\n */\n hasExpandableContent(activity) {\n return activity.changes && activity.changes.length > 0;\n }\n //#endregion\n //#region ---- Compare Methods ----\n /**\n * Handles the compare action for an activity\n */\n async handleCompare(activity, event) {\n event.stopPropagation(); // Prevent expanding/collapsing when clicking compare\n // Get the previous activity for comparison\n const currentIndex = this.activities().findIndex(a => a.id === activity.id);\n if (currentIndex <= 0)\n return; // No previous activity to compare with\n const previousActivity = this.activities()[currentIndex - 1];\n const ids = [\n previousActivity.id,\n activity.id\n ];\n // Execute the compare workflow\n await this.workflowService.execute('show-entity-record-versions-compare', {\n entity: activity.reference.type,\n data: {\n refId: activity.reference.id,\n refType: activity.reference.type,\n ids: ids\n }\n });\n }\n /**\n * Checks if an activity can be compared (has a previous version)\n */\n canCompare(activity) {\n const currentIndex = this.activities().findIndex(a => a.id === activity.id);\n return currentIndex > 0; // Can compare if not the first activity\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPActivityLogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPActivityLogComponent, isStandalone: true, selector: \"axp-activity-log\", inputs: { activities: { classPropertyName: \"activities\", publicName: \"activities\", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: \"loading\", publicName: \"loading\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"axp-activity-log ax-accent2\\\" *translate=\\\"let t\\\">\\n\\n <!-- Activity Log Content -->\\n <div class=\\\"__content\\\">\\n\\n <!-- Loading State -->\\n @if (loading()) {\\n <div class=\\\"__loading\\\">\\n @for (item of [1,2,3,4]; track $index) {\\n <div class=\\\"__item\\\">\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__avatar\\\"></ax-skeleton>\\n <div class=\\\"__content\\\">\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__title\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__subtitle\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__description\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__time\\\"></ax-skeleton>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Activity Feed -->\\n @if (!loading() && activities().length > 0) {\\n <div class=\\\"__feed\\\">\\n @for (activity of activities(); track activity.id) {\\n @let changeClasses = getChangeClasses(activity.changeType);\\n @let isItemExpanded = isExpanded(activity.id);\\n @let hasExpandableContentItem = hasExpandableContent(activity);\\n <div class=\\\"__item\\\" [class.__collapsed]=\\\"!isItemExpanded\\\" [class.__expandable]=\\\"hasExpandableContentItem\\\">\\n\\n <div\\n class=\\\"ax-size-10 ax-rounded-full ax-border ax-flex ax-items-center ax-justify-center ax-lightest-surface \\\">\\n <i class=\\\"{{changeClasses.icon}} {{changeClasses.text}} fa-solid\\\"></i>\\n </div>\\n\\n <!-- Activity Content -->\\n <div class=\\\"__content\\\">\\n <!-- Main Activity Info -->\\n <div class=\\\"__main-info\\\">\\n\\n <!-- User and Action with Toggle Button -->\\n <div class=\\\"__action-line __header-line\\\" (click)=\\\"toggleExpanded(activity.id)\\\">\\n <span class=\\\"__user-name\\\">{{ activity.user.title }}</span>\\n <span class=\\\"__action-type\\\">\\n {{ t(`actions.${activity.changeType}.title`, {\\n scope: 'general' }) | async }}\\n </span>\\n <span class=\\\"__action-text\\\">\\n {{ activity.title | translate | async }}\\n </span>\\n\\n <!-- Compare Button -->\\n @if (canCompare(activity)) {\\n <button type=\\\"button\\\" class=\\\"__compare-button\\\" (click)=\\\"handleCompare(activity, $event)\\\"\\n [attr.aria-label]=\\\"t('compare.title', { scope: i18nScope }) | async\\\">\\n <i class=\\\"fa-solid fa-code-compare\\\"></i>\\n </button>\\n }\\n\\n <!-- Toggle Button (only show if there's expandable content) -->\\n @if (hasExpandableContentItem) {\\n <button type=\\\"button\\\" class=\\\"__toggle-button\\\" [attr.aria-expanded]=\\\"isItemExpanded\\\"\\n [attr.aria-label]=\\\"isItemExpanded ? 'Collapse details' : 'Expand details'\\\">\\n <i class=\\\"fa-solid\\\" [class.fa-chevron-down]=\\\"!isItemExpanded\\\"\\n [class.fa-chevron-up]=\\\"isItemExpanded\\\"></i>\\n </button>\\n }\\n </div>\\n\\n <!-- Expandable Description/Changes -->\\n @if (hasExpandableContentItem && isItemExpanded && activity.changes.length > 0) {\\n <div class=\\\"__action-lines __expandable-content\\\"\\n [class.__animated]=\\\"shouldAnimate(activity.id)\\\">\\n @for (change of activity.changes; track $index) {\\n @let changeClasses = getChangeClasses(change.type);\\n <div class=\\\"__action-line\\\">\\n <div class=\\\"ax-rounded-full ax-size-7 ax-grid ax-place-items-center\\\">\\n <i class=\\\"{{changeClasses.icon}} {{changeClasses.text}}\\\"></i>\\n </div>\\n <span class=\\\"__action-text\\\">{{\\n change.description | translate | async }}</span>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- Time -->\\n <div class=\\\"__time\\\">\\n {{ activity.date | format: 'datetime' : 'short' | async }}\\n </div>\\n\\n </div>\\n\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (!loading() && activities().length === 0) {\\n <div class=\\\"__empty\\\">\\n <div class=\\\"__icon\\\">\\n <ax-icon icon=\\\"fa-light fa-history\\\" class=\\\"__svg\\\"></ax-icon>\\n </div>\\n <div class=\\\"__content\\\">\\n <h4 class=\\\"__title\\\">{{ t('no-history.title', { scope: i18nScope }) | async }}</h4>\\n <p class=\\\"__message\\\">{{ t('no-history.message', { scope: i18nScope }) | async }}\\n </p>\\n </div>\\n </div>\\n }\\n\\n </div>\\n</div>\\n\\n<!-- \\n\\nax-success-surface\\nax-primary-surface\\nax-danger-surface\\nax-warning-surface\\nax-info-surface\\nax-muted-surface\\nax-text-success\\n\\n -->\", styles: [\".axp-activity-log{height:100%;width:100%}.axp-activity-log .__content .__loading>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__loading .__item{display:flex;align-items:flex-start;gap:1rem}.axp-activity-log .__content .__loading .__item .__avatar{height:3rem;width:3rem;flex-shrink:0;border-radius:9999px}.axp-activity-log .__content .__loading .__item .__content{flex:1 1 0%}.axp-activity-log .__content .__loading .__item .__content>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__loading .__item .__content .__title{height:1rem;width:75%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__subtitle{height:.75rem;width:50%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__description{height:.75rem;width:83.333333%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__time{height:.75rem;width:25%;border-radius:.25rem}.axp-activity-log .__content .__feed{position:relative}.axp-activity-log .__content .__feed>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__feed:before{content:\\\"\\\";position:absolute;inset-inline-start:1.25rem;top:.5rem;bottom:.5rem;width:0px;border-left:1px solid rgba(var(--ax-sys-color-border-surface));z-index:0}.axp-activity-log .__content .__feed .__item{position:relative;display:flex;align-items:flex-start;gap:1rem}.axp-activity-log .__content .__feed .__item axp-user-avatar{position:relative;z-index:10}.axp-activity-log .__content .__feed .__item .__content{min-width:0px;flex:1 1 0%}.axp-activity-log .__content .__feed .__item .__content .__main-info{margin-bottom:.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line{margin-top:.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;line-height:1.5}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__user-name{font-weight:600}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__action-type,.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__action-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;opacity:.85}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line{align-items:center;border-radius:.375rem;padding:.25rem .5rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line:hover{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button{margin-left:.5rem;border-radius:9999px;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button:hover{background-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-surface));border-color:rgb(var(--ax-sys-color-border-primary-surface))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgba(var(--ax-sys-color-primary-500), var(--tw-ring-opacity, 1));--tw-ring-offset-width: 1px}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button i{font-size:.75rem;line-height:1rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button{margin-left:auto;border-radius:9999px;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgba(var(--ax-sys-color-primary-500), var(--tw-ring-opacity, 1));--tw-ring-offset-width: 1px}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button i{font-size:.75rem;line-height:1rem;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines{margin-top:.5rem;margin-bottom:.5rem;display:flex;flex-direction:column;font-size:.875rem;line-height:1.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines.__expandable-content{overflow:hidden}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines.__expandable-content.__animated{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1);animation:slideDown .3s ease-out}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines .__action-line{display:flex;align-items:center;gap:.5rem;padding-top:.25rem;padding-bottom:.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines .__action-line .__action-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;opacity:.85}.axp-activity-log .__content .__feed .__item .__content .__time{padding-left:.5rem;padding-right:.5rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-activity-log .__content .__feed .__item.__collapsed .__expandable-content{display:none}.axp-activity-log .__content .__feed .__item.__expandable .__header-line{cursor:pointer}.axp-activity-log .__content .__empty{display:flex;height:12rem;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-activity-log .__content .__empty .__icon{margin-bottom:1rem}.axp-activity-log .__content .__empty .__icon .__svg{font-size:2.25rem;line-height:2.5rem;--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.axp-activity-log .__content .__empty .__content .__title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.axp-activity-log .__content .__empty .__content .__message{max-width:20rem;line-height:1.625;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.axp-activity-log .__content .__feed .__item{gap:.625rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line{flex-wrap:nowrap}}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:200px;transform:translateY(0)}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i2.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i3.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"ngmodule\", type: AXTagModule }, { kind: \"ngmodule\", type: AXAccordionCdkModule }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }, { kind: \"pipe\", type: i5.AXFormatPipe, name: \"format\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPActivityLogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-activity-log', standalone: true, imports: [\n CommonModule,\n AXButtonModule,\n AXCommonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXSkeletonModule,\n AXFormatModule,\n AXTagModule,\n AXAccordionCdkModule,\n ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"axp-activity-log ax-accent2\\\" *translate=\\\"let t\\\">\\n\\n <!-- Activity Log Content -->\\n <div class=\\\"__content\\\">\\n\\n <!-- Loading State -->\\n @if (loading()) {\\n <div class=\\\"__loading\\\">\\n @for (item of [1,2,3,4]; track $index) {\\n <div class=\\\"__item\\\">\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__avatar\\\"></ax-skeleton>\\n <div class=\\\"__content\\\">\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__title\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__subtitle\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__description\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__time\\\"></ax-skeleton>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Activity Feed -->\\n @if (!loading() && activities().length > 0) {\\n <div class=\\\"__feed\\\">\\n @for (activity of activities(); track activity.id) {\\n @let changeClasses = getChangeClasses(activity.changeType);\\n @let isItemExpanded = isExpanded(activity.id);\\n @let hasExpandableContentItem = hasExpandableContent(activity);\\n <div class=\\\"__item\\\" [class.__collapsed]=\\\"!isItemExpanded\\\" [class.__expandable]=\\\"hasExpandableContentItem\\\">\\n\\n <div\\n class=\\\"ax-size-10 ax-rounded-full ax-border ax-flex ax-items-center ax-justify-center ax-lightest-surface \\\">\\n <i class=\\\"{{changeClasses.icon}} {{changeClasses.text}} fa-solid\\\"></i>\\n </div>\\n\\n <!-- Activity Content -->\\n <div class=\\\"__content\\\">\\n <!-- Main Activity Info -->\\n <div class=\\\"__main-info\\\">\\n\\n <!-- User and Action with Toggle Button -->\\n <div class=\\\"__action-line __header-line\\\" (click)=\\\"toggleExpanded(activity.id)\\\">\\n <span class=\\\"__user-name\\\">{{ activity.user.title }}</span>\\n <span class=\\\"__action-type\\\">\\n {{ t(`actions.${activity.changeType}.title`, {\\n scope: 'general' }) | async }}\\n </span>\\n <span class=\\\"__action-text\\\">\\n {{ activity.title | translate | async }}\\n </span>\\n\\n <!-- Compare Button -->\\n @if (canCompare(activity)) {\\n <button type=\\\"button\\\" class=\\\"__compare-button\\\" (click)=\\\"handleCompare(activity, $event)\\\"\\n [attr.aria-label]=\\\"t('compare.title', { scope: i18nScope }) | async\\\">\\n <i class=\\\"fa-solid fa-code-compare\\\"></i>\\n </button>\\n }\\n\\n <!-- Toggle Button (only show if there's expandable content) -->\\n @if (hasExpandableContentItem) {\\n <button type=\\\"button\\\" class=\\\"__toggle-button\\\" [attr.aria-expanded]=\\\"isItemExpanded\\\"\\n [attr.aria-label]=\\\"isItemExpanded ? 'Collapse details' : 'Expand details'\\\">\\n <i class=\\\"fa-solid\\\" [class.fa-chevron-down]=\\\"!isItemExpanded\\\"\\n [class.fa-chevron-up]=\\\"isItemExpanded\\\"></i>\\n </button>\\n }\\n </div>\\n\\n <!-- Expandable Description/Changes -->\\n @if (hasExpandableContentItem && isItemExpanded && activity.changes.length > 0) {\\n <div class=\\\"__action-lines __expandable-content\\\"\\n [class.__animated]=\\\"shouldAnimate(activity.id)\\\">\\n @for (change of activity.changes; track $index) {\\n @let changeClasses = getChangeClasses(change.type);\\n <div class=\\\"__action-line\\\">\\n <div class=\\\"ax-rounded-full ax-size-7 ax-grid ax-place-items-center\\\">\\n <i class=\\\"{{changeClasses.icon}} {{changeClasses.text}}\\\"></i>\\n </div>\\n <span class=\\\"__action-text\\\">{{\\n change.description | translate | async }}</span>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- Time -->\\n <div class=\\\"__time\\\">\\n {{ activity.date | format: 'datetime' : 'short' | async }}\\n </div>\\n\\n </div>\\n\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (!loading() && activities().length === 0) {\\n <div class=\\\"__empty\\\">\\n <div class=\\\"__icon\\\">\\n <ax-icon icon=\\\"fa-light fa-history\\\" class=\\\"__svg\\\"></ax-icon>\\n </div>\\n <div class=\\\"__content\\\">\\n <h4 class=\\\"__title\\\">{{ t('no-history.title', { scope: i18nScope }) | async }}</h4>\\n <p class=\\\"__message\\\">{{ t('no-history.message', { scope: i18nScope }) | async }}\\n </p>\\n </div>\\n </div>\\n }\\n\\n </div>\\n</div>\\n\\n<!-- \\n\\nax-success-surface\\nax-primary-surface\\nax-danger-surface\\nax-warning-surface\\nax-info-surface\\nax-muted-surface\\nax-text-success\\n\\n -->\", styles: [\".axp-activity-log{height:100%;width:100%}.axp-activity-log .__content .__loading>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__loading .__item{display:flex;align-items:flex-start;gap:1rem}.axp-activity-log .__content .__loading .__item .__avatar{height:3rem;width:3rem;flex-shrink:0;border-radius:9999px}.axp-activity-log .__content .__loading .__item .__content{flex:1 1 0%}.axp-activity-log .__content .__loading .__item .__content>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__loading .__item .__content .__title{height:1rem;width:75%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__subtitle{height:.75rem;width:50%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__description{height:.75rem;width:83.333333%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__time{height:.75rem;width:25%;border-radius:.25rem}.axp-activity-log .__content .__feed{position:relative}.axp-activity-log .__content .__feed>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__feed:before{content:\\\"\\\";position:absolute;inset-inline-start:1.25rem;top:.5rem;bottom:.5rem;width:0px;border-left:1px solid rgba(var(--ax-sys-color-border-surface));z-index:0}.axp-activity-log .__content .__feed .__item{position:relative;display:flex;align-items:flex-start;gap:1rem}.axp-activity-log .__content .__feed .__item axp-user-avatar{position:relative;z-index:10}.axp-activity-log .__content .__feed .__item .__content{min-width:0px;flex:1 1 0%}.axp-activity-log .__content .__feed .__item .__content .__main-info{margin-bottom:.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line{margin-top:.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;line-height:1.5}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__user-name{font-weight:600}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__action-type,.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__action-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;opacity:.85}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line{align-items:center;border-radius:.375rem;padding:.25rem .5rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line:hover{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button{margin-left:.5rem;border-radius:9999px;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button:hover{background-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-surface));border-color:rgb(var(--ax-sys-color-border-primary-surface))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgba(var(--ax-sys-color-primary-500), var(--tw-ring-opacity, 1));--tw-ring-offset-width: 1px}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button i{font-size:.75rem;line-height:1rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button{margin-left:auto;border-radius:9999px;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgba(var(--ax-sys-color-primary-500), var(--tw-ring-opacity, 1));--tw-ring-offset-width: 1px}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button i{font-size:.75rem;line-height:1rem;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines{margin-top:.5rem;margin-bottom:.5rem;display:flex;flex-direction:column;font-size:.875rem;line-height:1.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines.__expandable-content{overflow:hidden}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines.__expandable-content.__animated{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1);animation:slideDown .3s ease-out}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines .__action-line{display:flex;align-items:center;gap:.5rem;padding-top:.25rem;padding-bottom:.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines .__action-line .__action-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;opacity:.85}.axp-activity-log .__content .__feed .__item .__content .__time{padding-left:.5rem;padding-right:.5rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-activity-log .__content .__feed .__item.__collapsed .__expandable-content{display:none}.axp-activity-log .__content .__feed .__item.__expandable .__header-line{cursor:pointer}.axp-activity-log .__content .__empty{display:flex;height:12rem;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.axp-activity-log .__content .__empty .__icon{margin-bottom:1rem}.axp-activity-log .__content .__empty .__icon .__svg{font-size:2.25rem;line-height:2.5rem;--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.axp-activity-log .__content .__empty .__content .__title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:600;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.axp-activity-log .__content .__empty .__content .__message{max-width:20rem;line-height:1.625;--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.axp-activity-log .__content .__feed .__item{gap:.625rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line{flex-wrap:nowrap}}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:200px;transform:translateY(0)}}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBdUMsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBRXJELDRDQUE0QztBQXFCNUMsTUFBTSxPQUFPLHVCQUF1QjtJQTZDaEMsWUFBWTtJQUVaLCtDQUErQztJQUUvQztRQS9DQSxZQUFZO1FBRVosK0NBQStDO1FBRTlCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hELG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFOUQsWUFBWTtRQUVaLHdDQUF3QztRQUV4Qzs7V0FFRztRQUNILGVBQVUsR0FBRyxLQUFLLENBQW1CLEVBQUUsc0RBQUMsQ0FBQztRQUV6Qzs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQVUsS0FBSyxtREFBQyxDQUFDO1FBRWhDLFlBQVk7UUFFWiw0Q0FBNEM7UUFFekIsY0FBUyxHQUFHLGNBQWMsQ0FBQztRQUMzQixXQUFNLEdBQUcsTUFBTSxDQUFDO1FBRW5DOztXQUVHO1FBQ0ssa0JBQWEsR0FBRyxNQUFNLENBQWMsSUFBSSxHQUFHLEVBQUUseURBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNLLGtCQUFhLEdBQUcsTUFBTSxDQUFVLEtBQUsseURBQUMsQ0FBQztRQUUvQzs7V0FFRztRQUNLLHlCQUFvQixHQUFHLE1BQU0sQ0FBYyxJQUFJLEdBQUcsRUFBRSxnRUFBQyxDQUFDO1FBTzFELGlEQUFpRDtRQUNqRCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFekMsMkRBQTJEO1lBQzNELElBQUksQ0FBQyxXQUFXLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksZUFBZSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDdEUsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBd0IsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWTtJQUVaLHVDQUF1QztJQUV2Qzs7T0FFRztJQUNPLGdCQUFnQixDQUFDLFVBQStCO1FBQ3RELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE9BQU87WUFDSCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxNQUFNLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtZQUMxRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDakUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUI7U0FDNUQsQ0FBQztJQUNOLENBQUM7SUFFRDs7R0FFRDtJQUNXLFVBQVUsQ0FBQyxVQUFrQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOztHQUVEO0lBQ1csY0FBYyxDQUFDLFVBQWtCO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUVwRSw0REFBNEQ7UUFDNUQsc0JBQXNCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUV0RCxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ0osZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ08sYUFBYSxDQUFDLFVBQWtCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNPLG9CQUFvQixDQUFDLFFBQXdCO1FBQ25ELE9BQU8sUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELFlBQVk7SUFFWix1Q0FBdUM7SUFFdkM7O09BRUc7SUFDTyxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQXdCLEVBQUUsS0FBWTtRQUNoRSxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxxREFBcUQ7UUFFOUUsMkNBQTJDO1FBQzNDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFJLFlBQVksSUFBSSxDQUFDO1lBQUUsT0FBTyxDQUFDLHVDQUF1QztRQUV0RSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxHQUFHLEdBQUc7WUFDUixnQkFBZ0IsQ0FBQyxFQUFFO1lBQ25CLFFBQVEsQ0FBQyxFQUFFO1NBQ2QsQ0FBQztRQUVGLCtCQUErQjtRQUMvQixNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxFQUFFO1lBQ3RFLE1BQU0sRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUk7WUFDL0IsSUFBSSxFQUFFO2dCQUNGLEtBQUssRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzVCLE9BQU8sRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUk7Z0JBQ2hDLEdBQUcsRUFBRSxHQUFHO2FBQ1g7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxVQUFVLENBQUMsUUFBd0I7UUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLHdDQUF3QztJQUNyRSxDQUFDOzhHQS9KUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qiw2VkNsQ3BDLGl0TEErSEksdXFRRDFHSSxZQUFZLDhCQUNaLGNBQWMsOEJBQ2QsY0FBYyw4QkFDZCxpQkFBaUIsK0hBQ2pCLG1CQUFtQiw4R0FDbkIsZ0JBQWdCLGtJQUNoQixjQUFjLDhCQUNkLFdBQVcsOEJBQ1gsb0JBQW9COzsyRkFLZix1QkFBdUI7a0JBbkJuQyxTQUFTOytCQUNJLGtCQUFrQixjQUdoQixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG9CQUFvQjtxQkFDdkIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDb21tb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlLCBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFNrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NrZWxldG9uJztcbmltcG9ydCB7IEFYRm9ybWF0TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFBBY3Rpdml0eUxvZywgQVhQU3lzdGVtQWN0aW9uVHlwZSwgZ2V0U3lzdGVtQWN0aW9ucyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiwgc2lnbmFsLCBlZmZlY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQWNjb3JkaW9uQ2RrTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvYWNjb3JkaW9uJztcbmltcG9ydCB7IEFYVGFnTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhZyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50IERlZmluaXRpb24gICAtLS0tXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWFjdGl2aXR5LWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHktbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYQ29tbW9uTW9kdWxlLFxuICAgICAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICAgICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICAgICAgQVhTa2VsZXRvbk1vZHVsZSxcbiAgICAgICAgQVhGb3JtYXRNb2R1bGUsXG4gICAgICAgIEFYVGFnTW9kdWxlLFxuICAgICAgICBBWEFjY29yZGlvbkNka01vZHVsZSxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQVhQQWN0aXZpdHlMb2dDb21wb25lbnQge1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICYgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtmbG93U2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIElucHV0IFByb3BlcnRpZXMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBBcnJheSBvZiBhY3Rpdml0eSBsb2dzIHRvIGRpc3BsYXlcbiAgICAgKi9cbiAgICBhY3Rpdml0aWVzID0gaW5wdXQ8QVhQQWN0aXZpdHlMb2dbXT4oW10pO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGluIGxvYWRpbmcgc3RhdGVcbiAgICAgKi9cbiAgICBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXBvbmVudCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGkxOG5TY29wZSA9ICdhY3Rpdml0eS1sb2cnO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBPYmplY3QgPSBPYmplY3Q7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgb2YgZXhwYW5kZWQgYWN0aXZpdHkgSURzXG4gICAgICovXG4gICAgcHJpdmF0ZSBleHBhbmRlZEl0ZW1zID0gc2lnbmFsPFNldDxzdHJpbmc+PihuZXcgU2V0KCkpO1xuXG4gICAgLyoqXG4gICAgICogRmxhZyB0byB0cmFjayBpZiBjb21wb25lbnQgaGFzIGJlZW4gaW5pdGlhbGl6ZWRcbiAgICAgKi9cbiAgICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIGl0ZW1zIHRoYXQgaGF2ZSBiZWVuIG1hbnVhbGx5IHRvZ2dsZWQgKGZvciBhbmltYXRpb24gY29udHJvbClcbiAgICAgKi9cbiAgICBwcml2YXRlIG1hbnVhbGx5VG9nZ2xlZEl0ZW1zID0gc2lnbmFsPFNldDxzdHJpbmc+PihuZXcgU2V0KCkpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbnN0cnVjdG9yICYgTGlmZWN5Y2xlICAgLS0tLVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vIEF1dG8tZXhwYW5kIHRvcCA1IGl0ZW1zIHdoZW4gYWN0aXZpdGllcyBjaGFuZ2VcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2aXRpZXMgPSB0aGlzLmFjdGl2aXRpZXMoKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWRJdGVtcygpO1xuICAgICAgICAgICAgY29uc3QgaW5pdGlhbGl6ZWQgPSB0aGlzLmlzSW5pdGlhbGl6ZWQoKTtcblxuICAgICAgICAgICAgLy8gT25seSBhdXRvLWV4cGFuZCBpZiBub3QgaW5pdGlhbGl6ZWQgYW5kIGFjdGl2aXRpZXMgZXhpc3RcbiAgICAgICAgICAgIGlmICghaW5pdGlhbGl6ZWQgJiYgYWN0aXZpdGllcy5sZW5ndGggPiAwICYmIGN1cnJlbnRFeHBhbmRlZC5zaXplID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9wNUlkcyA9IGFjdGl2aXRpZXMuc2xpY2UoMCwgNSkubWFwKChhY3Rpdml0eTogQVhQQWN0aXZpdHlMb2cpID0+IGFjdGl2aXR5LmlkKTtcbiAgICAgICAgICAgICAgICB0aGlzLmV4cGFuZGVkSXRlbXMuc2V0KG5ldyBTZXQodG9wNUlkcykpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNJbml0aWFsaXplZC5zZXQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBVdGlsaXR5IE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBhcHByb3ByaWF0ZSBDU1MgY2xhc3MgZm9yIHRoZSBjaGFuZ2UgdHlwZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRDaGFuZ2VDbGFzc2VzKGNoYW5nZVR5cGU6IEFYUFN5c3RlbUFjdGlvblR5cGUpOiB7IHN1cmZhY2U6IHN0cmluZywgdGV4dDogc3RyaW5nLCBpY29uOiBzdHJpbmcgfSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IGdldFN5c3RlbUFjdGlvbnMoY2hhbmdlVHlwZSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdXJmYWNlOiBhY3Rpb24/LmNvbG9yID8gYGF4LSR7YWN0aW9uLmNvbG9yfS1zdXJmYWNlYCA6ICdheC1tdXRlZC1zdXJmYWNlJyxcbiAgICAgICAgICAgIHRleHQ6IGFjdGlvbj8uY29sb3IgPyBgYXgtdGV4dC0ke2FjdGlvbi5jb2xvcn1gIDogJ2F4LXRleHQtbXV0ZWQnLFxuICAgICAgICAgICAgaWNvbjogYWN0aW9uPy5pY29uID8gYCR7YWN0aW9uLmljb259YCA6ICdmYS1saWdodCBmYS1wZW4nXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gKiBDaGVja3MgaWYgYW4gYWN0aXZpdHkgaXRlbSBpcyBleHBhbmRlZFxuICovXG4gICAgcHJvdGVjdGVkIGlzRXhwYW5kZWQoYWN0aXZpdHlJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkSXRlbXMoKS5oYXMoYWN0aXZpdHlJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gKiBUb2dnbGVzIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiBhbiBhY3Rpdml0eSBpdGVtXG4gKi9cbiAgICBwcm90ZWN0ZWQgdG9nZ2xlRXhwYW5kZWQoYWN0aXZpdHlJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRFeHBhbmRlZCA9IG5ldyBTZXQodGhpcy5leHBhbmRlZEl0ZW1zKCkpO1xuICAgICAgICBjb25zdCBjdXJyZW50TWFudWFsbHlUb2dnbGVkID0gbmV3IFNldCh0aGlzLm1hbnVhbGx5VG9nZ2xlZEl0ZW1zKCkpO1xuXG4gICAgICAgIC8vIE1hcmsgdGhpcyBpdGVtIGFzIG1hbnVhbGx5IHRvZ2dsZWQgZm9yIGFuaW1hdGlvbiBwdXJwb3Nlc1xuICAgICAgICBjdXJyZW50TWFudWFsbHlUb2dnbGVkLmFkZChhY3Rpdml0eUlkKTtcbiAgICAgICAgdGhpcy5tYW51YWxseVRvZ2dsZWRJdGVtcy5zZXQoY3VycmVudE1hbnVhbGx5VG9nZ2xlZCk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRFeHBhbmRlZC5oYXMoYWN0aXZpdHlJZCkpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBhbmRlZC5kZWxldGUoYWN0aXZpdHlJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwYW5kZWQuYWRkKGFjdGl2aXR5SWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leHBhbmRlZEl0ZW1zLnNldChjdXJyZW50RXhwYW5kZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhbiBpdGVtIHNob3VsZCBoYXZlIGV4cGFuZC9jb2xsYXBzZSBhbmltYXRpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2hvdWxkQW5pbWF0ZShhY3Rpdml0eUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFudWFsbHlUb2dnbGVkSXRlbXMoKS5oYXMoYWN0aXZpdHlJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGFuIGFjdGl2aXR5IGhhcyBleHBhbmRhYmxlIGNvbnRlbnQgKGNoYW5nZXMpXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGhhc0V4cGFuZGFibGVDb250ZW50KGFjdGl2aXR5OiBBWFBBY3Rpdml0eUxvZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gYWN0aXZpdHkuY2hhbmdlcyAmJiBhY3Rpdml0eS5jaGFuZ2VzLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXBhcmUgTWV0aG9kcyAgIC0tLS1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgdGhlIGNvbXBhcmUgYWN0aW9uIGZvciBhbiBhY3Rpdml0eVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhc3luYyBoYW5kbGVDb21wYXJlKGFjdGl2aXR5OiBBWFBBY3Rpdml0eUxvZywgZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBQcmV2ZW50IGV4cGFuZGluZy9jb2xsYXBzaW5nIHdoZW4gY2xpY2tpbmcgY29tcGFyZVxuXG4gICAgICAgIC8vIEdldCB0aGUgcHJldmlvdXMgYWN0aXZpdHkgZm9yIGNvbXBhcmlzb25cbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5hY3Rpdml0aWVzKCkuZmluZEluZGV4KGEgPT4gYS5pZCA9PT0gYWN0aXZpdHkuaWQpO1xuICAgICAgICBpZiAoY3VycmVudEluZGV4IDw9IDApIHJldHVybjsgLy8gTm8gcHJldmlvdXMgYWN0aXZpdHkgdG8gY29tcGFyZSB3aXRoXG5cbiAgICAgICAgY29uc3QgcHJldmlvdXNBY3Rpdml0eSA9IHRoaXMuYWN0aXZpdGllcygpW2N1cnJlbnRJbmRleCAtIDFdO1xuICAgICAgICBjb25zdCBpZHMgPSBbXG4gICAgICAgICAgICBwcmV2aW91c0FjdGl2aXR5LmlkLFxuICAgICAgICAgICAgYWN0aXZpdHkuaWRcbiAgICAgICAgXTtcblxuICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb21wYXJlIHdvcmtmbG93XG4gICAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3dTZXJ2aWNlLmV4ZWN1dGUoJ3Nob3ctZW50aXR5LXJlY29yZC12ZXJzaW9ucy1jb21wYXJlJywge1xuICAgICAgICAgICAgZW50aXR5OiBhY3Rpdml0eS5yZWZlcmVuY2UudHlwZSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICByZWZJZDogYWN0aXZpdHkucmVmZXJlbmNlLmlkLFxuICAgICAgICAgICAgICAgIHJlZlR5cGU6IGFjdGl2aXR5LnJlZmVyZW5jZS50eXBlLFxuICAgICAgICAgICAgICAgIGlkczogaWRzXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhbiBhY3Rpdml0eSBjYW4gYmUgY29tcGFyZWQgKGhhcyBhIHByZXZpb3VzIHZlcnNpb24pXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNhbkNvbXBhcmUoYWN0aXZpdHk6IEFYUEFjdGl2aXR5TG9nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuYWN0aXZpdGllcygpLmZpbmRJbmRleChhID0+IGEuaWQgPT09IGFjdGl2aXR5LmlkKTtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleCA+IDA7IC8vIENhbiBjb21wYXJlIGlmIG5vdCB0aGUgZmlyc3QgYWN0aXZpdHlcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn0gIiwiPGRpdiBjbGFzcz1cImF4cC1hY3Rpdml0eS1sb2cgYXgtYWNjZW50MlwiICp0cmFuc2xhdGU9XCJsZXQgdFwiPlxuXG4gICAgPCEtLSBBY3Rpdml0eSBMb2cgQ29udGVudCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiX19jb250ZW50XCI+XG5cbiAgICAgICAgPCEtLSBMb2FkaW5nIFN0YXRlIC0tPlxuICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiX19sb2FkaW5nXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIFsxLDIsMyw0XTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19pdGVtXCI+XG4gICAgICAgICAgICAgICAgPGF4LXNrZWxldG9uIFthbmltYXRlZF09XCJ0cnVlXCIgY2xhc3M9XCJfX2F2YXRhclwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cInRydWVcIiBjbGFzcz1cIl9fdGl0bGVcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cInRydWVcIiBjbGFzcz1cIl9fc3VidGl0bGVcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cInRydWVcIiBjbGFzcz1cIl9fZGVzY3JpcHRpb25cIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cInRydWVcIiBjbGFzcz1cIl9fdGltZVwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEFjdGl2aXR5IEZlZWQgLS0+XG4gICAgICAgIEBpZiAoIWxvYWRpbmcoKSAmJiBhY3Rpdml0aWVzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiX19mZWVkXCI+XG4gICAgICAgICAgICBAZm9yIChhY3Rpdml0eSBvZiBhY3Rpdml0aWVzKCk7IHRyYWNrIGFjdGl2aXR5LmlkKSB7XG4gICAgICAgICAgICBAbGV0IGNoYW5nZUNsYXNzZXMgPSBnZXRDaGFuZ2VDbGFzc2VzKGFjdGl2aXR5LmNoYW5nZVR5cGUpO1xuICAgICAgICAgICAgQGxldCBpc0l0ZW1FeHBhbmRlZCA9IGlzRXhwYW5kZWQoYWN0aXZpdHkuaWQpO1xuICAgICAgICAgICAgQGxldCBoYXNFeHBhbmRhYmxlQ29udGVudEl0ZW0gPSBoYXNFeHBhbmRhYmxlQ29udGVudChhY3Rpdml0eSk7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19pdGVtXCIgW2NsYXNzLl9fY29sbGFwc2VkXT1cIiFpc0l0ZW1FeHBhbmRlZFwiIFtjbGFzcy5fX2V4cGFuZGFibGVdPVwiaGFzRXhwYW5kYWJsZUNvbnRlbnRJdGVtXCI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtc2l6ZS0xMCBheC1yb3VuZGVkLWZ1bGwgYXgtYm9yZGVyIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LWxpZ2h0ZXN0LXN1cmZhY2UgIFwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInt7Y2hhbmdlQ2xhc3Nlcy5pY29ufX0ge3tjaGFuZ2VDbGFzc2VzLnRleHR9fSBmYS1zb2xpZFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwhLS0gQWN0aXZpdHkgQ29udGVudCAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTWFpbiBBY3Rpdml0eSBJbmZvIC0tPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19tYWluLWluZm9cIj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBVc2VyIGFuZCBBY3Rpb24gd2l0aCBUb2dnbGUgQnV0dG9uIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fYWN0aW9uLWxpbmUgX19oZWFkZXItbGluZVwiIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZChhY3Rpdml0eS5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIl9fdXNlci1uYW1lXCI+e3sgYWN0aXZpdHkudXNlci50aXRsZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIl9fYWN0aW9uLXR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdChgYWN0aW9ucy4ke2FjdGl2aXR5LmNoYW5nZVR5cGV9LnRpdGxlYCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZTogJ2dlbmVyYWwnIH0pIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJfX2FjdGlvbi10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2aXR5LnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIENvbXBhcmUgQnV0dG9uIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY2FuQ29tcGFyZShhY3Rpdml0eSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIl9fY29tcGFyZS1idXR0b25cIiAoY2xpY2spPVwiaGFuZGxlQ29tcGFyZShhY3Rpdml0eSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY29tcGFyZS50aXRsZScsIHsgc2NvcGU6IGkxOG5TY29wZSB9KSB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY29kZS1jb21wYXJlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVG9nZ2xlIEJ1dHRvbiAob25seSBzaG93IGlmIHRoZXJlJ3MgZXhwYW5kYWJsZSBjb250ZW50KSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGhhc0V4cGFuZGFibGVDb250ZW50SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiX190b2dnbGUtYnV0dG9uXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc0l0ZW1FeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXNJdGVtRXhwYW5kZWQgPyAnQ29sbGFwc2UgZGV0YWlscycgOiAnRXhwYW5kIGRldGFpbHMnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWRcIiBbY2xhc3MuZmEtY2hldnJvbi1kb3duXT1cIiFpc0l0ZW1FeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmEtY2hldnJvbi11cF09XCJpc0l0ZW1FeHBhbmRlZFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBFeHBhbmRhYmxlIERlc2NyaXB0aW9uL0NoYW5nZXMgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGhhc0V4cGFuZGFibGVDb250ZW50SXRlbSAmJiBpc0l0ZW1FeHBhbmRlZCAmJiBhY3Rpdml0eS5jaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2FjdGlvbi1saW5lcyBfX2V4cGFuZGFibGUtY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLl9fYW5pbWF0ZWRdPVwic2hvdWxkQW5pbWF0ZShhY3Rpdml0eS5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChjaGFuZ2Ugb2YgYWN0aXZpdHkuY2hhbmdlczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGxldCBjaGFuZ2VDbGFzc2VzID0gZ2V0Q2hhbmdlQ2xhc3NlcyhjaGFuZ2UudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fYWN0aW9uLWxpbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXJvdW5kZWQtZnVsbCBheC1zaXplLTcgYXgtZ3JpZCBheC1wbGFjZS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3tjaGFuZ2VDbGFzc2VzLmljb259fSB7e2NoYW5nZUNsYXNzZXMudGV4dH19XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJfX2FjdGlvbi10ZXh0XCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZS5kZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRpbWUgLS0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX3RpbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2aXR5LmRhdGUgfCBmb3JtYXQ6ICdkYXRldGltZScgOiAnc2hvcnQnIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBFbXB0eSBTdGF0ZSAtLT5cbiAgICAgICAgQGlmICghbG9hZGluZygpICYmIGFjdGl2aXRpZXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIl9fZW1wdHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2ljb25cIj5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtbGlnaHQgZmEtaGlzdG9yeVwiIGNsYXNzPVwiX19zdmdcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJfX3RpdGxlXCI+e3sgdCgnbm8taGlzdG9yeS50aXRsZScsIHsgc2NvcGU6IGkxOG5TY29wZSB9KSB8IGFzeW5jIH19PC9oND5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIl9fbWVzc2FnZVwiPnt7IHQoJ25vLWhpc3RvcnkubWVzc2FnZScsIHsgc2NvcGU6IGkxOG5TY29wZSB9KSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIFxuXG5heC1zdWNjZXNzLXN1cmZhY2VcbmF4LXByaW1hcnktc3VyZmFjZVxuYXgtZGFuZ2VyLXN1cmZhY2VcbmF4LXdhcm5pbmctc3VyZmFjZVxuYXgtaW5mby1zdXJmYWNlXG5heC1tdXRlZC1zdXJmYWNlXG5heC10ZXh0LXN1Y2Nlc3NcblxuIC0tPiJdfQ==","import { InjectionToken } from \"@angular/core\";\nexport const AXP_TASK_BADGE_PROVIDERS = new InjectionToken('AXP_TASK_BADGE_PROVIDERS');\nexport class AXPTaskBadgeProvider {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1iYWRnZS50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL3Rhc2stYmFkZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUF5QiwwQkFBMEIsQ0FBQyxDQUFDO0FBRS9HLE1BQU0sT0FBZ0Isb0JBQW9CO0NBR3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBjb25zdCBBWFBfVEFTS19CQURHRV9QUk9WSURFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQVGFza0JhZGdlUHJvdmlkZXJbXT4oJ0FYUF9UQVNLX0JBREdFX1BST1ZJREVSUycpO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQVGFza0JhZGdlUHJvdmlkZXIge1xuICAgIGFic3RyYWN0IGtleTogc3RyaW5nO1xuICAgIGFic3RyYWN0IGNvdW50OiBTaWduYWw8bnVtYmVyPjtcbn0iXX0=","import { computed, inject, Injectable, signal } from '@angular/core';\nimport { AXP_TASK_BADGE_PROVIDERS } from './task-badge.type';\nimport * as i0 from \"@angular/core\";\nexport class AXPTaskBadgeService {\n constructor() {\n this.badgeMap = new Map();\n this.providers = inject(AXP_TASK_BADGE_PROVIDERS, { optional: true }) ?? [];\n this.computedCache = new Map();\n for (const provider of this.providers) {\n if (!this.badgeMap.has(provider.key)) {\n this.badgeMap.set(provider.key, []);\n }\n this.badgeMap.get(provider.key).push(provider.count);\n }\n }\n getCount(key) {\n if (this.computedCache.has(key)) {\n return this.computedCache.get(key);\n }\n const signals = this.badgeMap.get(key) ?? [];\n const total = signals.length > 0 ? computed(() => signals.reduce((sum, s) => sum + s(), 0)) : signal(0);\n this.computedCache.set(key, total);\n return total;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTaskBadgeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTaskBadgeService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTaskBadgeService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1iYWRnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL3Rhc2stYmFkZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx3QkFBd0IsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHbkYsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QjtRQUpRLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQUMvQyxjQUFTLEdBQTJCLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvRixrQkFBYSxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO1FBR3hELEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUNsQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0F4QlUsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBpbmplY3QsIEluamVjdGFibGUsIFNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBfVEFTS19CQURHRV9QUk9WSURFUlMsIEFYUFRhc2tCYWRnZVByb3ZpZGVyIH0gZnJvbSAnLi90YXNrLWJhZGdlLnR5cGUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFRhc2tCYWRnZVNlcnZpY2Uge1xuICBwcml2YXRlIGJhZGdlTWFwID0gbmV3IE1hcDxzdHJpbmcsIFNpZ25hbDxudW1iZXI+W10+KCk7XG4gIHByaXZhdGUgcHJvdmlkZXJzOiBBWFBUYXNrQmFkZ2VQcm92aWRlcltdID0gaW5qZWN0KEFYUF9UQVNLX0JBREdFX1BST1ZJREVSUywgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBbXTtcbiAgcHJpdmF0ZSBjb21wdXRlZENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFNpZ25hbDxudW1iZXI+PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgdGhpcy5wcm92aWRlcnMpIHtcbiAgICAgIGlmICghdGhpcy5iYWRnZU1hcC5oYXMocHJvdmlkZXIua2V5KSkge1xuICAgICAgICB0aGlzLmJhZGdlTWFwLnNldChwcm92aWRlci5rZXksIFtdKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYmFkZ2VNYXAuZ2V0KHByb3ZpZGVyLmtleSkhLnB1c2gocHJvdmlkZXIuY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIGdldENvdW50KGtleTogc3RyaW5nKTogU2lnbmFsPG51bWJlcj4ge1xuICAgIGlmICh0aGlzLmNvbXB1dGVkQ2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkQ2FjaGUuZ2V0KGtleSkhO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZ25hbHMgPSB0aGlzLmJhZGdlTWFwLmdldChrZXkpID8/IFtdO1xuICAgIGNvbnN0IHRvdGFsID0gc2lnbmFscy5sZW5ndGggPiAwID8gY29tcHV0ZWQoKCkgPT4gc2lnbmFscy5yZWR1Y2UoKHN1bSwgcykgPT4gc3VtICsgcygpLCAwKSkgOiBzaWduYWwoMCk7XG5cbiAgICB0aGlzLmNvbXB1dGVkQ2FjaGUuc2V0KGtleSwgdG90YWwpO1xuICAgIHJldHVybiB0b3RhbDtcbiAgfVxufVxuIl19","import { input, computed, inject, effect, Directive } from \"@angular/core\";\nimport { SIGNAL, signalSetFn } from \"@angular/core/primitives/signals\";\nimport { AXPTaskBadgeService } from \"./task-badge.service\";\nimport { AXBadgeComponent } from \"@acorex/components/badge\";\nimport * as i0 from \"@angular/core\";\nexport class AXPTaskBadgeDirective {\n constructor() {\n this.badgeService = inject(AXPTaskBadgeService);\n this.host = inject(AXBadgeComponent); // assumes it's applied on <ax-badge>\n this.hostElement = this.host.getHostElement();\n this.badgeKey = input(undefined, ...(ngDevMode ? [{ debugName: \"badgeKey\" }] : []));\n this.count = input(0, ...(ngDevMode ? [{ debugName: \"count\", alias: 'axp-task-badge' }] : [{ alias: 'axp-task-badge' }]));\n this.displayCount = computed(() => {\n const value = this.count() || (this.badgeKey() && this.badgeService.getCount(this.badgeKey())());\n return value ? value.toString() : '';\n }, ...(ngDevMode ? [{ debugName: \"displayCount\" }] : []));\n this.#eff = effect(() => {\n this.setValueOfInputSignal(this.host.text, this.displayCount());\n if (!this.displayCount()) {\n this.hostElement.style.display = 'none';\n }\n else {\n this.hostElement.style.removeProperty('display');\n }\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n setValueOfInputSignal(signal, value) {\n const node = signal[SIGNAL];\n signalSetFn(node, value);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTaskBadgeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.6\", type: AXPTaskBadgeDirective, isStandalone: true, selector: \"[axp-task-badge]\", inputs: { badgeKey: { classPropertyName: \"badgeKey\", publicName: \"badgeKey\", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: \"count\", publicName: \"axp-task-badge\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTaskBadgeDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-task-badge]',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL2JhZGdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU81RCxNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS1ksaUJBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxTQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDdEUsZ0JBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRWpELGFBQVEsR0FBRyxLQUFLLENBQXFCLFNBQVMsb0RBQUMsQ0FBQztRQUNoRCxVQUFLLEdBQUcsS0FBSyxDQUFTLENBQUMseUNBQUksS0FBSyxFQUFFLGdCQUFnQixPQUF6QixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUM7UUFFckMsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEcsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pDLENBQUMsd0RBQUMsQ0FBQztRQUVILFNBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUM1QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDTCxDQUFDLGdEQUFDLENBQUM7S0FNTjtJQWJHLElBQUksQ0FPRDtJQUVLLHFCQUFxQixDQUFJLE1BQXNCLEVBQUUsS0FBUTtRQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFRLENBQUM7UUFDbkMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQXpCUSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnB1dCwgY29tcHV0ZWQsIGluamVjdCwgZWZmZWN0LCBEaXJlY3RpdmUsIElucHV0U2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFNJR05BTCwgc2lnbmFsU2V0Rm4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9wcmltaXRpdmVzL3NpZ25hbHNcIjtcbmltcG9ydCB7IEFYUFRhc2tCYWRnZVNlcnZpY2UgfSBmcm9tIFwiLi90YXNrLWJhZGdlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFYQmFkZ2VDb21wb25lbnQgfSBmcm9tIFwiQGFjb3JleC9jb21wb25lbnRzL2JhZGdlXCI7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLXRhc2stYmFkZ2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYXNrQmFkZ2VEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgYmFkZ2VTZXJ2aWNlID0gaW5qZWN0KEFYUFRhc2tCYWRnZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgaG9zdCA9IGluamVjdChBWEJhZGdlQ29tcG9uZW50KTsgLy8gYXNzdW1lcyBpdCdzIGFwcGxpZWQgb24gPGF4LWJhZGdlPlxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQgPSB0aGlzLmhvc3QuZ2V0SG9zdEVsZW1lbnQoKTtcblxuICAgIGJhZGdlS2V5ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIGNvdW50ID0gaW5wdXQ8bnVtYmVyPigwLCB7IGFsaWFzOiAnYXhwLXRhc2stYmFkZ2UnIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNwbGF5Q291bnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb3VudCgpIHx8ICh0aGlzLmJhZGdlS2V5KCkgJiYgdGhpcy5iYWRnZVNlcnZpY2UuZ2V0Q291bnQodGhpcy5iYWRnZUtleSgpISkoKSk7XG4gICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkgOiAnJztcbiAgICB9KTtcblxuICAgICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFZhbHVlT2ZJbnB1dFNpZ25hbCh0aGlzLmhvc3QudGV4dCwgdGhpcy5kaXNwbGF5Q291bnQoKSk7XG4gICAgICAgIGlmICghdGhpcy5kaXNwbGF5Q291bnQoKSkge1xuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBwcml2YXRlIHNldFZhbHVlT2ZJbnB1dFNpZ25hbDxUPihzaWduYWw6IElucHV0U2lnbmFsPFQ+LCB2YWx1ZTogVCkge1xuICAgICAgICBjb25zdCBub2RlID0gc2lnbmFsW1NJR05BTF0gYXMgYW55O1xuICAgICAgICBzaWduYWxTZXRGbihub2RlLCB2YWx1ZSk7XG4gICAgfVxufSJdfQ==","import { computed } from \"@angular/core\";\nexport class AXPMenuBadgeHelper {\n static { this.cache = new WeakMap(); }\n static getTotalCount(item, badgeService) {\n if (this.cache.has(item))\n return this.cache.get(item);\n const own = item.badgeKey ? badgeService.getCount(item.badgeKey) : () => 0;\n const children = item.children?.map(child => this.getTotalCount(child, badgeService)) ?? [];\n const total = computed(() => own() + children.reduce((sum, s) => sum + s(), 0), ...(ngDevMode ? [{ debugName: \"total\" }] : []));\n this.cache.set(item, total);\n return total;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL2JhZGdlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWpELE1BQU0sT0FBTyxrQkFBa0I7YUFFZCxVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7SUFFbEUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFpQixFQUFFLFlBQWlDO1FBQ3ZFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUV2RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUN4QyxJQUFJLEVBQUUsQ0FBQztRQUVSLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDMUIsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsaURBQ2xELENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBjb21wdXRlZCwgU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUE1lbnVJdGVtIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29tbW9uXCI7XG5pbXBvcnQgeyBBWFBUYXNrQmFkZ2VTZXJ2aWNlIH0gZnJvbSBcIi4vdGFzay1iYWRnZS5zZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBBWFBNZW51QmFkZ2VIZWxwZXIge1xuXG4gIHByaXZhdGUgc3RhdGljIGNhY2hlID0gbmV3IFdlYWtNYXA8QVhQTWVudUl0ZW0sIFNpZ25hbDxudW1iZXI+PigpO1xuXG4gIHN0YXRpYyBnZXRUb3RhbENvdW50KGl0ZW06IEFYUE1lbnVJdGVtLCBiYWRnZVNlcnZpY2U6IEFYUFRhc2tCYWRnZVNlcnZpY2UpOiBTaWduYWw8bnVtYmVyPiB7XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKGl0ZW0pKSByZXR1cm4gdGhpcy5jYWNoZS5nZXQoaXRlbSkhO1xuXG4gICAgY29uc3Qgb3duID0gaXRlbS5iYWRnZUtleSA/IGJhZGdlU2VydmljZS5nZXRDb3VudChpdGVtLmJhZGdlS2V5KSA6ICgpID0+IDA7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBpdGVtLmNoaWxkcmVuPy5tYXAoY2hpbGQgPT5cbiAgICAgIHRoaXMuZ2V0VG90YWxDb3VudChjaGlsZCwgYmFkZ2VTZXJ2aWNlKVxuICAgICkgPz8gW107XG5cbiAgICBjb25zdCB0b3RhbCA9IGNvbXB1dGVkKCgpID0+XG4gICAgICBvd24oKSArIGNoaWxkcmVuLnJlZHVjZSgoc3VtLCBzKSA9PiBzdW0gKyBzKCksIDApXG4gICAgKTtcblxuICAgIHRoaXMuY2FjaGUuc2V0KGl0ZW0sIHRvdGFsKTtcbiAgICByZXR1cm4gdG90YWw7XG4gIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, computed, contentChild, viewChild, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutPagePrimaryActionsComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutPagePrimaryActionsComponent, isStandalone: true, selector: \"axp-layout-actions-primary\", ngImport: i0, template: `<ng-content select=\"ax-button,ax-dropdown-button\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-actions-primary',\n template: `<ng-content select=\"ax-button,ax-dropdown-button\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\nexport class AXPThemeLayoutPageSecondaryActionsComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutPageSecondaryActionsComponent, isStandalone: true, selector: \"axp-layout-actions-secondary\", ngImport: i0, template: `<ng-content select=\"ax-button-item,ax-divider,ng-container\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-actions-secondary',\n template: `<ng-content select=\"ax-button-item,ax-divider,ng-container\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\nexport class AXPThemeLayoutActionsComponent {\n constructor() {\n this.primaryTemplate = viewChild('primary', ...(ngDevMode ? [{ debugName: \"primaryTemplate\" }] : []));\n this.primaryContent = contentChild(AXPThemeLayoutPagePrimaryActionsComponent, ...(ngDevMode ? [{ debugName: \"primaryContent\" }] : []));\n this.hasPrimary = computed(() => this.primaryContent() != null, ...(ngDevMode ? [{ debugName: \"hasPrimary\" }] : []));\n this.secondaryTemplate = viewChild('secondary', ...(ngDevMode ? [{ debugName: \"secondaryTemplate\" }] : []));\n this.secondaryContent = contentChild(AXPThemeLayoutPageSecondaryActionsComponent, ...(ngDevMode ? [{ debugName: \"secondaryContent\" }] : []));\n this.hasSecondary = computed(() => this.secondaryContent() != null, ...(ngDevMode ? [{ debugName: \"hasSecondary\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.1.6\", type: AXPThemeLayoutActionsComponent, isStandalone: true, selector: \"axp-layout-actions\", queries: [{ propertyName: \"primaryContent\", first: true, predicate: AXPThemeLayoutPagePrimaryActionsComponent, descendants: true, isSignal: true }, { propertyName: \"secondaryContent\", first: true, predicate: AXPThemeLayoutPageSecondaryActionsComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: \"primaryTemplate\", first: true, predicate: [\"primary\"], descendants: true, isSignal: true }, { propertyName: \"secondaryTemplate\", first: true, predicate: [\"secondary\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n\n <ng-template #primary>\n <ng-content select=\"axp-layout-actions-primary\"></ng-content>\n </ng-template>\n\n <ng-template #secondary>\n <ng-content select=\"axp-layout-actions-secondary\"></ng-content>\n </ng-template>\n\n <ng-content></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutActionsComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-actions',\n template: `\n\n <ng-template #primary>\n <ng-content select=\"axp-layout-actions-primary\"></ng-content>\n </ng-template>\n\n <ng-template #secondary>\n <ng-content select=\"axp-layout-actions-secondary\"></ng-content>\n </ng-template>\n\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtYWN0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFlLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVdEksTUFBTSxPQUFPLHlDQUF5Qzs4R0FBekMseUNBQXlDO2tHQUF6Qyx5Q0FBeUMsc0ZBSnhDLGlFQUFpRTs7MkZBSWxFLHlDQUF5QztrQkFQckQsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFLGlFQUFpRTtvQkFDM0UsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7QUFXRCxNQUFNLE9BQU8sMkNBQTJDOzhHQUEzQywyQ0FBMkM7a0dBQTNDLDJDQUEyQyx3RkFKMUMsMkVBQTJFOzsyRkFJNUUsMkNBQTJDO2tCQVB2RCxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxRQUFRLEVBQUUsMkVBQTJFO29CQUNyRixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOztBQXdCRCxNQUFNLE9BQU8sOEJBQThCO0lBcEIzQztRQXNCb0Isb0JBQWUsR0FBRyxTQUFTLENBQW1CLFNBQVMsMkRBQUMsQ0FBQztRQUN4RCxtQkFBYyxHQUFHLFlBQVksQ0FBQyx5Q0FBeUMsMERBQUMsQ0FBQztRQUNuRixlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLHNEQUFDLENBQUM7UUFFbEQsc0JBQWlCLEdBQUcsU0FBUyxDQUFtQixXQUFXLDZEQUFDLENBQUM7UUFDNUQscUJBQWdCLEdBQUcsWUFBWSxDQUFDLDJDQUEyQyw0REFBQyxDQUFDO1FBQ3ZGLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksd0RBQUMsQ0FBQztLQUV6RTs4R0FWWSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwwSEFHUSx5Q0FBeUMsbUdBSXZDLDJDQUEyQyw2U0F2QmxGOzs7Ozs7Ozs7OztLQVdUOzsyRkFLUSw4QkFBOEI7a0JBcEIxQyxTQUFTO21CQUFDO29CQUNQLE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0tBV1Q7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC1hY3Rpb25zLXByaW1hcnknLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtYnV0dG9uLGF4LWRyb3Bkb3duLWJ1dHRvblwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlUHJpbWFyeUFjdGlvbnNDb21wb25lbnQge1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC1hY3Rpb25zLXNlY29uZGFyeScsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudCBzZWxlY3Q9XCJheC1idXR0b24taXRlbSxheC1kaXZpZGVyLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlU2Vjb25kYXJ5QWN0aW9uc0NvbXBvbmVudCB7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlOiBgXG5cbiAgICA8bmctdGVtcGxhdGUgI3ByaW1hcnk+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtYWN0aW9ucy1wcmltYXJ5XCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI3NlY29uZGFyeT5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1hY3Rpb25zLXNlY29uZGFyeVwiPjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIGAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIEFYUFRoZW1lTGF5b3V0QWN0aW9uc0NvbXBvbmVudCB7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgcHJpbWFyeVRlbXBsYXRlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPGFueT4+KCdwcmltYXJ5Jyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltYXJ5Q29udGVudCA9IGNvbnRlbnRDaGlsZChBWFBUaGVtZUxheW91dFBhZ2VQcmltYXJ5QWN0aW9uc0NvbXBvbmVudCk7XG4gICAgcHVibGljIGhhc1ByaW1hcnkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByaW1hcnlDb250ZW50KCkgIT0gbnVsbCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2Vjb25kYXJ5VGVtcGxhdGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ3NlY29uZGFyeScpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vjb25kYXJ5Q29udGVudCA9IGNvbnRlbnRDaGlsZChBWFBUaGVtZUxheW91dFBhZ2VTZWNvbmRhcnlBY3Rpb25zQ29tcG9uZW50KTtcbiAgICBwdWJsaWMgaGFzU2Vjb25kYXJ5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZWNvbmRhcnlDb250ZW50KCkgIT0gbnVsbCk7XG5cbn1cblxuXG4iXX0=","import { ChangeDetectionStrategy, Component, ElementRef, inject, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutBlockComponent {\n constructor() {\n this.elementRef = inject(ElementRef);\n this.hostElement = this.elementRef.nativeElement;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutBlockComponent, isStandalone: true, selector: \"\\n\\n axp-page-content, \\n axp-page-footer-container,\\n axp-page-footer,\\n axp-page-header,\\n axp-page-header-container,\\n axp-page-toolbar,\\n\\n axp-layout-content, \\n axp-layout-page-content, \\n\\n axp-layout-sections,\\n axp-layout-body,\\n axp-layout-page-body,\\n axp-layout-prefix,\\n axp-layout-suffix,\\n axp-layout-title-bar,\\n axp-layout-title, \\n axp-layout-title-actions, \\n axp-layout-nav-button, \\n axp-layout-description, \\n axp-layout-breadcrumbs,\\n axp-layout-list-action,\\n \", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutBlockComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: `\n\n axp-page-content, \n axp-page-footer-container,\n axp-page-footer,\n axp-page-header,\n axp-page-header-container,\n axp-page-toolbar,\n\n axp-layout-content, \n axp-layout-page-content, \n\n axp-layout-sections,\n axp-layout-body,\n axp-layout-page-body,\n axp-layout-prefix,\n axp-layout-suffix,\n axp-layout-title-bar,\n axp-layout-title, \n axp-layout-title-actions, \n axp-layout-nav-button, \n axp-layout-description, \n axp-layout-breadcrumbs,\n axp-layout-list-action,\n `,\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJsb2Nrcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1ibG9ja3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQzFHLE1BQU0sT0FBTyw0QkFBNEI7SUEvQnpDO1FBa0NxQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7S0FHN0Q7OEdBUFksNEJBQTRCO2tHQUE1Qiw0QkFBNEIsK2xCQUo3QiwyQkFBMkI7OzJGQUkxQiw0QkFBNEI7a0JBL0J4QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdCUDtvQkFDSCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6IGBcblxuICAgIGF4cC1wYWdlLWNvbnRlbnQsIFxuICAgIGF4cC1wYWdlLWZvb3Rlci1jb250YWluZXIsXG4gICAgYXhwLXBhZ2UtZm9vdGVyLFxuICAgIGF4cC1wYWdlLWhlYWRlcixcbiAgICBheHAtcGFnZS1oZWFkZXItY29udGFpbmVyLFxuICAgIGF4cC1wYWdlLXRvb2xiYXIsXG5cbiAgICBheHAtbGF5b3V0LWNvbnRlbnQsIFxuICAgIGF4cC1sYXlvdXQtcGFnZS1jb250ZW50LCBcblxuICAgIGF4cC1sYXlvdXQtc2VjdGlvbnMsXG4gICAgYXhwLWxheW91dC1ib2R5LFxuICAgIGF4cC1sYXlvdXQtcGFnZS1ib2R5LFxuICAgIGF4cC1sYXlvdXQtcHJlZml4LFxuICAgIGF4cC1sYXlvdXQtc3VmZml4LFxuICAgIGF4cC1sYXlvdXQtdGl0bGUtYmFyLFxuICAgIGF4cC1sYXlvdXQtdGl0bGUsIFxuICAgIGF4cC1sYXlvdXQtdGl0bGUtYWN0aW9ucywgXG4gICAgYXhwLWxheW91dC1uYXYtYnV0dG9uLCBcbiAgICBheHAtbGF5b3V0LWRlc2NyaXB0aW9uLCBcbiAgICBheHAtbGF5b3V0LWJyZWFkY3J1bWJzLFxuICAgIGF4cC1sYXlvdXQtbGlzdC1hY3Rpb24sXG4gICAgYCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQge1xuXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHB1YmxpYyByZWFkb25seSBob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG5cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutFooterComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutFooterComponent, isStandalone: true, selector: \"axp-layout-footer, axp-layout-page-footer\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutFooterComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-footer, axp-layout-page-footer',\n template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBY3RGLE1BQU0sT0FBTyw2QkFBNkI7OEdBQTdCLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHFHQVI5Qjs7OztHQUlUOzsyRkFJVSw2QkFBNkI7a0JBWnpDLFNBQVM7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwyQ0FBMkM7b0JBQ3JELFFBQVEsRUFBRTs7OztHQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWZvb3RlciwgYXhwLWxheW91dC1wYWdlLWZvb3RlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRGb290ZXJDb21wb25lbnQge1xufVxuXG5cbiJdfQ==","import { ChangeDetectionStrategy, Component, viewChild, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutPageHeaderComponent {\n constructor() {\n this.title = viewChild('title', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = viewChild('description', ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.actions = viewChild('actions', ...(ngDevMode ? [{ debugName: \"actions\" }] : []));\n this.navbar = viewChild('navbar', ...(ngDevMode ? [{ debugName: \"navbar\" }] : []));\n this.breadcrumbs = viewChild('breadcrumbs', ...(ngDevMode ? [{ debugName: \"breadcrumbs\" }] : []));\n this.navButton = viewChild('navButton', ...(ngDevMode ? [{ debugName: \"navButton\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.1.6\", type: AXPThemeLayoutPageHeaderComponent, isStandalone: true, selector: \"axp-layout-page-header\", viewQueries: [{ propertyName: \"title\", first: true, predicate: [\"title\"], descendants: true, isSignal: true }, { propertyName: \"description\", first: true, predicate: [\"description\"], descendants: true, isSignal: true }, { propertyName: \"actions\", first: true, predicate: [\"actions\"], descendants: true, isSignal: true }, { propertyName: \"navbar\", first: true, predicate: [\"navbar\"], descendants: true, isSignal: true }, { propertyName: \"breadcrumbs\", first: true, predicate: [\"breadcrumbs\"], descendants: true, isSignal: true }, { propertyName: \"navButton\", first: true, predicate: [\"navButton\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n <ng-template #breadcrumbs>\n <ng-content select=\"axp-layout-breadcrumbs\"></ng-content>\n </ng-template>\n\n <ng-template #navbar>\n <ng-content select=\"axp-layout-toolbar\"></ng-content>\n </ng-template>\n\n <ng-template #actions>\n <ng-content select=\"axp-layout-actions\"></ng-content>\n </ng-template>\n\n <ng-template #description>\n <ng-content select=\"axp-layout-description\"></ng-content>\n </ng-template>\n\n <ng-template #title>\n <ng-content select=\"axp-layout-title\"></ng-content>\n </ng-template>\n <ng-template #navButton>\n <ng-content select=\"axp-layout-nav-button\"></ng-content>\n </ng-template>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-page-header',\n template: `\n <ng-template #breadcrumbs>\n <ng-content select=\"axp-layout-breadcrumbs\"></ng-content>\n </ng-template>\n\n <ng-template #navbar>\n <ng-content select=\"axp-layout-toolbar\"></ng-content>\n </ng-template>\n\n <ng-template #actions>\n <ng-content select=\"axp-layout-actions\"></ng-content>\n </ng-template>\n\n <ng-template #description>\n <ng-content select=\"axp-layout-description\"></ng-content>\n </ng-template>\n\n <ng-template #title>\n <ng-content select=\"axp-layout-title\"></ng-content>\n </ng-template>\n <ng-template #navButton>\n <ng-content select=\"axp-layout-nav-button\"></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\nexport class AXPThemeLayoutHeaderComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutHeaderComponent, isStandalone: true, selector: \"axp-layout-header\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutHeaderComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-header',\n template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQ3JILE1BQU0sT0FBTyxpQ0FBaUM7SUEvQjlDO1FBaUNrQixVQUFLLEdBQUcsU0FBUyxDQUFtQixPQUFPLGlEQUFDLENBQUM7UUFDN0MsZ0JBQVcsR0FBRyxTQUFTLENBQW1CLGFBQWEsdURBQUMsQ0FBQztRQUN6RCxZQUFPLEdBQUcsU0FBUyxDQUFtQixTQUFTLG1EQUFDLENBQUM7UUFDakQsV0FBTSxHQUFHLFNBQVMsQ0FBbUIsUUFBUSxrREFBQyxDQUFDO1FBQy9DLGdCQUFXLEdBQUcsU0FBUyxDQUFtQixhQUFhLHVEQUFDLENBQUM7UUFDekQsY0FBUyxHQUFHLFNBQVMsQ0FBbUIsV0FBVyxxREFBQyxDQUFDO0tBQ3RFOzhHQVJZLGlDQUFpQztrR0FBakMsaUNBQWlDLDZzQkEzQmxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDs7MkZBSVUsaUNBQWlDO2tCQS9CN0MsU0FBUzttQkFBQztvQkFDVCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOztBQXlCRCxNQUFNLE9BQU8sNkJBQTZCOzhHQUE3Qiw2QkFBNkI7a0dBQTdCLDZCQUE2Qiw2RUFSOUI7Ozs7R0FJVDs7MkZBSVUsNkJBQTZCO2tCQVp6QyxTQUFTO21CQUFDO29CQUNULE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtcGFnZS1oZWFkZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjYnJlYWRjcnVtYnM+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWJyZWFkY3J1bWJzXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI25hdmJhcj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtdG9vbGJhclwiPjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNhY3Rpb25zPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1hY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Rlc2NyaXB0aW9uPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1kZXNjcmlwdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICN0aXRsZT5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI25hdkJ1dHRvbj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtbmF2LWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlSGVhZGVyQ29tcG9uZW50IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGl0bGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ3RpdGxlJyk7XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbiA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignZGVzY3JpcHRpb24nKTtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGlvbnMgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ2FjdGlvbnMnKTtcbiAgcHVibGljIHJlYWRvbmx5IG5hdmJhciA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignbmF2YmFyJyk7XG4gIHB1YmxpYyByZWFkb25seSBicmVhZGNydW1icyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignYnJlYWRjcnVtYnMnKTtcbiAgcHVibGljIHJlYWRvbmx5IG5hdkJ1dHRvbiA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignbmF2QnV0dG9uJyk7XG59XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1oZWFkZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LXN1ZmZpeFwiPjwvbmctY29udGVudD5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRoZW1lTGF5b3V0SGVhZGVyQ29tcG9uZW50IHtcblxufVxuIl19","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutListComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutListComponent, isStandalone: true, selector: \"axp-layout-list\", ngImport: i0, template: `<ng-content select=\"axp-layout-list-item,axp-layout-list-group,ng-container\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutListComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-list',\n template: `<ng-content select=\"axp-layout-list-item,axp-layout-list-group,ng-container\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\nexport class AXPThemeLayoutListItemsGroupComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutListItemsGroupComponent, isStandalone: true, selector: \"axp-layout-list-group\", ngImport: i0, template: `<ng-content select=\"axp-layout-list-item, axp-layout-title, axp-layout-header ,ng-container\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-list-group',\n template: `<ng-content select=\"axp-layout-list-item, axp-layout-title, axp-layout-header ,ng-container\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\nexport class AXPThemeLayoutListItemComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutListItemComponent, isStandalone: true, selector: \"axp-layout-list-item\", ngImport: i0, template: `<ng-content select=\"axp-layout-content,axp-layout-prefix,axp-layout-suffix,ng-container\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutListItemComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-list-item',\n template: `<ng-content select=\"axp-layout-content,axp-layout-prefix,axp-layout-suffix,ng-container\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXBHLE1BQU0sT0FBTywyQkFBMkI7OEdBQTNCLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDJFQUoxQiw0RkFBNEY7OzJGQUk3RiwyQkFBMkI7a0JBUHZDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSw0RkFBNEY7b0JBQ3RHLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7O0FBV0QsTUFBTSxPQUFPLHFDQUFxQzs4R0FBckMscUNBQXFDO2tHQUFyQyxxQ0FBcUMsaUZBSnBDLDRHQUE0Rzs7MkZBSTdHLHFDQUFxQztrQkFQakQsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLDRHQUE0RztvQkFDdEgsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7QUFXRCxNQUFNLE9BQU8sK0JBQStCOzhHQUEvQiwrQkFBK0I7a0dBQS9CLCtCQUErQixnRkFKOUIsd0dBQXdHOzsyRkFJekcsK0JBQStCO2tCQVAzQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsd0dBQXdHO29CQUNsSCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29udGVudENoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWxpc3QnLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1saXN0LWl0ZW0sYXhwLWxheW91dC1saXN0LWdyb3VwLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRMaXN0Q29tcG9uZW50IHtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtbGlzdC1ncm91cCcsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWxpc3QtaXRlbSwgYXhwLWxheW91dC10aXRsZSwgYXhwLWxheW91dC1oZWFkZXIgLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRMaXN0SXRlbXNHcm91cENvbXBvbmVudCB7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWNvbnRlbnQsYXhwLWxheW91dC1wcmVmaXgsYXhwLWxheW91dC1zdWZmaXgsbmctY29udGFpbmVyXCI+PC9uZy1jb250ZW50PmAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUaGVtZUxheW91dExpc3RJdGVtQ29tcG9uZW50IHtcblxufSJdfQ==","import { ChangeDetectionStrategy, Component, ViewEncapsulation, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutSectionComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutSectionComponent, isStandalone: true, selector: \"axp-layout-section\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutSectionComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-section',\n template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOztBQWF2QixNQUFNLE9BQU8sOEJBQThCOzhHQUE5Qiw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw4RUFQL0I7OztHQUdUOzsyRkFJVSw4QkFBOEI7a0JBWDFDLFNBQVM7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7O0dBR1Q7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1zZWN0aW9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRTZWN0aW9uQ29tcG9uZW50IHtcbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutStartSideComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutStartSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutStartSideComponent, isStandalone: true, selector: \"axp-layout-page-start-side, axp-layout-start-side\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n <ng-content select=\"axp-layout-footer\"></ng-content>\n <ng-content></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutStartSideComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-page-start-side, axp-layout-start-side',\n template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n <ng-content select=\"axp-layout-footer\"></ng-content>\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\nexport class AXPThemeLayoutEndSideComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutEndSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutEndSideComponent, isStandalone: true, selector: \"axp-layout-page-end-side, axp-layout-end-side\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n <ng-content select=\"axp-layout-footer\"></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutEndSideComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-page-end-side, axp-layout-end-side',\n template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n <ng-content select=\"axp-layout-footer\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXNpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtc2lkZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFldEYsTUFBTSxPQUFPLGdDQUFnQzs4R0FBaEMsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsNkdBVGpDOzs7OztHQUtUOzsyRkFJVSxnQ0FBZ0M7a0JBYjVDLFNBQVM7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxtREFBbUQ7b0JBQzdELFFBQVEsRUFBRTs7Ozs7R0FLVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOztBQWVELE1BQU0sT0FBTyw4QkFBOEI7OEdBQTlCLDhCQUE4QjtrR0FBOUIsOEJBQThCLHlHQVIvQjs7OztHQUlUOzsyRkFJVSw4QkFBOEI7a0JBWjFDLFNBQVM7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwrQ0FBK0M7b0JBQ3pELFFBQVEsRUFBRTs7OztHQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LXBhZ2Utc3RhcnQtc2lkZSwgYXhwLWxheW91dC1zdGFydC1zaWRlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRTdGFydFNpZGVDb21wb25lbnQge31cblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtcGFnZS1lbmQtc2lkZSwgYXhwLWxheW91dC1lbmQtc2lkZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRFbmRTaWRlQ29tcG9uZW50IHt9XG4iXX0=","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutToolbarComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutToolbarComponent, isStandalone: true, selector: \"axp-layout-toolbar\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n <ng-content></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutToolbarComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-toolbar',\n template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXRvb2wtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9ibG9ja3MvbGF5b3V0LXRvb2wtYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWV0RixNQUFNLE9BQU8sOEJBQThCOzhHQUE5Qiw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw4RUFUN0I7Ozs7S0FJVDs7MkZBS1EsOEJBQThCO2tCQWIxQyxTQUFTO21CQUFDO29CQUNQLE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7S0FJVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBpbXBvcnRzOiBbXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBUaGVtZUxheW91dFRvb2xiYXJDb21wb25lbnQge1xuXG59XG5cblxuIl19","import { ChangeDetectionStrategy, Component, ElementRef, inject, signal, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutContainerComponent {\n constructor() {\n this.elementRef = inject((ElementRef));\n this.hostElement = this.elementRef.nativeElement;\n this._isEmptySignal = signal(this.hostElement.children.length === 0, ...(ngDevMode ? [{ debugName: \"_isEmptySignal\" }] : []));\n this.isEmpty = this._isEmptySignal.asReadonly();\n }\n ngOnInit() {\n this.mutationObserver = new MutationObserver(() => {\n this._isEmptySignal.set(this.hostElement.children.length === 0);\n });\n this.mutationObserver.observe(this.hostElement, {\n childList: true,\n subtree: true,\n });\n }\n ngOnDestroy() {\n this.mutationObserver?.disconnect();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPThemeLayoutContainerComponent, isStandalone: true, selector: \"axp-layout-container\", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPThemeLayoutContainerComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: `axp-layout-container`,\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVksVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBU3BJLE1BQU0sT0FBTyxnQ0FBZ0M7SUFQN0M7UUFVdUIsZUFBVSxHQUErQixNQUFNLENBQUMsQ0FBQSxVQUEwQixDQUFBLENBQUMsQ0FBQztRQUMvRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBR3BELG1CQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLDBEQUFDLENBQUM7UUFDeEQsWUFBTyxHQUFvQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBcUIvRTtJQWpCRyxRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1lBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QyxTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3hDLENBQUM7OEdBekJRLGdDQUFnQztrR0FBaEMsZ0NBQWdDLGdGQUovQiwyQkFBMkI7OzJGQUk1QixnQ0FBZ0M7a0JBUDVDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgaW5qZWN0LCBzaWduYWwsIFNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogYGF4cC1sYXlvdXQtY29udGFpbmVyYCxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRoZW1lTGF5b3V0Q29udGFpbmVyQ29tcG9uZW50IHtcblxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaG9zdEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuXG4gICAgcHJpdmF0ZSBfaXNFbXB0eVNpZ25hbCA9IHNpZ25hbCh0aGlzLmhvc3RFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGlzRW1wdHk6IFNpZ25hbDxib29sZWFuPiA9IHRoaXMuX2lzRW1wdHlTaWduYWwuYXNSZWFkb25seSgpO1xuXG4gICAgcHJpdmF0ZSBtdXRhdGlvbk9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9pc0VtcHR5U2lnbmFsLnNldCh0aGlzLmhvc3RFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuaG9zdEVsZW1lbnQsIHtcbiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB9XG5cblxuXG59XG4iXX0=","import { Component, ViewEncapsulation, input, computed, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/label\";\nimport * as i2 from \"@acorex/components/check-box\";\nimport * as i3 from \"@acorex/platform/layout/builder\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"@acorex/core/translation\";\nexport class AXPCompareViewComponent {\n constructor() {\n //#region ---- Component Properties ----\n this.inputs = input(...(ngDevMode ? [undefined, { debugName: \"inputs\" }] : []));\n this.showOnlyChanges = signal(false, ...(ngDevMode ? [{ debugName: \"showOnlyChanges\" }] : []));\n this.mode = input('compare', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.removedObjects = signal([], ...(ngDevMode ? [{ debugName: \"removedObjects\" }] : []));\n this.isChangesMode = computed(() => this.mode() === 'changes', ...(ngDevMode ? [{ debugName: \"isChangesMode\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n /**\n * Filtered fields based on showOnlyChanges toggle\n */\n this.filteredFields = computed(() => {\n const fields = this.inputs()?.fields ?? [];\n // Set readOnly to true for all fields\n fields.forEach(field => {\n field.widget.options = {\n ...field.widget.options,\n allowEdit: false,\n readOnly: true,\n };\n });\n if (!this.showOnlyChanges()) {\n return fields;\n }\n // Filter to show only fields where values differ across objects\n return fields.filter(field => this.hasUnequalValues(field.path));\n }, ...(ngDevMode ? [{ debugName: \"filteredFields\" }] : []));\n this.remainingObjects = computed(() => {\n const objects = this.inputs()?.objects ?? [];\n return objects.filter(obj => !this.removedObjects().includes(obj.id));\n }, ...(ngDevMode ? [{ debugName: \"remainingObjects\" }] : []));\n }\n //#endregion\n //#region ---- Utility Methods ----\n /**\n * Check if a field value will change in the next object (to show arrow in current cell)\n */\n hasValueChangingToNext(fieldPath, currentObjectIndex) {\n const objects = this.remainingObjects();\n if (currentObjectIndex >= objects.length - 1)\n return false;\n const currentValue = objects[currentObjectIndex]?.context[fieldPath];\n const nextValue = objects[currentObjectIndex + 1]?.context[fieldPath];\n return !this.areValuesEqual(currentValue, nextValue);\n }\n /**\n * Check if a field value has changed compared to the previous object\n */\n hasValueChangedFromPrevious(fieldPath, currentObjectIndex) {\n const objects = this.remainingObjects();\n if (currentObjectIndex === 0 || objects.length <= 1)\n return false;\n const currentValue = objects[currentObjectIndex]?.context[fieldPath];\n const previousValue = objects[currentObjectIndex - 1]?.context[fieldPath];\n return !this.areValuesEqual(currentValue, previousValue);\n }\n /**\n * Check if a field has unequal values across objects\n */\n hasUnequalValues(fieldPath) {\n const objects = this.remainingObjects();\n if (objects.length <= 1)\n return false;\n const values = objects.map(obj => obj.context[fieldPath]);\n const firstValue = values[0];\n return values.some(value => !this.areValuesEqual(value, firstValue));\n }\n /**\n * Check if a field has equal values across objects\n */\n hasEqualValues(fieldPath) {\n const objects = this.remainingObjects();\n if (objects.length <= 1)\n return false;\n const values = objects.map(obj => obj.context[fieldPath]);\n const firstValue = values[0];\n return values.every(value => this.areValuesEqual(value, firstValue));\n }\n /**\n * Compare two values for equality (deep comparison for objects/arrays)\n */\n areValuesEqual(value1, value2) {\n if (value1 === value2)\n return true;\n if (value1 == null || value2 == null)\n return value1 === value2;\n if (typeof value1 !== typeof value2)\n return false;\n if (typeof value1 === 'object') {\n return JSON.stringify(value1) === JSON.stringify(value2);\n }\n return false;\n }\n /**\n * Toggle the show only changes filter\n */\n toggleShowOnlyChanges() {\n this.showOnlyChanges.update(value => !value);\n }\n /**\n * Remove an object from the comparison\n */\n removeObject(objectId) {\n this.removedObjects.update(objects => [...objects, objectId]);\n }\n //#endregion\n //#region ---- Lifecycle Methods ----\n ngOnInit() {\n }\n ngOnDestroy() {\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPCompareViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPCompareViewComponent, isStandalone: true, selector: \"axp-compare-view\", inputs: { inputs: { classPropertyName: \"inputs\", publicName: \"inputs\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], ngImport: i0, template: \"<!--\\n #region ---- Compare View Table Layout ----\\n-->\\n<div class=\\\"axp-compare-view\\\">\\n <div class=\\\"__table-container\\\">\\n <table class=\\\"__table\\\">\\n <thead class=\\\"__thead\\\">\\n <tr class=\\\"__header-row\\\">\\n <th class=\\\"__field-header\\\">\\n <ax-check-box [value]=\\\"showOnlyChanges()\\\" (valueChange)=\\\"toggleShowOnlyChanges()\\\"\\n class=\\\"__show-changes-toggle\\\">\\n <ax-label>\\n {{ 'compare-view.show-only-differences' | translate: { scope: 'common' } | async }}\\n </ax-label>\\n </ax-check-box>\\n </th>\\n @for (obj of remainingObjects(); track obj.id) {\\n <th class=\\\"__object-header\\\" [attr.data-id]=\\\"obj.id\\\">\\n <div class=\\\"__object-title\\\" [title]=\\\"obj.description\\\">\\n <span>{{ obj.title | translate | async }}</span>\\n @if (remainingObjects().length > 2) {\\n <span class=\\\"__remove-object-button\\\" (click)=\\\"removeObject(obj.id)\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </span>\\n }\\n </div>\\n </th>\\n }\\n </tr>\\n </thead>\\n <tbody class=\\\"__tbody\\\">\\n @for (field of filteredFields(); track field.path; let i = $index) {\\n <tr class=\\\"__row\\\" [class.__row--odd]=\\\"i % 2 === 1\\\" [class.__row--has-differences]=\\\"hasUnequalValues(field.path)\\\"\\n [class.__row--has-equal-values]=\\\"hasEqualValues(field.path)\\\">\\n <td class=\\\"__field-cell\\\">\\n <div class=\\\"__field-content\\\">\\n <div class=\\\"__field-title\\\">\\n {{ field.title | translate | async }}\\n </div>\\n @if (field.description) {\\n <div class=\\\"__field-description\\\">{{ field.description }}</div>\\n }\\n </div>\\n </td>\\n @for (obj of remainingObjects(); track obj.id; let objIndex = $index) {\\n <td class=\\\"__object-cell\\\" [attr.data-id]=\\\"obj.id\\\"\\n [class.__cell--changed]=\\\"hasValueChangedFromPrevious(field.path, objIndex) && isChangesMode()\\\">\\n @if (obj.context[field.path] !== undefined) {\\n <div class=\\\"__object-content\\\">\\n <axp-widgets-container [context]=\\\"obj.context\\\">\\n <ng-container axp-widget-renderer [node]=\\\"field.widget\\\" [mode]=\\\"'view'\\\"></ng-container>\\n </axp-widgets-container>\\n </div>\\n } @else {\\n <div class=\\\"__object-placeholder\\\">---</div>\\n }\\n @if (hasValueChangingToNext(field.path, objIndex) && isChangesMode()) {\\n <div class=\\\"__change-indicator\\\">\\n <i class=\\\"fa-light fa-arrow-right\\\"></i>\\n </div>\\n }\\n </td>\\n }\\n </tr>\\n }\\n </tbody>\\n </table>\\n </div>\\n</div>\\n<!--\\n #endregion\\n-->\", styles: [\".axp-compare-view{display:flex;height:100%;width:100%;flex-direction:column;border-radius:.375rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));position:relative}.axp-compare-view .__filter-controls{flex-shrink:0;border-bottom-width:1px;padding:1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.axp-compare-view .__filter-controls .__show-changes-toggle{font-size:.875rem;line-height:1.25rem}.axp-compare-view .__table-container{flex:1 1 0%;overflow:auto;position:relative}.axp-compare-view .__table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.axp-compare-view .__table .__thead{position:-webkit-sticky;position:sticky;top:0;z-index:20}.axp-compare-view .__table .__thead .__header-row .__field-header{width:14rem;border-bottom-width:1px;border-right-width:1px;padding:.75rem 1rem;text-align:left;font-weight:700;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface));position:-webkit-sticky;position:sticky;left:0;z-index:25}.axp-compare-view .__table .__thead .__header-row .__object-header{position:relative;border-bottom-width:1px;padding:.75rem 1rem;text-align:center;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface));min-width:250px;width:250px}.axp-compare-view .__table .__thead .__header-row .__object-header .__object-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;font-weight:600}.axp-compare-view .__table .__thead .__header-row .__object-header .__object-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-compare-view .__table .__thead .__header-row .__object-header .__remove-object-button{display:flex;width:1.5rem;height:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));font-size:.875rem;line-height:1.25rem;position:absolute;top:50%;inset-inline-end:0px;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.axp-compare-view .__table .__thead .__header-row .__object-header .__remove-object-button:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-600),var(--tw-text-opacity, 1))}.axp-compare-view .__table .__tbody .__row{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axp-compare-view .__table .__tbody .__row.__row--odd{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-compare-view .__table .__tbody .__row.__row--has-differences{border-left-width:4px;--tw-border-opacity: 1;border-left-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell{background-color:rgba(var(--ax-sys-color-warning-500),var(--tw-bg-opacity, 1));--tw-bg-opacity: .05}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values{border-left-width:4px;--tw-border-opacity: 1;border-left-color:rgba(var(--ax-sys-color-success-500),var(--tw-border-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell{background-color:rgba(var(--ax-sys-color-success-500),var(--tw-bg-opacity, 1));--tw-bg-opacity: .05}.axp-compare-view .__table .__tbody .__row .__field-cell{width:14rem;border-bottom-width:1px;border-right-width:1px;padding:.75rem 1rem;vertical-align:top;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));position:-webkit-sticky;position:sticky;left:0;z-index:15}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content{display:flex;flex-direction:column;gap:.25rem}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content .__field-title{font-weight:500}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content .__field-description{font-size:.75rem;line-height:1rem;opacity:.75}.axp-compare-view .__table .__tbody .__row .__object-cell{border-bottom-width:1px;padding:.75rem 1rem;text-align:center;vertical-align:middle;position:relative}.axp-compare-view .__table .__tbody .__row .__object-cell.__cell--changed .__object-content{border-width:1px;border-style:dashed;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-200),var(--tw-border-opacity, 1));padding:.5rem}.axp-compare-view .__table .__tbody .__row .__object-cell .__object-content{position:relative;display:flex;align-items:center;justify-content:center}.axp-compare-view .__table .__tbody .__row .__object-cell .__change-indicator{position:absolute;inset-inline-end:-.25rem;top:50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));line-height:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-500),var(--tw-text-opacity, 1));font-size:.875rem}.axp-compare-view .__table .__tbody .__row .__object-cell .__object-placeholder{opacity:.75}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell{border-inline-start-width:4px;--tw-border-opacity: 1;border-inline-start-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-50),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-900),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell{border-inline-start-width:4px;--tw-border-opacity: 1;border-inline-start-color:rgba(var(--ax-sys-color-success-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-50),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-900),var(--tw-bg-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: \n // Angular\n CommonModule }, { kind: \"ngmodule\", type: \n // ACoreX\n AXFormModule }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i1.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXCheckBoxModule }, { kind: \"component\", type: i2.AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"checked\", \"isLoading\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: \n // Platform\n AXPLayoutBuilderModule }, { kind: \"component\", type: i3.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i3.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i5.AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPCompareViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-compare-view', imports: [\n // Angular\n CommonModule,\n // ACoreX\n AXFormModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXTranslationModule,\n // Platform\n AXPLayoutBuilderModule\n ], encapsulation: ViewEncapsulation.None, providers: [], template: \"<!--\\n #region ---- Compare View Table Layout ----\\n-->\\n<div class=\\\"axp-compare-view\\\">\\n <div class=\\\"__table-container\\\">\\n <table class=\\\"__table\\\">\\n <thead class=\\\"__thead\\\">\\n <tr class=\\\"__header-row\\\">\\n <th class=\\\"__field-header\\\">\\n <ax-check-box [value]=\\\"showOnlyChanges()\\\" (valueChange)=\\\"toggleShowOnlyChanges()\\\"\\n class=\\\"__show-changes-toggle\\\">\\n <ax-label>\\n {{ 'compare-view.show-only-differences' | translate: { scope: 'common' } | async }}\\n </ax-label>\\n </ax-check-box>\\n </th>\\n @for (obj of remainingObjects(); track obj.id) {\\n <th class=\\\"__object-header\\\" [attr.data-id]=\\\"obj.id\\\">\\n <div class=\\\"__object-title\\\" [title]=\\\"obj.description\\\">\\n <span>{{ obj.title | translate | async }}</span>\\n @if (remainingObjects().length > 2) {\\n <span class=\\\"__remove-object-button\\\" (click)=\\\"removeObject(obj.id)\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </span>\\n }\\n </div>\\n </th>\\n }\\n </tr>\\n </thead>\\n <tbody class=\\\"__tbody\\\">\\n @for (field of filteredFields(); track field.path; let i = $index) {\\n <tr class=\\\"__row\\\" [class.__row--odd]=\\\"i % 2 === 1\\\" [class.__row--has-differences]=\\\"hasUnequalValues(field.path)\\\"\\n [class.__row--has-equal-values]=\\\"hasEqualValues(field.path)\\\">\\n <td class=\\\"__field-cell\\\">\\n <div class=\\\"__field-content\\\">\\n <div class=\\\"__field-title\\\">\\n {{ field.title | translate | async }}\\n </div>\\n @if (field.description) {\\n <div class=\\\"__field-description\\\">{{ field.description }}</div>\\n }\\n </div>\\n </td>\\n @for (obj of remainingObjects(); track obj.id; let objIndex = $index) {\\n <td class=\\\"__object-cell\\\" [attr.data-id]=\\\"obj.id\\\"\\n [class.__cell--changed]=\\\"hasValueChangedFromPrevious(field.path, objIndex) && isChangesMode()\\\">\\n @if (obj.context[field.path] !== undefined) {\\n <div class=\\\"__object-content\\\">\\n <axp-widgets-container [context]=\\\"obj.context\\\">\\n <ng-container axp-widget-renderer [node]=\\\"field.widget\\\" [mode]=\\\"'view'\\\"></ng-container>\\n </axp-widgets-container>\\n </div>\\n } @else {\\n <div class=\\\"__object-placeholder\\\">---</div>\\n }\\n @if (hasValueChangingToNext(field.path, objIndex) && isChangesMode()) {\\n <div class=\\\"__change-indicator\\\">\\n <i class=\\\"fa-light fa-arrow-right\\\"></i>\\n </div>\\n }\\n </td>\\n }\\n </tr>\\n }\\n </tbody>\\n </table>\\n </div>\\n</div>\\n<!--\\n #endregion\\n-->\", styles: [\".axp-compare-view{display:flex;height:100%;width:100%;flex-direction:column;border-radius:.375rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));position:relative}.axp-compare-view .__filter-controls{flex-shrink:0;border-bottom-width:1px;padding:1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.axp-compare-view .__filter-controls .__show-changes-toggle{font-size:.875rem;line-height:1.25rem}.axp-compare-view .__table-container{flex:1 1 0%;overflow:auto;position:relative}.axp-compare-view .__table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.axp-compare-view .__table .__thead{position:-webkit-sticky;position:sticky;top:0;z-index:20}.axp-compare-view .__table .__thead .__header-row .__field-header{width:14rem;border-bottom-width:1px;border-right-width:1px;padding:.75rem 1rem;text-align:left;font-weight:700;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface));position:-webkit-sticky;position:sticky;left:0;z-index:25}.axp-compare-view .__table .__thead .__header-row .__object-header{position:relative;border-bottom-width:1px;padding:.75rem 1rem;text-align:center;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface));min-width:250px;width:250px}.axp-compare-view .__table .__thead .__header-row .__object-header .__object-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;font-weight:600}.axp-compare-view .__table .__thead .__header-row .__object-header .__object-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-compare-view .__table .__thead .__header-row .__object-header .__remove-object-button{display:flex;width:1.5rem;height:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));font-size:.875rem;line-height:1.25rem;position:absolute;top:50%;inset-inline-end:0px;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.axp-compare-view .__table .__thead .__header-row .__object-header .__remove-object-button:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-600),var(--tw-text-opacity, 1))}.axp-compare-view .__table .__tbody .__row{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axp-compare-view .__table .__tbody .__row.__row--odd{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-compare-view .__table .__tbody .__row.__row--has-differences{border-left-width:4px;--tw-border-opacity: 1;border-left-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell{background-color:rgba(var(--ax-sys-color-warning-500),var(--tw-bg-opacity, 1));--tw-bg-opacity: .05}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values{border-left-width:4px;--tw-border-opacity: 1;border-left-color:rgba(var(--ax-sys-color-success-500),var(--tw-border-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell{background-color:rgba(var(--ax-sys-color-success-500),var(--tw-bg-opacity, 1));--tw-bg-opacity: .05}.axp-compare-view .__table .__tbody .__row .__field-cell{width:14rem;border-bottom-width:1px;border-right-width:1px;padding:.75rem 1rem;vertical-align:top;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));position:-webkit-sticky;position:sticky;left:0;z-index:15}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content{display:flex;flex-direction:column;gap:.25rem}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content .__field-title{font-weight:500}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content .__field-description{font-size:.75rem;line-height:1rem;opacity:.75}.axp-compare-view .__table .__tbody .__row .__object-cell{border-bottom-width:1px;padding:.75rem 1rem;text-align:center;vertical-align:middle;position:relative}.axp-compare-view .__table .__tbody .__row .__object-cell.__cell--changed .__object-content{border-width:1px;border-style:dashed;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-200),var(--tw-border-opacity, 1));padding:.5rem}.axp-compare-view .__table .__tbody .__row .__object-cell .__object-content{position:relative;display:flex;align-items:center;justify-content:center}.axp-compare-view .__table .__tbody .__row .__object-cell .__change-indicator{position:absolute;inset-inline-end:-.25rem;top:50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));line-height:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-500),var(--tw-text-opacity, 1));font-size:.875rem}.axp-compare-view .__table .__tbody .__row .__object-cell .__object-placeholder{opacity:.75}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell{border-inline-start-width:4px;--tw-border-opacity: 1;border-inline-start-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-50),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-900),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell{border-inline-start-width:4px;--tw-border-opacity: 1;border-inline-start-color:rgba(var(--ax-sys-color-success-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-50),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-900),var(--tw-bg-opacity, 1))}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jb21wYXJlLXZpZXcvY29tcGFyZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jb21wYXJlLXZpZXcvY29tcGFyZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGlCQUFpQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFpQixNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBOEN4RixNQUFNLE9BQU8sdUJBQXVCO0lBdEJwQztRQXdCSSw0Q0FBNEM7UUFFNUMsV0FBTSxHQUFHLEtBQUssNERBQXdCLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxNQUFNLENBQUMsS0FBSywyREFBQyxDQUFDO1FBQ2hDLFNBQUksR0FBRyxLQUFLLENBQXFCLFNB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Vzt3QkFDWCxzQkFBc0I7cUJBQ3pCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksYUFDMUIsRUFFViIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWENoZWNrQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NoZWNrLWJveCc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuXG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLCBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBDb250ZXh0RGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ29tcGFyZVZpZXdGaWVsZCB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbXBhcmVWaWV3T2JqZWN0IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgY29udGV4dDogQVhQQ29udGV4dERhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ29tcGFyZVZpZXdJbnB1dHMge1xuICAgIGZpZWxkczogQVhQQ29tcGFyZVZpZXdGaWVsZFtdO1xuICAgIG9iamVjdHM6IEFYUENvbXBhcmVWaWV3T2JqZWN0W107XG59XG5cbmV4cG9ydCB0eXBlIEFYUENvbXBhcmVWaWV3TW9kZSA9ICdjb21wYXJlJyB8ICdjaGFuZ2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtY29tcGFyZS12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tcGFyZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY29tcGFyZS12aWV3LmNvbXBvbmVudC5zY3NzJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIEFuZ3VsYXJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICAvLyBBQ29yZVhcbiAgICAgICAgQVhGb3JtTW9kdWxlLFxuICAgICAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgICAgICBBWExhYmVsTW9kdWxlLFxuICAgICAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgICAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgICAgICAvLyBQbGF0Zm9ybVxuICAgICAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tcGFyZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXBvbmVudCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgaW5wdXRzID0gaW5wdXQ8QVhQQ29tcGFyZVZpZXdJbnB1dHM+KCk7XG4gICAgc2hvd09ubHlDaGFuZ2VzID0gc2lnbmFsKGZhbHNlKTtcbiAgICBtb2RlID0gaW5wdXQ8QVhQQ29tcGFyZVZpZXdNb2RlPignY29tcGFyZScpO1xuXG4gICAgcHJpdmF0ZSByZW1vdmVkT2JqZWN0cyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgcHJvdGVjdGVkIGlzQ2hhbmdlc01vZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1vZGUoKSA9PT0gJ2NoYW5nZXMnKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDb21wdXRlZCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogRmlsdGVyZWQgZmllbGRzIGJhc2VkIG9uIHNob3dPbmx5Q2hhbmdlcyB0b2dnbGVcbiAgICAgKi9cbiAgICBmaWx0ZXJlZEZpZWxkcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5pbnB1dHMoKT8uZmllbGRzID8/IFtdO1xuICAgICAgICAvLyBTZXQgcmVhZE9ubHkgdG8gdHJ1ZSBmb3IgYWxsIGZpZWxkc1xuICAgICAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBmaWVsZC53aWRnZXQub3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAuLi5maWVsZC53aWRnZXQub3B0aW9ucyxcbiAgICAgICAgICAgICAgICBhbGxvd0VkaXQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnNob3dPbmx5Q2hhbmdlcygpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlsdGVyIHRvIHNob3cgb25seSBmaWVsZHMgd2hlcmUgdmFsdWVzIGRpZmZlciBhY3Jvc3Mgb2JqZWN0c1xuICAgICAgICByZXR1cm4gZmllbGRzLmZpbHRlcihmaWVsZCA9PiB0aGlzLmhhc1VuZXF1YWxWYWx1ZXMoZmllbGQucGF0aCkpO1xuICAgIH0pO1xuXG4gICAgcmVtYWluaW5nT2JqZWN0cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgb2JqZWN0cyA9IHRoaXMuaW5wdXRzKCk/Lm9iamVjdHMgPz8gW107XG4gICAgICAgIHJldHVybiBvYmplY3RzLmZpbHRlcihvYmogPT4gIXRoaXMucmVtb3ZlZE9iamVjdHMoKS5pbmNsdWRlcyhvYmouaWQpKTtcbiAgICB9KTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBVdGlsaXR5IE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIGZpZWxkIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBuZXh0IG9iamVjdCAodG8gc2hvdyBhcnJvdyBpbiBjdXJyZW50IGNlbGwpXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGhhc1ZhbHVlQ2hhbmdpbmdUb05leHQoZmllbGRQYXRoOiBzdHJpbmcsIGN1cnJlbnRPYmplY3RJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSB0aGlzLnJlbWFpbmluZ09iamVjdHMoKTtcbiAgICAgICAgaWYgKGN1cnJlbnRPYmplY3RJbmRleCA+PSBvYmplY3RzLmxlbmd0aCAtIDEpIHJldHVybiBmYWxzZTtcblxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBvYmplY3RzW2N1cnJlbnRPYmplY3RJbmRleF0/LmNvbnRleHRbZmllbGRQYXRoXTtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gb2JqZWN0c1tjdXJyZW50T2JqZWN0SW5kZXggKyAxXT8uY29udGV4dFtmaWVsZFBhdGhdO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5hcmVWYWx1ZXNFcXVhbChjdXJyZW50VmFsdWUsIG5leHRWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBmaWVsZCB2YWx1ZSBoYXMgY2hhbmdlZCBjb21wYXJlZCB0byB0aGUgcHJldmlvdXMgb2JqZWN0XG4gICAgICovXG4gICAgaGFzVmFsdWVDaGFuZ2VkRnJvbVByZXZpb3VzKGZpZWxkUGF0aDogc3RyaW5nLCBjdXJyZW50T2JqZWN0SW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvYmplY3RzID0gdGhpcy5yZW1haW5pbmdPYmplY3RzKCk7XG4gICAgICAgIGlmIChjdXJyZW50T2JqZWN0SW5kZXggPT09IDAgfHwgb2JqZWN0cy5sZW5ndGggPD0gMSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IG9iamVjdHNbY3VycmVudE9iamVjdEluZGV4XT8uY29udGV4dFtmaWVsZFBhdGhdO1xuICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gb2JqZWN0c1tjdXJyZW50T2JqZWN0SW5kZXggLSAxXT8uY29udGV4dFtmaWVsZFBhdGhdO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5hcmVWYWx1ZXNFcXVhbChjdXJyZW50VmFsdWUsIHByZXZpb3VzVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgZmllbGQgaGFzIHVuZXF1YWwgdmFsdWVzIGFjcm9zcyBvYmplY3RzXG4gICAgICovXG4gICAgaGFzVW5lcXVhbFZhbHVlcyhmaWVsZFBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvYmplY3RzID0gdGhpcy5yZW1haW5pbmdPYmplY3RzKCk7XG4gICAgICAgIGlmIChvYmplY3RzLmxlbmd0aCA8PSAxKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdmFsdWVzID0gb2JqZWN0cy5tYXAob2JqID0+IG9iai5jb250ZXh0W2ZpZWxkUGF0aF0pO1xuICAgICAgICBjb25zdCBmaXJzdFZhbHVlID0gdmFsdWVzWzBdO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZXMuc29tZSh2YWx1ZSA9PiAhdGhpcy5hcmVWYWx1ZXNFcXVhbCh2YWx1ZSwgZmlyc3RWYWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgZmllbGQgaGFzIGVxdWFsIHZhbHVlcyBhY3Jvc3Mgb2JqZWN0c1xuICAgICAqL1xuICAgIGhhc0VxdWFsVmFsdWVzKGZpZWxkUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSB0aGlzLnJlbWFpbmluZ09iamVjdHMoKTtcbiAgICAgICAgaWYgKG9iamVjdHMubGVuZ3RoIDw9IDEpIHJldHVybiBmYWxzZTtcblxuICAgICAgICBjb25zdCB2YWx1ZXMgPSBvYmplY3RzLm1hcChvYmogPT4gb2JqLmNvbnRleHRbZmllbGRQYXRoXSk7XG4gICAgICAgIGNvbnN0IGZpcnN0VmFsdWUgPSB2YWx1ZXNbMF07XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlcy5ldmVyeSh2YWx1ZSA9PiB0aGlzLmFyZVZhbHVlc0VxdWFsKHZhbHVlLCBmaXJzdFZhbHVlKSk7XG4gICAgfVxuXG5cblxuXG4gICAgLyoqXG4gICAgICogQ29tcGFyZSB0d28gdmFsdWVzIGZvciBlcXVhbGl0eSAoZGVlcCBjb21wYXJpc29uIGZvciBvYmplY3RzL2FycmF5cylcbiAgICAgKi9cbiAgICBwcml2YXRlIGFyZVZhbHVlc0VxdWFsKHZhbHVlMTogYW55LCB2YWx1ZTI6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodmFsdWUxID09PSB2YWx1ZTIpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmICh2YWx1ZTEgPT0gbnVsbCB8fCB2YWx1ZTIgPT0gbnVsbCkgcmV0dXJuIHZhbHVlMSA9PT0gdmFsdWUyO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUxICE9PSB0eXBlb2YgdmFsdWUyKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUxKSA9PT0gSlNPTi5zdHJpbmdpZnkodmFsdWUyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGUgdGhlIHNob3cgb25seSBjaGFuZ2VzIGZpbHRlclxuICAgICAqL1xuICAgIHRvZ2dsZVNob3dPbmx5Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93T25seUNoYW5nZXMudXBkYXRlKHZhbHVlID0+ICF2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGFuIG9iamVjdCBmcm9tIHRoZSBjb21wYXJpc29uXG4gICAgICovXG4gICAgcmVtb3ZlT2JqZWN0KG9iamVjdElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVkT2JqZWN0cy51cGRhdGUob2JqZWN0cyA9PiBbLi4ub2JqZWN0cywgb2JqZWN0SWRdKTtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgTGlmZWN5Y2xlIE1ldGhvZHMgICAtLS0tXG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcblxuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuIiwiPCEtLVxuICAjcmVnaW9uIC0tLS0gICBDb21wYXJlIFZpZXcgVGFibGUgTGF5b3V0ICAgLS0tLVxuLS0+XG48ZGl2IGNsYXNzPVwiYXhwLWNvbXBhcmUtdmlld1wiPlxuICA8ZGl2IGNsYXNzPVwiX190YWJsZS1jb250YWluZXJcIj5cbiAgICA8dGFibGUgY2xhc3M9XCJfX3RhYmxlXCI+XG4gICAgICA8dGhlYWQgY2xhc3M9XCJfX3RoZWFkXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cIl9faGVhZGVyLXJvd1wiPlxuICAgICAgICAgIDx0aCBjbGFzcz1cIl9fZmllbGQtaGVhZGVyXCI+XG4gICAgICAgICAgICA8YXgtY2hlY2stYm94IFt2YWx1ZV09XCJzaG93T25seUNoYW5nZXMoKVwiICh2YWx1ZUNoYW5nZSk9XCJ0b2dnbGVTaG93T25seUNoYW5nZXMoKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiX19zaG93LWNoYW5nZXMtdG9nZ2xlXCI+XG4gICAgICAgICAgICAgIDxheC1sYWJlbD5cbiAgICAgICAgICAgICAgICB7eyAnY29tcGFyZS12aWV3LnNob3ctb25seS1kaWZmZXJlbmNlcycgfCB0cmFuc2xhdGU6IHsgc2NvcGU6ICdjb21tb24nIH0gfCBhc3luYyB9fVxuICAgICAgICAgICAgICA8L2F4LWxhYmVsPlxuICAgICAgICAgICAgPC9heC1jaGVjay1ib3g+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgICBAZm9yIChvYmogb2YgcmVtYWluaW5nT2JqZWN0cygpOyB0cmFjayBvYmouaWQpIHtcbiAgICAgICAgICA8dGggY2xhc3M9XCJfX29iamVjdC1oZWFkZXJcIiBbYXR0ci5kYXRhLWlkXT1cIm9iai5pZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fb2JqZWN0LXRpdGxlXCIgW3RpdGxlXT1cIm9iai5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBvYmoudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChyZW1haW5pbmdPYmplY3RzKCkubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIl9fcmVtb3ZlLW9iamVjdC1idXR0b25cIiAoY2xpY2spPVwicmVtb3ZlT2JqZWN0KG9iai5pZClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keSBjbGFzcz1cIl9fdGJvZHlcIj5cbiAgICAgICAgQGZvciAoZmllbGQgb2YgZmlsdGVyZWRGaWVsZHMoKTsgdHJhY2sgZmllbGQucGF0aDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPHRyIGNsYXNzPVwiX19yb3dcIiBbY2xhc3MuX19yb3ctLW9kZF09XCJpICUgMiA9PT0gMVwiIFtjbGFzcy5fX3Jvdy0taGFzLWRpZmZlcmVuY2VzXT1cImhhc1VuZXF1YWxWYWx1ZXMoZmllbGQucGF0aClcIlxuICAgICAgICAgIFtjbGFzcy5fX3Jvdy0taGFzLWVxdWFsLXZhbHVlc109XCJoYXNFcXVhbFZhbHVlcyhmaWVsZC5wYXRoKVwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cIl9fZmllbGQtY2VsbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fZmllbGQtY29udGVudFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19maWVsZC10aXRsZVwiPlxuICAgICAgICAgICAgICAgIHt7IGZpZWxkLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoZmllbGQuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fZmllbGQtZGVzY3JpcHRpb25cIj57eyBmaWVsZC5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIEBmb3IgKG9iaiBvZiByZW1haW5pbmdPYmplY3RzKCk7IHRyYWNrIG9iai5pZDsgbGV0IG9iakluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgPHRkIGNsYXNzPVwiX19vYmplY3QtY2VsbFwiIFthdHRyLmRhdGEtaWRdPVwib2JqLmlkXCJcbiAgICAgICAgICAgIFtjbGFzcy5fX2NlbGwtLWNoYW5nZWRdPVwiaGFzVmFsdWVDaGFuZ2VkRnJvbVByZXZpb3VzKGZpZWxkLnBhdGgsIG9iakluZGV4KSAmJiBpc0NoYW5nZXNNb2RlKClcIj5cbiAgICAgICAgICAgIEBpZiAob2JqLmNvbnRleHRbZmllbGQucGF0aF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fb2JqZWN0LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJvYmouY29udGV4dFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJmaWVsZC53aWRnZXRcIiBbbW9kZV09XCIndmlldydcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fb2JqZWN0LXBsYWNlaG9sZGVyXCI+LS0tPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGhhc1ZhbHVlQ2hhbmdpbmdUb05leHQoZmllbGQucGF0aCwgb2JqSW5kZXgpICYmIGlzQ2hhbmdlc01vZGUoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fY2hhbmdlLWluZGljYXRvclwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWFycm93LXJpZ2h0XCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvdHI+XG4gICAgICAgIH1cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG48L2Rpdj5cbjwhLS1cbiAgI2VuZHJlZ2lvblxuLS0+Il19","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPComponentSlot {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlot, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPComponentSlot, isStandalone: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlot, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50LXNsb3QvY29tcG9uZW50LXNsb3QudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQzs7QUFpQmhELE1BQU0sT0FBZ0IsZ0JBQWdCOzhHQUFoQixnQkFBZ0I7a0dBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFEckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUENvbnRleHREYXRhIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbXBvbmVudFNsb3RDb25maWcge1xuICBuYW1lOiBzdHJpbmc7XG4gIHByaW9yaXR5PzogbnVtYmVyO1xuICBjb21wb25lbnQ/OiBUeXBlPGFueT47XG4gIGNvbmRpdGlvbj86ICgoY29udGV4dD86IEFYUENvbnRleHREYXRhKSA9PiAoYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4pKSB8IHN0cmluZztcbiAgbG9hZENvbXBvbmVudD86ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgb3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9IHwgKCgpID0+IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb21wb25lbnRTbG90TW9kdWxlQ29uZmlncyB7XG4gIFtzbG90TmFtZTogc3RyaW5nXTogQVhQQ29tcG9uZW50U2xvdENvbmZpZ1tdO1xufVxuXG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUENvbXBvbmVudFNsb3Qge1xuICBob3N0OiBhbnk7XG59XG4iXX0=","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPComponentSlotRegistryService {\n constructor() {\n this.registry = new Map();\n }\n register(slotName, config) {\n let configs = this.registry.get(slotName) || [];\n // Check if the component is already registered in this slot\n const isDuplicate = configs.some(existingConfig => existingConfig.name === config.name);\n if (!isDuplicate) {\n configs = [...configs, config]; // Add the new configuration\n this.registry.set(slotName, configs);\n }\n }\n get(slotName) {\n return this.registry.get(slotName) || [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlotRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlotRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlotRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QtcmVnaXN0ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50LXNsb3QvY29tcG9uZW50LXNsb3QtcmVnaXN0ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQzs7QUFNckQsTUFBTSxPQUFPLCtCQUErQjtJQUg1QztRQUtZLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztLQWlCbEU7SUFmRyxRQUFRLENBQUMsUUFBZ0IsRUFBRSxNQUE4QjtRQUNyRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFaEQsNERBQTREO1FBQzVELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDZixPQUFPLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtZQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHLENBQUMsUUFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQzs4R0FsQlEsK0JBQStCO2tIQUEvQiwrQkFBK0IsY0FGNUIsTUFBTTs7MkZBRVQsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUENvbXBvbmVudFNsb3RDb25maWcgfSBmcm9tIFwiLi9jb21wb25lbnQtc2xvdC50eXBlc1wiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbXBvbmVudFNsb3RSZWdpc3RyeVNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCBBWFBDb21wb25lbnRTbG90Q29uZmlnW10+KCk7XG5cbiAgICByZWdpc3RlcihzbG90TmFtZTogc3RyaW5nLCBjb25maWc6IEFYUENvbXBvbmVudFNsb3RDb25maWcpIHtcbiAgICAgICAgbGV0IGNvbmZpZ3MgPSB0aGlzLnJlZ2lzdHJ5LmdldChzbG90TmFtZSkgfHwgW107XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgaW4gdGhpcyBzbG90XG4gICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gY29uZmlncy5zb21lKGV4aXN0aW5nQ29uZmlnID0+IGV4aXN0aW5nQ29uZmlnLm5hbWUgPT09IGNvbmZpZy5uYW1lKTtcblxuICAgICAgICBpZiAoIWlzRHVwbGljYXRlKSB7XG4gICAgICAgICAgICBjb25maWdzID0gWy4uLmNvbmZpZ3MsIGNvbmZpZ107IC8vIEFkZCB0aGUgbmV3IGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgIHRoaXMucmVnaXN0cnkuc2V0KHNsb3ROYW1lLCBjb25maWdzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldChzbG90TmFtZTogc3RyaW5nKTogQVhQQ29tcG9uZW50U2xvdENvbmZpZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KHNsb3ROYW1lKSB8fCBbXTtcbiAgICB9XG59Il19","import { AXPContextStore, AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { computed, Directive, effect, ElementRef, inject, Injector, input, runInInjectionContext, signal, ViewContainerRef, } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPComponentSlotDirective {\n constructor() {\n this.name = input.required(...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.host = input(...(ngDevMode ? [undefined, { debugName: \"host\" }] : []));\n this.context = input(...(ngDevMode ? [undefined, { debugName: \"context\" }] : []));\n this.elementRef = inject(ElementRef);\n this.registryService = inject(AXPComponentSlotRegistryService);\n this.injector = inject(Injector);\n this.evaluator = inject(AXPExpressionEvaluatorService);\n this.viewContainerRef = inject(ViewContainerRef);\n this.contextStore = inject(AXPContextStore);\n this.isEmpty = computed(() => this._viewCount() === 0, ...(ngDevMode ? [{ debugName: \"isEmpty\" }] : []));\n // Create a signal to store the count of children\n this._viewCount = signal(0, ...(ngDevMode ? [{ debugName: \"_viewCount\" }] : []));\n // Track component references for updates\n this.componentRefs = [];\n // Watch for context changes and update component instances\n effect(() => {\n const currentContext = this.context();\n const currentHost = this.host();\n // Update all component references with new context and host\n this.componentRefs.forEach(componentRef => {\n if (componentRef.instance) {\n Object.assign(componentRef.instance, {\n host: currentHost,\n context: currentContext,\n });\n }\n });\n });\n }\n async ngOnInit() {\n await this.loadComponents();\n // Update the signal after loading\n this._viewCount.set(this.viewContainerRef.length);\n }\n async loadComponents() {\n this.viewContainerRef.clear();\n // Clear previous component references\n this.componentRefs = [];\n const configs = sortBy(this.registryService.get(this.name()), (c) => c.priority ?? 0);\n if (!configs) {\n console.error(`No component found for slot ${this.name()}`);\n return;\n }\n const results = await Promise.all(configs.map(async (c) => ({\n config: c,\n visible: c.condition ? await this.evaluateCondition(c.condition) : true,\n })));\n const slots = results.filter((r) => r.visible).map((r) => r.config);\n this.viewContainerRef.clear();\n await Promise.all(slots.map(async (config) => {\n let component;\n let options = {};\n // load component\n if (typeof config.loadComponent === 'function') {\n await runInInjectionContext(this.injector, async () => {\n component = await config.loadComponent?.();\n });\n }\n else if (config.component) {\n component = config.component;\n }\n // load options\n if (typeof config.options === 'function') {\n runInInjectionContext(this.injector, () => {\n const fun = config.options;\n options = fun();\n });\n }\n else if (config.options) {\n options = await this.evaluator.evaluate(config.options, {});\n }\n // apply options and host\n const componentRef = this.viewContainerRef.createComponent(component);\n // Store the component reference for future updates\n this.componentRefs.push(componentRef);\n Object.assign(componentRef.instance, {\n host: this.host(),\n context: this.context(),\n ...options,\n });\n }));\n }\n async evaluateCondition(condition) {\n if (typeof condition === 'string') {\n const result = await this.evaluator.evaluate(condition, {});\n return result;\n }\n return condition(this.contextStore.data());\n //return condition(this.context());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.6\", type: AXPComponentSlotDirective, isStandalone: false, selector: \"axp-component-slot\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: true, transformFunction: null }, host: { classPropertyName: \"host\", publicName: \"host\", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: \"context\", publicName: \"context\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"slot\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlotDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'axp-component-slot',\n standalone: false,\n exportAs: 'slot',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudC1zbG90L2NvbXBvbmVudC1zbG90LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLGVBQWUsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZHLE9BQU8sRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBRUwscUJBQXFCLEVBQ3JCLE1BQU0sRUFFTixnQkFBZ0IsR0FFakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFPckYsTUFBTSxPQUFPLHlCQUF5QjtJQW9CcEM7UUFuQkEsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLCtDQUFVLENBQUM7UUFDaEMsU0FBSSxHQUFHLEtBQUssMERBQU8sQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyw2REFBTyxDQUFDO1FBRWYsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQzFELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25ELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXZDLFlBQU8sR0FBRyxRQUFR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LEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzQyxtQ0FBbUM7SUFDckMsQ0FBQzs4R0F6R1UseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSxNQUFNO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUENvbnRleHREYXRhLCBBWFBDb250ZXh0U3RvcmUsIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIE9uSW5pdCxcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxuICBzaWduYWwsXG4gIFR5cGUsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzb3J0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vY29tcG9uZW50LXNsb3QtcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdheHAtY29tcG9uZW50LXNsb3QnLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgZXhwb3J0QXM6ICdzbG90Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tcG9uZW50U2xvdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIGhvc3QgPSBpbnB1dDxhbnk+KCk7XG4gIGNvbnRleHQgPSBpbnB1dDxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlZ2lzdHJ5U2VydmljZSA9IGluamVjdChBWFBDb21wb25lbnRTbG90UmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgZXZhbHVhdG9yID0gaW5qZWN0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlKTtcbiAgcHVibGljIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHB1YmxpYyBjb250ZXh0U3RvcmUgPSBpbmplY3QoQVhQQ29udGV4dFN0b3JlKTtcblxuICBwdWJsaWMgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3ZpZXdDb3VudCgpID09PSAwKTtcblxuICAvLyBDcmVhdGUgYSBzaWduYWwgdG8gc3RvcmUgdGhlIGNvdW50IG9mIGNoaWxkcmVuXG4gIHByaXZhdGUgX3ZpZXdDb3VudCA9IHNpZ25hbCgwKTtcblxuICAvLyBUcmFjayBjb21wb25lbnQgcmVmZXJlbmNlcyBmb3IgdXBkYXRlc1xuICBwcml2YXRlIGNvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBXYXRjaCBmb3IgY29udGV4dCBjaGFuZ2VzIGFuZCB1cGRhdGUgY29tcG9uZW50IGluc3RhbmNlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dCgpO1xuICAgICAgY29uc3QgY3VycmVudEhvc3QgPSB0aGlzLmhvc3QoKTtcblxuICAgICAgLy8gVXBkYXRlIGFsbCBjb21wb25lbnQgcmVmZXJlbmNlcyB3aXRoIG5ldyBjb250ZXh0IGFuZCBob3N0XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZnMuZm9yRWFjaChjb21wb25lbnRSZWYgPT4ge1xuICAgICAgICBpZiAoY29tcG9uZW50UmVmLmluc3RhbmNlKSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcbiAgICAgICAgICAgIGhvc3Q6IGN1cnJlbnRIb3N0LFxuICAgICAgICAgICAgY29udGV4dDogY3VycmVudENvbnRleHQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkQ29tcG9uZW50cygpO1xuICAgIC8vIFVwZGF0ZSB0aGUgc2lnbmFsIGFmdGVyIGxvYWRpbmdcbiAgICB0aGlzLl92aWV3Q291bnQuc2V0KHRoaXMudmlld0NvbnRhaW5lclJlZi5sZW5ndGgpO1xuICB9XG5cbiAgYXN5bmMgbG9hZENvbXBvbmVudHMoKSB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgLy8gQ2xlYXIgcHJldmlvdXMgY29tcG9uZW50IHJlZmVyZW5jZXNcbiAgICB0aGlzLmNvbXBvbmVudFJlZnMgPSBbXTtcblxuICAgIGNvbnN0IGNvbmZpZ3MgPSBzb3J0QnkodGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0KHRoaXMubmFtZSgpKSwgKGMpID0+IGMucHJpb3JpdHkgPz8gMCk7XG4gICAgaWYgKCFjb25maWdzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBObyBjb21wb25lbnQgZm91bmQgZm9yIHNsb3QgJHt0aGlzLm5hbWUoKX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY29uZmlncy5tYXAoYXN5bmMgKGMpID0+ICh7XG4gICAgICAgIGNvbmZpZzogYyxcbiAgICAgICAgdmlzaWJsZTogYy5jb25kaXRpb24gPyBhd2FpdCB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKGMuY29uZGl0aW9uKSA6IHRydWUsXG4gICAgICB9KSksXG4gICAgKTtcbiAgICBjb25zdCBzbG90cyA9IHJlc3VsdHMuZmlsdGVyKChyKSA9PiByLnZpc2libGUpLm1hcCgocikgPT4gci5jb25maWcpO1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgc2xvdHMubWFwKGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgbGV0IGNvbXBvbmVudCE6IFR5cGU8YW55PiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBvcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSA9IHt9O1xuICAgICAgICAvLyBsb2FkIGNvbXBvbmVudFxuICAgICAgICBpZiAodHlwZW9mIGNvbmZpZy5sb2FkQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYXdhaXQgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbXBvbmVudCA9IGF3YWl0IGNvbmZpZy5sb2FkQ29tcG9uZW50Py4oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChjb25maWcuY29tcG9uZW50KSB7XG4gICAgICAgICAgY29tcG9uZW50ID0gY29uZmlnLmNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICAvLyBsb2FkIG9wdGlvbnNcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWcub3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmdW4gPSBjb25maWcub3B0aW9ucyBhcyBGdW5jdGlvbjtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBmdW4oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChjb25maWcub3B0aW9ucykge1xuICAgICAgICAgIG9wdGlvbnMgPSBhd2FpdCB0aGlzLmV2YWx1YXRvci5ldmFsdWF0ZShjb25maWcub3B0aW9ucywge30pO1xuICAgICAgICB9XG4gICAgICAgIC8vIGFwcGx5IG9wdGlvbnMgYW5kIGhvc3RcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQhKTtcblxuICAgICAgICAvLyBTdG9yZSB0aGUgY29tcG9uZW50IHJlZmVyZW5jZSBmb3IgZnV0dXJlIHVwZGF0ZXNcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWZzLnB1c2goY29tcG9uZW50UmVmKTtcblxuICAgICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xuICAgICAgICAgIGhvc3Q6IHRoaXMuaG9zdCgpLFxuICAgICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dCgpLFxuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVDb25kaXRpb24oY29uZGl0aW9uOiBzdHJpbmcgfCAoKGNvbnRleHQ/OiBBWFBDb250ZXh0RGF0YSkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4pKSB7XG4gICAgaWYgKHR5cGVvZiBjb25kaXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV2YWx1YXRvci5ldmFsdWF0ZShjb25kaXRpb24sIHt9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiBjb25kaXRpb24odGhpcy5jb250ZXh0U3RvcmUuZGF0YSgpKTtcbiAgICAvL3JldHVybiBjb25kaXRpb24odGhpcy5jb250ZXh0KCkpO1xuICB9XG59XG4iXX0=","import { Inject, NgModule, Optional } from '@angular/core';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\nimport { AXPComponentSlotDirective } from './component-slot.directive';\nimport * as i0 from \"@angular/core\";\nexport class AXPComponentSlotModule {\n static forRoot(configs) {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n });\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n ]\n };\n }\n static forChild(configs) {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n });\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n ]\n };\n }\n /**\n * @ignore\n */\n constructor(instances) {\n instances?.forEach(f => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlotModule, deps: [{ token: 'AXPComponentSlotModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlotModule, declarations: [AXPComponentSlotDirective], exports: [AXPComponentSlotDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlotModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPComponentSlotModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [AXPComponentSlotDirective],\n exports: [AXPComponentSlotDirective]\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['AXPComponentSlotModuleFactory']\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudC1zbG90L2NvbXBvbmVudC1zbG90Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUF1QixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU12RSxNQUFNLE9BQU8sc0JBQXNCO0lBRS9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBdUM7UUFDbEQsT0FBTztZQUNILFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwrQkFBK0I7b0JBQ3hDLFVBQVUsRUFBRSxDQUFDLFFBQXlDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTt3QkFDNUQsSUFBSSxPQUFPLEVBQUUsQ0FBQzs0QkFDVixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dDQUNqRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29DQUNkLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dDQUM5QixDQUFDLENBQUMsQ0FBQTs0QkFDTixDQUFDO3dCQUNMLENBQUM7b0JBQ0wsQ0FBQztvQkFDRCxJQUFJLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDdkMsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUF1QztRQUNuRCxPQUFPO1lBQ0gsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLCtCQUErQjtvQkFDeEMsVUFBVSxFQUFFLENBQUMsUUFBeUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO3dCQUM1RCxJQUFJLE9BQU8sRUFBRSxDQUFDOzRCQUNWLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0NBQ2pELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0NBQ2QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0NBQzlCLENBQUMsQ0FBQyxDQUFBOzRCQUNOLENBQUM7d0JBQ0wsQ0FBQztvQkFDTCxDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLCtCQUErQixDQUFDO29CQUN2QyxLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUVKO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQWlFLFNBQWdCO1FBQzdFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkIsQ0FBQyxFQUFFLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBdERRLHNCQUFzQixrQkFrREMsK0JBQStCOytHQWxEdEQsc0JBQXNCLGlCQUhoQix5QkFBeUIsYUFDOUIseUJBQXlCOytHQUUxQixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUN2Qzs7MEJBbURnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBDb21wb25lbnRTbG90TW9kdWxlQ29uZmlncyB9IGZyb20gJy4vY29tcG9uZW50LXNsb3QudHlwZXMnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vY29tcG9uZW50LXNsb3QtcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdERpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50LXNsb3QuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtBWFBDb21wb25lbnRTbG90RGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbQVhQQ29tcG9uZW50U2xvdERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tcG9uZW50U2xvdE1vZHVsZSB7XG5cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWdzPzogQVhQQ29tcG9uZW50U2xvdE1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUENvbXBvbmVudFNsb3RNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBBWFBDb21wb25lbnRTbG90TW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiAnQVhQQ29tcG9uZW50U2xvdE1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYUENvbXBvbmVudFNsb3RSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25maWdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlncykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKGtleSwgdik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQVhQQ29tcG9uZW50U2xvdFJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBmb3JDaGlsZChjb25maWdzPzogQVhQQ29tcG9uZW50U2xvdE1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUENvbXBvbmVudFNsb3RNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBBWFBDb21wb25lbnRTbG90TW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiAnQVhQQ29tcG9uZW50U2xvdE1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYUENvbXBvbmVudFNsb3RSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25maWdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlncykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKGtleSwgdik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQVhQQ29tcG9uZW50U2xvdFJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoJ0FYUENvbXBvbmVudFNsb3RNb2R1bGVGYWN0b3J5JykgaW5zdGFuY2VzOiBhbnlbXSkge1xuICAgICAgICBpbnN0YW5jZXM/LmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICBmKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufVxuIl19","import { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPGridLayoutDirective } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule, AXPPageStatus, AXPWidgetContainerComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, input, output, signal, ViewEncapsulation, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutSectionComponent } from '../blocks';\nimport { AXLabelComponent } from \"@acorex/components/label\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/form\";\nimport * as i2 from \"@acorex/platform/layout/builder\";\nexport class AXPDynamicFormComponent {\n constructor() {\n //#region ---- Inputs ----\n /**\n * Form definition containing groups and fields\n */\n this.formDefinition = input.required(...(ngDevMode ? [{ debugName: \"formDefinition\" }] : []));\n /**\n * Form context/model data\n */\n this.context = input.required(...(ngDevMode ? [{ debugName: \"context\" }] : []));\n /**\n * Layout style for the form (normal, compact, vertical, horizontal)\n */\n this.layoutStyle = input('normal', ...(ngDevMode ? [{ debugName: \"layoutStyle\" }] : []));\n /**\n * Custom layout configuration for form fields\n */\n this.layoutConfig = input({\n positions: {\n default: { colSpan: 12 },\n md: { colSpan: 8 },\n lg: { colSpan: 6 },\n xl: { colSpan: 5 },\n xxl: { colSpan: 4 },\n },\n }, ...(ngDevMode ? [{ debugName: \"layoutConfig\" }] : []));\n //#endregion\n //#region ---- Outputs ----\n /**\n * Emitted when form context changes\n */\n this.contextChange = output();\n /**\n * Emitted when context change is initiated\n */\n this.contextInitiated = output();\n /**\n * Emitted when form becomes valid/invalid\n */\n this.validityChange = output();\n //#endregion\n //#region ---- Properties ----\n this.form = viewChild(AXFormComponent, ...(ngDevMode ? [{ debugName: \"form\" }] : []));\n this.container = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: \"container\" }] : []));\n /**\n * Internal context signal for reactivity\n */\n this.internalContext = signal({}, ...(ngDevMode ? [{ debugName: \"internalContext\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n /**\n * Computed layout configuration\n */\n this.computedLayout = computed(() => this.layoutConfig(), ...(ngDevMode ? [{ debugName: \"computedLayout\" }] : []));\n /**\n * Computed form definition\n */\n this.computedFormDefinition = computed(() => this.formDefinition(), ...(ngDevMode ? [{ debugName: \"computedFormDefinition\" }] : []));\n /**\n * Host classes based on layout style\n */\n this.hostClasses = computed(() => {\n const classes = ['axp-dynamic-form'];\n const style = this.layoutStyle();\n if (style && style !== 'normal') {\n classes.push(`--${style}`);\n }\n return classes.join(' ');\n }, ...(ngDevMode ? [{ debugName: \"hostClasses\" }] : []));\n //#endregion\n //#region ---- Effects ----\n /**\n * Effect to sync context changes\n */\n this.#contextSyncEffect = effect(() => {\n const context = this.context();\n this.internalContext.set(context);\n }, ...(ngDevMode ? [{ debugName: \"#contextSyncEffect\" }] : []));\n /**\n * Effect to handle form status changes\n */\n this.#formStatusEffect = effect(() => {\n const form = this.form();\n if (form) {\n // You can add form status tracking here if needed\n this.container()?.builderService.setStatus(AXPPageStatus.Rendered);\n }\n }, ...(ngDevMode ? [{ debugName: \"#formStatusEffect\" }] : []));\n }\n //#endregion\n //#region ---- Lifecycle Methods ----\n ngOnInit() {\n // Initialize internal context with input context\n this.internalContext.set(this.context());\n }\n //#endregion\n //#region ---- Effects ----\n /**\n * Effect to sync context changes\n */\n #contextSyncEffect;\n /**\n * Effect to handle form status changes\n */\n #formStatusEffect;\n //#endregion\n //#region ---- Event Handlers ----\n /**\n * Handle context change events from widget container\n */\n handleContextChanged(event) {\n if (event.state === 'initiated') {\n this.contextInitiated.emit(event.data);\n }\n else {\n this.internalContext.set(event.data);\n this.contextChange.emit(event.data);\n }\n }\n //#endregion\n //#region ---- Public Methods ----\n /**\n * Get the form component instance\n */\n getForm() {\n return this.form();\n }\n /**\n * Get current form context\n */\n getContext() {\n return this.internalContext();\n }\n /**\n * Update form context programmatically\n */\n updateContext(context) {\n this.internalContext.set(context);\n }\n /**\n * Validate the form\n */\n async validate() {\n const form = this.form();\n if (form) {\n const isValid = await form.validate();\n this.validityChange.emit(isValid.result);\n return isValid.result;\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDynamicFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPDynamicFormComponent, isStandalone: true, selector: \"axp-dynamic-form\", inputs: { formDefinition: { classPropertyName: \"formDefinition\", publicName: \"formDefinition\", isSignal: true, isRequired: true, transformFunction: null }, context: { classPropertyName: \"context\", publicName: \"context\", isSignal: true, isRequired: true, transformFunction: null }, layoutStyle: { classPropertyName: \"layoutStyle\", publicName: \"layoutStyle\", isSignal: true, isRequired: false, transformFunction: null }, layoutConfig: { classPropertyName: \"layoutConfig\", publicName: \"layoutConfig\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contextChange: \"contextChange\", contextInitiated: \"contextInitiated\", validityChange: \"validityChange\" }, host: { properties: { \"class\": \"hostClasses()\" }, classAttribute: \"axp-dynamic-form\" }, viewQueries: [{ propertyName: \"form\", first: true, predicate: AXFormComponent, descendants: true, isSignal: true }, { propertyName: \"container\", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: \"<ax-form>\\n <axp-widgets-container [context]=\\\"internalContext()\\\" (onContextChanged)=\\\"handleContextChanged($event)\\\">\\n <axp-layout-sections>\\n @if (computedFormDefinition()) {\\n @for (group of computedFormDefinition().groups; track group.name) {\\n <axp-layout-section>\\n <axp-layout-header>\\n <axp-layout-title>{{ group.title }}</axp-layout-title>\\n @if (group.description) {\\n <axp-layout-description>{{ group.description }}</axp-layout-description>\\n }\\n </axp-layout-header>\\n <axp-layout-content>\\n @for (param of group.parameters; track param.path) {\\n <div class=\\\"__field-container\\\">\\n <ax-form-field class=\\\"__field-input\\\" [gridLayout]=\\\"computedLayout()\\\">\\n <ax-label>{{ param.title }}</ax-label>\\n <ng-container axp-widget-renderer [node]=\\\"param.widget\\\" [mode]=\\\"'edit'\\\"></ng-container>\\n <!-- @if (param.description) {\\n <axp-layout-description>{{ param.description }}</axp-layout-description>\\n } -->\\n </ax-form-field>\\n </div>\\n }\\n </axp-layout-content>\\n </axp-layout-section>\\n }\\n } @else {\\n <axp-layout-section>\\n <axp-layout-content>\\n <div class=\\\"__empty-state\\\">\\n <axp-layout-description>No form definition provided</axp-layout-description>\\n </div>\\n </axp-layout-content>\\n </axp-layout-section>\\n }\\n </axp-layout-sections>\\n </axp-widgets-container>\\n</ax-form>\\n\", styles: [\".axp-dynamic-form{width:100%}.axp-dynamic-form axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}.axp-dynamic-form axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:2.5rem;padding-right:2.5rem}}.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}.axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12}@media (min-width: 768px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 4 / span 4}}@media (min-width: 1024px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 4 / span 4}}@media (min-width: 1536px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 3 / span 3}}.axp-dynamic-form axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}.axp-dynamic-form.--compact axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;gap:.25rem;padding:.25rem .5rem;margin-bottom:.5rem;border-width:0px}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container .__field-info{margin-bottom:.125rem;width:100%}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{font-size:.875rem;line-height:1.25rem;font-weight:500}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container .__field-input{width:100%}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.125rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}.axp-dynamic-form.--compact axp-layout-section{margin-bottom:.75rem}.axp-dynamic-form.--compact axp-layout-section axp-layout-header{margin-bottom:.5rem;gap:0px;padding:.5rem}.axp-dynamic-form.--compact axp-layout-section axp-layout-header axp-layout-title{font-size:1rem;line-height:1.5rem;font-weight:600}.axp-dynamic-form.--compact axp-layout-section axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-dynamic-form.--vertical axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.axp-dynamic-form.--vertical axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12;width:100%}.axp-dynamic-form.--vertical axp-layout-section axp-layout-content .__field-container .__field-input{grid-column:span 12 / span 12;width:100%}.axp-dynamic-form.--vertical axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.25rem!important;font-size:.875rem!important;line-height:1.25rem!important}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:row;align-items:center;gap:1rem;padding-top:.75rem;padding-bottom:.75rem}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container .__field-info{width:12rem;flex-shrink:0}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{margin-bottom:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:500}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container .__field-input{flex:1 1 0%}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}.axp-dynamic-form .__empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:2rem;padding-bottom:2rem;text-align:center}.axp-dynamic-form .__empty-state .__message{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: \n // ACoreX\n AXFormModule }, { kind: \"component\", type: i1.AXFormFieldComponent, selector: \"ax-form-field\", inputs: [\"labelMode\"] }, { kind: \"component\", type: i1.AXFormComponent, selector: \"ax-form\", inputs: [\"labelMode\", \"look\", \"messageStyle\", \"updateOn\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: \n // Platform\n AXPLayoutBuilderModule }, { kind: \"component\", type: i2.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i2.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \"\\n\\n axp-page-content, \\n axp-page-footer-container,\\n axp-page-footer,\\n axp-page-header,\\n axp-page-header-container,\\n axp-page-toolbar,\\n\\n axp-layout-content, \\n axp-layout-page-content, \\n\\n axp-layout-sections,\\n axp-layout-body,\\n axp-layout-page-body,\\n axp-layout-prefix,\\n axp-layout-suffix,\\n axp-layout-title-bar,\\n axp-layout-title, \\n axp-layout-title-actions, \\n axp-layout-nav-button, \\n axp-layout-description, \\n axp-layout-breadcrumbs,\\n axp-layout-list-action,\\n \" }, { kind: \"component\", type: AXPThemeLayoutHeaderComponent, selector: \"axp-layout-header\" }, { kind: \"component\", type: AXPThemeLayoutSectionComponent, selector: \"axp-layout-section\" }, { kind: \"directive\", type: AXPGridLayoutDirective, selector: \"[gridLayout]\", inputs: [\"gridLayout\"] }, { kind: \"component\", type: AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDynamicFormComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, selector: 'axp-dynamic-form', imports: [\n CommonModule,\n FormsModule,\n // ACoreX\n AXFormModule,\n AXValidationModule,\n // Platform\n AXPLayoutBuilderModule,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutSectionComponent,\n AXPGridLayoutDirective,\n AXLabelComponent\n ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n class: 'axp-dynamic-form',\n '[class]': 'hostClasses()',\n }, template: \"<ax-form>\\n <axp-widgets-container [context]=\\\"internalContext()\\\" (onContextChanged)=\\\"handleContextChanged($event)\\\">\\n <axp-layout-sections>\\n @if (computedFormDefinition()) {\\n @for (group of computedFormDefinition().groups; track group.name) {\\n <axp-layout-section>\\n <axp-layout-header>\\n <axp-layout-title>{{ group.title }}</axp-layout-title>\\n @if (group.description) {\\n <axp-layout-description>{{ group.description }}</axp-layout-description>\\n }\\n </axp-layout-header>\\n <axp-layout-content>\\n @for (param of group.parameters; track param.path) {\\n <div class=\\\"__field-container\\\">\\n <ax-form-field class=\\\"__field-input\\\" [gridLayout]=\\\"computedLayout()\\\">\\n <ax-label>{{ param.title }}</ax-label>\\n <ng-container axp-widget-renderer [node]=\\\"param.widget\\\" [mode]=\\\"'edit'\\\"></ng-container>\\n <!-- @if (param.description) {\\n <axp-layout-description>{{ param.description }}</axp-layout-description>\\n } -->\\n </ax-form-field>\\n </div>\\n }\\n </axp-layout-content>\\n </axp-layout-section>\\n }\\n } @else {\\n <axp-layout-section>\\n <axp-layout-content>\\n <div class=\\\"__empty-state\\\">\\n <axp-layout-description>No form definition provided</axp-layout-description>\\n </div>\\n </axp-layout-content>\\n </axp-layout-section>\\n }\\n </axp-layout-sections>\\n </axp-widgets-container>\\n</ax-form>\\n\", styles: [\".axp-dynamic-form{width:100%}.axp-dynamic-form axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}.axp-dynamic-form axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:2.5rem;padding-right:2.5rem}}.axp-dynamic-form axp-layout-section axp-layout-content .__field-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}.axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12}@media (min-width: 768px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 4 / span 4}}@media (min-width: 1024px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 4 / span 4}}@media (min-width: 1536px){.axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 3 / span 3}}.axp-dynamic-form axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}.axp-dynamic-form.--compact axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;gap:.25rem;padding:.25rem .5rem;margin-bottom:.5rem;border-width:0px}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container .__field-info{margin-bottom:.125rem;width:100%}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{font-size:.875rem;line-height:1.25rem;font-weight:500}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container .__field-input{width:100%}.axp-dynamic-form.--compact axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.125rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}.axp-dynamic-form.--compact axp-layout-section{margin-bottom:.75rem}.axp-dynamic-form.--compact axp-layout-section axp-layout-header{margin-bottom:.5rem;gap:0px;padding:.5rem}.axp-dynamic-form.--compact axp-layout-section axp-layout-header axp-layout-title{font-size:1rem;line-height:1.5rem;font-weight:600}.axp-dynamic-form.--compact axp-layout-section axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-dynamic-form.--vertical axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.axp-dynamic-form.--vertical axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12;width:100%}.axp-dynamic-form.--vertical axp-layout-section axp-layout-content .__field-container .__field-input{grid-column:span 12 / span 12;width:100%}.axp-dynamic-form.--vertical axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.25rem!important;font-size:.875rem!important;line-height:1.25rem!important}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:row;align-items:center;gap:1rem;padding-top:.75rem;padding-bottom:.75rem}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container .__field-info{width:12rem;flex-shrink:0}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{margin-bottom:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:500}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container .__field-input{flex:1 1 0%}.axp-dynamic-form.--horizontal axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}.axp-dynamic-form .__empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:2rem;padding-bottom:2rem;text-align:center}.axp-dynamic-form .__empty-state .__message{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUErQixhQUFhLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsSixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsRUFDakIsU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU03QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsNkJBQTZCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUE0QjVELE1BQU0sT0FBTyx1QkFBdUI7SUExQnBDO1FBNEJJLDhCQUE4QjtRQUU5Qjs7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LE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs4R0E3S1EsdUJBQXVCO2tHQUF2Qix1QkFBdUIsaTNCQXVEUCxlQUFlLDRGQUNWLDJCQUEyQixnRUM1RzdELDhxREF1Q0EscXBLRFBRLFlBQVksOEJBQ1osV0FBVztnQkFDWCxTQUFTO2dCQUNULFlBQVksa1RBQ1osa0JBQWtCO2dCQUNsQixXQUFXO2dCQUNYLHNCQUFzQiwrWkFDdEIsNEJBQTRCLGdsQkFDNUIsNkJBQTZCLDhEQUM3Qiw4QkFBOEIsK0RBQzlCLHNCQUFzQixpRkFDdEIsZ0JBQWdCOzsyRkFTWCx1QkFBdUI7a0JBMUJuQyxTQUFTO2lDQUNNLElBQUksWUFDTixrQkFBa0IsV0FHbkI7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLFdBQVc7d0JBQ1gsc0JBQXNCO3dCQUN0Qiw0QkFBNEI7d0JBQzVCLDZCQUE2Qjt3QkFDN0IsOEJBQThCO3dCQUM5QixzQkFBc0I7d0JBQ3RCLGdCQUFnQjtxQkFDbkIsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsS0FBSyxFQUFFLGtCQUFrQjt3QkFDekIsU0FBUyxFQUFFLGVBQWU7cUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtQ29tcG9uZW50LCBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50LCBBWFBQYWdlU3RhdHVzLCBBWFBXaWRnZXRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBlZmZlY3QsXG4gICAgaW5wdXQsXG4gICAgb3V0cHV0LFxuICAgIHNpZ25hbCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICB2aWV3Q2hpbGQsXG4gICAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEFYUER5bmFtaWNGb3JtRGVmaW5pdGlvbixcbiAgICBBWFBEeW5hbWljRm9ybUxheW91dENvbmZpZyxcbiAgICBBWFBEeW5hbWljRm9ybUxheW91dFN0eWxlXG59IGZyb20gJy4vZHluYW1pYy1mb3JtLnR5cGVzJztcbmltcG9ydCB7IEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsIEFYUFRoZW1lTGF5b3V0SGVhZGVyQ29tcG9uZW50LCBBWFBUaGVtZUxheW91dFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9ibG9ja3MnO1xuaW1wb3J0IHsgQVhMYWJlbENvbXBvbmVudCB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvbGFiZWxcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2F4cC1keW5hbWljLWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9keW5hbWljLWZvcm0uY29tcG9uZW50LnNjc3MnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgLy8gQUNvcmVYXG4gICAgICAgIEFYRm9ybU1vZHVsZSxcbiAgICAgICAgQVhWYWxpZGF0aW9uTW9kdWxlLFxuICAgICAgICAvLyBQbGF0Zm9ybVxuICAgICAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxuICAgICAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgICAgICBBWFBUaGVtZUxheW91dEhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgQVhQVGhlbWVMYXlvdXRTZWN0aW9uQ29tcG9uZW50LFxuICAgICAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICAgICAgICBBWExhYmVsQ29tcG9uZW50XG4gICAgXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdheHAtZHluYW1pYy1mb3JtJyxcbiAgICAgICAgJ1tjbGFzc10nOiAnaG9zdENsYXNzZXMoKScsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRHluYW1pY0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBJbnB1dHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBGb3JtIGRlZmluaXRpb24gY29udGFpbmluZyBncm91cHMgYW5kIGZpZWxkc1xuICAgICAqL1xuICAgIGZvcm1EZWZpbml0aW9uID0gaW5wdXQucmVxdWlyZWQ8QVhQRHluYW1pY0Zvcm1EZWZpbml0aW9uPigpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSBjb250ZXh0L21vZGVsIGRhdGFcbiAgICAgKi9cbiAgICBjb250ZXh0ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogTGF5b3V0IHN0eWxlIGZvciB0aGUgZm9ybSAobm9ybWFsLCBjb21wYWN0LCB2ZXJ0aWNhbCwgaG9yaXpvbnRhbClcbiAgICAgKi9cbiAgICBsYXlvdXRTdHlsZSA9IGlucHV0PEFYUER5bmFtaWNGb3JtTGF5b3V0U3R5bGU+KCdub3JtYWwnKTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBsYXlvdXQgY29uZmlndXJhdGlvbiBmb3IgZm9ybSBmaWVsZHNcbiAgICAgKi9cbiAgICBsYXlvdXRDb25maWcgPSBpbnB1dDxBWFBEeW5hbWljRm9ybUxheW91dENvbmZpZz4oe1xuICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHsgY29sU3BhbjogMTIgfSxcbiAgICAgICAgICAgIG1kOiB7IGNvbFNwYW46IDggfSxcbiAgICAgICAgICAgIGxnOiB7IGNvbFNwYW46IDYgfSxcbiAgICAgICAgICAgIHhsOiB7IGNvbFNwYW46IDUgfSxcbiAgICAgICAgICAgIHh4bDogeyBjb2xTcGFuOiA0IH0sXG4gICAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgT3V0cHV0cyAgIC0tLS1cblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiBmb3JtIGNvbnRleHQgY2hhbmdlc1xuICAgICAqL1xuICAgIGNvbnRleHRDaGFuZ2UgPSBvdXRwdXQ8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIGNvbnRleHQgY2hhbmdlIGlzIGluaXRpYXRlZFxuICAgICAqL1xuICAgIGNvbnRleHRJbml0aWF0ZWQgPSBvdXRwdXQ8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIGZvcm0gYmVjb21lcyB2YWxpZC9pbnZhbGlkXG4gICAgICovXG4gICAgdmFsaWRpdHlDaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSBmb3JtID0gdmlld0NoaWxkKEFYRm9ybUNvbXBvbmVudCk7XG4gICAgcHJpdmF0ZSBjb250YWluZXIgPSB2aWV3Q2hpbGQoQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50KTtcblxuICAgIC8qKlxuICAgICAqIEludGVybmFsIGNvbnRleHQgc2lnbmFsIGZvciByZWFjdGl2aXR5XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGludGVybmFsQ29udGV4dCA9IHNpZ25hbDxhbnk+KHt9KTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDb21wdXRlZCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogQ29tcHV0ZWQgbGF5b3V0IGNvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY29tcHV0ZWRMYXlvdXQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxheW91dENvbmZpZygpKTtcblxuICAgIC8qKlxuICAgICAqIENvbXB1dGVkIGZvcm0gZGVmaW5pdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb21wdXRlZEZvcm1EZWZpbml0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtRGVmaW5pdGlvbigpKTtcblxuICAgIC8qKlxuICAgICAqIEhvc3QgY2xhc3NlcyBiYXNlZCBvbiBsYXlvdXQgc3R5bGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaG9zdENsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBbJ2F4cC1keW5hbWljLWZvcm0nXTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSB0aGlzLmxheW91dFN0eWxlKCk7XG4gICAgICAgIGlmIChzdHlsZSAmJiBzdHlsZSAhPT0gJ25vcm1hbCcpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChgLS0ke3N0eWxlfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgICB9KTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBMaWZlY3ljbGUgTWV0aG9kcyAgIC0tLS1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBJbml0aWFsaXplIGludGVybmFsIGNvbnRleHQgd2l0aCBpbnB1dCBjb250ZXh0XG4gICAgICAgIHRoaXMuaW50ZXJuYWxDb250ZXh0LnNldCh0aGlzLmNvbnRleHQoKSk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIEVmZmVjdHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBFZmZlY3QgdG8gc3luYyBjb250ZXh0IGNoYW5nZXNcbiAgICAgKi9cbiAgICAjY29udGV4dFN5bmNFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0KCk7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxDb250ZXh0LnNldChjb250ZXh0KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIEVmZmVjdCB0byBoYW5kbGUgZm9ybSBzdGF0dXMgY2hhbmdlc1xuICAgICAqL1xuICAgICNmb3JtU3RhdHVzRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybSgpO1xuICAgICAgICBpZiAoZm9ybSkge1xuICAgICAgICAgICAgLy8gWW91IGNhbiBhZGQgZm9ybSBzdGF0dXMgdHJhY2tpbmcgaGVyZSBpZiBuZWVkZWRcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyKCk/LmJ1aWxkZXJTZXJ2aWNlLnNldFN0YXR1cyhBWFBQYWdlU3RhdHVzLlJlbmRlcmVkKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIEV2ZW50IEhhbmRsZXJzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIGNvbnRleHQgY2hhbmdlIGV2ZW50cyBmcm9tIHdpZGdldCBjb250YWluZXJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dENoYW5nZWQoZXZlbnQ6IEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQuc3RhdGUgPT09ICdpbml0aWF0ZWQnKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHRJbml0aWF0ZWQuZW1pdChldmVudC5kYXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxDb250ZXh0LnNldChldmVudC5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dENoYW5nZS5lbWl0KGV2ZW50LmRhdGEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBNZXRob2RzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBmb3JtIGNvbXBvbmVudCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGb3JtKCk6IEFYRm9ybUNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgY3VycmVudCBmb3JtIGNvbnRleHRcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29udGV4dCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbENvbnRleHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgZm9ybSBjb250ZXh0IHByb2dyYW1tYXRpY2FsbHlcbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlQ29udGV4dChjb250ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbENvbnRleHQuc2V0KGNvbnRleHQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZhbGlkYXRlIHRoZSBmb3JtXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIHZhbGlkYXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtKCk7XG4gICAgICAgIGlmIChmb3JtKSB7XG4gICAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy52YWxpZGl0eUNoYW5nZS5lbWl0KGlzVmFsaWQucmVzdWx0KTtcbiAgICAgICAgICAgIHJldHVybiBpc1ZhbGlkLnJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59ICIsIjxheC1mb3JtPlxuICA8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cImludGVybmFsQ29udGV4dCgpXCIgKG9uQ29udGV4dENoYW5nZWQpPVwiaGFuZGxlQ29udGV4dENoYW5nZWQoJGV2ZW50KVwiPlxuICAgIDxheHAtbGF5b3V0LXNlY3Rpb25zPlxuICAgICAgQGlmIChjb21wdXRlZEZvcm1EZWZpbml0aW9uKCkpIHtcbiAgICAgICAgQGZvciAoZ3JvdXAgb2YgY29tcHV0ZWRGb3JtRGVmaW5pdGlvbigpLmdyb3VwczsgdHJhY2sgZ3JvdXAubmFtZSkge1xuICAgICAgICAgIDxheHAtbGF5b3V0LXNlY3Rpb24+XG4gICAgICAgICAgICA8YXhwLWxheW91dC1oZWFkZXI+XG4gICAgICAgICAgICAgIDxheHAtbGF5b3V0LXRpdGxlPnt7IGdyb3VwLnRpdGxlIH19PC9heHAtbGF5b3V0LXRpdGxlPlxuICAgICAgICAgICAgICBAaWYgKGdyb3VwLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgPGF4cC1sYXlvdXQtZGVzY3JpcHRpb24+e3sgZ3JvdXAuZGVzY3JpcHRpb24gfX08L2F4cC1sYXlvdXQtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYXhwLWxheW91dC1oZWFkZXI+XG4gICAgICAgICAgICA8YXhwLWxheW91dC1jb250ZW50PlxuICAgICAgICAgICAgICBAZm9yIChwYXJhbSBvZiBncm91cC5wYXJhbWV0ZXJzOyB0cmFjayBwYXJhbS5wYXRoKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fZmllbGQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZCBjbGFzcz1cIl9fZmllbGQtaW5wdXRcIiBbZ3JpZExheW91dF09XCJjb21wdXRlZExheW91dCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57eyBwYXJhbS50aXRsZSB9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJwYXJhbS53aWRnZXRcIiBbbW9kZV09XCInZWRpdCdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBAaWYgKHBhcmFtLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGF4cC1sYXlvdXQtZGVzY3JpcHRpb24+e3sgcGFyYW0uZGVzY3JpcHRpb24gfX08L2F4cC1sYXlvdXQtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIH0gLS0+XG4gICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYXhwLWxheW91dC1jb250ZW50PlxuICAgICAgICAgIDwvYXhwLWxheW91dC1zZWN0aW9uPlxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGF4cC1sYXlvdXQtc2VjdGlvbj5cbiAgICAgICAgICA8YXhwLWxheW91dC1jb250ZW50PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgPGF4cC1sYXlvdXQtZGVzY3JpcHRpb24+Tm8gZm9ybSBkZWZpbml0aW9uIHByb3ZpZGVkPC9heHAtbGF5b3V0LWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9heHAtbGF5b3V0LWNvbnRlbnQ+XG4gICAgICAgIDwvYXhwLWxheW91dC1zZWN0aW9uPlxuICAgICAgfVxuICAgIDwvYXhwLWxheW91dC1zZWN0aW9ucz5cbiAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG48L2F4LWZvcm0+XG4iXX0=","import { AXListNavigationModule } from '@acorex/cdk/list-navigation';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXCalendarService } from '@acorex/core/date-time';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { ALL_DEFAULT_OPERATORS, AXPFilterOperatorMiddlewareService } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, input, linkedSignal, output, QueryList, signal, untracked, viewChild, ViewChildren, ViewEncapsulation, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/popover\";\nimport * as i5 from \"@acorex/components/tag-box\";\nimport * as i6 from \"@acorex/platform/layout/builder\";\nimport * as i7 from \"@acorex/cdk/list-navigation\";\nimport * as i8 from \"@acorex/components/badge\";\nimport * as i9 from \"@angular/common\";\nimport * as i10 from \"@acorex/core/translation\";\nexport class AXPLayoutFiltersComponent {\n constructor() {\n this.translate = inject(AXTranslationService);\n this.calendarService = inject(AXCalendarService);\n this.filterOperatorMiddleware = inject(AXPFilterOperatorMiddlewareService);\n this.filtersDefinitions = input([], ...(ngDevMode ? [{ debugName: \"filtersDefinitions\" }] : []));\n this.initialFilters = input([], ...(ngDevMode ? [{ debugName: \"initialFilters\" }] : []));\n this.onFiltersChanged = output();\n this.tagBox = viewChild('tagBox', ...(ngDevMode ? [{ debugName: \"tagBox\" }] : []));\n this.selectedField = signal(null, ...(ngDevMode ? [{ debugName: \"selectedField\" }] : []));\n this.selectedFilters = linkedSignal(() => this.convertQueriesToDefinitions(this.initialFilters()).map((i) => ({ ...i, readOnly: true })));\n this.context = linkedSignal(() => this.convertQueriesToContext(this.initialFilters()));\n this.activeFilter = signal(null, ...(ngDevMode ? [{ debugName: \"activeFilter\" }] : []));\n this.asyncTags = signal([], ...(ngDevMode ? [{ debugName: \"asyncTags\" }] : []));\n this.popover = viewChild('popover', ...(ngDevMode ? [{ debugName: \"popover\" }] : []));\n this.inputValue = signal('', ...(ngDevMode ? [{ debugName: \"inputValue\" }] : []));\n this.inlineFilters = () => {\n return this.filtersDefinitions().filter((f) => f.filterType.inline &&\n !this.filterOperatorMiddleware\n .transformFilters(this.selectedFilters())\n .some((sf) => sf.field === f.field &&\n sf.operator?.type === (this.context()[sf.field]?.operation?.type || f.operator?.type)));\n };\n this.getDisplayValue = async (filter, val) => {\n if (filter.widget.type === 'select-editor' || filter.widget.type === 'select-filter') {\n const dataSource = filter.widget.options?.['dataSource'];\n const textField = filter.widget.options?.['textField'];\n const valueField = filter.widget.options?.['valueField'];\n if (dataSource?.config?.byKey) {\n if (Array.isArray(val)) {\n const results = await Promise.all(val.map((v) => dataSource.config.byKey(v)));\n return results.map((data) => data[textField]).join(', ');\n }\n else {\n const data = (await dataSource.config.byKey(val));\n return data?.[textField] || val;\n }\n }\n else if (Array.isArray(dataSource)) {\n if (Array.isArray(val)) {\n return dataSource.map((data) => data[textField]).join(', ');\n }\n else {\n const record = dataSource.find((d) => d[valueField] === val);\n return record ? record[textField] : '';\n }\n }\n }\n return typeof val === 'object' && !Array.isArray(val)\n ? `${this.convertIfISOStringDate(val.from)} and ${this.convertIfISOStringDate(val.to)}`\n : this.convertIfISOStringDate(val);\n };\n this.convertIfISOStringDate = (val) => {\n const isISOStringDate = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/.test(val);\n if (isISOStringDate) {\n return this.calendarService.convert(val).date.toLocaleDateString();\n }\n return val;\n };\n this.filterFields = () => {\n return this.filtersDefinitions().filter((f) => {\n return (f.filterType.advance &&\n !this.selectedFilters().some((sf) => {\n return sf.field === f.field;\n }));\n });\n };\n this.#effect = effect(() => {\n const context = untracked(() => this.context());\n const selectedFilters = this.selectedFilters();\n untracked(() => {\n const convertedFilters = selectedFilters.map((f) => ({\n field: f.field,\n operator: context[f.field]?.operation,\n value: context[f.field]?.value,\n }));\n const newContext = {};\n convertedFilters.forEach((cf) => {\n newContext[cf.field] = {\n value: cf.value,\n operation: typeof cf.operator === 'string' ? { type: cf.operator } : cf.operator,\n };\n });\n this.context.set(newContext);\n this.deactivateAllListItems();\n this.onFiltersChanged.emit(convertedFilters);\n });\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n this.#effect2 = effect(() => {\n const filters = this.selectedFilters();\n const context = this.context();\n Promise.all(filters.map(async (filter) => {\n const val = context[filter.field]?.value;\n const displayValue = await this.getDisplayValue(filter, val);\n return {\n ...filter,\n query: `${this.translate.translateSync(filter.title)} ${this.getActiveOperator(filter)} '${displayValue}'`,\n };\n })).then((results) => {\n this.asyncTags.set(results);\n });\n }, ...(ngDevMode ? [{ debugName: \"#effect2\" }] : []));\n }\n convertQueriesToDefinitions(queries) {\n const definitions = this.filtersDefinitions();\n return queries.map((q) => {\n const definition = definitions.find((p) => p.field === q.field);\n return {\n field: q.field,\n operator: q.operator,\n value: q.value,\n title: definition?.title || '',\n widget: definition?.widget,\n filterType: definition?.filterType,\n };\n });\n }\n convertQueriesToContext(queries) {\n return queries.reduce((acc, q) => {\n acc[q.field] = { value: q.value, operation: q.operator };\n return acc;\n }, {});\n }\n ngOnInit() {\n this.tagBoxInput = this.tagBox()?.getHostElement().querySelector('input');\n }\n handleSelectField(field) {\n this.activeFilter.set(field);\n // this.inputValue.set('');\n this.tagBox()?.inputValue.set('');\n }\n handleFieldKeyDown(e, field) {\n if (e.key === 'Enter') {\n this.handleSelectField(field);\n }\n }\n onContextChanged(e) {\n this.context.set(e.data);\n }\n handleApplyFilter() {\n if (this.activeFilter()) {\n this.selectedFilters.update((prev) => [...prev, this.activeFilter()]);\n this.activeFilter.set(null);\n this.popover()?.close();\n }\n }\n handleButtonKeyDown(e) {\n if (this.popover()?.isOpen && !this.activeFilter()) {\n // Find first list item and focus it\n const firstItem = document.querySelector('[axListNavigationItem]');\n if (firstItem) {\n firstItem.focus();\n e?.preventDefault();\n }\n }\n }\n handleKeyDown(e) {\n if (e.nativeEvent?.key === 'ArrowDown') {\n if (this.popover()?.isOpen && !this.activeFilter()) {\n // Find first list item and focus it\n const firstItem = document.querySelector('[axListNavigationItem]');\n if (firstItem) {\n firstItem.focus();\n e.nativeEvent?.preventDefault();\n }\n }\n }\n else {\n this.popover()?.open();\n }\n }\n #effect;\n handleSelectFilters(e) {\n if (e.value?.length < this.selectedFilters().length) {\n this.selectedFilters.update((prev) => {\n return e.value;\n });\n }\n }\n getActiveOperator(filter) {\n if (!filter) {\n return undefined;\n }\n const contextOperation = this.context()?.[filter.field]?.operation?.type;\n const operatorType = contextOperation || filter.operator?.type;\n return ALL_DEFAULT_OPERATORS.find((o) => o.name === operatorType)?.title;\n }\n handleSelectInlineFilter(filter) {\n this.context.update((prev) => ({\n ...prev,\n [filter.field]: {\n value: this.tagBox()?.inputValue(),\n operation: { type: 'contains' },\n },\n }));\n this.tagBox()?.inputValue.set('');\n this.selectedFilters.update((prev) => [...prev, filter]);\n this.popover()?.close();\n }\n handleInlineFilterKeyDown(e, filter) {\n if (e.key === 'Enter') {\n this.handleSelectInlineFilter(filter);\n }\n }\n handlePopoverClosed(e) {\n this.activeFilter.set(null);\n }\n onPopoverOpened(e) {\n if (this.filtersDefinitions().length === 0) {\n this.popover()?.close();\n }\n }\n deactivateAllListItems() {\n if (this.listItems) {\n this.listItems.forEach((item) => {\n if (item.isActive()) {\n item.isActive.set(false);\n }\n });\n }\n }\n #effect2;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLayoutFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPLayoutFiltersComponent, isStandalone: true, selector: \"axp-layout-filters\", inputs: { filtersDefinitions: { classPropertyName: \"filtersDefinitions\", publicName: \"filtersDefinitions\", isSignal: true, isRequired: false, transformFunction: null }, initialFilters: { classPropertyName: \"initialFilters\", publicName: \"initialFilters\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onFiltersChanged: \"onFiltersChanged\" }, viewQueries: [{ propertyName: \"tagBox\", first: true, predicate: [\"tagBox\"], descendants: true, isSignal: true }, { propertyName: \"popover\", first: true, predicate: [\"popover\"], descendants: true, isSignal: true }, { propertyName: \"listItems\", predicate: [\"caseItem\"], descendants: true }], ngImport: i0, template: \"<div class=\\\"ax-flex ax-items-center ax-gap-2 ax-p-2\\\">\\n <ax-button (keydown)=\\\"handleButtonKeyDown($event)\\\" (onClick)=\\\"popover.open()\\\" #filterButton [look]=\\\"'blank'\\\">\\n <ax-icon class=\\\"far fa-bars-filter ax-cursor-pointer\\\"> </ax-icon>\\n </ax-button>\\n <ax-tag-box\\n [ngModel]=\\\"asyncTags()\\\"\\n (onValueChanged)=\\\"handleSelectFilters($event)\\\"\\n [textField]=\\\"'query'\\\"\\n [valueField]=\\\"'id'\\\"\\n [readonly]=\\\"filtersDefinitions().length === 0\\\"\\n [look]=\\\"'none'\\\"\\n [readonlyField]=\\\"'readOnly'\\\"\\n (onKeyDown)=\\\"handleKeyDown($event)\\\"\\n [addOnEnter]=\\\"false\\\"\\n [placeholder]=\\\"(filtersDefinitions().length === 0 ? 'filter.noRecords' : 'filter.title') | translate | async\\\"\\n #tagBox\\n ></ax-tag-box>\\n</div>\\n\\n<ax-popover\\n [offsetY]=\\\"activeFilter() ? -30 : 0\\\"\\n [target]=\\\"tagBoxInput\\\"\\n [openOn]=\\\"'toggle'\\\"\\n (onOpened)=\\\"onPopoverOpened($event)\\\"\\n [closeOn]=\\\"'clickOut'\\\"\\n (onClosed)=\\\"handlePopoverClosed($event)\\\"\\n [adaptivityEnabled]=\\\"true\\\"\\n #popover\\n>\\n <div class=\\\"md:ax-min-w-72 ax-border ax-surface ax-w-full ax-rounded-md md:ax-max-h-96 md:ax-overflow-auto\\\">\\n <axp-widgets-container [context]=\\\"context()\\\" (onContextChanged)=\\\"onContextChanged($event)\\\">\\n @if (activeFilter()) {\\n <div class=\\\"ax-flex ax-flex-col ax-lightest-surface ax-shadow-md\\\">\\n <ax-header class=\\\"ax-border-b ax-border-light ax-px-4 ax-py-2\\\">{{\\n activeFilter()?.title! | translate | async\\n }}</ax-header>\\n <ax-content class=\\\"ax-p-4\\\">\\n <div class=\\\"ax-mb-2\\\">\\n <ax-badge [text]=\\\"getActiveOperator(activeFilter())!\\\"></ax-badge>\\n </div>\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"{\\n type: activeFilter()?.widget?.type || 'text-editor',\\n path: activeFilter()?.field,\\n options: activeFilter()?.widget?.options,\\n }\\\"\\n [mode]=\\\"'edit'\\\"\\n >\\n </ng-container>\\n </ax-content>\\n <ax-footer class=\\\"ax-border-t ax-flex ax-justify-end ax-border-light ax-w-full ax-px-4 ax-py-2\\\">\\n <ax-button class=\\\"ax-xs\\\" [text]=\\\"'apply' | translate | async\\\" (onClick)=\\\"handleApplyFilter()\\\"></ax-button>\\n </ax-footer>\\n </div>\\n } @else {\\n <div axListNavigation #list=\\\"axListNavigation\\\" class=\\\"axp-list-items\\\">\\n @if (tagBox.inputValue()) {\\n @for (inlineFilter of inlineFilters(); track inlineFilter.field) {\\n <div\\n axListNavigationItem\\n #caseItem=\\\"axListNavigationItem\\\"\\n [class.axp-state-focused]=\\\"caseItem.isActive()\\\"\\n tabindex=\\\"0\\\"\\n (click)=\\\"handleSelectInlineFilter(inlineFilter)\\\"\\n (keydown)=\\\"handleInlineFilterKeyDown($event, inlineFilter)\\\"\\n >\\n {{ inlineFilter.title | translate | async }} {{ getActiveOperator(inlineFilter) }} '{{\\n tagBox.inputValue()\\n }}'\\n </div>\\n }\\n <span class=\\\"ax-w-full ax-border-t ax-border-light ax-my-1\\\"></span>\\n }\\n @for (field of filterFields(); track field.field) {\\n <div\\n axListNavigationItem\\n #caseItem=\\\"axListNavigationItem\\\"\\n [class.axp-state-focused]=\\\"caseItem.isActive()\\\"\\n (click)=\\\"handleSelectField(field)\\\"\\n (keydown)=\\\"handleFieldKeyDown($event, field)\\\"\\n tabindex=\\\"0\\\"\\n >\\n <div class=\\\"ax-flex ax-items-end ax-gap-2\\\">\\n <ax-icon class=\\\"ax-w-5\\\" [class]=\\\"'fa-light ' + field.icon\\\"> </ax-icon>\\n {{ field.title | translate | async }}\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </axp-widgets-container>\\n </div>\\n</ax-popover>\\n\", styles: [\"axp-layout-filters{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXPopoverModule }, { kind: \"component\", type: i4.AXPopoverComponent, selector: \"ax-popover\", inputs: [\"width\", \"disabled\", \"offsetX\", \"offsetY\", \"target\", \"placement\", \"content\", \"openOn\", \"closeOn\", \"hasBackdrop\", \"openAfter\", \"closeAfter\", \"backdropClass\", \"panelClass\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXSelectionListModule }, { kind: \"ngmodule\", type: AXTagBoxModule }, { kind: \"component\", type: i5.AXTagBoxComponent, selector: \"ax-tag-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"allowNull\", \"type\", \"look\", \"addOnComma\", \"addOnEnter\", \"valueField\", \"textField\", \"readonlyField\", \"allowDuplicateValues\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i6.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i6.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: AXListNavigationModule }, { kind: \"directive\", type: i7.AXListNavigationDirective, selector: \"[axListNavigation]\", inputs: [\"orientation\"], outputs: [\"onNavigationChanged\", \"onPressEnterOrSpace\"], exportAs: [\"axListNavigation\"] }, { kind: \"directive\", type: i7.AXListNavigationItemDirective, selector: \"[axListNavigationItem]\", exportAs: [\"axListNavigationItem\"] }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i8.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }, { kind: \"pipe\", type: i9.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i10.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLayoutFiltersComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-layout-filters', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPopoverModule,\n AXSelectionListModule,\n AXTagBoxModule,\n AXPLayoutBuilderModule,\n AXListNavigationModule,\n AXBadgeModule,\n ], template: \"<div class=\\\"ax-flex ax-items-center ax-gap-2 ax-p-2\\\">\\n <ax-button (keydown)=\\\"handleButtonKeyDown($event)\\\" (onClick)=\\\"popover.open()\\\" #filterButton [look]=\\\"'blank'\\\">\\n <ax-icon class=\\\"far fa-bars-filter ax-cursor-pointer\\\"> </ax-icon>\\n </ax-button>\\n <ax-tag-box\\n [ngModel]=\\\"asyncTags()\\\"\\n (onValueChanged)=\\\"handleSelectFilters($event)\\\"\\n [textField]=\\\"'query'\\\"\\n [valueField]=\\\"'id'\\\"\\n [readonly]=\\\"filtersDefinitions().length === 0\\\"\\n [look]=\\\"'none'\\\"\\n [readonlyField]=\\\"'readOnly'\\\"\\n (onKeyDown)=\\\"handleKeyDown($event)\\\"\\n [addOnEnter]=\\\"false\\\"\\n [placeholder]=\\\"(filtersDefinitions().length === 0 ? 'filter.noRecords' : 'filter.title') | translate | async\\\"\\n #tagBox\\n ></ax-tag-box>\\n</div>\\n\\n<ax-popover\\n [offsetY]=\\\"activeFilter() ? -30 : 0\\\"\\n [target]=\\\"tagBoxInput\\\"\\n [openOn]=\\\"'toggle'\\\"\\n (onOpened)=\\\"onPopoverOpened($event)\\\"\\n [closeOn]=\\\"'clickOut'\\\"\\n (onClosed)=\\\"handlePopoverClosed($event)\\\"\\n [adaptivityEnabled]=\\\"true\\\"\\n #popover\\n>\\n <div class=\\\"md:ax-min-w-72 ax-border ax-surface ax-w-full ax-rounded-md md:ax-max-h-96 md:ax-overflow-auto\\\">\\n <axp-widgets-container [context]=\\\"context()\\\" (onContextChanged)=\\\"onContextChanged($event)\\\">\\n @if (activeFilter()) {\\n <div class=\\\"ax-flex ax-flex-col ax-lightest-surface ax-shadow-md\\\">\\n <ax-header class=\\\"ax-border-b ax-border-light ax-px-4 ax-py-2\\\">{{\\n activeFilter()?.title! | translate | async\\n }}</ax-header>\\n <ax-content class=\\\"ax-p-4\\\">\\n <div class=\\\"ax-mb-2\\\">\\n <ax-badge [text]=\\\"getActiveOperator(activeFilter())!\\\"></ax-badge>\\n </div>\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"{\\n type: activeFilter()?.widget?.type || 'text-editor',\\n path: activeFilter()?.field,\\n options: activeFilter()?.widget?.options,\\n }\\\"\\n [mode]=\\\"'edit'\\\"\\n >\\n </ng-container>\\n </ax-content>\\n <ax-footer class=\\\"ax-border-t ax-flex ax-justify-end ax-border-light ax-w-full ax-px-4 ax-py-2\\\">\\n <ax-button class=\\\"ax-xs\\\" [text]=\\\"'apply' | translate | async\\\" (onClick)=\\\"handleApplyFilter()\\\"></ax-button>\\n </ax-footer>\\n </div>\\n } @else {\\n <div axListNavigation #list=\\\"axListNavigation\\\" class=\\\"axp-list-items\\\">\\n @if (tagBox.inputValue()) {\\n @for (inlineFilter of inlineFilters(); track inlineFilter.field) {\\n <div\\n axListNavigationItem\\n #caseItem=\\\"axListNavigationItem\\\"\\n [class.axp-state-focused]=\\\"caseItem.isActive()\\\"\\n tabindex=\\\"0\\\"\\n (click)=\\\"handleSelectInlineFilter(inlineFilter)\\\"\\n (keydown)=\\\"handleInlineFilterKeyDown($event, inlineFilter)\\\"\\n >\\n {{ inlineFilter.title | translate | async }} {{ getActiveOperator(inlineFilter) }} '{{\\n tagBox.inputValue()\\n }}'\\n </div>\\n }\\n <span class=\\\"ax-w-full ax-border-t ax-border-light ax-my-1\\\"></span>\\n }\\n @for (field of filterFields(); track field.field) {\\n <div\\n axListNavigationItem\\n #caseItem=\\\"axListNavigationItem\\\"\\n [class.axp-state-focused]=\\\"caseItem.isActive()\\\"\\n (click)=\\\"handleSelectField(field)\\\"\\n (keydown)=\\\"handleFieldKeyDown($event, field)\\\"\\n tabindex=\\\"0\\\"\\n >\\n <div class=\\\"ax-flex ax-items-end ax-gap-2\\\">\\n <ax-icon class=\\\"ax-w-5\\\" [class]=\\\"'fa-light ' + field.icon\\\"> </ax-icon>\\n {{ field.title | translate | async }}\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </axp-widgets-container>\\n </div>\\n</ax-popover>\\n\", styles: [\"axp-layout-filters{width:100%}\\n\"] }]\n }], propDecorators: { listItems: [{\n type: ViewChildren,\n args: ['caseItem']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWZpbHRlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2ZpbHRlcnMvbGF5b3V0LWZpbHRlcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2ZpbHRlcnMvbGF5b3V0LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBcUIsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEcsT0FBTyxFQUFFLHNCQUFzQixFQUErQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFD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SUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzlCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FnQkw7OEdBdlFRLHlCQUF5QjtrR0FBekIseUJBQXlCLGl1QkNuRHRDLGs1SEE4RkEseUZEeERJLFlBQVksOEJBQ1osV0FBVyw4VkFDWCxjQUFjLDZYQUNkLGlCQUFpQixzVkFDakIsbUJBQW1CLDhCQUNuQixlQUFlLHVWQUNmLHFCQUFxQiw4QkFDckIsY0FBYyw2ZEFDZCxzQkFBc0IsOFpBQ3RCLHNCQUFzQixrWEFDdEIsYUFBYTs7MkZBR0oseUJBQXlCO2tCQXJCckMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUdoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsYUFBYTtxQkFDZDs4QkFjeUIsU0FBUztzQkFBbEMsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWEV2ZW50LCBBWEh0bWxFdmVudCwgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWExpc3ROYXZpZ2F0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvbGlzdC1uYXZpZ2F0aW9uJztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQb3BvdmVyQ29tcG9uZW50LCBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFNlbGVjdGlvbkxpc3RNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0aW9uLWxpc3QnO1xuaW1wb3J0IHsgQVhUYWdCb3hDb21wb25lbnQsIEFYVGFnQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhZy1ib3gnO1xuaW1wb3J0IHsgQVhDYWxlbmRhclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUsIEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFMTF9ERUZBVUxUX09QRVJBVE9SUywgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEZpbHRlckRlZmluaXRpb24sIEFYUEZpbHRlclF1ZXJ5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUsIEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBvdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgc2lnbmFsLFxuICB1bnRyYWNrZWQsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtZmlsdGVycycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9sYXlvdXQtZmlsdGVycy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgQVhQb3BvdmVyTW9kdWxlLFxuICAgIEFYU2VsZWN0aW9uTGlzdE1vZHVsZSxcbiAgICBBWFRhZ0JveE1vZHVsZSxcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxuICAgIEFYTGlzdE5hdmlnYXRpb25Nb2R1bGUsXG4gICAgQVhCYWRnZU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQTGF5b3V0RmlsdGVyc0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCB0cmFuc2xhdGUgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgY2FsZW5kYXJTZXJ2aWNlID0gaW5qZWN0KEFYQ2FsZW5kYXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUgPSBpbmplY3QoQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSk7XG5cbiAgZmlsdGVyc0RlZmluaXRpb25zID0gaW5wdXQ8QVhQRmlsdGVyRGVmaW5pdGlvbltdPihbXSk7XG4gIGluaXRpYWxGaWx0ZXJzID0gaW5wdXQ8QVhQRmlsdGVyUXVlcnlbXT4oW10pO1xuICBvbkZpbHRlcnNDaGFuZ2VkID0gb3V0cHV0PEFYUEZpbHRlclF1ZXJ5W10+KCk7XG5cbiAgcHJvdGVjdGVkIHRhZ0JveCA9IHZpZXdDaGlsZDxBWFRhZ0JveENvbXBvbmVudD4oJ3RhZ0JveCcpO1xuICB0YWdCb3hJbnB1dCE6IGFueTtcblxuICBAVmlld0NoaWxkcmVuKCdjYXNlSXRlbScpIGxpc3RJdGVtcyE6IFF1ZXJ5TGlzdDxhbnk+O1xuXG4gIHByb3RlY3RlZCBzZWxlY3RlZEZpZWxkID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRGaWx0ZXJzID0gbGlua2VkU2lnbmFsPEFYUEZpbHRlckRlZmluaXRpb25bXT4oKCkgPT5cbiAgICB0aGlzLmNvbnZlcnRRdWVyaWVzVG9EZWZpbml0aW9ucyh0aGlzLmluaXRpYWxGaWx0ZXJzKCkpLm1hcCgoaSkgPT4gKHsgLi4uaSwgcmVhZE9ubHk6IHRydWUgfSkpLFxuICApO1xuXG4gIGNvbnRleHQgPSBsaW5rZWRTaWduYWw8YW55PigoKSA9PiB0aGlzLmNvbnZlcnRRdWVyaWVzVG9Db250ZXh0KHRoaXMuaW5pdGlhbEZpbHRlcnMoKSkpO1xuXG4gIHByb3RlY3RlZCBhY3RpdmVGaWx0ZXIgPSBzaWduYWw8QVhQRmlsdGVyRGVmaW5pdGlvbiB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBhc3luY1RhZ3MgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBwcm90ZWN0ZWQgcG9wb3ZlciA9IHZpZXdDaGlsZDxBWFBvcG92ZXJDb21wb25lbnQ+KCdwb3BvdmVyJyk7XG5cbiAgaW5wdXRWYWx1ZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcblxuICBpbmxpbmVGaWx0ZXJzID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnNEZWZpbml0aW9ucygpLmZpbHRlcihcbiAgICAgIChmKSA9PlxuICAgICAgICBmLmZpbHRlclR5cGUuaW5saW5lICYmXG4gICAgICAgICF0aGlzLmZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVxuICAgICAgICAgIC50cmFuc2Zvcm1GaWx0ZXJzKHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKCkpXG4gICAgICAgICAgLnNvbWUoXG4gICAgICAgICAgICAoc2YpID0+XG4gICAgICAgICAgICAgIHNmLmZpZWxkID09PSBmLmZpZWxkICYmXG4gICAgICAgICAgICAgIHNmLm9wZXJhdG9yPy50eXBlID09PSAodGhpcy5jb250ZXh0KClbc2YuZmllbGRdPy5vcGVyYXRpb24/LnR5cGUgfHwgZi5vcGVyYXRvcj8udHlwZSksXG4gICAgICAgICAgKSxcbiAgICApO1xuICB9O1xuXG4gIHByb3RlY3RlZCBnZXREaXNwbGF5VmFsdWUgPSBhc3luYyAoZmlsdGVyOiBBWFBGaWx0ZXJEZWZpbml0aW9uLCB2YWw6IGFueSkgPT4ge1xuICAgIGlmIChmaWx0ZXIud2lkZ2V0LnR5cGUgPT09ICdzZWxlY3QtZWRpdG9yJyB8fCBmaWx0ZXIud2lkZ2V0LnR5cGUgPT09ICdzZWxlY3QtZmlsdGVyJykge1xuICAgICAgY29uc3QgZGF0YVNvdXJjZTogQVhEYXRhU291cmNlID0gZmlsdGVyLndpZGdldC5vcHRpb25zPy5bJ2RhdGFTb3VyY2UnXTtcbiAgICAgIGNvbnN0IHRleHRGaWVsZCA9IGZpbHRlci53aWRnZXQub3B0aW9ucz8uWyd0ZXh0RmllbGQnXTtcbiAgICAgIGNvbnN0IHZhbHVlRmllbGQgPSBmaWx0ZXIud2lkZ2V0Lm9wdGlvbnM/LlsndmFsdWVGaWVsZCddO1xuICAgICAgaWYgKGRhdGFTb3VyY2U/LmNvbmZpZz8uYnlLZXkpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdHM6IHVua25vd25bXSA9IGF3YWl0IFByb21pc2UuYWxsKHZhbC5tYXAoKHYpID0+IGRhdGFTb3VyY2UuY29uZmlnLmJ5S2V5ISh2KSkpO1xuICAgICAgICAgIHJldHVybiByZXN1bHRzLm1hcCgoZGF0YSkgPT4gKGRhdGEgYXMgUmVjb3JkPHN0cmluZywgYW55PilbdGV4dEZpZWxkXSkuam9pbignLCAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gKGF3YWl0IGRhdGFTb3VyY2UuY29uZmlnLmJ5S2V5KHZhbCkpIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICAgICAgcmV0dXJuIGRhdGE/Llt0ZXh0RmllbGRdIHx8IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGFTb3VyY2UpKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YVNvdXJjZS5tYXAoKGRhdGEpID0+IChkYXRhIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3RleHRGaWVsZF0pLmpvaW4oJywgJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcmVjb3JkOiBhbnkgPSBkYXRhU291cmNlLmZpbmQoKGQ6IGFueSkgPT4gZFt2YWx1ZUZpZWxkXSA9PT0gdmFsKTtcbiAgICAgICAgICByZXR1cm4gcmVjb3JkID8gcmVjb3JkW3RleHRGaWVsZF0gOiAnJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsKVxuICAgICAgPyBgJHt0aGlzLmNvbnZlcnRJZklTT1N0cmluZ0RhdGUodmFsLmZyb20pfSBhbmQgJHt0aGlzLmNvbnZlcnRJZklTT1N0cmluZ0RhdGUodmFsLnRvKX1gXG4gICAgICA6IHRoaXMuY29udmVydElmSVNPU3RyaW5nRGF0ZSh2YWwpO1xuICB9O1xuXG4gIHByb3RlY3RlZCBjb252ZXJ0SWZJU09TdHJpbmdEYXRlID0gKHZhbDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgaXNJU09TdHJpbmdEYXRlID0gL15cXGR7NH0tXFxkezJ9LVxcZHsyfVRcXGR7Mn06XFxkezJ9OlxcZHsyfVxcLlxcZHszfVokLy50ZXN0KHZhbCk7XG4gICAgaWYgKGlzSVNPU3RyaW5nRGF0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodmFsKS5kYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xuICB9O1xuXG4gIGNvbnZlcnRRdWVyaWVzVG9EZWZpbml0aW9ucyhxdWVyaWVzOiBBWFBGaWx0ZXJRdWVyeVtdKTogQVhQRmlsdGVyRGVmaW5pdGlvbltdIHtcbiAgICBjb25zdCBkZWZpbml0aW9ucyA9IHRoaXMuZmlsdGVyc0RlZmluaXRpb25zKCk7XG5cbiAgICByZXR1cm4gcXVlcmllcy5tYXAoKHEpID0+IHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBkZWZpbml0aW9ucy5maW5kKChwKSA9PiBwLmZpZWxkID09PSBxLmZpZWxkKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmllbGQ6IHEuZmllbGQsXG4gICAgICAgIG9wZXJhdG9yOiBxLm9wZXJhdG9yLFxuICAgICAgICB2YWx1ZTogcS52YWx1ZSxcbiAgICAgICAgdGl0bGU6IGRlZmluaXRpb24/LnRpdGxlIHx8ICcnLFxuICAgICAgICB3aWRnZXQ6IGRlZmluaXRpb24/LndpZGdldCEsXG4gICAgICAgIGZpbHRlclR5cGU6IGRlZmluaXRpb24/LmZpbHRlclR5cGUhLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnZlcnRRdWVyaWVzVG9Db250ZXh0KHF1ZXJpZXM6IEFYUEZpbHRlclF1ZXJ5W10pOiBhbnkge1xuICAgIHJldHVybiBxdWVyaWVzLnJlZHVjZSgoYWNjLCBxKSA9PiB7XG4gICAgICBhY2NbcS5maWVsZF0gPSB7IHZhbHVlOiBxLnZhbHVlLCBvcGVyYXRpb246IHEub3BlcmF0b3IgfTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgYW55KTtcbiAgfVxuXG4gIGZpbHRlckZpZWxkcyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMoKS5maWx0ZXIoKGYpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGYuZmlsdGVyVHlwZS5hZHZhbmNlICYmXG4gICAgICAgICF0aGlzLnNlbGVjdGVkRmlsdGVycygpLnNvbWUoKHNmKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNmLmZpZWxkID09PSBmLmZpZWxkO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhZ0JveElucHV0ID0gdGhpcy50YWdCb3goKT8uZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0RmllbGQoZmllbGQ6IEFYUEZpbHRlckRlZmluaXRpb24pIHtcbiAgICB0aGlzLmFjdGl2ZUZpbHRlci5zZXQoZmllbGQpO1xuICAgIC8vIHRoaXMuaW5wdXRWYWx1ZS5zZXQoJycpO1xuICAgIHRoaXMudGFnQm94KCk/LmlucHV0VmFsdWUuc2V0KCcnKTtcbiAgfVxuICBoYW5kbGVGaWVsZEtleURvd24oZTogS2V5Ym9hcmRFdmVudCwgZmllbGQ6IEFYUEZpbHRlckRlZmluaXRpb24pIHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMuaGFuZGxlU2VsZWN0RmllbGQoZmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ29udGV4dENoYW5nZWQoZTogQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5jb250ZXh0LnNldChlLmRhdGEpO1xuICB9XG5cbiAgaGFuZGxlQXBwbHlGaWx0ZXIoKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnVwZGF0ZSgocHJldikgPT4gWy4uLnByZXYsIHRoaXMuYWN0aXZlRmlsdGVyKCkgYXMgQVhQRmlsdGVyRGVmaW5pdGlvbl0pO1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIuc2V0KG51bGwpO1xuICAgICAgdGhpcy5wb3BvdmVyKCk/LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQnV0dG9uS2V5RG93bihlOiBFdmVudCkge1xuICAgIGlmICh0aGlzLnBvcG92ZXIoKT8uaXNPcGVuICYmICF0aGlzLmFjdGl2ZUZpbHRlcigpKSB7XG4gICAgICAvLyBGaW5kIGZpcnN0IGxpc3QgaXRlbSBhbmQgZm9jdXMgaXRcbiAgICAgIGNvbnN0IGZpcnN0SXRlbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1theExpc3ROYXZpZ2F0aW9uSXRlbV0nKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChmaXJzdEl0ZW0pIHtcbiAgICAgICAgZmlyc3RJdGVtLmZvY3VzKCk7XG4gICAgICAgIGU/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5RG93bihlOiBBWEh0bWxFdmVudDxLZXlib2FyZEV2ZW50Pikge1xuICAgIGlmIChlLm5hdGl2ZUV2ZW50Py5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICBpZiAodGhpcy5wb3BvdmVyKCk/LmlzT3BlbiAmJiAhdGhpcy5hY3RpdmVGaWx0ZXIoKSkge1xuICAgICAgICAvLyBGaW5kIGZpcnN0IGxpc3QgaXRlbSBhbmQgZm9jdXMgaXRcbiAgICAgICAgY29uc3QgZmlyc3RJdGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2F4TGlzdE5hdmlnYXRpb25JdGVtXScpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoZmlyc3RJdGVtKSB7XG4gICAgICAgICAgZmlyc3RJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgZS5uYXRpdmVFdmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBvcG92ZXIoKT8ub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gICNlZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5jb250ZXh0KCkpO1xuICAgIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKCk7XG4gICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnZlcnRlZEZpbHRlcnM6IEFYUEZpbHRlclF1ZXJ5W10gPSBzZWxlY3RlZEZpbHRlcnMubWFwKChmKSA9PiAoe1xuICAgICAgICBmaWVsZDogZi5maWVsZCxcbiAgICAgICAgb3BlcmF0b3I6IGNvbnRleHRbZi5maWVsZF0/Lm9wZXJhdGlvbixcbiAgICAgICAgdmFsdWU6IGNvbnRleHRbZi5maWVsZF0/LnZhbHVlLFxuICAgICAgfSkpO1xuICAgICAgY29uc3QgbmV3Q29udGV4dDogYW55ID0ge307XG4gICAgICBjb252ZXJ0ZWRGaWx0ZXJzLmZvckVhY2goKGNmKSA9PiB7XG4gICAgICAgIG5ld0NvbnRleHRbY2YuZmllbGRdID0ge1xuICAgICAgICAgIHZhbHVlOiBjZi52YWx1ZSxcbiAgICAgICAgICBvcGVyYXRpb246IHR5cGVvZiBjZi5vcGVyYXRvciA9PT0gJ3N0cmluZycgPyB7IHR5cGU6IGNmLm9wZXJhdG9yIH0gOiBjZi5vcGVyYXRvcixcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmNvbnRleHQuc2V0KG5ld0NvbnRleHQpO1xuICAgICAgdGhpcy5kZWFjdGl2YXRlQWxsTGlzdEl0ZW1zKCk7XG4gICAgICB0aGlzLm9uRmlsdGVyc0NoYW5nZWQuZW1pdChjb252ZXJ0ZWRGaWx0ZXJzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaGFuZGxlU2VsZWN0RmlsdGVycyhlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGUudmFsdWU/Lmxlbmd0aCA8IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy51cGRhdGUoKHByZXYpID0+IHtcbiAgICAgICAgcmV0dXJuIGUudmFsdWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0QWN0aXZlT3BlcmF0b3IoZmlsdGVyOiBBWFBGaWx0ZXJEZWZpbml0aW9uIHwgbnVsbCkge1xuICAgIGlmICghZmlsdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHRPcGVyYXRpb24gPSB0aGlzLmNvbnRleHQoKT8uW2ZpbHRlci5maWVsZF0/Lm9wZXJhdGlvbj8udHlwZTtcbiAgICBjb25zdCBvcGVyYXRvclR5cGUgPSBjb250ZXh0T3BlcmF0aW9uIHx8IGZpbHRlci5vcGVyYXRvcj8udHlwZTtcblxuICAgIHJldHVybiBBTExfREVGQVVMVF9PUEVSQVRPUlMuZmluZCgobykgPT4gby5uYW1lID09PSBvcGVyYXRvclR5cGUpPy50aXRsZTtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdElubGluZUZpbHRlcihmaWx0ZXI6IEFYUEZpbHRlckRlZmluaXRpb24pIHtcbiAgICB0aGlzLmNvbnRleHQudXBkYXRlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtmaWx0ZXIuZmllbGRdOiB7XG4gICAgICAgIHZhbHVlOiB0aGlzLnRhZ0JveCgpPy5pbnB1dFZhbHVlKCksXG4gICAgICAgIG9wZXJhdGlvbjogeyB0eXBlOiAnY29udGFpbnMnIH0sXG4gICAgICB9LFxuICAgIH0pKTtcbiAgICB0aGlzLnRhZ0JveCgpPy5pbnB1dFZhbHVlLnNldCgnJyk7XG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgZmlsdGVyXSk7XG4gICAgdGhpcy5wb3BvdmVyKCk/LmNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVJbmxpbmVGaWx0ZXJLZXlEb3duKGU6IEtleWJvYXJkRXZlbnQsIGZpbHRlcjogQVhQRmlsdGVyRGVmaW5pdGlvbikge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oYW5kbGVTZWxlY3RJbmxpbmVGaWx0ZXIoZmlsdGVyKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVQb3BvdmVyQ2xvc2VkKGU6IEFYRXZlbnQpIHtcbiAgICB0aGlzLmFjdGl2ZUZpbHRlci5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Qb3BvdmVyT3BlbmVkKGU6IEFYRXZlbnQpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucG9wb3ZlcigpPy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBkZWFjdGl2YXRlQWxsTGlzdEl0ZW1zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3RJdGVtcykge1xuICAgICAgdGhpcy5saXN0SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgaXRlbS5pc0FjdGl2ZS5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjZWZmZWN0MiA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKCk7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dCgpO1xuXG4gICAgUHJvbWlzZS5hbGwoXG4gICAgICBmaWx0ZXJzLm1hcChhc3luYyAoZmlsdGVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbCA9IGNvbnRleHRbZmlsdGVyLmZpZWxkXT8udmFsdWU7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IGF3YWl0IHRoaXMuZ2V0RGlzcGxheVZhbHVlKGZpbHRlciwgdmFsKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgcXVlcnk6IGAke3RoaXMudHJhbnNsYXRlLnRyYW5zbGF0ZVN5bmMoZmlsdGVyLnRpdGxlKX0gJHt0aGlzLmdldEFjdGl2ZU9wZXJhdG9yKGZpbHRlcil9ICcke2Rpc3BsYXlWYWx1ZX0nYCxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgdGhpcy5hc3luY1RhZ3Muc2V0KHJlc3VsdHMpO1xuICAgIH0pO1xuICB9KTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMiBheC1wLTJcIj5cbiAgPGF4LWJ1dHRvbiAoa2V5ZG93bik9XCJoYW5kbGVCdXR0b25LZXlEb3duKCRldmVudClcIiAob25DbGljayk9XCJwb3BvdmVyLm9wZW4oKVwiICNmaWx0ZXJCdXR0b24gW2xvb2tdPVwiJ2JsYW5rJ1wiPlxuICAgIDxheC1pY29uIGNsYXNzPVwiZmFyIGZhLWJhcnMtZmlsdGVyIGF4LWN1cnNvci1wb2ludGVyXCI+IDwvYXgtaWNvbj5cbiAgPC9heC1idXR0b24+XG4gIDxheC10YWctYm94XG4gICAgW25nTW9kZWxdPVwiYXN5bmNUYWdzKClcIlxuICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVTZWxlY3RGaWx0ZXJzKCRldmVudClcIlxuICAgIFt0ZXh0RmllbGRdPVwiJ3F1ZXJ5J1wiXG4gICAgW3ZhbHVlRmllbGRdPVwiJ2lkJ1wiXG4gICAgW3JlYWRvbmx5XT1cImZpbHRlcnNEZWZpbml0aW9ucygpLmxlbmd0aCA9PT0gMFwiXG4gICAgW2xvb2tdPVwiJ25vbmUnXCJcbiAgICBbcmVhZG9ubHlGaWVsZF09XCIncmVhZE9ubHknXCJcbiAgICAob25LZXlEb3duKT1cImhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gICAgW2FkZE9uRW50ZXJdPVwiZmFsc2VcIlxuICAgIFtwbGFjZWhvbGRlcl09XCIoZmlsdGVyc0RlZmluaXRpb25zKCkubGVuZ3RoID09PSAwID8gJ2ZpbHRlci5ub1JlY29yZHMnIDogJ2ZpbHRlci50aXRsZScpIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICN0YWdCb3hcbiAgPjwvYXgtdGFnLWJveD5cbjwvZGl2PlxuXG48YXgtcG9wb3ZlclxuICBbb2Zmc2V0WV09XCJhY3RpdmVGaWx0ZXIoKSA/IC0zMCA6IDBcIlxuICBbdGFyZ2V0XT1cInRhZ0JveElucHV0XCJcbiAgW29wZW5Pbl09XCIndG9nZ2xlJ1wiXG4gIChvbk9wZW5lZCk9XCJvblBvcG92ZXJPcGVuZWQoJGV2ZW50KVwiXG4gIFtjbG9zZU9uXT1cIidjbGlja091dCdcIlxuICAob25DbG9zZWQpPVwiaGFuZGxlUG9wb3ZlckNsb3NlZCgkZXZlbnQpXCJcbiAgW2FkYXB0aXZpdHlFbmFibGVkXT1cInRydWVcIlxuICAjcG9wb3ZlclxuPlxuICA8ZGl2IGNsYXNzPVwibWQ6YXgtbWluLXctNzIgYXgtYm9yZGVyIGF4LXN1cmZhY2UgYXgtdy1mdWxsIGF4LXJvdW5kZWQtbWQgbWQ6YXgtbWF4LWgtOTYgbWQ6YXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgIDxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwiY29udGV4dCgpXCIgKG9uQ29udGV4dENoYW5nZWQpPVwib25Db250ZXh0Q2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICBAaWYgKGFjdGl2ZUZpbHRlcigpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWxpZ2h0ZXN0LXN1cmZhY2UgYXgtc2hhZG93LW1kXCI+XG4gICAgICAgICAgPGF4LWhlYWRlciBjbGFzcz1cImF4LWJvcmRlci1iIGF4LWJvcmRlci1saWdodCBheC1weC00IGF4LXB5LTJcIj57e1xuICAgICAgICAgICAgYWN0aXZlRmlsdGVyKCk/LnRpdGxlISB8IHRyYW5zbGF0ZSB8IGFzeW5jXG4gICAgICAgICAgfX08L2F4LWhlYWRlcj5cbiAgICAgICAgICA8YXgtY29udGVudCBjbGFzcz1cImF4LXAtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1iLTJcIj5cbiAgICAgICAgICAgICAgPGF4LWJhZGdlIFt0ZXh0XT1cImdldEFjdGl2ZU9wZXJhdG9yKGFjdGl2ZUZpbHRlcigpKSFcIj48L2F4LWJhZGdlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgIGF4cC13aWRnZXQtcmVuZGVyZXJcbiAgICAgICAgICAgICAgW25vZGVdPVwie1xuICAgICAgICAgICAgICAgIHR5cGU6IGFjdGl2ZUZpbHRlcigpPy53aWRnZXQ/LnR5cGUgfHwgJ3RleHQtZWRpdG9yJyxcbiAgICAgICAgICAgICAgICBwYXRoOiBhY3RpdmVGaWx0ZXIoKT8uZmllbGQsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogYWN0aXZlRmlsdGVyKCk/LndpZGdldD8ub3B0aW9ucyxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIFttb2RlXT1cIidlZGl0J1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2F4LWNvbnRlbnQ+XG4gICAgICAgICAgPGF4LWZvb3RlciBjbGFzcz1cImF4LWJvcmRlci10IGF4LWZsZXggYXgtanVzdGlmeS1lbmQgYXgtYm9yZGVyLWxpZ2h0IGF4LXctZnVsbCBheC1weC00IGF4LXB5LTJcIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC14c1wiIFt0ZXh0XT1cIidhcHBseScgfCB0cmFuc2xhdGUgfCBhc3luY1wiIChvbkNsaWNrKT1cImhhbmRsZUFwcGx5RmlsdGVyKClcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgICA8L2F4LWZvb3Rlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBheExpc3ROYXZpZ2F0aW9uICNsaXN0PVwiYXhMaXN0TmF2aWdhdGlvblwiIGNsYXNzPVwiYXhwLWxpc3QtaXRlbXNcIj5cbiAgICAgICAgICBAaWYgKHRhZ0JveC5pbnB1dFZhbHVlKCkpIHtcbiAgICAgICAgICAgIEBmb3IgKGlubGluZUZpbHRlciBvZiBpbmxpbmVGaWx0ZXJzKCk7IHRyYWNrIGlubGluZUZpbHRlci5maWVsZCkge1xuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgYXhMaXN0TmF2aWdhdGlvbkl0ZW1cbiAgICAgICAgICAgICAgICAjY2FzZUl0ZW09XCJheExpc3ROYXZpZ2F0aW9uSXRlbVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmF4cC1zdGF0ZS1mb2N1c2VkXT1cImNhc2VJdGVtLmlzQWN0aXZlKClcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlbGVjdElubGluZUZpbHRlcihpbmxpbmVGaWx0ZXIpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVJbmxpbmVGaWx0ZXJLZXlEb3duKCRldmVudCwgaW5saW5lRmlsdGVyKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBpbmxpbmVGaWx0ZXIudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYyB9fSB7eyBnZXRBY3RpdmVPcGVyYXRvcihpbmxpbmVGaWx0ZXIpIH19ICd7e1xuICAgICAgICAgICAgICAgICAgdGFnQm94LmlucHV0VmFsdWUoKVxuICAgICAgICAgICAgICAgIH19J1xuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdy1mdWxsIGF4LWJvcmRlci10IGF4LWJvcmRlci1saWdodCBheC1teS0xXCI+PC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAZm9yIChmaWVsZCBvZiBmaWx0ZXJGaWVsZHMoKTsgdHJhY2sgZmllbGQuZmllbGQpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgYXhMaXN0TmF2aWdhdGlvbkl0ZW1cbiAgICAgICAgICAgICAgI2Nhc2VJdGVtPVwiYXhMaXN0TmF2aWdhdGlvbkl0ZW1cIlxuICAgICAgICAgICAgICBbY2xhc3MuYXhwLXN0YXRlLWZvY3VzZWRdPVwiY2FzZUl0ZW0uaXNBY3RpdmUoKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTZWxlY3RGaWVsZChmaWVsZClcIlxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVGaWVsZEtleURvd24oJGV2ZW50LCBmaWVsZClcIlxuICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1lbmQgYXgtZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImF4LXctNVwiIFtjbGFzc109XCInZmEtbGlnaHQgJyArIGZpZWxkLmljb25cIj4gPC9heC1pY29uPlxuICAgICAgICAgICAgICAgIHt7IGZpZWxkLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvYXgtcG9wb3Zlcj5cbiJdfQ==","import { InjectionToken } from \"@angular/core\";\nexport const AXP_USER_AVATAR_PROVIDER = new InjectionToken('AXP_USER_AVATAR_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return new AXPUserAvatarProviderDefault();\n }\n});\nclass AXPUserAvatarProviderDefault {\n provide(userId) {\n return Promise.resolve({\n id: userId,\n username: 'johndoe',\n firstName: 'John',\n lastName: 'Doe',\n status: 'online',\n avatarUrl: 'https://via.placeholder.com/150',\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsMEJBQTBCLEVBQzFCO0lBQ0ksVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE9BQU8sSUFBSSw0QkFBNEIsRUFBRSxDQUFDO0lBQzlDLENBQUM7Q0FDSixDQUNKLENBQUM7QUFHRixNQUFNLDRCQUE0QjtJQUM5QixPQUFPLENBQUMsTUFBYztRQUNsQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDbkIsRUFBRSxFQUFFLE1BQU07WUFDVixRQUFRLEVBQUUsU0FBUztZQUNuQixTQUFTLEVBQUUsTUFBTTtZQUNqQixRQUFRLEVBQUUsS0FBSztZQUNmLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFNBQVMsRUFBRSxpQ0FBaUM7U0FDL0MsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhckRhdGEsIEFYUFVzZXJBdmF0YXJQcm92aWRlciB9IGZyb20gXCIuL3VzZXItYXZhdGFyLnR5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBBWFBfVVNFUl9BVkFUQVJfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQVXNlckF2YXRhclByb3ZpZGVyPihcbiAgICAnQVhQX1VTRVJfQVZBVEFSX1BST1ZJREVSJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBWFBVc2VyQXZhdGFyUHJvdmlkZXJEZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG4pO1xuXG5cbmNsYXNzIEFYUFVzZXJBdmF0YXJQcm92aWRlckRlZmF1bHQgaW1wbGVtZW50cyBBWFBVc2VyQXZhdGFyUHJvdmlkZXIge1xuICAgIHByb3ZpZGUodXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPEFYUFVzZXJBdmF0YXJEYXRhPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgaWQ6IHVzZXJJZCxcbiAgICAgICAgICAgIHVzZXJuYW1lOiAnam9obmRvZScsXG4gICAgICAgICAgICBmaXJzdE5hbWU6ICdKb2huJyxcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnRG9lJyxcbiAgICAgICAgICAgIHN0YXR1czogJ29ubGluZScsXG4gICAgICAgICAgICBhdmF0YXJVcmw6ICdodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTUwJyxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","import { inject, Injectable } from \"@angular/core\";\nimport { AXP_USER_AVATAR_PROVIDER } from \"./user-avatar.provider\";\nimport { BehaviorSubject, timer } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class AXPUserAvatarService {\n constructor() {\n this.provider = inject(AXP_USER_AVATAR_PROVIDER);\n // Cache configuration\n this.cacheExpiryTime = 5 * 60 * 1000; // 5 minutes in milliseconds\n this.refreshInterval = 3 * 60 * 1000; // 3 minutes in milliseconds\n // Cache storage\n this.cache = new Map();\n }\n /**\n * Gets user information with caching and auto-refresh\n * @param userId The username to fetch information for\n * @returns Observable that emits user avatar data\n */\n getUserInfo$(userId) {\n // Check if we have a cached entry\n if (!this.cache.has(userId) || this.isExpired(userId)) {\n // Create a new cache entry with default values\n const defaultData = {\n id: userId,\n status: 'offline',\n username: '',\n firstName: '',\n lastName: ''\n };\n const subject = new BehaviorSubject(defaultData);\n this.cache.set(userId, {\n data: defaultData,\n timestamp: Date.now(),\n subject\n });\n // Fetch fresh data immediately\n this.fetchAndUpdateCache(userId);\n // Set up auto refresh\n timer(this.refreshInterval, this.refreshInterval)\n .pipe(tap(() => this.fetchAndUpdateCache(userId)))\n .subscribe();\n }\n return this.cache.get(userId).subject.asObservable();\n }\n /**\n * Gets user information (Promise-based for backward compatibility)\n * @param userId The username to fetch information for\n * @returns Promise that resolves to user avatar data\n */\n async getUserInfo(userId) {\n // Check if we have an unexpired cached entry\n if (this.cache.has(userId) && !this.isExpired(userId)) {\n return this.cache.get(userId).data;\n }\n // Fetch fresh data and cache it\n return this.fetchAndUpdateCache(userId);\n }\n /**\n * Clears the entire cache or a specific user's cache\n * @param userId Optional username to clear specific cache\n */\n clearCache(userId) {\n if (userId) {\n this.cache.delete(userId);\n }\n else {\n this.cache.clear();\n }\n }\n /**\n * Force refresh data for a specific username\n * @param userId The username to refresh\n * @returns Promise that resolves to the refreshed data\n */\n async refreshUserInfo(userId) {\n return this.fetchAndUpdateCache(userId);\n }\n /**\n * Checks if a cache entry is expired\n */\n isExpired(userId) {\n const entry = this.cache.get(userId);\n if (!entry)\n return true;\n return (Date.now() - entry.timestamp) > this.cacheExpiryTime;\n }\n /**\n * Fetches data from provider and updates the cache\n */\n async fetchAndUpdateCache(userId) {\n try {\n const data = await this.provider.provide(userId);\n if (!data) {\n throw new Error(`User info not found for ${userId}`);\n }\n const entry = this.cache.get(userId);\n // Update the cache entry\n if (entry) {\n entry.data = data;\n entry.timestamp = Date.now();\n entry.subject.next(data);\n }\n else {\n // Create a new cache entry if needed\n const subject = new BehaviorSubject(data);\n this.cache.set(userId, {\n data,\n timestamp: Date.now(),\n subject\n });\n }\n return data;\n }\n catch (error) {\n console.error(`Error fetching user info for ${userId}:`, error);\n throw error;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPUserAvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPUserAvatarService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPUserAvatarService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi91c2VyLWF2YXRhci91c2VyLWF2YXRhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBK0IsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBV2xFLE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJWSxhQUFRLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFcEQsc0JBQXNCO1FBQ0wsb0JBQWUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLDRCQUE0QjtRQUM3RCxvQkFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsNEJBQTRCO1FBRTlFLGdCQUFnQjtRQUNSLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztLQXFIakQ7SUFuSEc7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxNQUFjO1FBQ3ZCLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BELCtDQUErQztZQUMvQyxNQUFNLFdBQVcsR0FBc0I7Z0JBQ25DLEVBQUUsRUFBRSxNQUFNO2dCQUNWLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixRQUFRLEVBQUUsRUFBRTtnQkFDWixT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QUUsQ0FBQztnQkFDN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLHFDQUFxQztnQkFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQW9CLElBQUksQ0FBQyxDQUFDO2dCQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7b0JBQ25CLElBQUk7b0JBQ0osU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ3JCLE9BQU87aUJBQ1YsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsTUFBTSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEUsTUFBTSxLQUFLLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7OEdBNUhRLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhckRhdGEgfSBmcm9tIFwiLi91c2VyLWF2YXRhci50eXBlc1wiO1xuaW1wb3J0IHsgQVhQX1VTRVJfQVZBVEFSX1BST1ZJREVSIH0gZnJvbSBcIi4vdXNlci1hdmF0YXIucHJvdmlkZXJcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbnRlcmZhY2UgQ2FjaGVFbnRyeSB7XG4gICAgZGF0YTogQVhQVXNlckF2YXRhckRhdGE7XG4gICAgdGltZXN0YW1wOiBudW1iZXI7XG4gICAgc3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEFYUFVzZXJBdmF0YXJEYXRhPjtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVXNlckF2YXRhclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcHJvdmlkZXIgPSBpbmplY3QoQVhQX1VTRVJfQVZBVEFSX1BST1ZJREVSKTtcblxuICAgIC8vIENhY2hlIGNvbmZpZ3VyYXRpb25cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRXhwaXJ5VGltZSA9IDUgKiA2MCAqIDEwMDA7IC8vIDUgbWludXRlcyBpbiBtaWxsaXNlY29uZHNcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hJbnRlcnZhbCA9IDMgKiA2MCAqIDEwMDA7IC8vIDMgbWludXRlcyBpbiBtaWxsaXNlY29uZHNcblxuICAgIC8vIENhY2hlIHN0b3JhZ2VcbiAgICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlRW50cnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHVzZXIgaW5mb3JtYXRpb24gd2l0aCBjYWNoaW5nIGFuZCBhdXRvLXJlZnJlc2hcbiAgICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1c2VybmFtZSB0byBmZXRjaCBpbmZvcm1hdGlvbiBmb3JcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdXNlciBhdmF0YXIgZGF0YVxuICAgICAqL1xuICAgIGdldFVzZXJJbmZvJCh1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QVhQVXNlckF2YXRhckRhdGE+IHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhIGNhY2hlZCBlbnRyeVxuICAgICAgICBpZiAoIXRoaXMuY2FjaGUuaGFzKHVzZXJJZCkgfHwgdGhpcy5pc0V4cGlyZWQodXNlcklkKSkge1xuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGNhY2hlIGVudHJ5IHdpdGggZGVmYXVsdCB2YWx1ZXNcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHREYXRhOiBBWFBVc2VyQXZhdGFyRGF0YSA9IHtcbiAgICAgICAgICAgICAgICBpZDogdXNlcklkLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ29mZmxpbmUnLFxuICAgICAgICAgICAgICAgIHVzZXJuYW1lOiAnJyxcbiAgICAgICAgICAgICAgICBmaXJzdE5hbWU6ICcnLFxuICAgICAgICAgICAgICAgIGxhc3ROYW1lOiAnJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFYUFVzZXJBdmF0YXJEYXRhPihkZWZhdWx0RGF0YSk7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnNldCh1c2VySWQsIHtcbiAgICAgICAgICAgICAgICBkYXRhOiBkZWZhdWx0RGF0YSxcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgICAgICAgc3ViamVjdFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIEZldGNoIGZyZXNoIGRhdGEgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hBbmRVcGRhdGVDYWNoZSh1c2VySWQpO1xuXG4gICAgICAgICAgICAvLyBTZXQgdXAgYXV0byByZWZyZXNoXG4gICAgICAgICAgICB0aW1lcih0aGlzLnJlZnJlc2hJbnRlcnZhbCwgdGhpcy5yZWZyZXNoSW50ZXJ2YWwpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmZldGNoQW5kVXBkYXRlQ2FjaGUodXNlcklkKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHVzZXJJZCkhLnN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB1c2VyIGluZm9ybWF0aW9uIChQcm9taXNlLWJhc2VkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxuICAgICAqIEBwYXJhbSB1c2VySWQgVGhlIHVzZXJuYW1lIHRvIGZldGNoIGluZm9ybWF0aW9uIGZvclxuICAgICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB1c2VyIGF2YXRhciBkYXRhXG4gICAgICovXG4gICAgYXN5bmMgZ2V0VXNlckluZm8odXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPEFYUFVzZXJBdmF0YXJEYXRhPiB7XG4gICAgICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgYW4gdW5leHBpcmVkIGNhY2hlZCBlbnRyeVxuICAgICAgICBpZiAodGhpcy5jYWNoZS5oYXModXNlcklkKSAmJiAhdGhpcy5pc0V4cGlyZWQodXNlcklkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHVzZXJJZCkhLmRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGZXRjaCBmcmVzaCBkYXRhIGFuZCBjYWNoZSBpdFxuICAgICAgICByZXR1cm4gdGhpcy5mZXRjaEFuZFVwZGF0ZUNhY2hlKHVzZXJJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBlbnRpcmUgY2FjaGUgb3IgYSBzcGVjaWZpYyB1c2VyJ3MgY2FjaGVcbiAgICAgKiBAcGFyYW0gdXNlcklkIE9wdGlvbmFsIHVzZXJuYW1lIHRvIGNsZWFyIHNwZWNpZmljIGNhY2hlXG4gICAgICovXG4gICAgY2xlYXJDYWNoZSh1c2VySWQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHVzZXJJZCkge1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5kZWxldGUodXNlcklkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvcmNlIHJlZnJlc2ggZGF0YSBmb3IgYSBzcGVjaWZpYyB1c2VybmFtZVxuICAgICAqIEBwYXJhbSB1c2VySWQgVGhlIHVzZXJuYW1lIHRvIHJlZnJlc2hcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlZnJlc2hlZCBkYXRhXG4gICAgICovXG4gICAgYXN5bmMgcmVmcmVzaFVzZXJJbmZvKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxBWFBVc2VyQXZhdGFyRGF0YT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mZXRjaEFuZFVwZGF0ZUNhY2hlKHVzZXJJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgY2FjaGUgZW50cnkgaXMgZXhwaXJlZFxuICAgICAqL1xuICAgIHByaXZhdGUgaXNFeHBpcmVkKHVzZXJJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5jYWNoZS5nZXQodXNlcklkKTtcbiAgICAgICAgaWYgKCFlbnRyeSkgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgcmV0dXJuIChEYXRlLm5vdygpIC0gZW50cnkudGltZXN0YW1wKSA+IHRoaXMuY2FjaGVFeHBpcnlUaW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgZGF0YSBmcm9tIHByb3ZpZGVyIGFuZCB1cGRhdGVzIHRoZSBjYWNoZVxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgZmV0Y2hBbmRVcGRhdGVDYWNoZSh1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8QVhQVXNlckF2YXRhckRhdGE+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLnByb3ZpZGVyLnByb3ZpZGUodXNlcklkKTtcbiAgICAgICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVXNlciBpbmZvIG5vdCBmb3VuZCBmb3IgJHt1c2VySWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuY2FjaGUuZ2V0KHVzZXJJZCk7XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGUgZW50cnlcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGVudHJ5LmRhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICAgIGVudHJ5LnRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgZW50cnkuc3ViamVjdC5uZXh0KGRhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgY2FjaGUgZW50cnkgaWYgbmVlZGVkXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QVhQVXNlckF2YXRhckRhdGE+KGRhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FjaGUuc2V0KHVzZXJJZCwge1xuICAgICAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3RcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBmZXRjaGluZyB1c2VyIGluZm8gZm9yICR7dXNlcklkfTpgLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0=","import { Component, ViewEncapsulation, computed, inject, input, signal } from '@angular/core';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPUserAvatarService } from './user-avatar.service';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/avatar\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/image\";\nexport class AXPUserAvatarComponent {\n constructor() {\n this.userAvatarService = inject(AXPUserAvatarService);\n this.destroy$ = new Subject();\n this.userInfo = signal(null, ...(ngDevMode ? [{ debugName: \"userInfo\" }] : []));\n this.size = input(40, ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n this.userId = input('', ...(ngDevMode ? [{ debugName: \"userId\" }] : []));\n this.src = signal('', ...(ngDevMode ? [{ debugName: \"src\" }] : []));\n this.userName = computed(() => this.userInfo()?.username || '', ...(ngDevMode ? [{ debugName: \"userName\" }] : []));\n this.firstName = computed(() => this.userInfo()?.firstName || 'Root', ...(ngDevMode ? [{ debugName: \"firstName\" }] : []));\n this.lastName = computed(() => this.userInfo()?.lastName || 'User', ...(ngDevMode ? [{ debugName: \"lastName\" }] : []));\n this.title = computed(() => `${this.firstName()} ${this.lastName()}`, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.isOnline = computed(() => this.userInfo()?.status === 'online', ...(ngDevMode ? [{ debugName: \"isOnline\" }] : []));\n this.avatarText = computed(() => this.getInitials(), ...(ngDevMode ? [{ debugName: \"avatarText\" }] : []));\n this.avatarColor = computed(() => this.pickColor(this.avatarText()), ...(ngDevMode ? [{ debugName: \"avatarColor\" }] : []));\n this.hasPicture = signal(false, ...(ngDevMode ? [{ debugName: \"hasPicture\" }] : []));\n }\n onImageError(event) {\n this.hasPicture.set(false);\n }\n onImageLoad(event) {\n this.hasPicture.set(true);\n }\n ngOnInit() {\n this.loadUserData();\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n loadUserData() {\n // Skip if no username provided\n if (!this.userId()) {\n return;\n }\n // Subscribe to the user info observable to get real-time updates\n this.userAvatarService\n .getUserInfo$(this.userId())\n .pipe(takeUntil(this.destroy$))\n .subscribe((userData) => {\n this.userInfo.set(userData);\n // This is a placeholder - replace with your actual avatar URL logic\n this.generateAvatarSrc();\n });\n }\n /**\n * Generate avatar image source\n * This is a placeholder - implement based on your actual requirements\n */\n generateAvatarSrc() {\n // Example: Check if the user has a custom avatar URL\n // If not, generate a placeholder using initials\n if (this.userInfo()?.avatarUrl) {\n this.src.set(this.userInfo()?.avatarUrl);\n }\n else {\n // Generate a placeholder - you could use an external service like UI Avatars\n // or implement your own logic\n const initials = this.getInitials();\n this.src.set(`https://avatar.iran.liara.run/username?username=${encodeURIComponent(initials)}`);\n }\n }\n /**\n * Get initials from first and last name\n */\n getInitials() {\n const firstInitial = this.firstName().charAt(0).toUpperCase();\n const lastInitial = this.lastName().charAt(0).toUpperCase();\n return firstInitial + lastInitial;\n }\n hashString(str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = (hash << 5) - hash + str.charCodeAt(i);\n hash |= 0;\n }\n return Math.abs(hash);\n }\n pickColor(initials) {\n const colors = ['primary', 'secondary', 'danger', 'warning', 'success', 'accent1', 'accent2', 'accent3'];\n const idx = this.hashString(initials) % colors.length;\n return colors[idx];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPUserAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPUserAvatarComponent, isStandalone: true, selector: \"axp-user-avatar\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, userId: { classPropertyName: \"userId\", publicName: \"userId\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], ngImport: i0, template: \"<ax-avatar #avatar [size]=\\\"size()\\\" class=\\\"ax-cursor-pointer\\\">\\n @if(hasPicture()){\\n <ax-image (onError)=\\\"onImageError($event)\\\" (onLoad)=\\\"onImageLoad($event)\\\" [src]=\\\"src()\\\"></ax-image>\\n }@else{\\n <ax-text class=\\\"ax-{{ avatarColor() }}-lightest \\\">\\n <small class=\\\"ax-text-xs ax-font-semibold\\\">{{ avatarText() }}</small>\\n </ax-text>\\n }\\n</ax-avatar>\\n\\n<!--\\n\\nax-primary-lightest\\nax-warning-lightest\\nax-success-lightest\\nax-danger-lightest\\nax-secondary-lightest\\nax-accent1-lightest\\nax-accent2-lightest\\nax-accent3-lightest\\n\\n-->\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AXAvatarModule }, { kind: \"component\", type: i1.AXAvatarComponent, selector: \"ax-avatar\", inputs: [\"color\", \"size\", \"shape\", \"look\"], outputs: [\"sizeChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXImageModule }, { kind: \"component\", type: i3.AXImageComponent, selector: \"ax-image\", inputs: [\"width\", \"height\", \"overlayMode\", \"src\", \"alt\", \"priority\", \"lazy\"], outputs: [\"onLoad\", \"onError\"] }, { kind: \"ngmodule\", type: AXBadgeModule }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPUserAvatarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-user-avatar', imports: [\n AXAvatarModule,\n AXDecoratorModule,\n AXImageModule,\n AXBadgeModule\n ], encapsulation: ViewEncapsulation.None, providers: [], template: \"<ax-avatar #avatar [size]=\\\"size()\\\" class=\\\"ax-cursor-pointer\\\">\\n @if(hasPicture()){\\n <ax-image (onError)=\\\"onImageError($event)\\\" (onLoad)=\\\"onImageLoad($event)\\\" [src]=\\\"src()\\\"></ax-image>\\n }@else{\\n <ax-text class=\\\"ax-{{ avatarColor() }}-lightest \\\">\\n <small class=\\\"ax-text-xs ax-font-semibold\\\">{{ avatarText() }}</small>\\n </ax-text>\\n }\\n</ax-avatar>\\n\\n<!--\\n\\nax-primary-lightest\\nax-warning-lightest\\nax-success-lightest\\nax-danger-lightest\\nax-secondary-lightest\\nax-accent1-lightest\\nax-accent2-lightest\\nax-accent3-lightest\\n\\n-->\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUczRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBZXpELE1BQU0sT0FBTyxzQkFBc0I7SUFibkM7UUFjbUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdEMsYUFBUSxHQUFHLE1BQU0sQ0FBMkIsSUFBSSxvREFBQyxDQUFDO1FBRTVELFNBQUksR0FBRyxLQUFLLENBQVMsRUFBRSxnREFBQyxDQUFDO1FBQ3pCLFdBQU0sR0FBRyxLQUFLLENBQVMsRUFBRSxr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QUFpQixxUEFDakIsYUFBYSxvTkFDYixhQUFhOzsyRkFLSixzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ0UsaUJBQWlCLFdBR2xCO3dCQUNQLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGFBQWE7cUJBQ2hCLGlCQUNnQixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhclNlcnZpY2UgfSBmcm9tICcuL3VzZXItYXZhdGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWEF2YXRhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdmF0YXInO1xuaW1wb3J0IHsgQVhIdG1sRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhckRhdGEgfSBmcm9tICcuL3VzZXItYXZhdGFyLnR5cGVzJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhJbWFnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9pbWFnZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC11c2VyLWF2YXRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWF2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi91c2VyLWF2YXRhci5jb21wb25lbnQuc2NzcycsXG4gIGltcG9ydHM6IFtcbiAgICBBWEF2YXRhck1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEltYWdlTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGVcbl0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFVzZXJBdmF0YXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckF2YXRhclNlcnZpY2UgPSBpbmplY3QoQVhQVXNlckF2YXRhclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgdXNlckluZm8gPSBzaWduYWw8QVhQVXNlckF2YXRhckRhdGEgfCBudWxsPihudWxsKTtcblxuICBzaXplID0gaW5wdXQ8bnVtYmVyPig0MCk7XG4gIHVzZXJJZCA9IGlucHV0PHN0cmluZz4oJycpO1xuXG4gIHNyYyA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgdXNlck5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVzZXJJbmZvKCk/LnVzZXJuYW1lIHx8ICcnKTtcbiAgZmlyc3ROYW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51c2VySW5mbygpPy5maXJzdE5hbWUgfHwgJ1Jvb3QnKTtcbiAgbGFzdE5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVzZXJJbmZvKCk/Lmxhc3ROYW1lIHx8ICdVc2VyJyk7XG4gIHRpdGxlID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5maXJzdE5hbWUoKX0gJHt0aGlzLmxhc3ROYW1lKCl9YCk7XG4gIGlzT25saW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51c2VySW5mbygpPy5zdGF0dXMgPT09ICdvbmxpbmUnKTtcblxuICBhdmF0YXJUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nZXRJbml0aWFscygpKTtcbiAgYXZhdGFyQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBpY2tDb2xvcih0aGlzLmF2YXRhclRleHQoKSkpO1xuXG4gIHByb3RlY3RlZCBoYXNQaWN0dXJlID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgb25JbWFnZUVycm9yKGV2ZW50OiBBWEh0bWxFdmVudDxFcnJvckV2ZW50Pikge1xuICAgIHRoaXMuaGFzUGljdHVyZS5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW1hZ2VMb2FkKGV2ZW50OiBBWEh0bWxFdmVudDxFdmVudD4pIHtcbiAgICB0aGlzLmhhc1BpY3R1cmUuc2V0KHRydWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkVXNlckRhdGEoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFVzZXJEYXRhKCk6IHZvaWQge1xuICAgIC8vIFNraXAgaWYgbm8gdXNlcm5hbWUgcHJvdmlkZWRcbiAgICBpZiAoIXRoaXMudXNlcklkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIHVzZXIgaW5mbyBvYnNlcnZhYmxlIHRvIGdldCByZWFsLXRpbWUgdXBkYXRlc1xuICAgIHRoaXMudXNlckF2YXRhclNlcnZpY2VcbiAgICAgIC5nZXRVc2VySW5mbyQodGhpcy51c2VySWQoKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHVzZXJEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMudXNlckluZm8uc2V0KHVzZXJEYXRhKTtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHBsYWNlaG9sZGVyIC0gcmVwbGFjZSB3aXRoIHlvdXIgYWN0dWFsIGF2YXRhciBVUkwgbG9naWNcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUF2YXRhclNyYygpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYXZhdGFyIGltYWdlIHNvdXJjZVxuICAgKiBUaGlzIGlzIGEgcGxhY2Vob2xkZXIgLSBpbXBsZW1lbnQgYmFzZWQgb24geW91ciBhY3R1YWwgcmVxdWlyZW1lbnRzXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlQXZhdGFyU3JjKCk6IHZvaWQge1xuICAgIC8vIEV4YW1wbGU6IENoZWNrIGlmIHRoZSB1c2VyIGhhcyBhIGN1c3RvbSBhdmF0YXIgVVJMXG4gICAgLy8gSWYgbm90LCBnZW5lcmF0ZSBhIHBsYWNlaG9sZGVyIHVzaW5nIGluaXRpYWxzXG4gICAgaWYgKHRoaXMudXNlckluZm8oKT8uYXZhdGFyVXJsKSB7XG4gICAgICB0aGlzLnNyYy5zZXQodGhpcy51c2VySW5mbygpPy5hdmF0YXJVcmwhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gR2VuZXJhdGUgYSBwbGFjZWhvbGRlciAtIHlvdSBjb3VsZCB1c2UgYW4gZXh0ZXJuYWwgc2VydmljZSBsaWtlIFVJIEF2YXRhcnNcbiAgICAgIC8vIG9yIGltcGxlbWVudCB5b3VyIG93biBsb2dpY1xuICAgICAgY29uc3QgaW5pdGlhbHMgPSB0aGlzLmdldEluaXRpYWxzKCk7XG4gICAgICB0aGlzLnNyYy5zZXQoYGh0dHBzOi8vYXZhdGFyLmlyYW4ubGlhcmEucnVuL3VzZXJuYW1lP3VzZXJuYW1lPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGluaXRpYWxzKX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGluaXRpYWxzIGZyb20gZmlyc3QgYW5kIGxhc3QgbmFtZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRJbml0aWFscygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpcnN0SW5pdGlhbCA9IHRoaXMuZmlyc3ROYW1lKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgbGFzdEluaXRpYWwgPSB0aGlzLmxhc3ROYW1lKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIGZpcnN0SW5pdGlhbCArIGxhc3RJbml0aWFsO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNoU3RyaW5nKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSAtIGhhc2ggKyBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgIGhhc2ggfD0gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGguYWJzKGhhc2gpO1xuICB9XG5cbiAgcHJpdmF0ZSBwaWNrQ29sb3IoaW5pdGlhbHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3JzID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICdkYW5nZXInLCAnd2FybmluZycsICdzdWNjZXNzJywgJ2FjY2VudDEnLCAnYWNjZW50MicsICdhY2NlbnQzJ107XG4gICAgY29uc3QgaWR4ID0gdGhpcy5oYXNoU3RyaW5nKGluaXRpYWxzKSAlIGNvbG9ycy5sZW5ndGg7XG4gICAgcmV0dXJuIGNvbG9yc1tpZHhdO1xuICB9XG59XG4iLCI8YXgtYXZhdGFyICNhdmF0YXIgW3NpemVdPVwic2l6ZSgpXCIgY2xhc3M9XCJheC1jdXJzb3ItcG9pbnRlclwiPlxuICBAaWYoaGFzUGljdHVyZSgpKXtcbiAgPGF4LWltYWdlIChvbkVycm9yKT1cIm9uSW1hZ2VFcnJvcigkZXZlbnQpXCIgKG9uTG9hZCk9XCJvbkltYWdlTG9hZCgkZXZlbnQpXCIgW3NyY109XCJzcmMoKVwiPjwvYXgtaW1hZ2U+XG4gIH1AZWxzZXtcbiAgPGF4LXRleHQgY2xhc3M9XCJheC17eyBhdmF0YXJDb2xvcigpIH19LWxpZ2h0ZXN0IFwiPlxuICAgIDxzbWFsbCBjbGFzcz1cImF4LXRleHQteHMgYXgtZm9udC1zZW1pYm9sZFwiPnt7IGF2YXRhclRleHQoKSB9fTwvc21hbGw+XG4gIDwvYXgtdGV4dD5cbiAgfVxuPC9heC1hdmF0YXI+XG5cbjwhLS1cblxuYXgtcHJpbWFyeS1saWdodGVzdFxuYXgtd2FybmluZy1saWdodGVzdFxuYXgtc3VjY2Vzcy1saWdodGVzdFxuYXgtZGFuZ2VyLWxpZ2h0ZXN0XG5heC1zZWNvbmRhcnktbGlnaHRlc3RcbmF4LWFjY2VudDEtbGlnaHRlc3RcbmF4LWFjY2VudDItbGlnaHRlc3RcbmF4LWFjY2VudDMtbGlnaHRlc3RcblxuLS0+XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, input, output, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\n/**\n * Generic widget item component for displaying selectable widgets with icons, titles, and descriptions.\n * Can be used across different modules for consistent widget display and interaction.\n */\nexport class AXPWidgetItemComponent {\n constructor() {\n // Inputs\n /** The widget data to display */\n this.widget = input.required(...(ngDevMode ? [{ debugName: \"widget\" }] : []));\n /** Whether this widget is currently selected */\n this.isSelected = input(false, ...(ngDevMode ? [{ debugName: \"isSelected\" }] : []));\n /** Whether to show the pin button */\n this.showPinButton = input(true, ...(ngDevMode ? [{ debugName: \"showPinButton\" }] : []));\n /** Custom CSS classes to apply to the widget item */\n this.customClasses = input('', ...(ngDevMode ? [{ debugName: \"customClasses\" }] : []));\n // Outputs\n /** Emitted when the widget item is clicked */\n this.onWidgetClick = output();\n /** Emitted when the pin button is clicked */\n this.onPinClick = output();\n }\n /**\n * Handle widget item click event\n */\n handleClick(event) {\n this.onWidgetClick.emit({\n event,\n widget: this.widget()\n });\n }\n /**\n * Handle pin button click event\n */\n handlePinClick(event) {\n event.stopPropagation(); // Prevent widget click event\n this.onPinClick.emit({\n event,\n widget: this.widget()\n });\n }\n /**\n * Get the effective icon to display\n */\n getIconClass() {\n return this.widget().icon || 'fa-light fa-document';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPWidgetItemComponent, isStandalone: true, selector: \"axp-widget-item\", inputs: { widget: { classPropertyName: \"widget\", publicName: \"widget\", isSignal: true, isRequired: true, transformFunction: null }, isSelected: { classPropertyName: \"isSelected\", publicName: \"isSelected\", isSignal: true, isRequired: false, transformFunction: null }, showPinButton: { classPropertyName: \"showPinButton\", publicName: \"showPinButton\", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: \"customClasses\", publicName: \"customClasses\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onWidgetClick: \"onWidgetClick\", onPinClick: \"onPinClick\" }, ngImport: i0, template: \"<div (click)=\\\"handleClick($event)\\\"\\n class=\\\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-lightest/65 hover:ax-text-primary-on-lightest ax-cursor-pointer ax-w-full\\\"\\n [class.ax-bg-primary-lightest]=\\\"isSelected()\\\" [class.ax-text-primary-on-lightest]=\\\"isSelected()\\\"\\n [class.ax-border-primary-lightest]=\\\"isSelected()\\\" [class]=\\\"customClasses()\\\">\\n\\n <!-- Widget Icon -->\\n <div class=\\\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border group-hover:ax-bg-primary-lighter group-hover:ax-text-primary-on-lighter group-hover:ax-border-primary-lighter\\\"\\n [class.ax-bg-primary-light]=\\\"isSelected()\\\" [class.ax-text-primary-on-light]=\\\"isSelected()\\\"\\n [class.ax-border-primary-light]=\\\"isSelected()\\\" [class.ax-surface]=\\\"!isSelected()\\\">\\n <i [ngClass]=\\\"getIconClass()\\\" class=\\\"ax-text-lg\\\"></i>\\n </div>\\n\\n <!-- Widget Content -->\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-w-[70%]\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-gap-2\\\">\\n <!-- Widget Title -->\\n <div class=\\\"ax-font-semibold ax-text-sm ax-truncate\\\" [title]=\\\"widget().title\\\">\\n {{ widget().title }}\\n </div>\\n\\n <!-- Pin Button -->\\n @if (showPinButton()) {\\n <div (click)=\\\"handlePinClick($event)\\\" class=\\\"ax-cursor-pointer\\\">\\n @if (widget().isPinned) {\\n <i class=\\\"fa-solid fa-thumbtack ax-text-sm ax-rotate-45\\\" title=\\\"Unpin\\\"></i>\\n } @else {\\n <i class=\\\"fa-light fa-thumbtack ax-text-sm ax-rotate-45 ax-invisible group-hover:ax-visible\\\"\\n title=\\\"Pin\\\"></i>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- Widget Description -->\\n @if (widget().description) {\\n <span class=\\\"ax-text-xs ax-truncate\\\" [title]=\\\"widget().description\\\">\\n {{ widget().description }}\\n </span>\\n }\\n </div>\\n</div>\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-widget-item', imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: \"<div (click)=\\\"handleClick($event)\\\"\\n class=\\\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-lightest/65 hover:ax-text-primary-on-lightest ax-cursor-pointer ax-w-full\\\"\\n [class.ax-bg-primary-lightest]=\\\"isSelected()\\\" [class.ax-text-primary-on-lightest]=\\\"isSelected()\\\"\\n [class.ax-border-primary-lightest]=\\\"isSelected()\\\" [class]=\\\"customClasses()\\\">\\n\\n <!-- Widget Icon -->\\n <div class=\\\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border group-hover:ax-bg-primary-lighter group-hover:ax-text-primary-on-lighter group-hover:ax-border-primary-lighter\\\"\\n [class.ax-bg-primary-light]=\\\"isSelected()\\\" [class.ax-text-primary-on-light]=\\\"isSelected()\\\"\\n [class.ax-border-primary-light]=\\\"isSelected()\\\" [class.ax-surface]=\\\"!isSelected()\\\">\\n <i [ngClass]=\\\"getIconClass()\\\" class=\\\"ax-text-lg\\\"></i>\\n </div>\\n\\n <!-- Widget Content -->\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-w-[70%]\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-gap-2\\\">\\n <!-- Widget Title -->\\n <div class=\\\"ax-font-semibold ax-text-sm ax-truncate\\\" [title]=\\\"widget().title\\\">\\n {{ widget().title }}\\n </div>\\n\\n <!-- Pin Button -->\\n @if (showPinButton()) {\\n <div (click)=\\\"handlePinClick($event)\\\" class=\\\"ax-cursor-pointer\\\">\\n @if (widget().isPinned) {\\n <i class=\\\"fa-solid fa-thumbtack ax-text-sm ax-rotate-45\\\" title=\\\"Unpin\\\"></i>\\n } @else {\\n <i class=\\\"fa-light fa-thumbtack ax-text-sm ax-rotate-45 ax-invisible group-hover:ax-visible\\\"\\n title=\\\"Pin\\\"></i>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- Widget Description -->\\n @if (widget().description) {\\n <span class=\\\"ax-text-xs ax-truncate\\\" [title]=\\\"widget().description\\\">\\n {{ widget().description }}\\n </span>\\n }\\n </div>\\n</div>\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL3dpZGdldC1pdGVtL3dpZGdldC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi93aWRnZXQtaXRlbS93aWRnZXQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHNUU7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHNCQUFzQjtJQU5uQztRQU9JLFNBQVM7UUFDVCxpQ0FBaUM7UUFDakMsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLGlEQUFxQixDQUFDO1FBRTdDLGdEQUFnRDtRQUNoRCxlQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssc0RBQUMsQ0FBQztRQUVuQyxxQ0FBcUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLENBQVUsSUFBSSx5REFBQyxDQUFDO1FBRXJDLHFEQUFxRDtRQUNyRCxrQkFBYSxHQUFHLEtBQUssQ0FBUyxFQUFFLHlEQUFDLENBQUM7UUFFbEMsVUFBVTtRQUNWLDhDQUE4QztRQUM5QyxrQkFBYSxHQUFHLE1BQU0sRUFBMkIsQ0FBQztRQUVsRCw2Q0FBNkM7UUFDN0MsZUFBVSxHQUFHLE1BQU0sRUFBMkIsQ0FBQztLQTZCbEQ7SUEzQkc7O09BRUc7SUFDSCxXQUFXLENBQUMsS0FBaUI7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDcEIsS0FBSztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxLQUFpQjtRQUM1QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyw2QkFBNkI7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDakIsS0FBSztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLElBQUksc0JBQXNCLENBQUM7SUFDeEQsQ0FBQzs4R0EvQ1Esc0JBQXNCO2tHQUF0QixzQkFBc0IsK3JCQ2RuQyw2aUVBd0NNLDJDRDlCUSxZQUFZOzsyRkFJYixzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0ksaUJBQWlCLFdBQ2xCLENBQUMsWUFBWSxDQUFDLGlCQUVSLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0SXRlbURhdGEsIEFYUFdpZGdldEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnLi93aWRnZXQtaXRlbS50eXBlcyc7XG5cbi8qKlxuICogR2VuZXJpYyB3aWRnZXQgaXRlbSBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgc2VsZWN0YWJsZSB3aWRnZXRzIHdpdGggaWNvbnMsIHRpdGxlcywgYW5kIGRlc2NyaXB0aW9ucy5cbiAqIENhbiBiZSB1c2VkIGFjcm9zcyBkaWZmZXJlbnQgbW9kdWxlcyBmb3IgY29uc2lzdGVudCB3aWRnZXQgZGlzcGxheSBhbmQgaW50ZXJhY3Rpb24uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLXdpZGdldC1pdGVtJyxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldEl0ZW1Db21wb25lbnQge1xuICAgIC8vIElucHV0c1xuICAgIC8qKiBUaGUgd2lkZ2V0IGRhdGEgdG8gZGlzcGxheSAqL1xuICAgIHdpZGdldCA9IGlucHV0LnJlcXVpcmVkPEFYUFdpZGdldEl0ZW1EYXRhPigpO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhpcyB3aWRnZXQgaXMgY3VycmVudGx5IHNlbGVjdGVkICovXG4gICAgaXNTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIHBpbiBidXR0b24gKi9cbiAgICBzaG93UGluQnV0dG9uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvKiogQ3VzdG9tIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSB3aWRnZXQgaXRlbSAqL1xuICAgIGN1c3RvbUNsYXNzZXMgPSBpbnB1dDxzdHJpbmc+KCcnKTtcblxuICAgIC8vIE91dHB1dHNcbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB3aWRnZXQgaXRlbSBpcyBjbGlja2VkICovXG4gICAgb25XaWRnZXRDbGljayA9IG91dHB1dDxBWFBXaWRnZXRJdGVtQ2xpY2tFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHBpbiBidXR0b24gaXMgY2xpY2tlZCAqL1xuICAgIG9uUGluQ2xpY2sgPSBvdXRwdXQ8QVhQV2lkZ2V0SXRlbUNsaWNrRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgd2lkZ2V0IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICAgKi9cbiAgICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uV2lkZ2V0Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHdpZGdldDogdGhpcy53aWRnZXQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgcGluIGJ1dHRvbiBjbGljayBldmVudFxuICAgICAqL1xuICAgIGhhbmRsZVBpbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBQcmV2ZW50IHdpZGdldCBjbGljayBldmVudFxuICAgICAgICB0aGlzLm9uUGluQ2xpY2suZW1pdCh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHdpZGdldDogdGhpcy53aWRnZXQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGVmZmVjdGl2ZSBpY29uIHRvIGRpc3BsYXlcbiAgICAgKi9cbiAgICBnZXRJY29uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0KCkuaWNvbiB8fCAnZmEtbGlnaHQgZmEtZG9jdW1lbnQnO1xuICAgIH1cbn0iLCI8ZGl2IChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCJcbiAgICBjbGFzcz1cImF4LXB5LTIgYXgtcHgtMyBheC1yb3VuZGVkLW1kIGF4LWZsZXggYXgtZ2FwLTMgYXgtaXRlbXMtY2VudGVyIGF4LWdyb3VwIGhvdmVyOmF4LWJnLXByaW1hcnktbGlnaHRlc3QvNjUgaG92ZXI6YXgtdGV4dC1wcmltYXJ5LW9uLWxpZ2h0ZXN0IGF4LWN1cnNvci1wb2ludGVyIGF4LXctZnVsbFwiXG4gICAgW2NsYXNzLmF4LWJnLXByaW1hcnktbGlnaHRlc3RdPVwiaXNTZWxlY3RlZCgpXCIgW2NsYXNzLmF4LXRleHQtcHJpbWFyeS1vbi1saWdodGVzdF09XCJpc1NlbGVjdGVkKClcIlxuICAgIFtjbGFzcy5heC1ib3JkZXItcHJpbWFyeS1saWdodGVzdF09XCJpc1NlbGVjdGVkKClcIiBbY2xhc3NdPVwiY3VzdG9tQ2xhc3NlcygpXCI+XG5cbiAgICA8IS0tIFdpZGdldCBJY29uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJheC1taW4tdy0xMCBheC1oLTEwIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGdyb3VwLWhvdmVyOmF4LWJnLXByaW1hcnktbGlnaHRlciBncm91cC1ob3ZlcjpheC10ZXh0LXByaW1hcnktb24tbGlnaHRlciBncm91cC1ob3ZlcjpheC1ib3JkZXItcHJpbWFyeS1saWdodGVyXCJcbiAgICAgICAgW2NsYXNzLmF4LWJnLXByaW1hcnktbGlnaHRdPVwiaXNTZWxlY3RlZCgpXCIgW2NsYXNzLmF4LXRleHQtcHJpbWFyeS1vbi1saWdodF09XCJpc1NlbGVjdGVkKClcIlxuICAgICAgICBbY2xhc3MuYXgtYm9yZGVyLXByaW1hcnktbGlnaHRdPVwiaXNTZWxlY3RlZCgpXCIgW2NsYXNzLmF4LXN1cmZhY2VdPVwiIWlzU2VsZWN0ZWQoKVwiPlxuICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRJY29uQ2xhc3MoKVwiIGNsYXNzPVwiYXgtdGV4dC1sZ1wiPjwvaT5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gV2lkZ2V0IENvbnRlbnQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTEgYXgtZmxleC0xIGF4LXctWzcwJV1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktYmV0d2VlbiBheC1nYXAtMlwiPlxuICAgICAgICAgICAgPCEtLSBXaWRnZXQgVGl0bGUgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXNtIGF4LXRydW5jYXRlXCIgW3RpdGxlXT1cIndpZGdldCgpLnRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3sgd2lkZ2V0KCkudGl0bGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIFBpbiBCdXR0b24gLS0+XG4gICAgICAgICAgICBAaWYgKHNob3dQaW5CdXR0b24oKSkge1xuICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlUGluQ2xpY2soJGV2ZW50KVwiIGNsYXNzPVwiYXgtY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHdpZGdldCgpLmlzUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS10aHVtYnRhY2sgYXgtdGV4dC1zbSBheC1yb3RhdGUtNDVcIiB0aXRsZT1cIlVucGluXCI+PC9pPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGh1bWJ0YWNrIGF4LXRleHQtc20gYXgtcm90YXRlLTQ1IGF4LWludmlzaWJsZSBncm91cC1ob3ZlcjpheC12aXNpYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJQaW5cIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gV2lkZ2V0IERlc2NyaXB0aW9uIC0tPlxuICAgICAgICBAaWYgKHdpZGdldCgpLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14cyBheC10cnVuY2F0ZVwiIFt0aXRsZV09XCJ3aWRnZXQoKS5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAge3sgd2lkZ2V0KCkuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvYWNvcmV4LXBsYXRmb3JtLWxheW91dC1jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1","i3","i2","i5","i4","i6","i9","i10"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-layout-components.mjs","sources":["../tmp-esm2022/layout/components/lib/state-message/state-message.component.js","../tmp-esm2022/layout/components/lib/activity-log/activity-log.component.js","../tmp-esm2022/layout/components/lib/badge/task-badge.type.js","../tmp-esm2022/layout/components/lib/badge/task-badge.service.js","../tmp-esm2022/layout/components/lib/badge/badge.directive.js","../tmp-esm2022/layout/components/lib/badge/badge-helper.js","../tmp-esm2022/layout/components/lib/blocks/layout-actions.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-blocks.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-footer.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-header.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-list.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-section.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-side.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-tool-bar.component.js","../tmp-esm2022/layout/components/lib/blocks/layout-container.component.js","../tmp-esm2022/layout/components/lib/category-tree/category-tree.component.js","../tmp-esm2022/layout/components/lib/category-tree/category-tree.types.js","../tmp-esm2022/layout/components/lib/columns/query-columns.component.js","../tmp-esm2022/layout/components/lib/compare-view/compare-view.component.js","../tmp-esm2022/layout/components/lib/component-slot/component-slot.types.js","../tmp-esm2022/layout/components/lib/component-slot/component-slot-registery.service.js","../tmp-esm2022/layout/components/lib/component-slot/component-slot.directive.js","../tmp-esm2022/layout/components/lib/component-slot/component-slot.module.js","../tmp-esm2022/layout/components/lib/data-selector/data-selector.component.js","../tmp-esm2022/layout/components/lib/data-selector/data-selector.service.js","../tmp-esm2022/layout/components/lib/dynamic-form/dynamic-form.component.js","../tmp-esm2022/layout/components/lib/dynamic-form-stepper/dynamic-form-stepper.component.js","../tmp-esm2022/layout/components/lib/dynamic-dialog/dynamic-dialog.component.js","../tmp-esm2022/layout/components/lib/dynamic-dialog/dynamic-dialog.service.js","../tmp-esm2022/layout/components/lib/dynamic-form/dynamic-form-builder.service.js","../tmp-esm2022/layout/components/lib/dynamic-form/dynamic-form-builder.types.js","../tmp-esm2022/layout/components/lib/dynamic-form-stepper/dynamic-form-stepper.types.js","../tmp-esm2022/layout/components/lib/extra-properties/extra-properties.types.js","../tmp-esm2022/layout/components/lib/extra-properties/extra-properties.component.js","../tmp-esm2022/layout/components/lib/property-viewer/widget-property-viewer.component.js","../tmp-esm2022/layout/components/lib/extra-properties/extra-properties-schema.component.js","../tmp-esm2022/layout/components/lib/extra-properties/extra-properties-values.component.js","../tmp-esm2022/layout/components/lib/filters/query-filters.component.js","../tmp-esm2022/layout/components/lib/sorts/query-sorts.component.js","../tmp-esm2022/layout/components/lib/template-viewer/template-viewer.component.js","../tmp-esm2022/layout/components/lib/template-viewer/template-viewer.service.js","../tmp-esm2022/layout/components/lib/user-avatar/user-avatar.provider.js","../tmp-esm2022/layout/components/lib/user-avatar/user-avatar.service.js","../tmp-esm2022/layout/components/lib/user-avatar/user-avatar.component.js","../tmp-esm2022/layout/components/lib/views/query-views.component.js","../tmp-esm2022/layout/components/lib/widget-item/widget-item.component.js","../tmp-esm2022/layout/components/acorex-platform-layout-components.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/core/translation\";\n//#endregion\n//#region ---- Component Definition ----\n//#endregion\n//#region ---- Component Class ----\nexport class AXPStateMessageComponent {\n constructor() {\n // Core properties\n this.mode = input('empty', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.icon = input('', ...(ngDevMode ? [{ debugName: \"icon\" }] : []));\n this.title = input('', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = input('', ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n // Optional styling\n this.variant = input('default', ...(ngDevMode ? [{ debugName: \"variant\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPStateMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.8\", type: AXPStateMessageComponent, isStandalone: true, selector: \"axp-state-message\", inputs: { mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: \"icon\", publicName: \"icon\", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: \"description\", publicName: \"description\", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: \"variant\", publicName: \"variant\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"axp-state-message\\\" [attr.data-mode]=\\\"mode()\\\" [attr.data-variant]=\\\"variant()\\\">\\n <div class=\\\"__icon\\\" *ngIf=\\\"icon()\\\">\\n <i [class]=\\\"icon()\\\"></i>\\n </div>\\n <div class=\\\"__content\\\">\\n <h3 class=\\\"__title\\\" *ngIf=\\\"title()\\\">{{ title() | translate | async }}</h3>\\n <p class=\\\"__description\\\" *ngIf=\\\"description()\\\">{{ description() | translate | async }}</p>\\n <div class=\\\"__actions\\\">\\n <ng-content select=\\\"[slot=actions]\\\"></ng-content>\\n </div>\\n </div>\\n</div>\\n\", styles: [\".axp-state-message{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.axp-state-message .__icon{margin-bottom:1rem}.axp-state-message .__icon i{opacity:74%;display:block;font-weight:400;font-size:2.25rem!important;line-height:2.5rem!important}.axp-state-message .__content{max-width:28rem}.axp-state-message .__title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:500}.axp-state-message .__description{margin-bottom:1rem;opacity:74%;display:block;font-weight:400;font-size:.875rem!important;line-height:1.25rem!important}.axp-state-message .__actions{display:flex;flex-direction:column;align-items:center;gap:.5rem}.axp-state-message[data-mode=empty] .__icon i{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=error] .__icon i{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=error] .__title{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=loading] .__icon i{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=loading] .__title{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=warning] .__icon i{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=warning] .__title{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=info] .__icon i{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=info] .__title{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=success] .__icon i{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=success] .__title{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.axp-state-message[data-variant=compact]{padding:1.5rem .75rem}.axp-state-message[data-variant=compact] .__icon{margin-bottom:.5rem}.axp-state-message[data-variant=compact] .__icon i{font-size:1.5rem!important;line-height:2rem!important}.axp-state-message[data-variant=compact] .__title{margin-bottom:.25rem;font-size:1rem;line-height:1.5rem}.axp-state-message[data-variant=compact] .__description{margin-bottom:.5rem;font-size:.75rem;line-height:1rem}.axp-state-message[data-variant=minimal]{padding:1rem .5rem}.axp-state-message[data-variant=minimal] .__icon{margin-bottom:.25rem}.axp-state-message[data-variant=minimal] .__icon i{font-size:1.25rem!important;line-height:1.75rem!important}.axp-state-message[data-variant=minimal] .__title{margin-bottom:.25rem;font-size:.875rem;line-height:1.25rem}.axp-state-message[data-variant=minimal] .__description{margin-bottom:.25rem;font-size:.75rem;line-height:1rem}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPStateMessageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-state-message', standalone: true, imports: [CommonModule, AXTranslationModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"<div class=\\\"axp-state-message\\\" [attr.data-mode]=\\\"mode()\\\" [attr.data-variant]=\\\"variant()\\\">\\n <div class=\\\"__icon\\\" *ngIf=\\\"icon()\\\">\\n <i [class]=\\\"icon()\\\"></i>\\n </div>\\n <div class=\\\"__content\\\">\\n <h3 class=\\\"__title\\\" *ngIf=\\\"title()\\\">{{ title() | translate | async }}</h3>\\n <p class=\\\"__description\\\" *ngIf=\\\"description()\\\">{{ description() | translate | async }}</p>\\n <div class=\\\"__actions\\\">\\n <ng-content select=\\\"[slot=actions]\\\"></ng-content>\\n </div>\\n </div>\\n</div>\\n\", styles: [\".axp-state-message{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center}.axp-state-message .__icon{margin-bottom:1rem}.axp-state-message .__icon i{opacity:74%;display:block;font-weight:400;font-size:2.25rem!important;line-height:2.5rem!important}.axp-state-message .__content{max-width:28rem}.axp-state-message .__title{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:500}.axp-state-message .__description{margin-bottom:1rem;opacity:74%;display:block;font-weight:400;font-size:.875rem!important;line-height:1.25rem!important}.axp-state-message .__actions{display:flex;flex-direction:column;align-items:center;gap:.5rem}.axp-state-message[data-mode=empty] .__icon i{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=error] .__icon i{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=error] .__title{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=loading] .__icon i{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=loading] .__title{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=warning] .__icon i{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=warning] .__title{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=info] .__icon i{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=info] .__title{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=success] .__icon i{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.axp-state-message[data-mode=success] .__title{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.axp-state-message[data-variant=compact]{padding:1.5rem .75rem}.axp-state-message[data-variant=compact] .__icon{margin-bottom:.5rem}.axp-state-message[data-variant=compact] .__icon i{font-size:1.5rem!important;line-height:2rem!important}.axp-state-message[data-variant=compact] .__title{margin-bottom:.25rem;font-size:1rem;line-height:1.5rem}.axp-state-message[data-variant=compact] .__description{margin-bottom:.5rem;font-size:.75rem;line-height:1rem}.axp-state-message[data-variant=minimal]{padding:1rem .5rem}.axp-state-message[data-variant=minimal] .__icon{margin-bottom:.25rem}.axp-state-message[data-variant=minimal] .__icon i{font-size:1.25rem!important;line-height:1.75rem!important}.axp-state-message[data-variant=minimal] .__title{margin-bottom:.25rem;font-size:.875rem;line-height:1.25rem}.axp-state-message[data-variant=minimal] .__description{margin-bottom:.25rem;font-size:.75rem;line-height:1rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvc3RhdGUtbWVzc2FnZS9zdGF0ZS1tZXNzYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9zdGF0ZS1tZXNzYWdlL3N0YXRlLW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7O0FBTS9ELFlBQVk7QUFFWiw0Q0FBNEM7QUFZNUMsWUFBWTtBQUVaLHVDQUF1QztBQUV2QyxNQUFNLE9BQU8sd0JBQXdCO0lBZHJDO1FBZUUsa0JBQWtCO1FBQ2xCLFNBQUksR0FBRyxLQUFLLENBQVksT0FBTyxnREFBQyxDQUFDO1FBQ2pDLFNBQUksR0FBRyxLQUFLLENBQVMsRUFBRSxnREFBQyxDQUFDO1FBQ3pCLFVBQUssR0FBRyxLQUFLLENBQVMsRUFBRSxpREFBQyxDQUFDO1FBQzFCLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsdURBQUMsQ0FBQztRQUVoQyxtQkFBbUI7UUFDbkIsWUFBTyxHQUFHLEtBQUssQ0FBb0MsU0FBUyxtREFBQyxDQUFDO0tBQy9EOzhHQVRZLHdCQUF3QjtrR0FBeEIsd0JBQXdCLG1zQkMxQnJDLHFnQkFZQSwwNUZER1ksWUFBWSxrSUFBRSxtQkFBbUI7OzJGQVdoQyx3QkFBd0I7a0JBZHBDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxpQkFHN0IsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGVzICAgLS0tLVxuXG5leHBvcnQgdHlwZSBTdGF0ZU1vZGUgPSAnZW1wdHknIHwgJ2Vycm9yJyB8ICdsb2FkaW5nJyB8ICd3YXJuaW5nJyB8ICdpbmZvJyB8ICdzdWNjZXNzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50IERlZmluaXRpb24gICAtLS0tXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1zdGF0ZS1tZXNzYWdlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhUcmFuc2xhdGlvbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGF0ZS1tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RhdGUtbWVzc2FnZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50IENsYXNzICAgLS0tLVxuXG5leHBvcnQgY2xhc3MgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50IHtcbiAgLy8gQ29yZSBwcm9wZXJ0aWVzXG4gIG1vZGUgPSBpbnB1dDxTdGF0ZU1vZGU+KCdlbXB0eScpO1xuICBpY29uID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHRpdGxlID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIGRlc2NyaXB0aW9uID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgLy8gT3B0aW9uYWwgc3R5bGluZ1xuICB2YXJpYW50ID0gaW5wdXQ8J2RlZmF1bHQnIHwgJ2NvbXBhY3QnIHwgJ21pbmltYWwnPignZGVmYXVsdCcpO1xufVxuXG4vLyNlbmRyZWdpb25cbiIsIjxkaXYgY2xhc3M9XCJheHAtc3RhdGUtbWVzc2FnZVwiIFthdHRyLmRhdGEtbW9kZV09XCJtb2RlKClcIiBbYXR0ci5kYXRhLXZhcmlhbnRdPVwidmFyaWFudCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJfX2ljb25cIiAqbmdJZj1cImljb24oKVwiPlxuICAgIDxpIFtjbGFzc109XCJpY29uKClcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiX19jb250ZW50XCI+XG4gICAgPGgzIGNsYXNzPVwiX190aXRsZVwiICpuZ0lmPVwidGl0bGUoKVwiPnt7IHRpdGxlKCkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvaDM+XG4gICAgPHAgY2xhc3M9XCJfX2Rlc2NyaXB0aW9uXCIgKm5nSWY9XCJkZXNjcmlwdGlvbigpXCI+e3sgZGVzY3JpcHRpb24oKSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9wPlxuICAgIDxkaXYgY2xhc3M9XCJfX2FjdGlvbnNcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzbG90PWFjdGlvbnNdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { getSystemActions } from '@acorex/platform/core';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, inject, ViewEncapsulation, signal, effect } from '@angular/core';\nimport { AXAccordionCdkModule } from '@acorex/cdk/accordion';\nimport { AXTagModule } from '@acorex/components/tag';\nimport { AXPStateMessageComponent } from '../state-message';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/core/translation\";\nimport * as i2 from \"@acorex/components/skeleton\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@acorex/core/format\";\n//#region ---- Component Definition ----\nexport class AXPActivityLogComponent {\n //#endregion\n //#region ---- Constructor & Lifecycle ----\n constructor() {\n //#endregion\n //#region ---- Services & Dependencies ----\n this.translateService = inject(AXTranslationService);\n this.workflowService = inject(AXPWorkflowService);\n //#endregion\n //#region ---- Input Properties ----\n /**\n * Array of activity logs to display\n */\n this.activities = input([], ...(ngDevMode ? [{ debugName: \"activities\" }] : []));\n /**\n * Whether the component is in loading state\n */\n this.loading = input(false, ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n //#endregion\n //#region ---- Component Properties ----\n this.i18nScope = 'activity-log';\n this.Object = Object;\n /**\n * Set of expanded activity IDs\n */\n this.expandedItems = signal(new Set(), ...(ngDevMode ? [{ debugName: \"expandedItems\" }] : []));\n /**\n * Flag to track if component has been initialized\n */\n this.isInitialized = signal(false, ...(ngDevMode ? [{ debugName: \"isInitialized\" }] : []));\n /**\n * Set of items that have been manually toggled (for animation control)\n */\n this.manuallyToggledItems = signal(new Set(), ...(ngDevMode ? [{ debugName: \"manuallyToggledItems\" }] : []));\n // Auto-expand top 5 items when activities change\n effect(() => {\n const activities = this.activities();\n const currentExpanded = this.expandedItems();\n const initialized = this.isInitialized();\n // Only auto-expand if not initialized and activities exist\n if (!initialized && activities.length > 0 && currentExpanded.size === 0) {\n const top5Ids = activities.slice(0, 5).map((activity) => activity.id);\n this.expandedItems.set(new Set(top5Ids));\n this.isInitialized.set(true);\n }\n });\n }\n //#endregion\n //#region ---- Utility Methods ----\n /**\n * Gets the appropriate CSS class for the change type\n */\n getChangeClasses(changeType) {\n const action = getSystemActions(changeType);\n return {\n surface: action?.color ? `ax-${action.color}-surface` : 'ax-muted-surface',\n text: action?.color ? `ax-text-${action.color}` : 'ax-text-muted',\n icon: action?.icon ? `${action.icon}` : 'fa-light fa-pen'\n };\n }\n /**\n * Checks if an activity item is expanded\n */\n isExpanded(activityId) {\n return this.expandedItems().has(activityId);\n }\n /**\n * Toggles the expanded state of an activity item\n */\n toggleExpanded(activityId) {\n const currentExpanded = new Set(this.expandedItems());\n const currentManuallyToggled = new Set(this.manuallyToggledItems());\n // Mark this item as manually toggled for animation purposes\n currentManuallyToggled.add(activityId);\n this.manuallyToggledItems.set(currentManuallyToggled);\n if (currentExpanded.has(activityId)) {\n currentExpanded.delete(activityId);\n }\n else {\n currentExpanded.add(activityId);\n }\n this.expandedItems.set(currentExpanded);\n }\n /**\n * Checks if an item should have expand/collapse animation\n */\n shouldAnimate(activityId) {\n return this.manuallyToggledItems().has(activityId);\n }\n /**\n * Checks if an activity has expandable content (changes)\n */\n hasExpandableContent(activity) {\n return activity.changes && activity.changes.length > 0;\n }\n //#endregion\n //#region ---- Compare Methods ----\n /**\n * Handles the compare action for an activity\n */\n async handleCompare(activity, event) {\n event.stopPropagation(); // Prevent expanding/collapsing when clicking compare\n // Get the previous activity for comparison\n const currentIndex = this.activities().findIndex(a => a.id === activity.id);\n if (currentIndex <= 0)\n return; // No previous activity to compare with\n const previousActivity = this.activities()[currentIndex - 1];\n const ids = [\n previousActivity.id,\n activity.id\n ];\n // Execute the compare workflow\n await this.workflowService.execute('show-entity-record-versions-compare', {\n entity: activity.reference.type,\n data: {\n refId: activity.reference.id,\n refType: activity.reference.type,\n ids: ids\n }\n });\n }\n /**\n * Checks if an activity can be compared (has a previous version)\n */\n canCompare(activity) {\n const currentIndex = this.activities().findIndex(a => a.id === activity.id);\n return currentIndex > 0; // Can compare if not the first activity\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPActivityLogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPActivityLogComponent, isStandalone: true, selector: \"axp-activity-log\", inputs: { activities: { classPropertyName: \"activities\", publicName: \"activities\", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: \"loading\", publicName: \"loading\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<div class=\\\"axp-activity-log ax-accent2\\\" *translate=\\\"let t\\\">\\n <!-- Activity Log Content -->\\n <div class=\\\"__content\\\">\\n <!-- Loading State -->\\n @if (loading()) {\\n <div class=\\\"__loading\\\">\\n @for (item of [1, 2, 3, 4]; track $index) {\\n <div class=\\\"__item\\\">\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__avatar\\\"></ax-skeleton>\\n <div class=\\\"__content\\\">\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__title\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__subtitle\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__description\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__time\\\"></ax-skeleton>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Activity Feed -->\\n @if (!loading() && activities().length > 0) {\\n <div class=\\\"__feed\\\">\\n @for (activity of activities(); track activity.id) {\\n @let changeClasses = getChangeClasses(activity.changeType);\\n @let isItemExpanded = isExpanded(activity.id);\\n @let hasExpandableContentItem = hasExpandableContent(activity);\\n <div class=\\\"__item\\\" [class.__collapsed]=\\\"!isItemExpanded\\\" [class.__expandable]=\\\"hasExpandableContentItem\\\">\\n <div\\n class=\\\"ax-size-10 ax-rounded-full ax-border ax-flex ax-items-center ax-justify-center ax-lightest-surface\\\"\\n >\\n <i class=\\\"{{ changeClasses.icon }} {{ changeClasses.text }} fa-solid\\\"></i>\\n </div>\\n\\n <!-- Activity Content -->\\n <div class=\\\"__content\\\">\\n <!-- Main Activity Info -->\\n <div class=\\\"__main-info\\\">\\n <!-- User and Action with Toggle Button -->\\n <div class=\\\"__action-line __header-line\\\" (click)=\\\"toggleExpanded(activity.id)\\\">\\n <span class=\\\"__user-name\\\">{{ activity.user.title }}</span>\\n <span class=\\\"__action-type\\\">\\n {{ t(`@general:actions.${activity.changeType}.title`) | async }}\\n </span>\\n <span class=\\\"__action-text\\\">\\n {{ activity.title | translate | async }}\\n </span>\\n\\n <!-- Compare Button -->\\n @if (canCompare(activity)) {\\n <button\\n type=\\\"button\\\"\\n class=\\\"__compare-button\\\"\\n (click)=\\\"handleCompare(activity, $event)\\\"\\n [attr.aria-label]=\\\"t('compare.title', { scope: i18nScope }) | async\\\"\\n >\\n <i class=\\\"fa-solid fa-code-compare\\\"></i>\\n </button>\\n }\\n\\n <!-- Toggle Button (only show if there's expandable content) -->\\n @if (hasExpandableContentItem) {\\n <button\\n type=\\\"button\\\"\\n class=\\\"__toggle-button\\\"\\n [attr.aria-expanded]=\\\"isItemExpanded\\\"\\n [attr.aria-label]=\\\"isItemExpanded ? 'Collapse details' : 'Expand details'\\\"\\n >\\n <i\\n class=\\\"fa-solid\\\"\\n [class.fa-chevron-down]=\\\"!isItemExpanded\\\"\\n [class.fa-chevron-up]=\\\"isItemExpanded\\\"\\n ></i>\\n </button>\\n }\\n </div>\\n\\n <!-- Expandable Description/Changes -->\\n @if (hasExpandableContentItem && isItemExpanded && activity.changes.length > 0) {\\n <div class=\\\"__action-lines __expandable-content\\\" [class.__animated]=\\\"shouldAnimate(activity.id)\\\">\\n @for (change of activity.changes; track $index) {\\n @let changeClasses = getChangeClasses(change.type);\\n <div class=\\\"__action-line\\\">\\n <div class=\\\"ax-rounded-full ax-size-7 ax-grid ax-place-items-center\\\">\\n <i class=\\\"{{ changeClasses.icon }} {{ changeClasses.text }}\\\"></i>\\n </div>\\n <span class=\\\"__action-text\\\">{{ change.description | translate | async }}</span>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- Time -->\\n <div class=\\\"__time\\\">\\n {{ activity.date | format: 'datetime' : 'short' | async }}\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (!loading() && activities().length === 0) {\\n <axp-state-message\\n icon=\\\"fa-light fa-history\\\"\\n [title]=\\\"'@general:no-history.title'\\\"\\n [description]=\\\"'@general:no-history.message'\\\"\\n >\\n </axp-state-message>\\n }\\n </div>\\n</div>\\n\\n<!-- \\n\\nax-success-surface\\nax-primary-surface\\nax-danger-surface\\nax-warning-surface\\nax-info-surface\\nax-muted-surface\\nax-text-success\\n\\n -->\\n\", styles: [\".axp-activity-log{height:100%;width:100%}.axp-activity-log .__content .__loading>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__loading .__item{display:flex;align-items:flex-start;gap:1rem}.axp-activity-log .__content .__loading .__item .__avatar{height:3rem;width:3rem;flex-shrink:0;border-radius:9999px}.axp-activity-log .__content .__loading .__item .__content{flex:1 1 0%}.axp-activity-log .__content .__loading .__item .__content>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__loading .__item .__content .__title{height:1rem;width:75%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__subtitle{height:.75rem;width:50%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__description{height:.75rem;width:83.333333%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__time{height:.75rem;width:25%;border-radius:.25rem}.axp-activity-log .__content .__feed{position:relative}.axp-activity-log .__content .__feed>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__feed:before{content:\\\"\\\";position:absolute;inset-inline-start:1.25rem;top:.5rem;bottom:.5rem;width:0px;border-left:1px solid rgba(var(--ax-sys-color-border-surface));z-index:0}.axp-activity-log .__content .__feed .__item{position:relative;display:flex;align-items:flex-start;gap:1rem}.axp-activity-log .__content .__feed .__item axp-user-avatar{position:relative;z-index:10}.axp-activity-log .__content .__feed .__item .__content{min-width:0px;flex:1 1 0%}.axp-activity-log .__content .__feed .__item .__content .__main-info{margin-bottom:.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line{margin-top:.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;line-height:1.5}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__user-name{font-weight:600}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__action-type,.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__action-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;opacity:.85}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line{align-items:center;border-radius:.375rem;padding:.25rem .5rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line:hover{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button{margin-left:.5rem;border-radius:9999px;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button:hover{background-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-surface));border-color:rgb(var(--ax-sys-color-border-primary-surface))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgba(var(--ax-sys-color-primary-500), var(--tw-ring-opacity, 1));--tw-ring-offset-width: 1px}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button i{font-size:.75rem;line-height:1rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button{margin-left:auto;border-radius:9999px;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgba(var(--ax-sys-color-primary-500), var(--tw-ring-opacity, 1));--tw-ring-offset-width: 1px}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button i{font-size:.75rem;line-height:1rem;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines{margin-top:.5rem;margin-bottom:.5rem;display:flex;flex-direction:column;font-size:.875rem;line-height:1.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines.__expandable-content{overflow:hidden}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines.__expandable-content.__animated{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1);animation:slideDown .3s ease-out}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines .__action-line{display:flex;align-items:center;gap:.5rem;padding-top:.25rem;padding-bottom:.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines .__action-line .__action-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;opacity:.85}.axp-activity-log .__content .__feed .__item .__content .__time{padding-left:.5rem;padding-right:.5rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-activity-log .__content .__feed .__item.__collapsed .__expandable-content{display:none}.axp-activity-log .__content .__feed .__item.__expandable .__header-line{cursor:pointer}@media (min-width: 640px){.axp-activity-log .__content .__feed .__item{gap:.625rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line{flex-wrap:nowrap}}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:200px;transform:translateY(0)}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: i1.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i2.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"ngmodule\", type: AXTagModule }, { kind: \"ngmodule\", type: AXAccordionCdkModule }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }, { kind: \"pipe\", type: i3.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i1.AXTranslatorPipe, name: \"translate\" }, { kind: \"pipe\", type: i4.AXFormatPipe, name: \"format\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPActivityLogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-activity-log', standalone: true, imports: [\n CommonModule,\n AXButtonModule,\n AXCommonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXSkeletonModule,\n AXFormatModule,\n AXTagModule,\n AXAccordionCdkModule,\n AXPStateMessageComponent,\n ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"axp-activity-log ax-accent2\\\" *translate=\\\"let t\\\">\\n <!-- Activity Log Content -->\\n <div class=\\\"__content\\\">\\n <!-- Loading State -->\\n @if (loading()) {\\n <div class=\\\"__loading\\\">\\n @for (item of [1, 2, 3, 4]; track $index) {\\n <div class=\\\"__item\\\">\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__avatar\\\"></ax-skeleton>\\n <div class=\\\"__content\\\">\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__title\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__subtitle\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__description\\\"></ax-skeleton>\\n <ax-skeleton [animated]=\\\"true\\\" class=\\\"__time\\\"></ax-skeleton>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Activity Feed -->\\n @if (!loading() && activities().length > 0) {\\n <div class=\\\"__feed\\\">\\n @for (activity of activities(); track activity.id) {\\n @let changeClasses = getChangeClasses(activity.changeType);\\n @let isItemExpanded = isExpanded(activity.id);\\n @let hasExpandableContentItem = hasExpandableContent(activity);\\n <div class=\\\"__item\\\" [class.__collapsed]=\\\"!isItemExpanded\\\" [class.__expandable]=\\\"hasExpandableContentItem\\\">\\n <div\\n class=\\\"ax-size-10 ax-rounded-full ax-border ax-flex ax-items-center ax-justify-center ax-lightest-surface\\\"\\n >\\n <i class=\\\"{{ changeClasses.icon }} {{ changeClasses.text }} fa-solid\\\"></i>\\n </div>\\n\\n <!-- Activity Content -->\\n <div class=\\\"__content\\\">\\n <!-- Main Activity Info -->\\n <div class=\\\"__main-info\\\">\\n <!-- User and Action with Toggle Button -->\\n <div class=\\\"__action-line __header-line\\\" (click)=\\\"toggleExpanded(activity.id)\\\">\\n <span class=\\\"__user-name\\\">{{ activity.user.title }}</span>\\n <span class=\\\"__action-type\\\">\\n {{ t(`@general:actions.${activity.changeType}.title`) | async }}\\n </span>\\n <span class=\\\"__action-text\\\">\\n {{ activity.title | translate | async }}\\n </span>\\n\\n <!-- Compare Button -->\\n @if (canCompare(activity)) {\\n <button\\n type=\\\"button\\\"\\n class=\\\"__compare-button\\\"\\n (click)=\\\"handleCompare(activity, $event)\\\"\\n [attr.aria-label]=\\\"t('compare.title', { scope: i18nScope }) | async\\\"\\n >\\n <i class=\\\"fa-solid fa-code-compare\\\"></i>\\n </button>\\n }\\n\\n <!-- Toggle Button (only show if there's expandable content) -->\\n @if (hasExpandableContentItem) {\\n <button\\n type=\\\"button\\\"\\n class=\\\"__toggle-button\\\"\\n [attr.aria-expanded]=\\\"isItemExpanded\\\"\\n [attr.aria-label]=\\\"isItemExpanded ? 'Collapse details' : 'Expand details'\\\"\\n >\\n <i\\n class=\\\"fa-solid\\\"\\n [class.fa-chevron-down]=\\\"!isItemExpanded\\\"\\n [class.fa-chevron-up]=\\\"isItemExpanded\\\"\\n ></i>\\n </button>\\n }\\n </div>\\n\\n <!-- Expandable Description/Changes -->\\n @if (hasExpandableContentItem && isItemExpanded && activity.changes.length > 0) {\\n <div class=\\\"__action-lines __expandable-content\\\" [class.__animated]=\\\"shouldAnimate(activity.id)\\\">\\n @for (change of activity.changes; track $index) {\\n @let changeClasses = getChangeClasses(change.type);\\n <div class=\\\"__action-line\\\">\\n <div class=\\\"ax-rounded-full ax-size-7 ax-grid ax-place-items-center\\\">\\n <i class=\\\"{{ changeClasses.icon }} {{ changeClasses.text }}\\\"></i>\\n </div>\\n <span class=\\\"__action-text\\\">{{ change.description | translate | async }}</span>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- Time -->\\n <div class=\\\"__time\\\">\\n {{ activity.date | format: 'datetime' : 'short' | async }}\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (!loading() && activities().length === 0) {\\n <axp-state-message\\n icon=\\\"fa-light fa-history\\\"\\n [title]=\\\"'@general:no-history.title'\\\"\\n [description]=\\\"'@general:no-history.message'\\\"\\n >\\n </axp-state-message>\\n }\\n </div>\\n</div>\\n\\n<!-- \\n\\nax-success-surface\\nax-primary-surface\\nax-danger-surface\\nax-warning-surface\\nax-info-surface\\nax-muted-surface\\nax-text-success\\n\\n -->\\n\", styles: [\".axp-activity-log{height:100%;width:100%}.axp-activity-log .__content .__loading>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__loading .__item{display:flex;align-items:flex-start;gap:1rem}.axp-activity-log .__content .__loading .__item .__avatar{height:3rem;width:3rem;flex-shrink:0;border-radius:9999px}.axp-activity-log .__content .__loading .__item .__content{flex:1 1 0%}.axp-activity-log .__content .__loading .__item .__content>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__loading .__item .__content .__title{height:1rem;width:75%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__subtitle{height:.75rem;width:50%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__description{height:.75rem;width:83.333333%;border-radius:.25rem}.axp-activity-log .__content .__loading .__item .__content .__time{height:.75rem;width:25%;border-radius:.25rem}.axp-activity-log .__content .__feed{position:relative}.axp-activity-log .__content .__feed>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.axp-activity-log .__content .__feed:before{content:\\\"\\\";position:absolute;inset-inline-start:1.25rem;top:.5rem;bottom:.5rem;width:0px;border-left:1px solid rgba(var(--ax-sys-color-border-surface));z-index:0}.axp-activity-log .__content .__feed .__item{position:relative;display:flex;align-items:flex-start;gap:1rem}.axp-activity-log .__content .__feed .__item axp-user-avatar{position:relative;z-index:10}.axp-activity-log .__content .__feed .__item .__content{min-width:0px;flex:1 1 0%}.axp-activity-log .__content .__feed .__item .__content .__main-info{margin-bottom:.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line{margin-top:.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;line-height:1.5}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__user-name{font-weight:600}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__action-type,.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line .__action-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;opacity:.85}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line{align-items:center;border-radius:.375rem;padding:.25rem .5rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line:hover{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button{margin-left:.5rem;border-radius:9999px;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity, 1))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button:hover{background-color:rgb(var(--ax-sys-color-primary-surface));color:rgb(var(--ax-sys-color-on-primary-surface));border-color:rgb(var(--ax-sys-color-border-primary-surface))}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgba(var(--ax-sys-color-primary-500), var(--tw-ring-opacity, 1));--tw-ring-offset-width: 1px}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__compare-button i{font-size:.75rem;line-height:1rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button{margin-left:auto;border-radius:9999px;padding:.25rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;display:flex;width:1.5rem;height:1.5rem;align-items:center;justify-content:center}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgba(var(--ax-sys-color-primary-500), var(--tw-ring-opacity, 1));--tw-ring-offset-width: 1px}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line.__header-line .__toggle-button i{font-size:.75rem;line-height:1rem;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines{margin-top:.5rem;margin-bottom:.5rem;display:flex;flex-direction:column;font-size:.875rem;line-height:1.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines.__expandable-content{overflow:hidden}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines.__expandable-content.__animated{transition-property:all;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.3s;animation-timing-function:cubic-bezier(.4,0,.2,1);animation:slideDown .3s ease-out}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines .__action-line{display:flex;align-items:center;gap:.5rem;padding-top:.25rem;padding-bottom:.25rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-lines .__action-line .__action-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;opacity:.85}.axp-activity-log .__content .__feed .__item .__content .__time{padding-left:.5rem;padding-right:.5rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-activity-log .__content .__feed .__item.__collapsed .__expandable-content{display:none}.axp-activity-log .__content .__feed .__item.__expandable .__header-line{cursor:pointer}@media (min-width: 640px){.axp-activity-log .__content .__feed .__item{gap:.625rem}.axp-activity-log .__content .__feed .__item .__content .__main-info .__action-line{flex-wrap:nowrap}}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:200px;transform:translateY(0)}}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBdUMsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFN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LGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQix3QkFBd0I7cUJBQzNCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9za2VsZXRvbic7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhQQWN0aXZpdHlMb2csIEFYUFN5c3RlbUFjdGlvblR5cGUsIGdldFN5c3RlbUFjdGlvbnMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24sIHNpZ25hbCwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEFjY29yZGlvbkNka01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY2RrL2FjY29yZGlvbic7XG5pbXBvcnQgeyBBWFRhZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWcnO1xuaW1wb3J0IHsgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vc3RhdGUtbWVzc2FnZSc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50IERlZmluaXRpb24gICAtLS0tXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWFjdGl2aXR5LWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHktbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYQ29tbW9uTW9kdWxlLFxuICAgICAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICAgICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICAgICAgQVhTa2VsZXRvbk1vZHVsZSxcbiAgICAgICAgQVhGb3JtYXRNb2R1bGUsXG4gICAgICAgIEFYVGFnTW9kdWxlLFxuICAgICAgICBBWEFjY29yZGlvbkNka01vZHVsZSxcbiAgICAgICAgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50LFxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBWFBBY3Rpdml0eUxvZ0NvbXBvbmVudCB7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgd29ya2Zsb3dTZXJ2aWNlID0gaW5qZWN0KEFYUFdvcmtmbG93U2VydmljZSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgSW5wdXQgUHJvcGVydGllcyAgIC0tLS1cblxuICAgIC8qKlxuICAgICAqIEFycmF5IG9mIGFjdGl2aXR5IGxvZ3MgdG8gZGlzcGxheVxuICAgICAqL1xuICAgIGFjdGl2aXRpZXMgPSBpbnB1dDxBWFBBY3Rpdml0eUxvZ1tdPihbXSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgaW4gbG9hZGluZyBzdGF0ZVxuICAgICAqL1xuICAgIGxvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50IFByb3BlcnRpZXMgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaTE4blNjb3BlID0gJ2FjdGl2aXR5LWxvZyc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE9iamVjdCA9IE9iamVjdDtcblxuICAgIC8qKlxuICAgICAqIFNldCBvZiBleHBhbmRlZCBhY3Rpdml0eSBJRHNcbiAgICAgKi9cbiAgICBwcml2YXRlIGV4cGFuZGVkSXRlbXMgPSBzaWduYWw8U2V0PHN0cmluZz4+KG5ldyBTZXQoKSk7XG5cbiAgICAvKipcbiAgICAgKiBGbGFnIHRvIHRyYWNrIGlmIGNvbXBvbmVudCBoYXMgYmVlbiBpbml0aWFsaXplZFxuICAgICAqL1xuICAgIHByaXZhdGUgaXNJbml0aWFsaXplZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgb2YgaXRlbXMgdGhhdCBoYXZlIGJlZW4gbWFudWFsbHkgdG9nZ2xlZCAoZm9yIGFuaW1hdGlvbiBjb250cm9sKVxuICAgICAqL1xuICAgIHByaXZhdGUgbWFudWFsbHlUb2dnbGVkSXRlbXMgPSBzaWduYWw8U2V0PHN0cmluZz4+KG5ldyBTZXQoKSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgQ29uc3RydWN0b3IgJiBMaWZlY3ljbGUgICAtLS0tXG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8gQXV0by1leHBhbmQgdG9wIDUgaXRlbXMgd2hlbiBhY3Rpdml0aWVzIGNoYW5nZVxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWN0aXZpdGllcyA9IHRoaXMuYWN0aXZpdGllcygpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudEV4cGFuZGVkID0gdGhpcy5leHBhbmRlZEl0ZW1zKCk7XG4gICAgICAgICAgICBjb25zdCBpbml0aWFsaXplZCA9IHRoaXMuaXNJbml0aWFsaXplZCgpO1xuXG4gICAgICAgICAgICAvLyBPbmx5IGF1dG8tZXhwYW5kIGlmIG5vdCBpbml0aWFsaXplZCBhbmQgYWN0aXZpdGllcyBleGlzdFxuICAgICAgICAgICAgaWYgKCFpbml0aWFsaXplZCAmJiBhY3Rpdml0aWVzLmxlbmd0aCA+IDAgJiYgY3VycmVudEV4cGFuZGVkLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b3A1SWRzID0gYWN0aXZpdGllcy5zbGljZSgwLCA1KS5tYXAoKGFjdGl2aXR5OiBBWFBBY3Rpdml0eUxvZykgPT4gYWN0aXZpdHkuaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWRJdGVtcy5zZXQobmV3IFNldCh0b3A1SWRzKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkLnNldCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFV0aWxpdHkgTWV0aG9kcyAgIC0tLS1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGFwcHJvcHJpYXRlIENTUyBjbGFzcyBmb3IgdGhlIGNoYW5nZSB0eXBlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldENoYW5nZUNsYXNzZXMoY2hhbmdlVHlwZTogQVhQU3lzdGVtQWN0aW9uVHlwZSk6IHsgc3VyZmFjZTogc3RyaW5nLCB0ZXh0OiBzdHJpbmcsIGljb246IHN0cmluZyB9IHtcbiAgICAgICAgY29uc3QgYWN0aW9uID0gZ2V0U3lzdGVtQWN0aW9ucyhjaGFuZ2VUeXBlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1cmZhY2U6IGFjdGlvbj8uY29sb3IgPyBgYXgtJHthY3Rpb24uY29sb3J9LXN1cmZhY2VgIDogJ2F4LW11dGVkLXN1cmZhY2UnLFxuICAgICAgICAgICAgdGV4dDogYWN0aW9uPy5jb2xvciA/IGBheC10ZXh0LSR7YWN0aW9uLmNvbG9yfWAgOiAnYXgtdGV4dC1tdXRlZCcsXG4gICAgICAgICAgICBpY29uOiBhY3Rpb24/Lmljb24gPyBgJHthY3Rpb24uaWNvbn1gIDogJ2ZhLWxpZ2h0IGZhLXBlbidcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAqIENoZWNrcyBpZiBhbiBhY3Rpdml0eSBpdGVtIGlzIGV4cGFuZGVkXG4gKi9cbiAgICBwcm90ZWN0ZWQgaXNFeHBhbmRlZChhY3Rpdml0eUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kZWRJdGVtcygpLmhhcyhhY3Rpdml0eUlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAqIFRvZ2dsZXMgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIGFuIGFjdGl2aXR5IGl0ZW1cbiAqL1xuICAgIHByb3RlY3RlZCB0b2dnbGVFeHBhbmRlZChhY3Rpdml0eUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudEV4cGFuZGVkID0gbmV3IFNldCh0aGlzLmV4cGFuZGVkSXRlbXMoKSk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNYW51YWxseVRvZ2dsZWQgPSBuZXcgU2V0KHRoaXMubWFudWFsbHlUb2dnbGVkSXRlbXMoKSk7XG5cbiAgICAgICAgLy8gTWFyayB0aGlzIGl0ZW0gYXMgbWFudWFsbHkgdG9nZ2xlZCBmb3IgYW5pbWF0aW9uIHB1cnBvc2VzXG4gICAgICAgIGN1cnJlbnRNYW51YWxseVRvZ2dsZWQuYWRkKGFjdGl2aXR5SWQpO1xuICAgICAgICB0aGlzLm1hbnVhbGx5VG9nZ2xlZEl0ZW1zLnNldChjdXJyZW50TWFudWFsbHlUb2dnbGVkKTtcblxuICAgICAgICBpZiAoY3VycmVudEV4cGFuZGVkLmhhcyhhY3Rpdml0eUlkKSkge1xuICAgICAgICAgICAgY3VycmVudEV4cGFuZGVkLmRlbGV0ZShhY3Rpdml0eUlkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBhbmRlZC5hZGQoYWN0aXZpdHlJZCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV4cGFuZGVkSXRlbXMuc2V0KGN1cnJlbnRFeHBhbmRlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGFuIGl0ZW0gc2hvdWxkIGhhdmUgZXhwYW5kL2NvbGxhcHNlIGFuaW1hdGlvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzaG91bGRBbmltYXRlKGFjdGl2aXR5SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYW51YWxseVRvZ2dsZWRJdGVtcygpLmhhcyhhY3Rpdml0eUlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgYW4gYWN0aXZpdHkgaGFzIGV4cGFuZGFibGUgY29udGVudCAoY2hhbmdlcylcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaGFzRXhwYW5kYWJsZUNvbnRlbnQoYWN0aXZpdHk6IEFYUEFjdGl2aXR5TG9nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBhY3Rpdml0eS5jaGFuZ2VzICYmIGFjdGl2aXR5LmNoYW5nZXMubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgQ29tcGFyZSBNZXRob2RzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyB0aGUgY29tcGFyZSBhY3Rpb24gZm9yIGFuIGFjdGl2aXR5XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNvbXBhcmUoYWN0aXZpdHk6IEFYUEFjdGl2aXR5TG9nLCBldmVudDogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIFByZXZlbnQgZXhwYW5kaW5nL2NvbGxhcHNpbmcgd2hlbiBjbGlja2luZyBjb21wYXJlXG5cbiAgICAgICAgLy8gR2V0IHRoZSBwcmV2aW91cyBhY3Rpdml0eSBmb3IgY29tcGFyaXNvblxuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmFjdGl2aXRpZXMoKS5maW5kSW5kZXgoYSA9PiBhLmlkID09PSBhY3Rpdml0eS5pZCk7XG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPD0gMCkgcmV0dXJuOyAvLyBObyBwcmV2aW91cyBhY3Rpdml0eSB0byBjb21wYXJlIHdpdGhcblxuICAgICAgICBjb25zdCBwcmV2aW91c0FjdGl2aXR5ID0gdGhpcy5hY3Rpdml0aWVzKClbY3VycmVudEluZGV4IC0gMV07XG4gICAgICAgIGNvbnN0IGlkcyA9IFtcbiAgICAgICAgICAgIHByZXZpb3VzQWN0aXZpdHkuaWQsXG4gICAgICAgICAgICBhY3Rpdml0eS5pZFxuICAgICAgICBdO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvbXBhcmUgd29ya2Zsb3dcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvd1NlcnZpY2UuZXhlY3V0ZSgnc2hvdy1lbnRpdHktcmVjb3JkLXZlcnNpb25zLWNvbXBhcmUnLCB7XG4gICAgICAgICAgICBlbnRpdHk6IGFjdGl2aXR5LnJlZmVyZW5jZS50eXBlLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHJlZklkOiBhY3Rpdml0eS5yZWZlcmVuY2UuaWQsXG4gICAgICAgICAgICAgICAgcmVmVHlwZTogYWN0aXZpdHkucmVmZXJlbmNlLnR5cGUsXG4gICAgICAgICAgICAgICAgaWRzOiBpZHNcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGFuIGFjdGl2aXR5IGNhbiBiZSBjb21wYXJlZCAoaGFzIGEgcHJldmlvdXMgdmVyc2lvbilcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY2FuQ29tcGFyZShhY3Rpdml0eTogQVhQQWN0aXZpdHlMb2cpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5hY3Rpdml0aWVzKCkuZmluZEluZGV4KGEgPT4gYS5pZCA9PT0gYWN0aXZpdHkuaWQpO1xuICAgICAgICByZXR1cm4gY3VycmVudEluZGV4ID4gMDsgLy8gQ2FuIGNvbXBhcmUgaWYgbm90IHRoZSBmaXJzdCBhY3Rpdml0eVxuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufSAiLCI8ZGl2IGNsYXNzPVwiYXhwLWFjdGl2aXR5LWxvZyBheC1hY2NlbnQyXCIgKnRyYW5zbGF0ZT1cImxldCB0XCI+XG4gIDwhLS0gQWN0aXZpdHkgTG9nIENvbnRlbnQgLS0+XG4gIDxkaXYgY2xhc3M9XCJfX2NvbnRlbnRcIj5cbiAgICA8IS0tIExvYWRpbmcgU3RhdGUgLS0+XG4gICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJfX2xvYWRpbmdcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBbMSwgMiwgMywgNF07IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxheC1za2VsZXRvbiBbYW5pbWF0ZWRdPVwidHJ1ZVwiIGNsYXNzPVwiX19hdmF0YXJcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fY29udGVudFwiPlxuICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cInRydWVcIiBjbGFzcz1cIl9fdGl0bGVcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cInRydWVcIiBjbGFzcz1cIl9fc3VidGl0bGVcIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cInRydWVcIiBjbGFzcz1cIl9fZGVzY3JpcHRpb25cIj48L2F4LXNrZWxldG9uPlxuICAgICAgICAgICAgICA8YXgtc2tlbGV0b24gW2FuaW1hdGVkXT1cInRydWVcIiBjbGFzcz1cIl9fdGltZVwiPjwvYXgtc2tlbGV0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBBY3Rpdml0eSBGZWVkIC0tPlxuICAgIEBpZiAoIWxvYWRpbmcoKSAmJiBhY3Rpdml0aWVzKCkubGVuZ3RoID4gMCkge1xuICAgICAgPGRpdiBjbGFzcz1cIl9fZmVlZFwiPlxuICAgICAgICBAZm9yIChhY3Rpdml0eSBvZiBhY3Rpdml0aWVzKCk7IHRyYWNrIGFjdGl2aXR5LmlkKSB7XG4gICAgICAgICAgQGxldCBjaGFuZ2VDbGFzc2VzID0gZ2V0Q2hhbmdlQ2xhc3NlcyhhY3Rpdml0eS5jaGFuZ2VUeXBlKTtcbiAgICAgICAgICBAbGV0IGlzSXRlbUV4cGFuZGVkID0gaXNFeHBhbmRlZChhY3Rpdml0eS5pZCk7XG4gICAgICAgICAgQGxldCBoYXNFeHBhbmRhYmxlQ29udGVudEl0ZW0gPSBoYXNFeHBhbmRhYmxlQ29udGVudChhY3Rpdml0eSk7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIl9faXRlbVwiIFtjbGFzcy5fX2NvbGxhcHNlZF09XCIhaXNJdGVtRXhwYW5kZWRcIiBbY2xhc3MuX19leHBhbmRhYmxlXT1cImhhc0V4cGFuZGFibGVDb250ZW50SXRlbVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImF4LXNpemUtMTAgYXgtcm91bmRlZC1mdWxsIGF4LWJvcmRlciBheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1saWdodGVzdC1zdXJmYWNlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7eyBjaGFuZ2VDbGFzc2VzLmljb24gfX0ge3sgY2hhbmdlQ2xhc3Nlcy50ZXh0IH19IGZhLXNvbGlkXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gQWN0aXZpdHkgQ29udGVudCAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPCEtLSBNYWluIEFjdGl2aXR5IEluZm8gLS0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX21haW4taW5mb1wiPlxuICAgICAgICAgICAgICAgIDwhLS0gVXNlciBhbmQgQWN0aW9uIHdpdGggVG9nZ2xlIEJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19hY3Rpb24tbGluZSBfX2hlYWRlci1saW5lXCIgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKGFjdGl2aXR5LmlkKVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJfX3VzZXItbmFtZVwiPnt7IGFjdGl2aXR5LnVzZXIudGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIl9fYWN0aW9uLXR5cGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdChgQGdlbmVyYWw6YWN0aW9ucy4ke2FjdGl2aXR5LmNoYW5nZVR5cGV9LnRpdGxlYCkgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJfX2FjdGlvbi10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFjdGl2aXR5LnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgICAgPCEtLSBDb21wYXJlIEJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgICAgIEBpZiAoY2FuQ29tcGFyZShhY3Rpdml0eSkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiX19jb21wYXJlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNvbXBhcmUoYWN0aXZpdHksICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnY29tcGFyZS50aXRsZScsIHsgc2NvcGU6IGkxOG5TY29wZSB9KSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtc29saWQgZmEtY29kZS1jb21wYXJlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgPCEtLSBUb2dnbGUgQnV0dG9uIChvbmx5IHNob3cgaWYgdGhlcmUncyBleHBhbmRhYmxlIGNvbnRlbnQpIC0tPlxuICAgICAgICAgICAgICAgICAgQGlmIChoYXNFeHBhbmRhYmxlQ29udGVudEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiX190b2dnbGUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzSXRlbUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImlzSXRlbUV4cGFuZGVkID8gJ0NvbGxhcHNlIGRldGFpbHMnIDogJ0V4cGFuZCBkZXRhaWxzJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYS1zb2xpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmEtY2hldnJvbi1kb3duXT1cIiFpc0l0ZW1FeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmEtY2hldnJvbi11cF09XCJpc0l0ZW1FeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8IS0tIEV4cGFuZGFibGUgRGVzY3JpcHRpb24vQ2hhbmdlcyAtLT5cbiAgICAgICAgICAgICAgICBAaWYgKGhhc0V4cGFuZGFibGVDb250ZW50SXRlbSAmJiBpc0l0ZW1FeHBhbmRlZCAmJiBhY3Rpdml0eS5jaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2FjdGlvbi1saW5lcyBfX2V4cGFuZGFibGUtY29udGVudFwiIFtjbGFzcy5fX2FuaW1hdGVkXT1cInNob3VsZEFuaW1hdGUoYWN0aXZpdHkuaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGNoYW5nZSBvZiBhY3Rpdml0eS5jaGFuZ2VzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICBAbGV0IGNoYW5nZUNsYXNzZXMgPSBnZXRDaGFuZ2VDbGFzc2VzKGNoYW5nZS50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19hY3Rpb24tbGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXJvdW5kZWQtZnVsbCBheC1zaXplLTcgYXgtZ3JpZCBheC1wbGFjZS1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7eyBjaGFuZ2VDbGFzc2VzLmljb24gfX0ge3sgY2hhbmdlQ2xhc3Nlcy50ZXh0IH19XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIl9fYWN0aW9uLXRleHRcIj57eyBjaGFuZ2UuZGVzY3JpcHRpb24gfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8IS0tIFRpbWUgLS0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX3RpbWVcIj5cbiAgICAgICAgICAgICAgICB7eyBhY3Rpdml0eS5kYXRlIHwgZm9ybWF0OiAnZGF0ZXRpbWUnIDogJ3Nob3J0JyB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gRW1wdHkgU3RhdGUgLS0+XG4gICAgQGlmICghbG9hZGluZygpICYmIGFjdGl2aXRpZXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIDxheHAtc3RhdGUtbWVzc2FnZVxuICAgICAgICBpY29uPVwiZmEtbGlnaHQgZmEtaGlzdG9yeVwiXG4gICAgICAgIFt0aXRsZV09XCInQGdlbmVyYWw6bm8taGlzdG9yeS50aXRsZSdcIlxuICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ0BnZW5lcmFsOm5vLWhpc3RvcnkubWVzc2FnZSdcIlxuICAgICAgPlxuICAgICAgPC9heHAtc3RhdGUtbWVzc2FnZT5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjwhLS0gXG5cbmF4LXN1Y2Nlc3Mtc3VyZmFjZVxuYXgtcHJpbWFyeS1zdXJmYWNlXG5heC1kYW5nZXItc3VyZmFjZVxuYXgtd2FybmluZy1zdXJmYWNlXG5heC1pbmZvLXN1cmZhY2VcbmF4LW11dGVkLXN1cmZhY2VcbmF4LXRleHQtc3VjY2Vzc1xuXG4gLS0+XG4iXX0=","import { InjectionToken } from \"@angular/core\";\nexport const AXP_TASK_BADGE_PROVIDERS = new InjectionToken('AXP_TASK_BADGE_PROVIDERS');\nexport class AXPTaskBadgeProvider {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1iYWRnZS50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL3Rhc2stYmFkZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUF5QiwwQkFBMEIsQ0FBQyxDQUFDO0FBRS9HLE1BQU0sT0FBZ0Isb0JBQW9CO0NBR3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBjb25zdCBBWFBfVEFTS19CQURHRV9QUk9WSURFUlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQVGFza0JhZGdlUHJvdmlkZXJbXT4oJ0FYUF9UQVNLX0JBREdFX1BST1ZJREVSUycpO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQVGFza0JhZGdlUHJvdmlkZXIge1xuICAgIGFic3RyYWN0IGtleTogc3RyaW5nO1xuICAgIGFic3RyYWN0IGNvdW50OiBTaWduYWw8bnVtYmVyPjtcbn0iXX0=","import { computed, inject, Injectable, signal } from '@angular/core';\nimport { AXP_TASK_BADGE_PROVIDERS } from './task-badge.type';\nimport * as i0 from \"@angular/core\";\nexport class AXPTaskBadgeService {\n constructor() {\n this.badgeMap = new Map();\n this.providers = inject(AXP_TASK_BADGE_PROVIDERS, { optional: true }) ?? [];\n this.computedCache = new Map();\n for (const provider of this.providers) {\n if (!this.badgeMap.has(provider.key)) {\n this.badgeMap.set(provider.key, []);\n }\n this.badgeMap.get(provider.key).push(provider.count);\n }\n }\n getCount(key) {\n if (this.computedCache.has(key)) {\n return this.computedCache.get(key);\n }\n const signals = this.badgeMap.get(key) ?? [];\n const total = signals.length > 0 ? computed(() => signals.reduce((sum, s) => sum + s(), 0)) : signal(0);\n this.computedCache.set(key, total);\n return total;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTaskBadgeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTaskBadgeService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTaskBadgeService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1iYWRnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL3Rhc2stYmFkZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx3QkFBd0IsRUFBd0IsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHbkYsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QjtRQUpRLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBNEIsQ0FBQztRQUMvQyxjQUFTLEdBQTJCLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvRixrQkFBYSxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO1FBR3hELEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUNsQixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0F4QlUsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBpbmplY3QsIEluamVjdGFibGUsIFNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBfVEFTS19CQURHRV9QUk9WSURFUlMsIEFYUFRhc2tCYWRnZVByb3ZpZGVyIH0gZnJvbSAnLi90YXNrLWJhZGdlLnR5cGUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFRhc2tCYWRnZVNlcnZpY2Uge1xuICBwcml2YXRlIGJhZGdlTWFwID0gbmV3IE1hcDxzdHJpbmcsIFNpZ25hbDxudW1iZXI+W10+KCk7XG4gIHByaXZhdGUgcHJvdmlkZXJzOiBBWFBUYXNrQmFkZ2VQcm92aWRlcltdID0gaW5qZWN0KEFYUF9UQVNLX0JBREdFX1BST1ZJREVSUywgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBbXTtcbiAgcHJpdmF0ZSBjb21wdXRlZENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFNpZ25hbDxudW1iZXI+PigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgdGhpcy5wcm92aWRlcnMpIHtcbiAgICAgIGlmICghdGhpcy5iYWRnZU1hcC5oYXMocHJvdmlkZXIua2V5KSkge1xuICAgICAgICB0aGlzLmJhZGdlTWFwLnNldChwcm92aWRlci5rZXksIFtdKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYmFkZ2VNYXAuZ2V0KHByb3ZpZGVyLmtleSkhLnB1c2gocHJvdmlkZXIuY291bnQpO1xuICAgIH1cbiAgfVxuXG4gIGdldENvdW50KGtleTogc3RyaW5nKTogU2lnbmFsPG51bWJlcj4ge1xuICAgIGlmICh0aGlzLmNvbXB1dGVkQ2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkQ2FjaGUuZ2V0KGtleSkhO1xuICAgIH1cblxuICAgIGNvbnN0IHNpZ25hbHMgPSB0aGlzLmJhZGdlTWFwLmdldChrZXkpID8/IFtdO1xuICAgIGNvbnN0IHRvdGFsID0gc2lnbmFscy5sZW5ndGggPiAwID8gY29tcHV0ZWQoKCkgPT4gc2lnbmFscy5yZWR1Y2UoKHN1bSwgcykgPT4gc3VtICsgcygpLCAwKSkgOiBzaWduYWwoMCk7XG5cbiAgICB0aGlzLmNvbXB1dGVkQ2FjaGUuc2V0KGtleSwgdG90YWwpO1xuICAgIHJldHVybiB0b3RhbDtcbiAgfVxufVxuIl19","import { input, computed, inject, effect, Directive } from \"@angular/core\";\nimport { SIGNAL, signalSetFn } from \"@angular/core/primitives/signals\";\nimport { AXPTaskBadgeService } from \"./task-badge.service\";\nimport { AXBadgeComponent } from \"@acorex/components/badge\";\nimport * as i0 from \"@angular/core\";\nexport class AXPTaskBadgeDirective {\n constructor() {\n this.badgeService = inject(AXPTaskBadgeService);\n this.host = inject(AXBadgeComponent); // assumes it's applied on <ax-badge>\n this.hostElement = this.host.getHostElement();\n this.badgeKey = input(undefined, ...(ngDevMode ? [{ debugName: \"badgeKey\" }] : []));\n this.count = input(0, ...(ngDevMode ? [{ debugName: \"count\", alias: 'axp-task-badge' }] : [{ alias: 'axp-task-badge' }]));\n this.displayCount = computed(() => {\n const value = this.count() || (this.badgeKey() && this.badgeService.getCount(this.badgeKey())());\n return value ? value.toString() : '';\n }, ...(ngDevMode ? [{ debugName: \"displayCount\" }] : []));\n this.#eff = effect(() => {\n this.setValueOfInputSignal(this.host.text, this.displayCount());\n if (!this.displayCount()) {\n this.hostElement.style.display = 'none';\n }\n else {\n this.hostElement.style.removeProperty('display');\n }\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n setValueOfInputSignal(signal, value) {\n const node = signal[SIGNAL];\n signalSetFn(node, value);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTaskBadgeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.8\", type: AXPTaskBadgeDirective, isStandalone: true, selector: \"[axp-task-badge]\", inputs: { badgeKey: { classPropertyName: \"badgeKey\", publicName: \"badgeKey\", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: \"count\", publicName: \"axp-task-badge\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTaskBadgeDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axp-task-badge]',\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL2JhZGdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU81RCxNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS1ksaUJBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxTQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDdEUsZ0JBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRWpELGFBQVEsR0FBRyxLQUFLLENBQXFCLFNBQVMsb0RBQUMsQ0FBQztRQUNoRCxVQUFLLEdBQUcsS0FBSyxDQUFTLENBQUMseUNBQUksS0FBSyxFQUFFLGdCQUFnQixPQUF6QixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxHQUFDLENBQUM7UUFFckMsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEcsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pDLENBQUMsd0RBQUMsQ0FBQztRQUVILFNBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUM1QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDTCxDQUFDLGdEQUFDLENBQUM7S0FNTjtJQWJHLElBQUksQ0FPRDtJQUVLLHFCQUFxQixDQUFJLE1BQXNCLEVBQUUsS0FBUTtRQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFRLENBQUM7UUFDbkMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQXpCUSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnB1dCwgY29tcHV0ZWQsIGluamVjdCwgZWZmZWN0LCBEaXJlY3RpdmUsIElucHV0U2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFNJR05BTCwgc2lnbmFsU2V0Rm4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9wcmltaXRpdmVzL3NpZ25hbHNcIjtcbmltcG9ydCB7IEFYUFRhc2tCYWRnZVNlcnZpY2UgfSBmcm9tIFwiLi90YXNrLWJhZGdlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFYQmFkZ2VDb21wb25lbnQgfSBmcm9tIFwiQGFjb3JleC9jb21wb25lbnRzL2JhZGdlXCI7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLXRhc2stYmFkZ2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYXNrQmFkZ2VEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgYmFkZ2VTZXJ2aWNlID0gaW5qZWN0KEFYUFRhc2tCYWRnZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgaG9zdCA9IGluamVjdChBWEJhZGdlQ29tcG9uZW50KTsgLy8gYXNzdW1lcyBpdCdzIGFwcGxpZWQgb24gPGF4LWJhZGdlPlxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQgPSB0aGlzLmhvc3QuZ2V0SG9zdEVsZW1lbnQoKTtcblxuICAgIGJhZGdlS2V5ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIGNvdW50ID0gaW5wdXQ8bnVtYmVyPigwLCB7IGFsaWFzOiAnYXhwLXRhc2stYmFkZ2UnIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNwbGF5Q291bnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb3VudCgpIHx8ICh0aGlzLmJhZGdlS2V5KCkgJiYgdGhpcy5iYWRnZVNlcnZpY2UuZ2V0Q291bnQodGhpcy5iYWRnZUtleSgpISkoKSk7XG4gICAgICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkgOiAnJztcbiAgICB9KTtcblxuICAgICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgICAgICB0aGlzLnNldFZhbHVlT2ZJbnB1dFNpZ25hbCh0aGlzLmhvc3QudGV4dCwgdGhpcy5kaXNwbGF5Q291bnQoKSk7XG4gICAgICAgIGlmICghdGhpcy5kaXNwbGF5Q291bnQoKSkge1xuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICBwcml2YXRlIHNldFZhbHVlT2ZJbnB1dFNpZ25hbDxUPihzaWduYWw6IElucHV0U2lnbmFsPFQ+LCB2YWx1ZTogVCkge1xuICAgICAgICBjb25zdCBub2RlID0gc2lnbmFsW1NJR05BTF0gYXMgYW55O1xuICAgICAgICBzaWduYWxTZXRGbihub2RlLCB2YWx1ZSk7XG4gICAgfVxufSJdfQ==","import { computed } from \"@angular/core\";\nexport class AXPMenuBadgeHelper {\n static { this.cache = new WeakMap(); }\n static getTotalCount(item, badgeService) {\n if (this.cache.has(item))\n return this.cache.get(item);\n const own = item.badgeKey ? badgeService.getCount(item.badgeKey) : () => 0;\n const children = item.children?.map(child => this.getTotalCount(child, badgeService)) ?? [];\n const total = computed(() => own() + children.reduce((sum, s) => sum + s(), 0), ...(ngDevMode ? [{ debugName: \"total\" }] : []));\n this.cache.set(item, total);\n return total;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL2JhZGdlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWpELE1BQU0sT0FBTyxrQkFBa0I7YUFFZCxVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7SUFFbEUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFpQixFQUFFLFlBQWlDO1FBQ3ZFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUV2RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUN4QyxJQUFJLEVBQUUsQ0FBQztRQUVSLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDMUIsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsaURBQ2xELENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBjb21wdXRlZCwgU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUE1lbnVJdGVtIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29tbW9uXCI7XG5pbXBvcnQgeyBBWFBUYXNrQmFkZ2VTZXJ2aWNlIH0gZnJvbSBcIi4vdGFzay1iYWRnZS5zZXJ2aWNlXCI7XG5cbmV4cG9ydCBjbGFzcyBBWFBNZW51QmFkZ2VIZWxwZXIge1xuXG4gIHByaXZhdGUgc3RhdGljIGNhY2hlID0gbmV3IFdlYWtNYXA8QVhQTWVudUl0ZW0sIFNpZ25hbDxudW1iZXI+PigpO1xuXG4gIHN0YXRpYyBnZXRUb3RhbENvdW50KGl0ZW06IEFYUE1lbnVJdGVtLCBiYWRnZVNlcnZpY2U6IEFYUFRhc2tCYWRnZVNlcnZpY2UpOiBTaWduYWw8bnVtYmVyPiB7XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKGl0ZW0pKSByZXR1cm4gdGhpcy5jYWNoZS5nZXQoaXRlbSkhO1xuXG4gICAgY29uc3Qgb3duID0gaXRlbS5iYWRnZUtleSA/IGJhZGdlU2VydmljZS5nZXRDb3VudChpdGVtLmJhZGdlS2V5KSA6ICgpID0+IDA7XG4gICAgY29uc3QgY2hpbGRyZW4gPSBpdGVtLmNoaWxkcmVuPy5tYXAoY2hpbGQgPT5cbiAgICAgIHRoaXMuZ2V0VG90YWxDb3VudChjaGlsZCwgYmFkZ2VTZXJ2aWNlKVxuICAgICkgPz8gW107XG5cbiAgICBjb25zdCB0b3RhbCA9IGNvbXB1dGVkKCgpID0+XG4gICAgICBvd24oKSArIGNoaWxkcmVuLnJlZHVjZSgoc3VtLCBzKSA9PiBzdW0gKyBzKCksIDApXG4gICAgKTtcblxuICAgIHRoaXMuY2FjaGUuc2V0KGl0ZW0sIHRvdGFsKTtcbiAgICByZXR1cm4gdG90YWw7XG4gIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, computed, contentChild, viewChild, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutPagePrimaryActionsComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutPagePrimaryActionsComponent, isStandalone: true, selector: \"axp-layout-actions-primary\", ngImport: i0, template: `<ng-content select=\"ax-button,ax-dropdown-button\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-actions-primary',\n template: `<ng-content select=\"ax-button,ax-dropdown-button\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\nexport class AXPThemeLayoutPageSecondaryActionsComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutPageSecondaryActionsComponent, isStandalone: true, selector: \"axp-layout-actions-secondary\", ngImport: i0, template: `<ng-content select=\"ax-button-item,ax-divider,ng-container\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-actions-secondary',\n template: `<ng-content select=\"ax-button-item,ax-divider,ng-container\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\nexport class AXPThemeLayoutActionsComponent {\n constructor() {\n this.primaryTemplate = viewChild('primary', ...(ngDevMode ? [{ debugName: \"primaryTemplate\" }] : []));\n this.primaryContent = contentChild(AXPThemeLayoutPagePrimaryActionsComponent, ...(ngDevMode ? [{ debugName: \"primaryContent\" }] : []));\n this.hasPrimary = computed(() => this.primaryContent() != null, ...(ngDevMode ? [{ debugName: \"hasPrimary\" }] : []));\n this.secondaryTemplate = viewChild('secondary', ...(ngDevMode ? [{ debugName: \"secondaryTemplate\" }] : []));\n this.secondaryContent = contentChild(AXPThemeLayoutPageSecondaryActionsComponent, ...(ngDevMode ? [{ debugName: \"secondaryContent\" }] : []));\n this.hasSecondary = computed(() => this.secondaryContent() != null, ...(ngDevMode ? [{ debugName: \"hasSecondary\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.1.8\", type: AXPThemeLayoutActionsComponent, isStandalone: true, selector: \"axp-layout-actions\", queries: [{ propertyName: \"primaryContent\", first: true, predicate: AXPThemeLayoutPagePrimaryActionsComponent, descendants: true, isSignal: true }, { propertyName: \"secondaryContent\", first: true, predicate: AXPThemeLayoutPageSecondaryActionsComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: \"primaryTemplate\", first: true, predicate: [\"primary\"], descendants: true, isSignal: true }, { propertyName: \"secondaryTemplate\", first: true, predicate: [\"secondary\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n\n <ng-template #primary>\n <ng-content select=\"axp-layout-actions-primary\"></ng-content>\n </ng-template>\n\n <ng-template #secondary>\n <ng-content select=\"axp-layout-actions-secondary\"></ng-content>\n </ng-template>\n\n <ng-content></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutActionsComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-actions',\n template: `\n\n <ng-template #primary>\n <ng-content select=\"axp-layout-actions-primary\"></ng-content>\n </ng-template>\n\n <ng-template #secondary>\n <ng-content select=\"axp-layout-actions-secondary\"></ng-content>\n </ng-template>\n\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtYWN0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFlLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVdEksTUFBTSxPQUFPLHlDQUF5Qzs4R0FBekMseUNBQXlDO2tHQUF6Qyx5Q0FBeUMsc0ZBSnhDLGlFQUFpRTs7MkZBSWxFLHlDQUF5QztrQkFQckQsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFLGlFQUFpRTtvQkFDM0UsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7QUFXRCxNQUFNLE9BQU8sMkNBQTJDOzhHQUEzQywyQ0FBMkM7a0dBQTNDLDJDQUEyQyx3RkFKMUMsMkVBQTJFOzsyRkFJNUUsMkNBQTJDO2tCQVB2RCxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxRQUFRLEVBQUUsMkVBQTJFO29CQUNyRixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOztBQXdCRCxNQUFNLE9BQU8sOEJBQThCO0lBcEIzQztRQXNCb0Isb0JBQWUsR0FBRyxTQUFTLENBQW1CLFNBQVMsMkRBQUMsQ0FBQztRQUN4RCxtQkFBYyxHQUFHLFlBQVksQ0FBQyx5Q0FBeUMsMERBQUMsQ0FBQztRQUNuRixlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLHNEQUFDLENBQUM7UUFFbEQsc0JBQWlCLEdBQUcsU0FBUyxDQUFtQixXQUFXLDZEQUFDLENBQUM7UUFDNUQscUJBQWdCLEdBQUcsWUFBWSxDQUFDLDJDQUEyQyw0REFBQyxDQUFDO1FBQ3ZGLGlCQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksd0RBQUMsQ0FBQztLQUV6RTs4R0FWWSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwwSEFHUSx5Q0FBeUMsbUdBSXZDLDJDQUEyQyw2U0F2QmxGOzs7Ozs7Ozs7OztLQVdUOzsyRkFLUSw4QkFBOEI7a0JBcEIxQyxTQUFTO21CQUFDO29CQUNQLE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0tBV1Q7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC1hY3Rpb25zLXByaW1hcnknLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtYnV0dG9uLGF4LWRyb3Bkb3duLWJ1dHRvblwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlUHJpbWFyeUFjdGlvbnNDb21wb25lbnQge1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC1hY3Rpb25zLXNlY29uZGFyeScsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudCBzZWxlY3Q9XCJheC1idXR0b24taXRlbSxheC1kaXZpZGVyLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlU2Vjb25kYXJ5QWN0aW9uc0NvbXBvbmVudCB7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlOiBgXG5cbiAgICA8bmctdGVtcGxhdGUgI3ByaW1hcnk+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtYWN0aW9ucy1wcmltYXJ5XCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI3NlY29uZGFyeT5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1hY3Rpb25zLXNlY29uZGFyeVwiPjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIGAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcblxuZXhwb3J0IGNsYXNzIEFYUFRoZW1lTGF5b3V0QWN0aW9uc0NvbXBvbmVudCB7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgcHJpbWFyeVRlbXBsYXRlID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPGFueT4+KCdwcmltYXJ5Jyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmltYXJ5Q29udGVudCA9IGNvbnRlbnRDaGlsZChBWFBUaGVtZUxheW91dFBhZ2VQcmltYXJ5QWN0aW9uc0NvbXBvbmVudCk7XG4gICAgcHVibGljIGhhc1ByaW1hcnkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByaW1hcnlDb250ZW50KCkgIT0gbnVsbCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2Vjb25kYXJ5VGVtcGxhdGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ3NlY29uZGFyeScpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vjb25kYXJ5Q29udGVudCA9IGNvbnRlbnRDaGlsZChBWFBUaGVtZUxheW91dFBhZ2VTZWNvbmRhcnlBY3Rpb25zQ29tcG9uZW50KTtcbiAgICBwdWJsaWMgaGFzU2Vjb25kYXJ5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zZWNvbmRhcnlDb250ZW50KCkgIT0gbnVsbCk7XG5cbn1cblxuXG4iXX0=","import { ChangeDetectionStrategy, Component, ElementRef, inject, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutBlockComponent {\n constructor() {\n this.elementRef = inject(ElementRef);\n this.hostElement = this.elementRef.nativeElement;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutBlockComponent, isStandalone: true, selector: \"\\n\\n axp-page-content, \\n axp-page-footer-container,\\n axp-page-footer,\\n axp-page-header,\\n axp-page-header-container,\\n axp-page-toolbar,\\n\\n axp-layout-content, \\n axp-layout-page-content, \\n\\n axp-layout-sections,\\n axp-layout-body,\\n axp-layout-page-body,\\n axp-layout-prefix,\\n axp-layout-suffix,\\n axp-layout-title-bar,\\n axp-layout-title, \\n axp-layout-title-actions, \\n axp-layout-nav-button, \\n axp-layout-description, \\n axp-layout-breadcrumbs,\\n axp-layout-list-action,\\n \", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutBlockComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: `\n\n axp-page-content, \n axp-page-footer-container,\n axp-page-footer,\n axp-page-header,\n axp-page-header-container,\n axp-page-toolbar,\n\n axp-layout-content, \n axp-layout-page-content, \n\n axp-layout-sections,\n axp-layout-body,\n axp-layout-page-body,\n axp-layout-prefix,\n axp-layout-suffix,\n axp-layout-title-bar,\n axp-layout-title, \n axp-layout-title-actions, \n axp-layout-nav-button, \n axp-layout-description, \n axp-layout-breadcrumbs,\n axp-layout-list-action,\n `,\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJsb2Nrcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1ibG9ja3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQzFHLE1BQU0sT0FBTyw0QkFBNEI7SUEvQnpDO1FBa0NxQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7S0FHN0Q7OEdBUFksNEJBQTRCO2tHQUE1Qiw0QkFBNEIsK2xCQUo3QiwyQkFBMkI7OzJGQUkxQiw0QkFBNEI7a0JBL0J4QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdCUDtvQkFDSCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6IGBcblxuICAgIGF4cC1wYWdlLWNvbnRlbnQsIFxuICAgIGF4cC1wYWdlLWZvb3Rlci1jb250YWluZXIsXG4gICAgYXhwLXBhZ2UtZm9vdGVyLFxuICAgIGF4cC1wYWdlLWhlYWRlcixcbiAgICBheHAtcGFnZS1oZWFkZXItY29udGFpbmVyLFxuICAgIGF4cC1wYWdlLXRvb2xiYXIsXG5cbiAgICBheHAtbGF5b3V0LWNvbnRlbnQsIFxuICAgIGF4cC1sYXlvdXQtcGFnZS1jb250ZW50LCBcblxuICAgIGF4cC1sYXlvdXQtc2VjdGlvbnMsXG4gICAgYXhwLWxheW91dC1ib2R5LFxuICAgIGF4cC1sYXlvdXQtcGFnZS1ib2R5LFxuICAgIGF4cC1sYXlvdXQtcHJlZml4LFxuICAgIGF4cC1sYXlvdXQtc3VmZml4LFxuICAgIGF4cC1sYXlvdXQtdGl0bGUtYmFyLFxuICAgIGF4cC1sYXlvdXQtdGl0bGUsIFxuICAgIGF4cC1sYXlvdXQtdGl0bGUtYWN0aW9ucywgXG4gICAgYXhwLWxheW91dC1uYXYtYnV0dG9uLCBcbiAgICBheHAtbGF5b3V0LWRlc2NyaXB0aW9uLCBcbiAgICBheHAtbGF5b3V0LWJyZWFkY3J1bWJzLFxuICAgIGF4cC1sYXlvdXQtbGlzdC1hY3Rpb24sXG4gICAgYCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQge1xuXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHB1YmxpYyByZWFkb25seSBob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG5cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutFooterComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutFooterComponent, isStandalone: true, selector: \"axp-layout-footer, axp-layout-page-footer\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutFooterComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-footer, axp-layout-page-footer',\n template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBY3RGLE1BQU0sT0FBTyw2QkFBNkI7OEdBQTdCLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHFHQVI5Qjs7OztHQUlUOzsyRkFJVSw2QkFBNkI7a0JBWnpDLFNBQVM7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwyQ0FBMkM7b0JBQ3JELFFBQVEsRUFBRTs7OztHQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWZvb3RlciwgYXhwLWxheW91dC1wYWdlLWZvb3RlcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRGb290ZXJDb21wb25lbnQge1xufVxuXG5cbiJdfQ==","import { ChangeDetectionStrategy, Component, viewChild, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutPageHeaderComponent {\n constructor() {\n this.title = viewChild('title', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = viewChild('description', ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.actions = viewChild('actions', ...(ngDevMode ? [{ debugName: \"actions\" }] : []));\n this.navbar = viewChild('navbar', ...(ngDevMode ? [{ debugName: \"navbar\" }] : []));\n this.breadcrumbs = viewChild('breadcrumbs', ...(ngDevMode ? [{ debugName: \"breadcrumbs\" }] : []));\n this.navButton = viewChild('navButton', ...(ngDevMode ? [{ debugName: \"navButton\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.1.8\", type: AXPThemeLayoutPageHeaderComponent, isStandalone: true, selector: \"axp-layout-page-header\", viewQueries: [{ propertyName: \"title\", first: true, predicate: [\"title\"], descendants: true, isSignal: true }, { propertyName: \"description\", first: true, predicate: [\"description\"], descendants: true, isSignal: true }, { propertyName: \"actions\", first: true, predicate: [\"actions\"], descendants: true, isSignal: true }, { propertyName: \"navbar\", first: true, predicate: [\"navbar\"], descendants: true, isSignal: true }, { propertyName: \"breadcrumbs\", first: true, predicate: [\"breadcrumbs\"], descendants: true, isSignal: true }, { propertyName: \"navButton\", first: true, predicate: [\"navButton\"], descendants: true, isSignal: true }], ngImport: i0, template: `\n <ng-template #breadcrumbs>\n <ng-content select=\"axp-layout-breadcrumbs\"></ng-content>\n </ng-template>\n\n <ng-template #navbar>\n <ng-content select=\"axp-layout-toolbar\"></ng-content>\n </ng-template>\n\n <ng-template #actions>\n <ng-content select=\"axp-layout-actions\"></ng-content>\n </ng-template>\n\n <ng-template #description>\n <ng-content select=\"axp-layout-description\"></ng-content>\n </ng-template>\n\n <ng-template #title>\n <ng-content select=\"axp-layout-title\"></ng-content>\n </ng-template>\n <ng-template #navButton>\n <ng-content select=\"axp-layout-nav-button\"></ng-content>\n </ng-template>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-page-header',\n template: `\n <ng-template #breadcrumbs>\n <ng-content select=\"axp-layout-breadcrumbs\"></ng-content>\n </ng-template>\n\n <ng-template #navbar>\n <ng-content select=\"axp-layout-toolbar\"></ng-content>\n </ng-template>\n\n <ng-template #actions>\n <ng-content select=\"axp-layout-actions\"></ng-content>\n </ng-template>\n\n <ng-template #description>\n <ng-content select=\"axp-layout-description\"></ng-content>\n </ng-template>\n\n <ng-template #title>\n <ng-content select=\"axp-layout-title\"></ng-content>\n </ng-template>\n <ng-template #navButton>\n <ng-content select=\"axp-layout-nav-button\"></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\nexport class AXPThemeLayoutHeaderComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutHeaderComponent, isStandalone: true, selector: \"axp-layout-header\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutHeaderComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-header',\n template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQ3JILE1BQU0sT0FBTyxpQ0FBaUM7SUEvQjlDO1FBaUNrQixVQUFLLEdBQUcsU0FBUyxDQUFtQixPQUFPLGlEQUFDLENBQUM7UUFDN0MsZ0JBQVcsR0FBRyxTQUFTLENBQW1CLGFBQWEsdURBQUMsQ0FBQztRQUN6RCxZQUFPLEdBQUcsU0FBUyxDQUFtQixTQUFTLG1EQUFDLENBQUM7UUFDakQsV0FBTSxHQUFHLFNBQVMsQ0FBbUIsUUFBUSxrREFBQyxDQUFDO1FBQy9DLGdCQUFXLEdBQUcsU0FBUyxDQUFtQixhQUFhLHVEQUFDLENBQUM7UUFDekQsY0FBUyxHQUFHLFNBQVMsQ0FBbUIsV0FBVyxxREFBQyxDQUFDO0tBQ3RFOzhHQVJZLGlDQUFpQztrR0FBakMsaUNBQWlDLDZzQkEzQmxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDs7MkZBSVUsaUNBQWlDO2tCQS9CN0MsU0FBUzttQkFBQztvQkFDVCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOztBQXlCRCxNQUFNLE9BQU8sNkJBQTZCOzhHQUE3Qiw2QkFBNkI7a0dBQTdCLDZCQUE2Qiw2RUFSOUI7Ozs7R0FJVDs7MkZBSVUsNkJBQTZCO2tCQVp6QyxTQUFTO21CQUFDO29CQUNULE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtcGFnZS1oZWFkZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjYnJlYWRjcnVtYnM+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWJyZWFkY3J1bWJzXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI25hdmJhcj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtdG9vbGJhclwiPjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNhY3Rpb25zPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1hY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Rlc2NyaXB0aW9uPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1kZXNjcmlwdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICN0aXRsZT5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtdGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI25hdkJ1dHRvbj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtbmF2LWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlSGVhZGVyQ29tcG9uZW50IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGl0bGUgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ3RpdGxlJyk7XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbiA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignZGVzY3JpcHRpb24nKTtcbiAgcHVibGljIHJlYWRvbmx5IGFjdGlvbnMgPSB2aWV3Q2hpbGQ8VGVtcGxhdGVSZWY8YW55Pj4oJ2FjdGlvbnMnKTtcbiAgcHVibGljIHJlYWRvbmx5IG5hdmJhciA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignbmF2YmFyJyk7XG4gIHB1YmxpYyByZWFkb25seSBicmVhZGNydW1icyA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignYnJlYWRjcnVtYnMnKTtcbiAgcHVibGljIHJlYWRvbmx5IG5hdkJ1dHRvbiA9IHZpZXdDaGlsZDxUZW1wbGF0ZVJlZjxhbnk+PignbmF2QnV0dG9uJyk7XG59XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1oZWFkZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LXN1ZmZpeFwiPjwvbmctY29udGVudD5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRoZW1lTGF5b3V0SGVhZGVyQ29tcG9uZW50IHtcblxufVxuIl19","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutListComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutListComponent, isStandalone: true, selector: \"axp-layout-list\", ngImport: i0, template: `<ng-content select=\"axp-layout-list-item,axp-layout-list-group,ng-container\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutListComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-list',\n template: `<ng-content select=\"axp-layout-list-item,axp-layout-list-group,ng-container\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\nexport class AXPThemeLayoutListItemsGroupComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutListItemsGroupComponent, isStandalone: true, selector: \"axp-layout-list-group\", ngImport: i0, template: `<ng-content select=\"axp-layout-list-item, axp-layout-title, axp-layout-header ,ng-container\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-list-group',\n template: `<ng-content select=\"axp-layout-list-item, axp-layout-title, axp-layout-header ,ng-container\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\nexport class AXPThemeLayoutListItemComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutListItemComponent, isStandalone: true, selector: \"axp-layout-list-item\", ngImport: i0, template: `<ng-content select=\"axp-layout-content,axp-layout-prefix,axp-layout-suffix,ng-container\"></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutListItemComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: 'axp-layout-list-item',\n template: `<ng-content select=\"axp-layout-content,axp-layout-prefix,axp-layout-suffix,ng-container\"></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBZ0IsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXBHLE1BQU0sT0FBTywyQkFBMkI7OEdBQTNCLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDJFQUoxQiw0RkFBNEY7OzJGQUk3RiwyQkFBMkI7a0JBUHZDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSw0RkFBNEY7b0JBQ3RHLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7O0FBV0QsTUFBTSxPQUFPLHFDQUFxQzs4R0FBckMscUNBQXFDO2tHQUFyQyxxQ0FBcUMsaUZBSnBDLDRHQUE0Rzs7MkZBSTdHLHFDQUFxQztrQkFQakQsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLDRHQUE0RztvQkFDdEgsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7QUFXRCxNQUFNLE9BQU8sK0JBQStCOzhHQUEvQiwrQkFBK0I7a0dBQS9CLCtCQUErQixnRkFKOUIsd0dBQXdHOzsyRkFJekcsK0JBQStCO2tCQVAzQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsd0dBQXdHO29CQUNsSCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29udGVudENoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWxpc3QnLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1saXN0LWl0ZW0sYXhwLWxheW91dC1saXN0LWdyb3VwLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRMaXN0Q29tcG9uZW50IHtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtbGlzdC1ncm91cCcsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWxpc3QtaXRlbSwgYXhwLWxheW91dC10aXRsZSwgYXhwLWxheW91dC1oZWFkZXIgLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRMaXN0SXRlbXNHcm91cENvbXBvbmVudCB7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWxpc3QtaXRlbScsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWNvbnRlbnQsYXhwLWxheW91dC1wcmVmaXgsYXhwLWxheW91dC1zdWZmaXgsbmctY29udGFpbmVyXCI+PC9uZy1jb250ZW50PmAsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUaGVtZUxheW91dExpc3RJdGVtQ29tcG9uZW50IHtcblxufSJdfQ==","import { ChangeDetectionStrategy, Component, ViewEncapsulation, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutSectionComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutSectionComponent, isStandalone: true, selector: \"axp-layout-section\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutSectionComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-section',\n template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOztBQWF2QixNQUFNLE9BQU8sOEJBQThCOzhHQUE5Qiw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw4RUFQL0I7OztHQUdUOzsyRkFJVSw4QkFBOEI7a0JBWDFDLFNBQVM7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRTs7O0dBR1Q7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1zZWN0aW9uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRTZWN0aW9uQ29tcG9uZW50IHtcbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutStartSideComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutStartSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutStartSideComponent, isStandalone: true, selector: \"axp-layout-page-start-side, axp-layout-start-side\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n <ng-content select=\"axp-layout-footer\"></ng-content>\n <ng-content></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutStartSideComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-page-start-side, axp-layout-start-side',\n template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n <ng-content select=\"axp-layout-footer\"></ng-content>\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\nexport class AXPThemeLayoutEndSideComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutEndSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutEndSideComponent, isStandalone: true, selector: \"axp-layout-page-end-side, axp-layout-end-side\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n <ng-content select=\"axp-layout-footer\"></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutEndSideComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-page-end-side, axp-layout-end-side',\n template: `\n <ng-content select=\"axp-layout-header\"></ng-content>\n <ng-content select=\"axp-layout-content\"></ng-content>\n <ng-content select=\"axp-layout-footer\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXNpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtc2lkZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFldEYsTUFBTSxPQUFPLGdDQUFnQzs4R0FBaEMsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsNkdBVGpDOzs7OztHQUtUOzsyRkFJVSxnQ0FBZ0M7a0JBYjVDLFNBQVM7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxtREFBbUQ7b0JBQzdELFFBQVEsRUFBRTs7Ozs7R0FLVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOztBQWVELE1BQU0sT0FBTyw4QkFBOEI7OEdBQTlCLDhCQUE4QjtrR0FBOUIsOEJBQThCLHlHQVIvQjs7OztHQUlUOzsyRkFJVSw4QkFBOEI7a0JBWjFDLFNBQVM7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwrQ0FBK0M7b0JBQ3pELFFBQVEsRUFBRTs7OztHQUlUO29CQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LXBhZ2Utc3RhcnQtc2lkZSwgYXhwLWxheW91dC1zdGFydC1zaWRlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRTdGFydFNpZGVDb21wb25lbnQge31cblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtcGFnZS1lbmQtc2lkZSwgYXhwLWxheW91dC1lbmQtc2lkZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1jb250ZW50XCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICBgLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRFbmRTaWRlQ29tcG9uZW50IHt9XG4iXX0=","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutToolbarComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutToolbarComponent, isStandalone: true, selector: \"axp-layout-toolbar\", ngImport: i0, template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n <ng-content></ng-content>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutToolbarComponent, decorators: [{\n type: Component,\n args: [{\n imports: [],\n standalone: true,\n selector: 'axp-layout-toolbar',\n template: `\n <ng-content select=\"axp-layout-prefix\"></ng-content>\n <ng-content select=\"axp-layout-suffix\"></ng-content>\n <ng-content></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LXRvb2wtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9ibG9ja3MvbGF5b3V0LXRvb2wtYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWV0RixNQUFNLE9BQU8sOEJBQThCOzhHQUE5Qiw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw4RUFUN0I7Ozs7S0FJVDs7MkZBS1EsOEJBQThCO2tCQWIxQyxTQUFTO21CQUFDO29CQUNQLE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7S0FJVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBpbXBvcnRzOiBbXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC10b29sYmFyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4cC1sYXlvdXQtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBBWFBUaGVtZUxheW91dFRvb2xiYXJDb21wb25lbnQge1xuXG59XG5cblxuIl19","import { ChangeDetectionStrategy, Component, ElementRef, inject, signal, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutContainerComponent {\n constructor() {\n this.elementRef = inject((ElementRef));\n this.hostElement = this.elementRef.nativeElement;\n this._isEmptySignal = signal(this.hostElement.children.length === 0, ...(ngDevMode ? [{ debugName: \"_isEmptySignal\" }] : []));\n this.isEmpty = this._isEmptySignal.asReadonly();\n }\n ngOnInit() {\n this.mutationObserver = new MutationObserver(() => {\n this._isEmptySignal.set(this.hostElement.children.length === 0);\n });\n this.mutationObserver.observe(this.hostElement, {\n childList: true,\n subtree: true,\n });\n }\n ngOnDestroy() {\n this.mutationObserver?.disconnect();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPThemeLayoutContainerComponent, isStandalone: true, selector: \"axp-layout-container\", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPThemeLayoutContainerComponent, decorators: [{\n type: Component,\n args: [{\n standalone: true,\n selector: `axp-layout-container`,\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVksVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBU3BJLE1BQU0sT0FBTyxnQ0FBZ0M7SUFQN0M7UUFVdUIsZUFBVSxHQUErQixNQUFNLENBQUMsQ0FBQSxVQUEwQixDQUFBLENBQUMsQ0FBQztRQUMvRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBR3BELG1CQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLDBEQUFDLENBQUM7UUFDeEQsWUFBTyxHQUFvQixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO0tBcUIvRTtJQWpCRyxRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1lBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUM1QyxTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3hDLENBQUM7OEdBekJRLGdDQUFnQztrR0FBaEMsZ0NBQWdDLGdGQUovQiwyQkFBMkI7OzJGQUk1QixnQ0FBZ0M7a0JBUDVDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgRWxlbWVudFJlZiwgaW5qZWN0LCBzaWduYWwsIFNpZ25hbCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogYGF4cC1sYXlvdXQtY29udGFpbmVyYCxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRoZW1lTGF5b3V0Q29udGFpbmVyQ29tcG9uZW50IHtcblxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+KTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaG9zdEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuXG4gICAgcHJpdmF0ZSBfaXNFbXB0eVNpZ25hbCA9IHNpZ25hbCh0aGlzLmhvc3RFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGlzRW1wdHk6IFNpZ25hbDxib29sZWFuPiA9IHRoaXMuX2lzRW1wdHlTaWduYWwuYXNSZWFkb25seSgpO1xuXG4gICAgcHJpdmF0ZSBtdXRhdGlvbk9ic2VydmVyPzogTXV0YXRpb25PYnNlcnZlcjtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9pc0VtcHR5U2lnbmFsLnNldCh0aGlzLmhvc3RFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5vYnNlcnZlKHRoaXMuaG9zdEVsZW1lbnQsIHtcbiAgICAgICAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICB9XG5cblxuXG59XG4iXX0=","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, inject, input, output, signal, viewChild, ViewEncapsulation } from '@angular/core';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXTreeViewModule } from '@acorex/components/tree-view';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXPStateMessageComponent } from '../state-message';\nimport { AXPThemeLayoutBlockComponent } from '../blocks';\nimport { AXPThemeLayoutHeaderComponent } from '../blocks';\nimport { AXPThemeLayoutToolbarComponent } from '../blocks';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/tree-view\";\nimport * as i3 from \"@acorex/components/skeleton\";\nimport * as i4 from \"@acorex/components/search-box\";\nimport * as i5 from \"@acorex/components/button\";\nimport * as i6 from \"@acorex/components/dropdown\";\nimport * as i7 from \"@angular/common\";\nimport * as i8 from \"@acorex/core/translation\";\nexport class AXPCategoryTreeComponent {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.translationService = inject(AXTranslationService);\n //#endregion\n //#region ---- Inputs ----\n this.dataSource = input.required(...(ngDevMode ? [{ debugName: \"dataSource\" }] : []));\n this.config = input({\n textField: 'title',\n valueField: 'id',\n expandedField: 'expand',\n showCheckbox: false,\n searchable: true,\n searchPlaceholder: '@general:terms.interface.category.search.placeholder',\n emptyStateTitle: '@general:terms.interface.category.search.no-records.title',\n emptyStateDescription: '@general:terms.interface.category.search.no-records.description',\n emptyStateIcon: 'fa-light fa-folder-open',\n }, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.actions = input({\n canCreate: true,\n canUpdate: true,\n canDelete: true,\n canCreateChild: true,\n createLabel: 'Add New',\n updateLabel: 'Edit',\n deleteLabel: 'Delete',\n createChildLabel: 'Add New Child',\n }, ...(ngDevMode ? [{ debugName: \"actions\" }] : []));\n this.events = input({}, ...(ngDevMode ? [{ debugName: \"events\" }] : []));\n //#endregion\n //#region ---- Outputs ----\n this.nodeClick = output();\n this.nodeSelect = output();\n this.nodeCreate = output();\n this.nodeUpdate = output();\n this.nodeDelete = output();\n this.searchChange = output();\n this.collapseChange = output();\n //#endregion\n //#region ---- Component State ----\n this.tree = viewChild('tree', ...(ngDevMode ? [{ debugName: \"tree\" }] : []));\n this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.searchValue = signal('', ...(ngDevMode ? [{ debugName: \"searchValue\" }] : []));\n this.treeItems = signal([\n {\n id: 'root',\n title: '@general:terms.interface.selection.all-items',\n description: '',\n parentId: undefined,\n childCount: 0,\n expand: true,\n children: [],\n },\n ], ...(ngDevMode ? [{ debugName: \"treeItems\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n this.emptyStateTitle = computed(() => {\n const title = this.config().emptyStateTitle || '';\n return title;\n }, ...(ngDevMode ? [{ debugName: \"emptyStateTitle\" }] : []));\n this.emptyStateDescription = computed(() => {\n const description = this.config().emptyStateDescription || '';\n return description;\n }, ...(ngDevMode ? [{ debugName: \"emptyStateDescription\" }] : []));\n }\n //#endregion\n //#region ---- Lifecycle Methods ----\n async ngOnInit() {\n await this.loadRootNodes();\n }\n //#endregion\n //#region ---- Data Loading Methods ----\n async loadRootNodes() {\n this.isLoading.set(true);\n try {\n const entities = await this.dataSource().loadRootNodes();\n const nodes = this.convertEntitiesToTreeNodes(entities);\n this.treeItems.update((prev) => prev.map((item) => ({\n ...item,\n children: nodes,\n })));\n }\n catch (error) {\n console.error('Error loading root nodes:', error);\n }\n finally {\n this.isLoading.set(false);\n }\n }\n async loadChildNodes(parentId) {\n if (!this.dataSource().loadChildNodes)\n return;\n this.tree()?.setNodeLoading(parentId, true);\n try {\n const entities = await this.dataSource().loadChildNodes(parentId);\n const children = this.convertEntitiesToTreeNodes(entities);\n this.updateNodeChildren(parentId, children);\n }\n catch (error) {\n console.error('Error loading child nodes:', error);\n }\n finally {\n this.tree()?.setNodeLoading(parentId, false);\n }\n }\n async searchNodes(searchValue) {\n if (!this.dataSource().searchNodes)\n return;\n this.isLoading.set(true);\n try {\n const entities = await this.dataSource().searchNodes(searchValue);\n const nodes = this.convertEntitiesToTreeNodes(entities);\n this.treeItems.update((prev) => prev.map((item) => ({\n ...item,\n children: nodes,\n })));\n }\n catch (error) {\n console.error('Error searching nodes:', error);\n }\n finally {\n this.isLoading.set(false);\n }\n }\n //#endregion\n //#region ---- Event Handlers ----\n async handleNodeClick(event) {\n const node = event.data;\n // Extract the entity data (without tree-specific properties)\n const entity = {\n id: node.id,\n title: node.title,\n description: node.description,\n parentId: node.parentId,\n childCount: node.childCount\n };\n this.nodeClick.emit(entity);\n this.events().onNodeClick?.(entity);\n }\n async handleCollapseChanged(event) {\n const node = event.data;\n // Extract the entity data (without tree-specific properties)\n const entity = {\n id: node.id,\n title: node.title,\n description: node.description,\n parentId: node.parentId,\n childCount: node.childCount\n };\n this.collapseChange.emit(entity);\n this.events().onCollapseChange?.(entity);\n // Load children if node is being expanded\n // Check both expand property and active property (active seems to be the actual expansion state)\n if ((node.expand || node.active) && this.dataSource().loadChildNodes) {\n await this.loadChildNodes(node.id);\n }\n }\n async handleSearchChange(event) {\n const searchValue = event.value;\n this.searchValue.set(searchValue);\n this.searchChange.emit(searchValue);\n this.events().onSearchChange?.(searchValue);\n if (searchValue) {\n await this.searchNodes(searchValue);\n }\n else {\n await this.loadRootNodes();\n }\n }\n //#endregion\n //#region ---- CRUD Action Handlers ----\n async handleCreateRootClick(event) {\n event.nativeEvent.preventDefault();\n event.nativeEvent.stopPropagation();\n this.nodeCreate.emit(undefined);\n this.events().onNodeCreate?.(undefined);\n }\n async handleCreateChildClick(node, event) {\n event.nativeEvent.preventDefault();\n event.nativeEvent.stopPropagation();\n // Extract the entity data (without tree-specific properties)\n const entity = {\n id: node.id,\n title: node.title,\n description: node.description,\n parentId: node.parentId,\n childCount: node.childCount\n };\n this.nodeCreate.emit(entity);\n this.events().onNodeCreate?.(entity);\n }\n async handleUpdateNodeClick(node, event) {\n event.nativeEvent.preventDefault();\n event.nativeEvent.stopPropagation();\n // Extract the entity data (without tree-specific properties)\n const entity = {\n id: node.id,\n title: node.title,\n description: node.description,\n parentId: node.parentId,\n childCount: node.childCount\n };\n this.nodeUpdate.emit(entity);\n this.events().onNodeUpdate?.(entity);\n }\n async handleDeleteNodeClick(node, event) {\n event.nativeEvent.preventDefault();\n event.nativeEvent.stopPropagation();\n // Extract the entity data (without tree-specific properties)\n const entity = {\n id: node.id,\n title: node.title,\n description: node.description,\n parentId: node.parentId,\n childCount: node.childCount\n };\n this.nodeDelete.emit(entity);\n this.events().onNodeDelete?.(entity);\n }\n //#endregion\n //#region ---- Utility Methods ----\n convertEntitiesToTreeNodes(entities) {\n return entities.map(entity => ({\n ...entity,\n children: entity.childCount > 0 ? [] : undefined, // Set children to empty array if has children, undefined if no children\n expand: false,\n hasChild: entity.childCount > 0, // Set hasChild based on childCount\n }));\n }\n updateNodeChildren(parentId, children) {\n const updateChildrenAtPath = (items, id) => {\n return items.map((item) => {\n if (item.id === id) {\n return { ...item, children };\n }\n if (item.children?.length) {\n return { ...item, children: updateChildrenAtPath(item.children, id) };\n }\n return item;\n });\n };\n this.treeItems.update((prev) => prev.map((item) => ({\n ...item,\n children: updateChildrenAtPath(item.children || [], parentId),\n })));\n }\n async refreshTree(parentId) {\n if (parentId) {\n await this.loadChildNodes(parentId);\n }\n else {\n await this.loadRootNodes();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPCategoryTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPCategoryTreeComponent, isStandalone: true, selector: \"axp-category-tree\", inputs: { dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: \"config\", publicName: \"config\", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null }, events: { classPropertyName: \"events\", publicName: \"events\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeClick: \"nodeClick\", nodeSelect: \"nodeSelect\", nodeCreate: \"nodeCreate\", nodeUpdate: \"nodeUpdate\", nodeDelete: \"nodeDelete\", searchChange: \"searchChange\", collapseChange: \"collapseChange\" }, viewQueries: [{ propertyName: \"tree\", first: true, predicate: [\"tree\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<axp-layout-header>\\n <axp-layout-toolbar>\\n @if (config().searchable) {\\n <ax-search-box\\n (onValueChanged)=\\\"handleSearchChange($event)\\\"\\n [delayTime]=\\\"300\\\"\\n [placeholder]=\\\"config().searchPlaceholder! | translate | async\\\"\\n >\\n </ax-search-box>\\n }\\n </axp-layout-toolbar>\\n</axp-layout-header>\\n\\n<axp-layout-content>\\n @if (isLoading()) {\\n <div class=\\\"ax-p-4 ax-flex ax-flex-col ax-gap-3\\\" [class.ax-pt-2]=\\\"config().searchable\\\">\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n </div>\\n } @else if (treeItems()[0].children?.length) {\\n <div class=\\\"ax-px-4 ax-max-h-[calc(100vh-250px)] ax-overflow-auto\\\" [class.ax-pt-2]=\\\"config().searchable\\\">\\n <ax-tree-view\\n (onNodeClick)=\\\"handleNodeClick($event)\\\"\\n (onCollapsedChanged)=\\\"handleCollapseChanged($event)\\\"\\n [showCheckbox]=\\\"config().showCheckbox || false\\\"\\n [itemTemplate]=\\\"itemTemplate\\\"\\n #treeRef\\n [textField]=\\\"config().textField || 'title'\\\"\\n [valueField]=\\\"config().valueField || 'id'\\\"\\n [expandedField]=\\\"config().expandedField || 'expand'\\\"\\n [items]=\\\"treeItems()\\\"\\n #tree\\n >\\n </ax-tree-view>\\n </div>\\n } @else {\\n <axp-state-message\\n [icon]=\\\"config().emptyStateIcon || 'fa-light fa-folder-open'\\\"\\n [title]=\\\"emptyStateTitle()\\\"\\n [description]=\\\"emptyStateDescription()\\\"\\n >\\n </axp-state-message>\\n }\\n\\n <ng-template #itemTemplate let-item>\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-w-full ax-gap-2 ax-overflow-hidden\\\">\\n <div class=\\\"ax-flex ax-items-center ax-gap-2 ax-min-w-0\\\">\\n <ax-icon class=\\\"fas ax-text-warning fa-folder\\\"></ax-icon>\\n <span class=\\\"ax-truncate\\\">{{ item.title | translate | async }}</span>\\n </div>\\n @if (item.id && item.id !== 'root') {\\n @if (actions().canCreateChild || actions().canUpdate || actions().canDelete) {\\n <div class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-button class=\\\"ax-xs\\\" color=\\\"default\\\" look=\\\"blank\\\" (onClick)=\\\"$event.nativeEvent.stopPropagation()\\\">\\n <ax-icon class=\\\"fas fa-ellipsis-v\\\"></ax-icon>\\n <ax-dropdown-panel>\\n <ax-button-item-list>\\n @if (actions().canCreateChild) {\\n <ax-button-item\\n (onClick)=\\\"handleCreateChildClick(item, $event)\\\"\\n look=\\\"blank\\\"\\n color=\\\"default\\\"\\n [text]=\\\"actions().createChildLabel || 'Add New Child'\\\"\\n >\\n <ax-icon class=\\\"fas fa-plus\\\"></ax-icon>\\n </ax-button-item>\\n }\\n @if (actions().canUpdate) {\\n <ax-button-item\\n (onClick)=\\\"handleUpdateNodeClick(item, $event)\\\"\\n look=\\\"blank\\\"\\n [text]=\\\"actions().updateLabel || 'Edit'\\\"\\n >\\n <ax-icon class=\\\"fas fa-pen\\\"></ax-icon>\\n </ax-button-item>\\n }\\n @if (actions().canDelete) {\\n <ax-button-item\\n (onClick)=\\\"handleDeleteNodeClick(item, $event)\\\"\\n color=\\\"danger\\\"\\n look=\\\"blank\\\"\\n [text]=\\\"actions().deleteLabel || 'Delete'\\\"\\n >\\n <ax-icon class=\\\"fas fa-trash\\\"></ax-icon>\\n </ax-button-item>\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n </div>\\n }\\n } @else if (item.id === 'root' && actions().canCreate) {\\n <div class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-button class=\\\"ax-xs\\\" (onClick)=\\\"handleCreateRootClick($event)\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"fas fa-plus\\\"></ax-icon>\\n </ax-button>\\n </div>\\n }\\n </div>\\n </ng-template>\\n</axp-layout-content>\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTreeViewModule }, { kind: \"component\", type: i2.AXTreeViewComponent, selector: \"ax-tree-view\", inputs: [\"items\", \"showCheckbox\", \"hasCheckboxField\", \"selectionMode\", \"selectionBehavior\", \"selectionScope\", \"focusNodeEnabled\", \"valueField\", \"textField\", \"visibleField\", \"disableField\", \"hasChildField\", \"selectedField\", \"expandedField\", \"tooltipField\", \"childrenField\", \"activeField\", \"indeterminateField\", \"parentField\", \"iconField\", \"toggleIcons\", \"look\", \"showEmptyNodeMassage\", \"itemTemplate\", \"emptyTemplate\", \"expandOn\"], outputs: [\"onSelectionChanged\", \"onItemSelectedChanged\", \"onNodeClick\", \"onCollapsedChanged\", \"onNodedbClick\"] }, { kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i3.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \"\\n\\n axp-page-content, \\n axp-page-footer-container,\\n axp-page-footer,\\n axp-page-header,\\n axp-page-header-container,\\n axp-page-toolbar,\\n\\n axp-layout-content, \\n axp-layout-page-content, \\n\\n axp-layout-sections,\\n axp-layout-body,\\n axp-layout-page-body,\\n axp-layout-prefix,\\n axp-layout-suffix,\\n axp-layout-title-bar,\\n axp-layout-title, \\n axp-layout-title-actions, \\n axp-layout-nav-button, \\n axp-layout-description, \\n axp-layout-breadcrumbs,\\n axp-layout-list-action,\\n \" }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i4.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"component\", type: AXPThemeLayoutHeaderComponent, selector: \"axp-layout-header\" }, { kind: \"component\", type: AXPThemeLayoutToolbarComponent, selector: \"axp-layout-toolbar\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i5.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i5.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i5.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"component\", type: i6.AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }, { kind: \"pipe\", type: i7.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPCategoryTreeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-category-tree', standalone: true, encapsulation: ViewEncapsulation.None, imports: [\n CommonModule,\n AXDecoratorModule,\n AXTreeViewModule,\n AXSkeletonModule,\n AXPThemeLayoutBlockComponent,\n AXSearchBoxModule,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutToolbarComponent,\n AXTranslationModule,\n AXButtonModule,\n AXDropdownModule,\n AXPStateMessageComponent,\n ], template: \"<axp-layout-header>\\n <axp-layout-toolbar>\\n @if (config().searchable) {\\n <ax-search-box\\n (onValueChanged)=\\\"handleSearchChange($event)\\\"\\n [delayTime]=\\\"300\\\"\\n [placeholder]=\\\"config().searchPlaceholder! | translate | async\\\"\\n >\\n </ax-search-box>\\n }\\n </axp-layout-toolbar>\\n</axp-layout-header>\\n\\n<axp-layout-content>\\n @if (isLoading()) {\\n <div class=\\\"ax-p-4 ax-flex ax-flex-col ax-gap-3\\\" [class.ax-pt-2]=\\\"config().searchable\\\">\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n <ax-skeleton class=\\\"ax-w-full ax-h-6 ax-rounded-md\\\"></ax-skeleton>\\n </div>\\n } @else if (treeItems()[0].children?.length) {\\n <div class=\\\"ax-px-4 ax-max-h-[calc(100vh-250px)] ax-overflow-auto\\\" [class.ax-pt-2]=\\\"config().searchable\\\">\\n <ax-tree-view\\n (onNodeClick)=\\\"handleNodeClick($event)\\\"\\n (onCollapsedChanged)=\\\"handleCollapseChanged($event)\\\"\\n [showCheckbox]=\\\"config().showCheckbox || false\\\"\\n [itemTemplate]=\\\"itemTemplate\\\"\\n #treeRef\\n [textField]=\\\"config().textField || 'title'\\\"\\n [valueField]=\\\"config().valueField || 'id'\\\"\\n [expandedField]=\\\"config().expandedField || 'expand'\\\"\\n [items]=\\\"treeItems()\\\"\\n #tree\\n >\\n </ax-tree-view>\\n </div>\\n } @else {\\n <axp-state-message\\n [icon]=\\\"config().emptyStateIcon || 'fa-light fa-folder-open'\\\"\\n [title]=\\\"emptyStateTitle()\\\"\\n [description]=\\\"emptyStateDescription()\\\"\\n >\\n </axp-state-message>\\n }\\n\\n <ng-template #itemTemplate let-item>\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-w-full ax-gap-2 ax-overflow-hidden\\\">\\n <div class=\\\"ax-flex ax-items-center ax-gap-2 ax-min-w-0\\\">\\n <ax-icon class=\\\"fas ax-text-warning fa-folder\\\"></ax-icon>\\n <span class=\\\"ax-truncate\\\">{{ item.title | translate | async }}</span>\\n </div>\\n @if (item.id && item.id !== 'root') {\\n @if (actions().canCreateChild || actions().canUpdate || actions().canDelete) {\\n <div class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-button class=\\\"ax-xs\\\" color=\\\"default\\\" look=\\\"blank\\\" (onClick)=\\\"$event.nativeEvent.stopPropagation()\\\">\\n <ax-icon class=\\\"fas fa-ellipsis-v\\\"></ax-icon>\\n <ax-dropdown-panel>\\n <ax-button-item-list>\\n @if (actions().canCreateChild) {\\n <ax-button-item\\n (onClick)=\\\"handleCreateChildClick(item, $event)\\\"\\n look=\\\"blank\\\"\\n color=\\\"default\\\"\\n [text]=\\\"actions().createChildLabel || 'Add New Child'\\\"\\n >\\n <ax-icon class=\\\"fas fa-plus\\\"></ax-icon>\\n </ax-button-item>\\n }\\n @if (actions().canUpdate) {\\n <ax-button-item\\n (onClick)=\\\"handleUpdateNodeClick(item, $event)\\\"\\n look=\\\"blank\\\"\\n [text]=\\\"actions().updateLabel || 'Edit'\\\"\\n >\\n <ax-icon class=\\\"fas fa-pen\\\"></ax-icon>\\n </ax-button-item>\\n }\\n @if (actions().canDelete) {\\n <ax-button-item\\n (onClick)=\\\"handleDeleteNodeClick(item, $event)\\\"\\n color=\\\"danger\\\"\\n look=\\\"blank\\\"\\n [text]=\\\"actions().deleteLabel || 'Delete'\\\"\\n >\\n <ax-icon class=\\\"fas fa-trash\\\"></ax-icon>\\n </ax-button-item>\\n }\\n </ax-button-item-list>\\n </ax-dropdown-panel>\\n </ax-button>\\n </div>\\n }\\n } @else if (item.id === 'root' && actions().canCreate) {\\n <div class=\\\"ax-flex ax-items-center ax-gap-1\\\">\\n <ax-button class=\\\"ax-xs\\\" (onClick)=\\\"handleCreateRootClick($event)\\\" look=\\\"blank\\\" color=\\\"default\\\">\\n <ax-icon class=\\\"fas fa-plus\\\"></ax-icon>\\n </ax-button>\\n </div>\\n }\\n </div>\\n </ng-template>\\n</axp-layout-content>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktdHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvY2F0ZWdvcnktdHJlZS9jYXRlZ29yeS10cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jYXRlZ29yeS10cmVlL2NhdGVnb3J5LXRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBaUQsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekQsT0FBTyxFQUFF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QkFBOEI7d0JBQzlCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLHdCQUF3QjtxQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBWENsaWNrRXZlbnQsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9za2VsZXRvbic7XG5pbXBvcnQgeyBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQsIEFYVHJlZVZpZXdDb21wb25lbnQsIEFYVHJlZVZpZXdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdHJlZS12aWV3JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUsIEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vc3RhdGUtbWVzc2FnZSc7XG5pbXBvcnQgeyBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vYmxvY2tzJztcbmltcG9ydCB7IEFYUFRoZW1lTGF5b3V0SGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYmxvY2tzJztcbmltcG9ydCB7IEFYUFRoZW1lTGF5b3V0VG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL2Jsb2Nrcyc7XG5cbmltcG9ydCB7XG4gICAgQVhQQ2F0ZWdvcnlUcmVlTm9kZSxcbiAgICBBWFBDYXRlZ29yeVRyZWVDb25maWcsXG4gICAgQVhQQ2F0ZWdvcnlUcmVlRXZlbnRzLFxuICAgIEFYUENhdGVnb3J5VHJlZUFjdGlvbnMsXG4gICAgQVhQQ2F0ZWdvcnlUcmVlRGF0YVNvdXJjZSxcbn0gZnJvbSAnLi9jYXRlZ29yeS10cmVlLnR5cGVzJztcbmltcG9ydCB7IEFYUENhdGVnb3J5RW50aXR5IH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29yZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4cC1jYXRlZ29yeS10cmVlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgICAgICBBWFRyZWVWaWV3TW9kdWxlLFxuICAgICAgICBBWFNrZWxldG9uTW9kdWxlLFxuICAgICAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgICAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICAgICAgQVhQVGhlbWVMYXlvdXRIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIEFYUFRoZW1lTGF5b3V0VG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYRHJvcGRvd25Nb2R1bGUsXG4gICAgICAgIEFYUFN0YXRlTWVzc2FnZUNvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yeS10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY2F0ZWdvcnktdHJlZS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEFYUENhdGVnb3J5VHJlZUNvbXBvbmVudCB7XG4gICAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICAgIHByb3RlY3RlZCByZWFkb25seSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIElucHV0cyAgIC0tLS1cblxuICAgIGRhdGFTb3VyY2UgPSBpbnB1dC5yZXF1aXJlZDxBWFBDYXRlZ29yeVRyZWVEYXRhU291cmNlPigpO1xuICAgIGNvbmZpZyA9IGlucHV0PEFYUENhdGVnb3J5VHJlZUNvbmZpZz4oe1xuICAgICAgICB0ZXh0RmllbGQ6ICd0aXRsZScsXG4gICAgICAgIHZhbHVlRmllbGQ6ICdpZCcsXG4gICAgICAgIGV4cGFuZGVkRmllbGQ6ICdleHBhbmQnLFxuICAgICAgICBzaG93Q2hlY2tib3g6IGZhbHNlLFxuICAgICAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ0BnZW5lcmFsOnRlcm1zLmludGVyZmFjZS5jYXRlZ29yeS5zZWFyY2gucGxhY2Vob2xkZXInLFxuICAgICAgICBlbXB0eVN0YXRlVGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UuY2F0ZWdvcnkuc2VhcmNoLm5vLXJlY29yZHMudGl0bGUnLFxuICAgICAgICBlbXB0eVN0YXRlRGVzY3JpcHRpb246ICdAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UuY2F0ZWdvcnkuc2VhcmNoLm5vLXJlY29yZHMuZGVzY3JpcHRpb24nLFxuICAgICAgICBlbXB0eVN0YXRlSWNvbjogJ2ZhLWxpZ2h0IGZhLWZvbGRlci1vcGVuJyxcbiAgICB9KTtcbiAgICBhY3Rpb25zID0gaW5wdXQ8QVhQQ2F0ZWdvcnlUcmVlQWN0aW9ucz4oe1xuICAgICAgICBjYW5DcmVhdGU6IHRydWUsXG4gICAgICAgIGNhblVwZGF0ZTogdHJ1ZSxcbiAgICAgICAgY2FuRGVsZXRlOiB0cnVlLFxuICAgICAgICBjYW5DcmVhdGVDaGlsZDogdHJ1ZSxcbiAgICAgICAgY3JlYXRlTGFiZWw6ICdBZGQgTmV3JyxcbiAgICAgICAgdXBkYXRlTGFiZWw6ICdFZGl0JyxcbiAgICAgICAgZGVsZXRlTGFiZWw6ICdEZWxldGUnLFxuICAgICAgICBjcmVhdGVDaGlsZExhYmVsOiAnQWRkIE5ldyBDaGlsZCcsXG4gICAgfSk7XG4gICAgZXZlbnRzID0gaW5wdXQ8QVhQQ2F0ZWdvcnlUcmVlRXZlbnRzPih7fSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgT3V0cHV0cyAgIC0tLS1cblxuICAgIG5vZGVDbGljayA9IG91dHB1dDxBWFBDYXRlZ29yeUVudGl0eT4oKTtcbiAgICBub2RlU2VsZWN0ID0gb3V0cHV0PEFYUENhdGVnb3J5RW50aXR5PigpO1xuICAgIG5vZGVDcmVhdGUgPSBvdXRwdXQ8QVhQQ2F0ZWdvcnlFbnRpdHkgfCB1bmRlZmluZWQ+KCk7XG4gICAgbm9kZVVwZGF0ZSA9IG91dHB1dDxBWFBDYXRlZ29yeUVudGl0eT4oKTtcbiAgICBub2RlRGVsZXRlID0gb3V0cHV0PEFYUENhdGVnb3J5RW50aXR5PigpO1xuICAgIHNlYXJjaENoYW5nZSA9IG91dHB1dDxzdHJpbmc+KCk7XG4gICAgY29sbGFwc2VDaGFuZ2UgPSBvdXRwdXQ8QVhQQ2F0ZWdvcnlFbnRpdHk+KCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50IFN0YXRlICAgLS0tLVxuXG4gICAgdHJlZSA9IHZpZXdDaGlsZDxBWFRyZWVWaWV3Q29tcG9uZW50PigndHJlZScpO1xuICAgIGlzTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgICBzZWFyY2hWYWx1ZSA9IHNpZ25hbCgnJyk7XG5cbiAgICBwcm90ZWN0ZWQgdHJlZUl0ZW1zID0gc2lnbmFsPEFYUENhdGVnb3J5VHJlZU5vZGVbXT4oW1xuICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3Jvb3QnLFxuICAgICAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2Uuc2VsZWN0aW9uLmFsbC1pdGVtcycsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgICAgICBwYXJlbnRJZDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgY2hpbGRDb3VudDogMCxcbiAgICAgICAgICAgIGV4cGFuZDogdHJ1ZSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgfSxcbiAgICBdKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDb21wdXRlZCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgcHJvdGVjdGVkIGVtcHR5U3RhdGVUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLmNvbmZpZygpLmVtcHR5U3RhdGVUaXRsZSB8fCAnJztcbiAgICAgICAgcmV0dXJuIHRpdGxlO1xuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIGVtcHR5U3RhdGVEZXNjcmlwdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSB0aGlzLmNvbmZpZygpLmVtcHR5U3RhdGVEZXNjcmlwdGlvbiB8fCAnJztcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uO1xuICAgIH0pO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIExpZmVjeWNsZSBNZXRob2RzICAgLS0tLVxuXG4gICAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMubG9hZFJvb3ROb2RlcygpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBEYXRhIExvYWRpbmcgTWV0aG9kcyAgIC0tLS1cblxuICAgIGFzeW5jIGxvYWRSb290Tm9kZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGVudGl0aWVzID0gYXdhaXQgdGhpcy5kYXRhU291cmNlKCkubG9hZFJvb3ROb2RlcygpO1xuICAgICAgICAgICAgY29uc3Qgbm9kZXMgPSB0aGlzLmNvbnZlcnRFbnRpdGllc1RvVHJlZU5vZGVzKGVudGl0aWVzKTtcbiAgICAgICAgICAgIHRoaXMudHJlZUl0ZW1zLnVwZGF0ZSgocHJldikgPT5cbiAgICAgICAgICAgICAgICBwcmV2Lm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IG5vZGVzLFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGxvYWRpbmcgcm9vdCBub2RlczonLCBlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgbG9hZENoaWxkTm9kZXMocGFyZW50SWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSgpLmxvYWRDaGlsZE5vZGVzKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy50cmVlKCk/LnNldE5vZGVMb2FkaW5nKHBhcmVudElkLCB0cnVlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGVudGl0aWVzID0gYXdhaXQgdGhpcy5kYXRhU291cmNlKCkubG9hZENoaWxkTm9kZXMhKHBhcmVudElkKTtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5jb252ZXJ0RW50aXRpZXNUb1RyZWVOb2RlcyhlbnRpdGllcyk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5vZGVDaGlsZHJlbihwYXJlbnRJZCwgY2hpbGRyZW4pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBjaGlsZCBub2RlczonLCBlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnRyZWUoKT8uc2V0Tm9kZUxvYWRpbmcocGFyZW50SWQsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIHNlYXJjaE5vZGVzKHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UoKS5zZWFyY2hOb2RlcykgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGVudGl0aWVzID0gYXdhaXQgdGhpcy5kYXRhU291cmNlKCkuc2VhcmNoTm9kZXMhKHNlYXJjaFZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gdGhpcy5jb252ZXJ0RW50aXRpZXNUb1RyZWVOb2RlcyhlbnRpdGllcyk7XG4gICAgICAgICAgICB0aGlzLnRyZWVJdGVtcy51cGRhdGUoKHByZXYpID0+XG4gICAgICAgICAgICAgICAgcHJldi5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBub2RlcyxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBzZWFyY2hpbmcgbm9kZXM6JywgZXJyb3IpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBFdmVudCBIYW5kbGVycyAgIC0tLS1cblxuICAgIGFzeW5jIGhhbmRsZU5vZGVDbGljayhldmVudDogQVhUcmVlSXRlbUNsaWNrQmFzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSBldmVudC5kYXRhIGFzIEFYUENhdGVnb3J5VHJlZU5vZGU7XG4gICAgICAgIC8vIEV4dHJhY3QgdGhlIGVudGl0eSBkYXRhICh3aXRob3V0IHRyZWUtc3BlY2lmaWMgcHJvcGVydGllcylcbiAgICAgICAgY29uc3QgZW50aXR5OiBBWFBDYXRlZ29yeUVudGl0eSA9IHtcbiAgICAgICAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgICAgICAgdGl0bGU6IG5vZGUudGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogbm9kZS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHBhcmVudElkOiBub2RlLnBhcmVudElkLFxuICAgICAgICAgICAgY2hpbGRDb3VudDogbm9kZS5jaGlsZENvdW50XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubm9kZUNsaWNrLmVtaXQoZW50aXR5KTtcbiAgICAgICAgdGhpcy5ldmVudHMoKS5vbk5vZGVDbGljaz8uKGVudGl0eSk7XG4gICAgfVxuXG4gICAgYXN5bmMgaGFuZGxlQ29sbGFwc2VDaGFuZ2VkKGV2ZW50OiBBWFRyZWVJdGVtQ2xpY2tCYXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgbm9kZSA9IGV2ZW50LmRhdGEgYXMgQVhQQ2F0ZWdvcnlUcmVlTm9kZTtcblxuICAgICAgICAvLyBFeHRyYWN0IHRoZSBlbnRpdHkgZGF0YSAod2l0aG91dCB0cmVlLXNwZWNpZmljIHByb3BlcnRpZXMpXG4gICAgICAgIGNvbnN0IGVudGl0eTogQVhQQ2F0ZWdvcnlFbnRpdHkgPSB7XG4gICAgICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAgICAgIHRpdGxlOiBub2RlLnRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IG5vZGUuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZCxcbiAgICAgICAgICAgIGNoaWxkQ291bnQ6IG5vZGUuY2hpbGRDb3VudFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNvbGxhcHNlQ2hhbmdlLmVtaXQoZW50aXR5KTtcbiAgICAgICAgdGhpcy5ldmVudHMoKS5vbkNvbGxhcHNlQ2hhbmdlPy4oZW50aXR5KTtcblxuICAgICAgICAvLyBMb2FkIGNoaWxkcmVuIGlmIG5vZGUgaXMgYmVpbmcgZXhwYW5kZWRcbiAgICAgICAgLy8gQ2hlY2sgYm90aCBleHBhbmQgcHJvcGVydHkgYW5kIGFjdGl2ZSBwcm9wZXJ0eSAoYWN0aXZlIHNlZW1zIHRvIGJlIHRoZSBhY3R1YWwgZXhwYW5zaW9uIHN0YXRlKVxuICAgICAgICBpZiAoKG5vZGUuZXhwYW5kIHx8IChub2RlIGFzIGFueSkuYWN0aXZlKSAmJiB0aGlzLmRhdGFTb3VyY2UoKS5sb2FkQ2hpbGROb2Rlcykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkQ2hpbGROb2Rlcyhub2RlLmlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGhhbmRsZVNlYXJjaENoYW5nZShldmVudDogQVhWYWx1ZUNoYW5nZWRFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBzZWFyY2hWYWx1ZSA9IGV2ZW50LnZhbHVlO1xuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlLnNldChzZWFyY2hWYWx1ZSk7XG4gICAgICAgIHRoaXMuc2VhcmNoQ2hhbmdlLmVtaXQoc2VhcmNoVmFsdWUpO1xuICAgICAgICB0aGlzLmV2ZW50cygpLm9uU2VhcmNoQ2hhbmdlPy4oc2VhcmNoVmFsdWUpO1xuXG4gICAgICAgIGlmIChzZWFyY2hWYWx1ZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZWFyY2hOb2RlcyhzZWFyY2hWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRSb290Tm9kZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDUlVEIEFjdGlvbiBIYW5kbGVycyAgIC0tLS1cblxuICAgIGFzeW5jIGhhbmRsZUNyZWF0ZVJvb3RDbGljayhldmVudDogQVhDbGlja0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGV2ZW50Lm5hdGl2ZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm5vZGVDcmVhdGUuZW1pdCh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmV2ZW50cygpLm9uTm9kZUNyZWF0ZT8uKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgYXN5bmMgaGFuZGxlQ3JlYXRlQ2hpbGRDbGljayhub2RlOiBBWFBDYXRlZ29yeVRyZWVOb2RlLCBldmVudDogQVhDbGlja0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGV2ZW50Lm5hdGl2ZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAvLyBFeHRyYWN0IHRoZSBlbnRpdHkgZGF0YSAod2l0aG91dCB0cmVlLXNwZWNpZmljIHByb3BlcnRpZXMpXG4gICAgICAgIGNvbnN0IGVudGl0eTogQVhQQ2F0ZWdvcnlFbnRpdHkgPSB7XG4gICAgICAgICAgICBpZDogbm9kZS5pZCxcbiAgICAgICAgICAgIHRpdGxlOiBub2RlLnRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IG5vZGUuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZCxcbiAgICAgICAgICAgIGNoaWxkQ291bnQ6IG5vZGUuY2hpbGRDb3VudFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLm5vZGVDcmVhdGUuZW1pdChlbnRpdHkpO1xuICAgICAgICB0aGlzLmV2ZW50cygpLm9uTm9kZUNyZWF0ZT8uKGVudGl0eSk7XG4gICAgfVxuXG4gICAgYXN5bmMgaGFuZGxlVXBkYXRlTm9kZUNsaWNrKG5vZGU6IEFYUENhdGVnb3J5VHJlZU5vZGUsIGV2ZW50OiBBWENsaWNrRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZXZlbnQubmF0aXZlRXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQubmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIC8vIEV4dHJhY3QgdGhlIGVudGl0eSBkYXRhICh3aXRob3V0IHRyZWUtc3BlY2lmaWMgcHJvcGVydGllcylcbiAgICAgICAgY29uc3QgZW50aXR5OiBBWFBDYXRlZ29yeUVudGl0eSA9IHtcbiAgICAgICAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgICAgICAgdGl0bGU6IG5vZGUudGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogbm9kZS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHBhcmVudElkOiBub2RlLnBhcmVudElkLFxuICAgICAgICAgICAgY2hpbGRDb3VudDogbm9kZS5jaGlsZENvdW50XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubm9kZVVwZGF0ZS5lbWl0KGVudGl0eSk7XG4gICAgICAgIHRoaXMuZXZlbnRzKCkub25Ob2RlVXBkYXRlPy4oZW50aXR5KTtcbiAgICB9XG5cbiAgICBhc3luYyBoYW5kbGVEZWxldGVOb2RlQ2xpY2sobm9kZTogQVhQQ2F0ZWdvcnlUcmVlTm9kZSwgZXZlbnQ6IEFYQ2xpY2tFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBldmVudC5uYXRpdmVFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5uYXRpdmVFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgZW50aXR5IGRhdGEgKHdpdGhvdXQgdHJlZS1zcGVjaWZpYyBwcm9wZXJ0aWVzKVxuICAgICAgICBjb25zdCBlbnRpdHk6IEFYUENhdGVnb3J5RW50aXR5ID0ge1xuICAgICAgICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgICAgICAgICB0aXRsZTogbm9kZS50aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBub2RlLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgcGFyZW50SWQ6IG5vZGUucGFyZW50SWQsXG4gICAgICAgICAgICBjaGlsZENvdW50OiBub2RlLmNoaWxkQ291bnRcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5ub2RlRGVsZXRlLmVtaXQoZW50aXR5KTtcbiAgICAgICAgdGhpcy5ldmVudHMoKS5vbk5vZGVEZWxldGU/LihlbnRpdHkpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBVdGlsaXR5IE1ldGhvZHMgICAtLS0tXG5cbiAgICBwcml2YXRlIGNvbnZlcnRFbnRpdGllc1RvVHJlZU5vZGVzKGVudGl0aWVzOiBBWFBDYXRlZ29yeUVudGl0eVtdKTogQVhQQ2F0ZWdvcnlUcmVlTm9kZVtdIHtcbiAgICAgICAgcmV0dXJuIGVudGl0aWVzLm1hcChlbnRpdHkgPT4gKHtcbiAgICAgICAgICAgIC4uLmVudGl0eSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBlbnRpdHkuY2hpbGRDb3VudCA+IDAgPyBbXSA6IHVuZGVmaW5lZCwgLy8gU2V0IGNoaWxkcmVuIHRvIGVtcHR5IGFycmF5IGlmIGhhcyBjaGlsZHJlbiwgdW5kZWZpbmVkIGlmIG5vIGNoaWxkcmVuXG4gICAgICAgICAgICBleHBhbmQ6IGZhbHNlLFxuICAgICAgICAgICAgaGFzQ2hpbGQ6IGVudGl0eS5jaGlsZENvdW50ID4gMCwgLy8gU2V0IGhhc0NoaWxkIGJhc2VkIG9uIGNoaWxkQ291bnRcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTm9kZUNoaWxkcmVuKHBhcmVudElkOiBzdHJpbmcsIGNoaWxkcmVuOiBBWFBDYXRlZ29yeVRyZWVOb2RlW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXBkYXRlQ2hpbGRyZW5BdFBhdGggPSAoaXRlbXM6IEFYUENhdGVnb3J5VHJlZU5vZGVbXSwgaWQ6IHN0cmluZyk6IEFYUENhdGVnb3J5VHJlZU5vZGVbXSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaWQgPT09IGlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLml0ZW0sIGNoaWxkcmVuIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwgY2hpbGRyZW46IHVwZGF0ZUNoaWxkcmVuQXRQYXRoKGl0ZW0uY2hpbGRyZW4sIGlkKSB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMudHJlZUl0ZW1zLnVwZGF0ZSgocHJldikgPT5cbiAgICAgICAgICAgIHByZXYubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLml0ZW0sXG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IHVwZGF0ZUNoaWxkcmVuQXRQYXRoKGl0ZW0uY2hpbGRyZW4gfHwgW10sIHBhcmVudElkKSxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFzeW5jIHJlZnJlc2hUcmVlKHBhcmVudElkPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmIChwYXJlbnRJZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkQ2hpbGROb2RlcyhwYXJlbnRJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWRSb290Tm9kZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuIiwiPGF4cC1sYXlvdXQtaGVhZGVyPlxuICA8YXhwLWxheW91dC10b29sYmFyPlxuICAgIEBpZiAoY29uZmlnKCkuc2VhcmNoYWJsZSkge1xuICAgICAgPGF4LXNlYXJjaC1ib3hcbiAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVNlYXJjaENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2RlbGF5VGltZV09XCIzMDBcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnKCkuc2VhcmNoUGxhY2Vob2xkZXIhIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgPlxuICAgICAgPC9heC1zZWFyY2gtYm94PlxuICAgIH1cbiAgPC9heHAtbGF5b3V0LXRvb2xiYXI+XG48L2F4cC1sYXlvdXQtaGVhZGVyPlxuXG48YXhwLWxheW91dC1jb250ZW50PlxuICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LXAtNCBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0zXCIgW2NsYXNzLmF4LXB0LTJdPVwiY29uZmlnKCkuc2VhcmNoYWJsZVwiPlxuICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy1mdWxsIGF4LWgtNiBheC1yb3VuZGVkLW1kXCI+PC9heC1za2VsZXRvbj5cbiAgICAgIDxheC1za2VsZXRvbiBjbGFzcz1cImF4LXctZnVsbCBheC1oLTYgYXgtcm91bmRlZC1tZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LWZ1bGwgYXgtaC02IGF4LXJvdW5kZWQtbWRcIj48L2F4LXNrZWxldG9uPlxuICAgICAgPGF4LXNrZWxldG9uIGNsYXNzPVwiYXgtdy1mdWxsIGF4LWgtNiBheC1yb3VuZGVkLW1kXCI+PC9heC1za2VsZXRvbj5cbiAgICAgIDxheC1za2VsZXRvbiBjbGFzcz1cImF4LXctZnVsbCBheC1oLTYgYXgtcm91bmRlZC1tZFwiPjwvYXgtc2tlbGV0b24+XG4gICAgICA8YXgtc2tlbGV0b24gY2xhc3M9XCJheC13LWZ1bGwgYXgtaC02IGF4LXJvdW5kZWQtbWRcIj48L2F4LXNrZWxldG9uPlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIGlmICh0cmVlSXRlbXMoKVswXS5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LXB4LTQgYXgtbWF4LWgtW2NhbGMoMTAwdmgtMjUwcHgpXSBheC1vdmVyZmxvdy1hdXRvXCIgW2NsYXNzLmF4LXB0LTJdPVwiY29uZmlnKCkuc2VhcmNoYWJsZVwiPlxuICAgICAgPGF4LXRyZWUtdmlld1xuICAgICAgICAob25Ob2RlQ2xpY2spPVwiaGFuZGxlTm9kZUNsaWNrKCRldmVudClcIlxuICAgICAgICAob25Db2xsYXBzZWRDaGFuZ2VkKT1cImhhbmRsZUNvbGxhcHNlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW3Nob3dDaGVja2JveF09XCJjb25maWcoKS5zaG93Q2hlY2tib3ggfHwgZmFsc2VcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiXG4gICAgICAgICN0cmVlUmVmXG4gICAgICAgIFt0ZXh0RmllbGRdPVwiY29uZmlnKCkudGV4dEZpZWxkIHx8ICd0aXRsZSdcIlxuICAgICAgICBbdmFsdWVGaWVsZF09XCJjb25maWcoKS52YWx1ZUZpZWxkIHx8ICdpZCdcIlxuICAgICAgICBbZXhwYW5kZWRGaWVsZF09XCJjb25maWcoKS5leHBhbmRlZEZpZWxkIHx8ICdleHBhbmQnXCJcbiAgICAgICAgW2l0ZW1zXT1cInRyZWVJdGVtcygpXCJcbiAgICAgICAgI3RyZWVcbiAgICAgID5cbiAgICAgIDwvYXgtdHJlZS12aWV3PlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8YXhwLXN0YXRlLW1lc3NhZ2VcbiAgICAgIFtpY29uXT1cImNvbmZpZygpLmVtcHR5U3RhdGVJY29uIHx8ICdmYS1saWdodCBmYS1mb2xkZXItb3BlbidcIlxuICAgICAgW3RpdGxlXT1cImVtcHR5U3RhdGVUaXRsZSgpXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCJlbXB0eVN0YXRlRGVzY3JpcHRpb24oKVwiXG4gICAgPlxuICAgIDwvYXhwLXN0YXRlLW1lc3NhZ2U+XG4gIH1cblxuICA8bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuIGF4LXctZnVsbCBheC1nYXAtMiBheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1nYXAtMiBheC1taW4tdy0wXCI+XG4gICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmFzIGF4LXRleHQtd2FybmluZyBmYS1mb2xkZXJcIj48L2F4LWljb24+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdHJ1bmNhdGVcIj57eyBpdGVtLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAoaXRlbS5pZCAmJiBpdGVtLmlkICE9PSAncm9vdCcpIHtcbiAgICAgICAgQGlmIChhY3Rpb25zKCkuY2FuQ3JlYXRlQ2hpbGQgfHwgYWN0aW9ucygpLmNhblVwZGF0ZSB8fCBhY3Rpb25zKCkuY2FuRGVsZXRlKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0xXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgteHNcIiBjb2xvcj1cImRlZmF1bHRcIiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCIkZXZlbnQubmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgPGF4LWljb24gY2xhc3M9XCJmYXMgZmEtZWxsaXBzaXMtdlwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgPGF4LWRyb3Bkb3duLXBhbmVsPlxuICAgICAgICAgICAgICAgIDxheC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgICAgICAgICAgQGlmIChhY3Rpb25zKCkuY2FuQ3JlYXRlQ2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ3JlYXRlQ2hpbGRDbGljayhpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICBsb29rPVwiYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiYWN0aW9ucygpLmNyZWF0ZUNoaWxkTGFiZWwgfHwgJ0FkZCBOZXcgQ2hpbGQnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKGFjdGlvbnMoKS5jYW5VcGRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlVXBkYXRlTm9kZUNsaWNrKGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiYWN0aW9ucygpLnVwZGF0ZUxhYmVsIHx8ICdFZGl0J1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBmYS1wZW5cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKGFjdGlvbnMoKS5jYW5EZWxldGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlRGVsZXRlTm9kZUNsaWNrKGl0ZW0sICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICBsb29rPVwiYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImFjdGlvbnMoKS5kZWxldGVMYWJlbCB8fCAnRGVsZXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhcyBmYS10cmFzaFwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSBpZiAoaXRlbS5pZCA9PT0gJ3Jvb3QnICYmIGFjdGlvbnMoKS5jYW5DcmVhdGUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0xXCI+XG4gICAgICAgICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXhzXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ3JlYXRlUm9vdENsaWNrKCRldmVudClcIiBsb29rPVwiYmxhbmtcIiBjb2xvcj1cImRlZmF1bHRcIj5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2F4LWljb24+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9heHAtbGF5b3V0LWNvbnRlbnQ+XG4iXX0=","//#region ---- Tree Node Interface ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktdHJlZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jYXRlZ29yeS10cmVlL2NhdGVnb3J5LXRyZWUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDOztBQWtFM0MsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgVHJlZSBOb2RlIEludGVyZmFjZSAgIC0tLS1cblxuaW1wb3J0IHsgQVhQQ2F0ZWdvcnlFbnRpdHkgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ2F0ZWdvcnlUcmVlTm9kZSBleHRlbmRzIEFYUENhdGVnb3J5RW50aXR5IHtcbiAgICBjaGlsZHJlbj86IEFYUENhdGVnb3J5VHJlZU5vZGVbXTtcbiAgICBleHBhbmQ/OiBib29sZWFuO1xuICAgIGhhc0NoaWxkPzogYm9vbGVhbjtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIFRyZWUgQ29uZmlndXJhdGlvbiBJbnRlcmZhY2UgICAtLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ2F0ZWdvcnlUcmVlQ29uZmlnIHtcbiAgICB0ZXh0RmllbGQ/OiBzdHJpbmc7XG4gICAgdmFsdWVGaWVsZD86IHN0cmluZztcbiAgICBleHBhbmRlZEZpZWxkPzogc3RyaW5nO1xuICAgIHNob3dDaGVja2JveD86IGJvb2xlYW47XG4gICAgc2VhcmNoYWJsZT86IGJvb2xlYW47XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgZW1wdHlTdGF0ZVRpdGxlPzogc3RyaW5nO1xuICAgIGVtcHR5U3RhdGVEZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBlbXB0eVN0YXRlSWNvbj86IHN0cmluZztcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgVHJlZSBFdmVudHMgSW50ZXJmYWNlICAgLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENhdGVnb3J5VHJlZUV2ZW50cyB7XG4gICAgb25Ob2RlQ2xpY2s/OiAobm9kZTogQVhQQ2F0ZWdvcnlFbnRpdHkpID0+IHZvaWQ7XG4gICAgb25Ob2RlU2VsZWN0PzogKG5vZGU6IEFYUENhdGVnb3J5RW50aXR5KSA9PiB2b2lkO1xuICAgIG9uTm9kZUNyZWF0ZT86IChwYXJlbnROb2RlPzogQVhQQ2F0ZWdvcnlFbnRpdHkpID0+IHZvaWQ7XG4gICAgb25Ob2RlVXBkYXRlPzogKG5vZGU6IEFYUENhdGVnb3J5RW50aXR5KSA9PiB2b2lkO1xuICAgIG9uTm9kZURlbGV0ZT86IChub2RlOiBBWFBDYXRlZ29yeUVudGl0eSkgPT4gdm9pZDtcbiAgICBvblNlYXJjaENoYW5nZT86IChzZWFyY2hWYWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICAgIG9uQ29sbGFwc2VDaGFuZ2U/OiAobm9kZTogQVhQQ2F0ZWdvcnlFbnRpdHkpID0+IHZvaWQ7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIFRyZWUgQWN0aW9ucyBJbnRlcmZhY2UgICAtLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ2F0ZWdvcnlUcmVlQWN0aW9ucyB7XG4gICAgY2FuQ3JlYXRlPzogYm9vbGVhbjtcbiAgICBjYW5VcGRhdGU/OiBib29sZWFuO1xuICAgIGNhbkRlbGV0ZT86IGJvb2xlYW47XG4gICAgY2FuQ3JlYXRlQ2hpbGQ/OiBib29sZWFuO1xuICAgIGNyZWF0ZUxhYmVsPzogc3RyaW5nO1xuICAgIHVwZGF0ZUxhYmVsPzogc3RyaW5nO1xuICAgIGRlbGV0ZUxhYmVsPzogc3RyaW5nO1xuICAgIGNyZWF0ZUNoaWxkTGFiZWw/OiBzdHJpbmc7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIFRyZWUgRGF0YSBTb3VyY2UgSW50ZXJmYWNlICAgLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENhdGVnb3J5VHJlZURhdGFTb3VyY2Uge1xuICAgIGxvYWRSb290Tm9kZXM6ICgpID0+IFByb21pc2U8QVhQQ2F0ZWdvcnlFbnRpdHlbXT47XG4gICAgbG9hZENoaWxkTm9kZXM/OiAocGFyZW50SWQ6IHN0cmluZykgPT4gUHJvbWlzZTxBWFBDYXRlZ29yeUVudGl0eVtdPjtcbiAgICBzZWFyY2hOb2Rlcz86IChzZWFyY2hWYWx1ZTogc3RyaW5nKSA9PiBQcm9taXNlPEFYUENhdGVnb3J5RW50aXR5W10+O1xufVxuXG4vLyNlbmRyZWdpb25cbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CdkDrag, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { Component, model } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { cloneDeep } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/switch\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"@acorex/core/translation\";\nexport class AXPQueryColumnsComponent {\n constructor() {\n this.columns = model([], ...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n }\n handleVisibilityChange(e, name) {\n if (e.isUserInteraction) {\n this.columns.update((prev) => {\n return prev.map((c) => {\n return c.name === name ? { ...c, visible: e.value ?? true } : c;\n });\n });\n }\n }\n drop(event) {\n const columns = cloneDeep(this.columns());\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\n this.columns.set(columns);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPQueryColumnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPQueryColumnsComponent, isStandalone: true, selector: \"axp-query-columns\", inputs: { columns: { classPropertyName: \"columns\", publicName: \"columns\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { columns: \"columnsChange\" }, ngImport: i0, template: \"<div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-select-none\\\" cdkDropList (cdkDropListDropped)=\\\"drop($event)\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\\\">\\n @for (item of columns(); track item.name) {\\n <div class=\\\"ax-flex ax-py-1 ax-items-center ax-justify-between\\\" cdkDrag cdkDragBoundary=\\\".ax-sorted-list\\\">\\n <div class=\\\"ax-flex ax-items-center ax-gap-3\\\" cdkDragHandle>\\n <ax-icon class=\\\"fa-solid fa-grip-dots-vertical ax-cursor-move\\\"></ax-icon>\\n <p class=\\\"ax-font-medium ax-text-sm\\\">{{ item.title | translate | async }}</p>\\n </div>\\n <ax-switch\\n class=\\\"ax-sm\\\"\\n [ngModel]=\\\"item.visible\\\"\\n (onValueChanged)=\\\"handleVisibilityChange($event, item.name)\\\"\\n ></ax-switch>\\n </div>\\n }\\n </div>\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: CdkDropList, selector: \"[cdkDropList], cdk-drop-list\", inputs: [\"cdkDropListConnectedTo\", \"cdkDropListData\", \"cdkDropListOrientation\", \"id\", \"cdkDropListLockAxis\", \"cdkDropListDisabled\", \"cdkDropListSortingDisabled\", \"cdkDropListEnterPredicate\", \"cdkDropListSortPredicate\", \"cdkDropListAutoScrollDisabled\", \"cdkDropListAutoScrollStep\", \"cdkDropListElementContainer\", \"cdkDropListHasAnchor\"], outputs: [\"cdkDropListDropped\", \"cdkDropListEntered\", \"cdkDropListExited\", \"cdkDropListSorted\"], exportAs: [\"cdkDropList\"] }, { kind: \"directive\", type: CdkDrag, selector: \"[cdkDrag]\", inputs: [\"cdkDragData\", \"cdkDragLockAxis\", \"cdkDragRootElement\", \"cdkDragBoundary\", \"cdkDragStartDelay\", \"cdkDragFreeDragPosition\", \"cdkDragDisabled\", \"cdkDragConstrainPosition\", \"cdkDragPreviewClass\", \"cdkDragPreviewContainer\", \"cdkDragScale\"], outputs: [\"cdkDragStarted\", \"cdkDragReleased\", \"cdkDragEnded\", \"cdkDragEntered\", \"cdkDragExited\", \"cdkDragDropped\", \"cdkDragMoved\"], exportAs: [\"cdkDrag\"] }, { kind: \"directive\", type: CdkDragHandle, selector: \"[cdkDragHandle]\", inputs: [\"cdkDragHandleDisabled\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXSwitchModule }, { kind: \"component\", type: i3.AXSwitchComponent, selector: \"ax-switch\", inputs: [\"disabled\", \"readonly\", \"color\", \"tabIndex\", \"value\", \"name\", \"isLoading\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i5.AXTranslatorPipe, name: \"translate\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPQueryColumnsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-query-columns', imports: [\n CommonModule,\n FormsModule,\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n AXButtonModule,\n AXDecoratorModule,\n AXSwitchModule,\n AXTranslationModule,\n ], template: \"<div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-select-none\\\" cdkDropList (cdkDropListDropped)=\\\"drop($event)\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\\\">\\n @for (item of columns(); track item.name) {\\n <div class=\\\"ax-flex ax-py-1 ax-items-center ax-justify-between\\\" cdkDrag cdkDragBoundary=\\\".ax-sorted-list\\\">\\n <div class=\\\"ax-flex ax-items-center ax-gap-3\\\" cdkDragHandle>\\n <ax-icon class=\\\"fa-solid fa-grip-dots-vertical ax-cursor-move\\\"></ax-icon>\\n <p class=\\\"ax-font-medium ax-text-sm\\\">{{ item.title | translate | async }}</p>\\n </div>\\n <ax-switch\\n class=\\\"ax-sm\\\"\\n [ngModel]=\\\"item.visible\\\"\\n (onValueChanged)=\\\"handleVisibilityChange($event, item.name)\\\"\\n ></ax-switch>\\n </div>\\n }\\n </div>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvY29sdW1ucy9xdWVyeS1jb2x1bW5zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jb2x1bW5zL3F1ZXJ5LWNvbHVtbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcvRCxPQUFPLEVBQUUsT0FBTyxFQUFlLGFBQWEsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7O0FBaUJ0QyxNQUFNLE9BQU8sd0JBQXdCO0lBZnJDO1FBZ0JFLFlBQU8sR0FBRyxLQUFLLENBQW1CLEVBQUUsbURBQUMsQ0FBQztLQWlCdkM7SUFmQyxzQkFBc0IsQ0FBQyxDQUErQixFQUFFLElBQVk7UUFDbEUsSUFBSSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMzQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtvQkFDekIsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsRSxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFUyxJQUFJLENBQUMsS0FBNkI7UUFDMUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0FqQlUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsOFBDNUJyQyxzM0JBaUJBLDJDREFJLFlBQVksOEJBQ1osV0FBVywrVkFDWCxXQUFXLHNoQkFDWCxPQUFPLHdjQUNQLGFBQWEsOEZBQ2IsY0FBYyw4QkFDZCxpQkFBaUIsK0hBQ2pCLGNBQWMsa1NBQ2QsbUJBQW1COzsyRkFHVix3QkFBd0I7a0JBZnBDLFNBQVM7K0JBQ0UsbUJBQW1CLFdBRXBCO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3dCQUNYLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFN3aXRjaE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zd2l0Y2gnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5cbmltcG9ydCB7IEFYUENvbHVtblF1ZXJ5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcmFnSGFuZGxlLCBDZGtEcm9wTGlzdCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtcXVlcnktY29sdW1ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVyeS1jb2x1bW5zLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDZGtEcm9wTGlzdCxcbiAgICBDZGtEcmFnLFxuICAgIENka0RyYWdIYW5kbGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhTd2l0Y2hNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQUXVlcnlDb2x1bW5zQ29tcG9uZW50IHtcbiAgY29sdW1ucyA9IG1vZGVsPEFYUENvbHVtblF1ZXJ5W10+KFtdKTtcblxuICBoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8Ym9vbGVhbj4sIG5hbWU6IHN0cmluZykge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLmNvbHVtbnMudXBkYXRlKChwcmV2KSA9PiB7XG4gICAgICAgIHJldHVybiBwcmV2Lm1hcCgoYzogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGMubmFtZSA9PT0gbmFtZSA/IHsgLi4uYywgdmlzaWJsZTogZS52YWx1ZSA/PyB0cnVlIH0gOiBjO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDx1bmtub3duW10+KSB7XG4gICAgY29uc3QgY29sdW1ucyA9IGNsb25lRGVlcCh0aGlzLmNvbHVtbnMoKSk7XG4gICAgbW92ZUl0ZW1JbkFycmF5KGNvbHVtbnMsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XG4gICAgdGhpcy5jb2x1bW5zLnNldChjb2x1bW5zKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTQgYXgtc2VsZWN0LW5vbmVcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMyBheC13LWZ1bGwgYXgtc29ydGVkLWxpc3QgYXgtbWF4LWgtW2NhbGMoMTAwdmgtMjgwcHgpXSBheC1vdmVyZmxvdy1hdXRvXCI+XG4gICAgQGZvciAoaXRlbSBvZiBjb2x1bW5zKCk7IHRyYWNrIGl0ZW0ubmFtZSkge1xuICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtcHktMSBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1iZXR3ZWVuXCIgY2RrRHJhZyBjZGtEcmFnQm91bmRhcnk9XCIuYXgtc29ydGVkLWxpc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWdyaXAtZG90cy12ZXJ0aWNhbCBheC1jdXJzb3ItbW92ZVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICA8cCBjbGFzcz1cImF4LWZvbnQtbWVkaXVtIGF4LXRleHQtc21cIj57eyBpdGVtLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YXgtc3dpdGNoXG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwiaXRlbS52aXNpYmxlXCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSgkZXZlbnQsIGl0ZW0ubmFtZSlcIlxuICAgICAgICA+PC9heC1zd2l0Y2g+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=","import { Component, ViewEncapsulation, input, computed, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/label\";\nimport * as i2 from \"@acorex/components/check-box\";\nimport * as i3 from \"@acorex/platform/layout/builder\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"@acorex/core/translation\";\nexport class AXPCompareViewComponent {\n constructor() {\n //#region ---- Component Properties ----\n this.inputs = input(...(ngDevMode ? [undefined, { debugName: \"inputs\" }] : []));\n this.showOnlyChanges = signal(false, ...(ngDevMode ? [{ debugName: \"showOnlyChanges\" }] : []));\n this.mode = input('compare', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.removedObjects = signal([], ...(ngDevMode ? [{ debugName: \"removedObjects\" }] : []));\n this.isChangesMode = computed(() => this.mode() === 'changes', ...(ngDevMode ? [{ debugName: \"isChangesMode\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n /**\n * Filtered fields based on showOnlyChanges toggle\n */\n this.filteredFields = computed(() => {\n const fields = this.inputs()?.fields ?? [];\n // Set readOnly to true for all fields\n fields.forEach(field => {\n field.widget.options = {\n ...field.widget.options,\n allowEdit: false,\n readOnly: true,\n };\n });\n if (!this.showOnlyChanges()) {\n return fields;\n }\n // Filter to show only fields where values differ across objects\n return fields.filter(field => this.hasUnequalValues(field.path));\n }, ...(ngDevMode ? [{ debugName: \"filteredFields\" }] : []));\n this.remainingObjects = computed(() => {\n const objects = this.inputs()?.objects ?? [];\n return objects.filter(obj => !this.removedObjects().includes(obj.id));\n }, ...(ngDevMode ? [{ debugName: \"remainingObjects\" }] : []));\n }\n //#endregion\n //#region ---- Utility Methods ----\n /**\n * Check if a field value will change in the next object (to show arrow in current cell)\n */\n hasValueChangingToNext(fieldPath, currentObjectIndex) {\n const objects = this.remainingObjects();\n if (currentObjectIndex >= objects.length - 1)\n return false;\n const currentValue = objects[currentObjectIndex]?.context[fieldPath];\n const nextValue = objects[currentObjectIndex + 1]?.context[fieldPath];\n return !this.areValuesEqual(currentValue, nextValue);\n }\n /**\n * Check if a field value has changed compared to the previous object\n */\n hasValueChangedFromPrevious(fieldPath, currentObjectIndex) {\n const objects = this.remainingObjects();\n if (currentObjectIndex === 0 || objects.length <= 1)\n return false;\n const currentValue = objects[currentObjectIndex]?.context[fieldPath];\n const previousValue = objects[currentObjectIndex - 1]?.context[fieldPath];\n return !this.areValuesEqual(currentValue, previousValue);\n }\n /**\n * Check if a field has unequal values across objects\n */\n hasUnequalValues(fieldPath) {\n const objects = this.remainingObjects();\n if (objects.length <= 1)\n return false;\n const values = objects.map(obj => obj.context[fieldPath]);\n const firstValue = values[0];\n return values.some(value => !this.areValuesEqual(value, firstValue));\n }\n /**\n * Check if a field has equal values across objects\n */\n hasEqualValues(fieldPath) {\n const objects = this.remainingObjects();\n if (objects.length <= 1)\n return false;\n const values = objects.map(obj => obj.context[fieldPath]);\n const firstValue = values[0];\n return values.every(value => this.areValuesEqual(value, firstValue));\n }\n /**\n * Compare two values for equality (deep comparison for objects/arrays)\n */\n areValuesEqual(value1, value2) {\n if (value1 === value2)\n return true;\n if (value1 == null || value2 == null)\n return value1 === value2;\n if (typeof value1 !== typeof value2)\n return false;\n if (typeof value1 === 'object') {\n return JSON.stringify(value1) === JSON.stringify(value2);\n }\n return false;\n }\n /**\n * Toggle the show only changes filter\n */\n toggleShowOnlyChanges() {\n this.showOnlyChanges.update(value => !value);\n }\n /**\n * Remove an object from the comparison\n */\n removeObject(objectId) {\n this.removedObjects.update(objects => [...objects, objectId]);\n }\n //#endregion\n //#region ---- Lifecycle Methods ----\n ngOnInit() {\n }\n ngOnDestroy() {\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPCompareViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPCompareViewComponent, isStandalone: true, selector: \"axp-compare-view\", inputs: { inputs: { classPropertyName: \"inputs\", publicName: \"inputs\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], ngImport: i0, template: \"<!--\\n #region ---- Compare View Table Layout ----\\n-->\\n<div class=\\\"axp-compare-view\\\">\\n <div class=\\\"__table-container\\\">\\n <table class=\\\"__table\\\">\\n <thead class=\\\"__thead\\\">\\n <tr class=\\\"__header-row\\\">\\n <th class=\\\"__field-header\\\">\\n <ax-check-box\\n [value]=\\\"showOnlyChanges()\\\"\\n (valueChange)=\\\"toggleShowOnlyChanges()\\\"\\n class=\\\"__show-changes-toggle\\\"\\n >\\n <ax-label>\\n {{ '@activity-log:compare-view.show-only-differences' | translate | async }}\\n </ax-label>\\n </ax-check-box>\\n </th>\\n @for (obj of remainingObjects(); track obj.id) {\\n <th class=\\\"__object-header\\\" [attr.data-id]=\\\"obj.id\\\">\\n <div class=\\\"__object-title\\\" [title]=\\\"obj.description\\\">\\n <span>{{ obj.title | translate | async }}</span>\\n @if (remainingObjects().length > 2) {\\n <span class=\\\"__remove-object-button\\\" (click)=\\\"removeObject(obj.id)\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </span>\\n }\\n </div>\\n </th>\\n }\\n </tr>\\n </thead>\\n <tbody class=\\\"__tbody\\\">\\n @for (field of filteredFields(); track field.path; let i = $index) {\\n <tr\\n class=\\\"__row\\\"\\n [class.__row--odd]=\\\"i % 2 === 1\\\"\\n [class.__row--has-differences]=\\\"hasUnequalValues(field.path)\\\"\\n [class.__row--has-equal-values]=\\\"hasEqualValues(field.path)\\\"\\n >\\n <td class=\\\"__field-cell\\\">\\n <div class=\\\"__field-content\\\">\\n <div class=\\\"__field-title\\\">\\n {{ field.title | translate | async }}\\n </div>\\n @if (field.description) {\\n <div class=\\\"__field-description\\\">{{ field.description }}</div>\\n }\\n </div>\\n </td>\\n @for (obj of remainingObjects(); track obj.id; let objIndex = $index) {\\n <td\\n class=\\\"__object-cell\\\"\\n [attr.data-id]=\\\"obj.id\\\"\\n [class.__cell--changed]=\\\"hasValueChangedFromPrevious(field.path, objIndex) && isChangesMode()\\\"\\n >\\n @if (obj.context[field.path] !== undefined) {\\n <div class=\\\"__object-content\\\">\\n <axp-widgets-container [context]=\\\"obj.context\\\">\\n <ng-container axp-widget-renderer [node]=\\\"field.widget\\\" [mode]=\\\"'view'\\\"></ng-container>\\n </axp-widgets-container>\\n </div>\\n } @else {\\n <div class=\\\"__object-placeholder\\\">---</div>\\n }\\n @if (hasValueChangingToNext(field.path, objIndex) && isChangesMode()) {\\n <div class=\\\"__change-indicator\\\">\\n <i class=\\\"fa-light fa-arrow-right\\\"></i>\\n </div>\\n }\\n </td>\\n }\\n </tr>\\n }\\n </tbody>\\n </table>\\n </div>\\n</div>\\n<!--\\n #endregion\\n-->\\n\", styles: [\".axp-compare-view{display:flex;height:100%;width:100%;flex-direction:column;border-radius:.375rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));position:relative}.axp-compare-view .__filter-controls{flex-shrink:0;border-bottom-width:1px;padding:1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.axp-compare-view .__filter-controls .__show-changes-toggle{font-size:.875rem;line-height:1.25rem}.axp-compare-view .__table-container{flex:1 1 0%;overflow:auto;position:relative}.axp-compare-view .__table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.axp-compare-view .__table .__thead{position:-webkit-sticky;position:sticky;top:0;z-index:20}.axp-compare-view .__table .__thead .__header-row .__field-header{width:14rem;border-bottom-width:1px;border-right-width:1px;padding:.75rem 1rem;text-align:left;font-weight:700;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface));position:-webkit-sticky;position:sticky;left:0;z-index:25}.axp-compare-view .__table .__thead .__header-row .__object-header{position:relative;border-bottom-width:1px;padding:.75rem 1rem;text-align:center;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface));min-width:250px;width:250px}.axp-compare-view .__table .__thead .__header-row .__object-header .__object-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;font-weight:600}.axp-compare-view .__table .__thead .__header-row .__object-header .__object-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-compare-view .__table .__thead .__header-row .__object-header .__remove-object-button{display:flex;width:1.5rem;height:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));font-size:.875rem;line-height:1.25rem;position:absolute;top:50%;inset-inline-end:0px;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.axp-compare-view .__table .__thead .__header-row .__object-header .__remove-object-button:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-600),var(--tw-text-opacity, 1))}.axp-compare-view .__table .__tbody .__row{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axp-compare-view .__table .__tbody .__row.__row--odd{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-compare-view .__table .__tbody .__row.__row--has-differences{border-left-width:4px;--tw-border-opacity: 1;border-left-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell{background-color:rgba(var(--ax-sys-color-warning-500),var(--tw-bg-opacity, 1));--tw-bg-opacity: .05}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values{border-left-width:4px;--tw-border-opacity: 1;border-left-color:rgba(var(--ax-sys-color-success-500),var(--tw-border-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell{background-color:rgba(var(--ax-sys-color-success-500),var(--tw-bg-opacity, 1));--tw-bg-opacity: .05}.axp-compare-view .__table .__tbody .__row .__field-cell{width:14rem;border-bottom-width:1px;border-right-width:1px;padding:.75rem 1rem;vertical-align:top;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));position:-webkit-sticky;position:sticky;left:0;z-index:15}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content{display:flex;flex-direction:column;gap:.25rem}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content .__field-title{font-weight:500}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content .__field-description{font-size:.75rem;line-height:1rem;opacity:.75}.axp-compare-view .__table .__tbody .__row .__object-cell{border-bottom-width:1px;padding:.75rem 1rem;text-align:center;vertical-align:middle;position:relative}.axp-compare-view .__table .__tbody .__row .__object-cell.__cell--changed .__object-content{border-width:1px;border-style:dashed;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-200),var(--tw-border-opacity, 1));padding:.5rem}.axp-compare-view .__table .__tbody .__row .__object-cell .__object-content{position:relative;display:flex;align-items:center;justify-content:center}.axp-compare-view .__table .__tbody .__row .__object-cell .__change-indicator{position:absolute;inset-inline-end:-.25rem;top:50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));line-height:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-500),var(--tw-text-opacity, 1));font-size:.875rem}.axp-compare-view .__table .__tbody .__row .__object-cell .__object-placeholder{opacity:.75}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell{border-inline-start-width:4px;--tw-border-opacity: 1;border-inline-start-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-50),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-900),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell{border-inline-start-width:4px;--tw-border-opacity: 1;border-inline-start-color:rgba(var(--ax-sys-color-success-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-50),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-900),var(--tw-bg-opacity, 1))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: \n // Angular\n CommonModule }, { kind: \"ngmodule\", type: \n // ACoreX\n AXFormModule }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i1.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXCheckBoxModule }, { kind: \"component\", type: i2.AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"isLoading\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: \n // Platform\n AXPLayoutBuilderModule }, { kind: \"component\", type: i3.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i3.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i5.AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPCompareViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-compare-view', imports: [\n // Angular\n CommonModule,\n // ACoreX\n AXFormModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXTranslationModule,\n // Platform\n AXPLayoutBuilderModule\n ], encapsulation: ViewEncapsulation.None, providers: [], template: \"<!--\\n #region ---- Compare View Table Layout ----\\n-->\\n<div class=\\\"axp-compare-view\\\">\\n <div class=\\\"__table-container\\\">\\n <table class=\\\"__table\\\">\\n <thead class=\\\"__thead\\\">\\n <tr class=\\\"__header-row\\\">\\n <th class=\\\"__field-header\\\">\\n <ax-check-box\\n [value]=\\\"showOnlyChanges()\\\"\\n (valueChange)=\\\"toggleShowOnlyChanges()\\\"\\n class=\\\"__show-changes-toggle\\\"\\n >\\n <ax-label>\\n {{ '@activity-log:compare-view.show-only-differences' | translate | async }}\\n </ax-label>\\n </ax-check-box>\\n </th>\\n @for (obj of remainingObjects(); track obj.id) {\\n <th class=\\\"__object-header\\\" [attr.data-id]=\\\"obj.id\\\">\\n <div class=\\\"__object-title\\\" [title]=\\\"obj.description\\\">\\n <span>{{ obj.title | translate | async }}</span>\\n @if (remainingObjects().length > 2) {\\n <span class=\\\"__remove-object-button\\\" (click)=\\\"removeObject(obj.id)\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </span>\\n }\\n </div>\\n </th>\\n }\\n </tr>\\n </thead>\\n <tbody class=\\\"__tbody\\\">\\n @for (field of filteredFields(); track field.path; let i = $index) {\\n <tr\\n class=\\\"__row\\\"\\n [class.__row--odd]=\\\"i % 2 === 1\\\"\\n [class.__row--has-differences]=\\\"hasUnequalValues(field.path)\\\"\\n [class.__row--has-equal-values]=\\\"hasEqualValues(field.path)\\\"\\n >\\n <td class=\\\"__field-cell\\\">\\n <div class=\\\"__field-content\\\">\\n <div class=\\\"__field-title\\\">\\n {{ field.title | translate | async }}\\n </div>\\n @if (field.description) {\\n <div class=\\\"__field-description\\\">{{ field.description }}</div>\\n }\\n </div>\\n </td>\\n @for (obj of remainingObjects(); track obj.id; let objIndex = $index) {\\n <td\\n class=\\\"__object-cell\\\"\\n [attr.data-id]=\\\"obj.id\\\"\\n [class.__cell--changed]=\\\"hasValueChangedFromPrevious(field.path, objIndex) && isChangesMode()\\\"\\n >\\n @if (obj.context[field.path] !== undefined) {\\n <div class=\\\"__object-content\\\">\\n <axp-widgets-container [context]=\\\"obj.context\\\">\\n <ng-container axp-widget-renderer [node]=\\\"field.widget\\\" [mode]=\\\"'view'\\\"></ng-container>\\n </axp-widgets-container>\\n </div>\\n } @else {\\n <div class=\\\"__object-placeholder\\\">---</div>\\n }\\n @if (hasValueChangingToNext(field.path, objIndex) && isChangesMode()) {\\n <div class=\\\"__change-indicator\\\">\\n <i class=\\\"fa-light fa-arrow-right\\\"></i>\\n </div>\\n }\\n </td>\\n }\\n </tr>\\n }\\n </tbody>\\n </table>\\n </div>\\n</div>\\n<!--\\n #endregion\\n-->\\n\", styles: [\".axp-compare-view{display:flex;height:100%;width:100%;flex-direction:column;border-radius:.375rem;border-width:1px;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));position:relative}.axp-compare-view .__filter-controls{flex-shrink:0;border-bottom-width:1px;padding:1rem;background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.axp-compare-view .__filter-controls .__show-changes-toggle{font-size:.875rem;line-height:1.25rem}.axp-compare-view .__table-container{flex:1 1 0%;overflow:auto;position:relative}.axp-compare-view .__table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.axp-compare-view .__table .__thead{position:-webkit-sticky;position:sticky;top:0;z-index:20}.axp-compare-view .__table .__thead .__header-row .__field-header{width:14rem;border-bottom-width:1px;border-right-width:1px;padding:.75rem 1rem;text-align:left;font-weight:700;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface));position:-webkit-sticky;position:sticky;left:0;z-index:25}.axp-compare-view .__table .__thead .__header-row .__object-header{position:relative;border-bottom-width:1px;padding:.75rem 1rem;text-align:center;background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface));min-width:250px;width:250px}.axp-compare-view .__table .__thead .__header-row .__object-header .__object-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;font-weight:600}.axp-compare-view .__table .__thead .__header-row .__object-header .__object-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-compare-view .__table .__thead .__header-row .__object-header .__remove-object-button{display:flex;width:1.5rem;height:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-light-surface),var(--tw-bg-opacity, 1));font-size:.875rem;line-height:1.25rem;position:absolute;top:50%;inset-inline-end:0px;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.axp-compare-view .__table .__thead .__header-row .__object-header .__remove-object-button:hover{--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-danger-100),var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-danger-600),var(--tw-text-opacity, 1))}.axp-compare-view .__table .__tbody .__row{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s}.axp-compare-view .__table .__tbody .__row.__row--odd{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-compare-view .__table .__tbody .__row.__row--has-differences{border-left-width:4px;--tw-border-opacity: 1;border-left-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell{background-color:rgba(var(--ax-sys-color-warning-500),var(--tw-bg-opacity, 1));--tw-bg-opacity: .05}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values{border-left-width:4px;--tw-border-opacity: 1;border-left-color:rgba(var(--ax-sys-color-success-500),var(--tw-border-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell{background-color:rgba(var(--ax-sys-color-success-500),var(--tw-bg-opacity, 1));--tw-bg-opacity: .05}.axp-compare-view .__table .__tbody .__row .__field-cell{width:14rem;border-bottom-width:1px;border-right-width:1px;padding:.75rem 1rem;vertical-align:top;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));position:-webkit-sticky;position:sticky;left:0;z-index:15}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content{display:flex;flex-direction:column;gap:.25rem}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content .__field-title{font-weight:500}.axp-compare-view .__table .__tbody .__row .__field-cell .__field-content .__field-description{font-size:.75rem;line-height:1rem;opacity:.75}.axp-compare-view .__table .__tbody .__row .__object-cell{border-bottom-width:1px;padding:.75rem 1rem;text-align:center;vertical-align:middle;position:relative}.axp-compare-view .__table .__tbody .__row .__object-cell.__cell--changed .__object-content{border-width:1px;border-style:dashed;--tw-border-opacity: 1;border-color:rgba(var(--ax-sys-color-warning-200),var(--tw-border-opacity, 1));padding:.5rem}.axp-compare-view .__table .__tbody .__row .__object-cell .__object-content{position:relative;display:flex;align-items:center;justify-content:center}.axp-compare-view .__table .__tbody .__row .__object-cell .__change-indicator{position:absolute;inset-inline-end:-.25rem;top:50%;--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));line-height:1rem;--tw-text-opacity: 1;color:rgba(var(--ax-sys-color-warning-500),var(--tw-text-opacity, 1));font-size:.875rem}.axp-compare-view .__table .__tbody .__row .__object-cell .__object-placeholder{opacity:.75}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell{border-inline-start-width:4px;--tw-border-opacity: 1;border-inline-start-color:rgba(var(--ax-sys-color-warning-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-50),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-differences .__field-cell:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-warning-900),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell{border-inline-start-width:4px;--tw-border-opacity: 1;border-inline-start-color:rgba(var(--ax-sys-color-success-500),var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-50),var(--tw-bg-opacity, 1))}.axp-compare-view .__table .__tbody .__row.__row--has-equal-values .__field-cell:is(.ax-dark *){--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-success-900),var(--tw-bg-opacity, 1))}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jb21wYXJlLXZpZXcvY29tcGFyZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jb21wYXJlLXZpZXcvY29tcGFyZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGlCQUFpQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFpQixNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBOEN4RixNQUFNLE9BQU8sdUJBQXVCO0lBdEJwQztRQXdCSSw0Q0FBNEM7UUFFNUMsV0FBTSxHQUFHLEtBQUssNERBQXdCLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxNQUFNLENBQUMsS0FBSywyREFBQyxDQUFDO1FBQ2hDLFNBQUksR0FBRyxLQUFLLENBQXFCLFNB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Vzt3QkFDWCxzQkFBc0I7cUJBQ3pCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksYUFDMUIsRUFFViIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWENoZWNrQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NoZWNrLWJveCc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuXG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLCBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBDb250ZXh0RGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ29tcGFyZVZpZXdGaWVsZCB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbXBhcmVWaWV3T2JqZWN0IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgY29udGV4dDogQVhQQ29udGV4dERhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ29tcGFyZVZpZXdJbnB1dHMge1xuICAgIGZpZWxkczogQVhQQ29tcGFyZVZpZXdGaWVsZFtdO1xuICAgIG9iamVjdHM6IEFYUENvbXBhcmVWaWV3T2JqZWN0W107XG59XG5cbmV4cG9ydCB0eXBlIEFYUENvbXBhcmVWaWV3TW9kZSA9ICdjb21wYXJlJyB8ICdjaGFuZ2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtY29tcGFyZS12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tcGFyZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY29tcGFyZS12aWV3LmNvbXBvbmVudC5zY3NzJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIEFuZ3VsYXJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICAvLyBBQ29yZVhcbiAgICAgICAgQVhGb3JtTW9kdWxlLFxuICAgICAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgICAgICBBWExhYmVsTW9kdWxlLFxuICAgICAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgICAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgICAgICAvLyBQbGF0Zm9ybVxuICAgICAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tcGFyZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXBvbmVudCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgaW5wdXRzID0gaW5wdXQ8QVhQQ29tcGFyZVZpZXdJbnB1dHM+KCk7XG4gICAgc2hvd09ubHlDaGFuZ2VzID0gc2lnbmFsKGZhbHNlKTtcbiAgICBtb2RlID0gaW5wdXQ8QVhQQ29tcGFyZVZpZXdNb2RlPignY29tcGFyZScpO1xuXG4gICAgcHJpdmF0ZSByZW1vdmVkT2JqZWN0cyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgcHJvdGVjdGVkIGlzQ2hhbmdlc01vZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1vZGUoKSA9PT0gJ2NoYW5nZXMnKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDb21wdXRlZCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogRmlsdGVyZWQgZmllbGRzIGJhc2VkIG9uIHNob3dPbmx5Q2hhbmdlcyB0b2dnbGVcbiAgICAgKi9cbiAgICBmaWx0ZXJlZEZpZWxkcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5pbnB1dHMoKT8uZmllbGRzID8/IFtdO1xuICAgICAgICAvLyBTZXQgcmVhZE9ubHkgdG8gdHJ1ZSBmb3IgYWxsIGZpZWxkc1xuICAgICAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBmaWVsZC53aWRnZXQub3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAuLi5maWVsZC53aWRnZXQub3B0aW9ucyxcbiAgICAgICAgICAgICAgICBhbGxvd0VkaXQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLnNob3dPbmx5Q2hhbmdlcygpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGRzO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlsdGVyIHRvIHNob3cgb25seSBmaWVsZHMgd2hlcmUgdmFsdWVzIGRpZmZlciBhY3Jvc3Mgb2JqZWN0c1xuICAgICAgICByZXR1cm4gZmllbGRzLmZpbHRlcihmaWVsZCA9PiB0aGlzLmhhc1VuZXF1YWxWYWx1ZXMoZmllbGQucGF0aCkpO1xuICAgIH0pO1xuXG4gICAgcmVtYWluaW5nT2JqZWN0cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgb2JqZWN0cyA9IHRoaXMuaW5wdXRzKCk/Lm9iamVjdHMgPz8gW107XG4gICAgICAgIHJldHVybiBvYmplY3RzLmZpbHRlcihvYmogPT4gIXRoaXMucmVtb3ZlZE9iamVjdHMoKS5pbmNsdWRlcyhvYmouaWQpKTtcbiAgICB9KTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBVdGlsaXR5IE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIGZpZWxkIHZhbHVlIHdpbGwgY2hhbmdlIGluIHRoZSBuZXh0IG9iamVjdCAodG8gc2hvdyBhcnJvdyBpbiBjdXJyZW50IGNlbGwpXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGhhc1ZhbHVlQ2hhbmdpbmdUb05leHQoZmllbGRQYXRoOiBzdHJpbmcsIGN1cnJlbnRPYmplY3RJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSB0aGlzLnJlbWFpbmluZ09iamVjdHMoKTtcbiAgICAgICAgaWYgKGN1cnJlbnRPYmplY3RJbmRleCA+PSBvYmplY3RzLmxlbmd0aCAtIDEpIHJldHVybiBmYWxzZTtcblxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBvYmplY3RzW2N1cnJlbnRPYmplY3RJbmRleF0/LmNvbnRleHRbZmllbGRQYXRoXTtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gb2JqZWN0c1tjdXJyZW50T2JqZWN0SW5kZXggKyAxXT8uY29udGV4dFtmaWVsZFBhdGhdO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5hcmVWYWx1ZXNFcXVhbChjdXJyZW50VmFsdWUsIG5leHRWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBmaWVsZCB2YWx1ZSBoYXMgY2hhbmdlZCBjb21wYXJlZCB0byB0aGUgcHJldmlvdXMgb2JqZWN0XG4gICAgICovXG4gICAgaGFzVmFsdWVDaGFuZ2VkRnJvbVByZXZpb3VzKGZpZWxkUGF0aDogc3RyaW5nLCBjdXJyZW50T2JqZWN0SW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvYmplY3RzID0gdGhpcy5yZW1haW5pbmdPYmplY3RzKCk7XG4gICAgICAgIGlmIChjdXJyZW50T2JqZWN0SW5kZXggPT09IDAgfHwgb2JqZWN0cy5sZW5ndGggPD0gMSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IG9iamVjdHNbY3VycmVudE9iamVjdEluZGV4XT8uY29udGV4dFtmaWVsZFBhdGhdO1xuICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gb2JqZWN0c1tjdXJyZW50T2JqZWN0SW5kZXggLSAxXT8uY29udGV4dFtmaWVsZFBhdGhdO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5hcmVWYWx1ZXNFcXVhbChjdXJyZW50VmFsdWUsIHByZXZpb3VzVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgZmllbGQgaGFzIHVuZXF1YWwgdmFsdWVzIGFjcm9zcyBvYmplY3RzXG4gICAgICovXG4gICAgaGFzVW5lcXVhbFZhbHVlcyhmaWVsZFBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvYmplY3RzID0gdGhpcy5yZW1haW5pbmdPYmplY3RzKCk7XG4gICAgICAgIGlmIChvYmplY3RzLmxlbmd0aCA8PSAxKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdmFsdWVzID0gb2JqZWN0cy5tYXAob2JqID0+IG9iai5jb250ZXh0W2ZpZWxkUGF0aF0pO1xuICAgICAgICBjb25zdCBmaXJzdFZhbHVlID0gdmFsdWVzWzBdO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZXMuc29tZSh2YWx1ZSA9PiAhdGhpcy5hcmVWYWx1ZXNFcXVhbCh2YWx1ZSwgZmlyc3RWYWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgZmllbGQgaGFzIGVxdWFsIHZhbHVlcyBhY3Jvc3Mgb2JqZWN0c1xuICAgICAqL1xuICAgIGhhc0VxdWFsVmFsdWVzKGZpZWxkUGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSB0aGlzLnJlbWFpbmluZ09iamVjdHMoKTtcbiAgICAgICAgaWYgKG9iamVjdHMubGVuZ3RoIDw9IDEpIHJldHVybiBmYWxzZTtcblxuICAgICAgICBjb25zdCB2YWx1ZXMgPSBvYmplY3RzLm1hcChvYmogPT4gb2JqLmNvbnRleHRbZmllbGRQYXRoXSk7XG4gICAgICAgIGNvbnN0IGZpcnN0VmFsdWUgPSB2YWx1ZXNbMF07XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlcy5ldmVyeSh2YWx1ZSA9PiB0aGlzLmFyZVZhbHVlc0VxdWFsKHZhbHVlLCBmaXJzdFZhbHVlKSk7XG4gICAgfVxuXG5cblxuXG4gICAgLyoqXG4gICAgICogQ29tcGFyZSB0d28gdmFsdWVzIGZvciBlcXVhbGl0eSAoZGVlcCBjb21wYXJpc29uIGZvciBvYmplY3RzL2FycmF5cylcbiAgICAgKi9cbiAgICBwcml2YXRlIGFyZVZhbHVlc0VxdWFsKHZhbHVlMTogYW55LCB2YWx1ZTI6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodmFsdWUxID09PSB2YWx1ZTIpIHJldHVybiB0cnVlO1xuXG4gICAgICAgIGlmICh2YWx1ZTEgPT0gbnVsbCB8fCB2YWx1ZTIgPT0gbnVsbCkgcmV0dXJuIHZhbHVlMSA9PT0gdmFsdWUyO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUxICE9PSB0eXBlb2YgdmFsdWUyKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUxKSA9PT0gSlNPTi5zdHJpbmdpZnkodmFsdWUyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGUgdGhlIHNob3cgb25seSBjaGFuZ2VzIGZpbHRlclxuICAgICAqL1xuICAgIHRvZ2dsZVNob3dPbmx5Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93T25seUNoYW5nZXMudXBkYXRlKHZhbHVlID0+ICF2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGFuIG9iamVjdCBmcm9tIHRoZSBjb21wYXJpc29uXG4gICAgICovXG4gICAgcmVtb3ZlT2JqZWN0KG9iamVjdElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVkT2JqZWN0cy51cGRhdGUob2JqZWN0cyA9PiBbLi4ub2JqZWN0cywgb2JqZWN0SWRdKTtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgTGlmZWN5Y2xlIE1ldGhvZHMgICAtLS0tXG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcblxuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuIiwiPCEtLVxuICAjcmVnaW9uIC0tLS0gICBDb21wYXJlIFZpZXcgVGFibGUgTGF5b3V0ICAgLS0tLVxuLS0+XG48ZGl2IGNsYXNzPVwiYXhwLWNvbXBhcmUtdmlld1wiPlxuICA8ZGl2IGNsYXNzPVwiX190YWJsZS1jb250YWluZXJcIj5cbiAgICA8dGFibGUgY2xhc3M9XCJfX3RhYmxlXCI+XG4gICAgICA8dGhlYWQgY2xhc3M9XCJfX3RoZWFkXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cIl9faGVhZGVyLXJvd1wiPlxuICAgICAgICAgIDx0aCBjbGFzcz1cIl9fZmllbGQtaGVhZGVyXCI+XG4gICAgICAgICAgICA8YXgtY2hlY2stYm94XG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJzaG93T25seUNoYW5nZXMoKVwiXG4gICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJ0b2dnbGVTaG93T25seUNoYW5nZXMoKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiX19zaG93LWNoYW5nZXMtdG9nZ2xlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGF4LWxhYmVsPlxuICAgICAgICAgICAgICAgIHt7ICdAYWN0aXZpdHktbG9nOmNvbXBhcmUtdmlldy5zaG93LW9ubHktZGlmZmVyZW5jZXMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPC9heC1sYWJlbD5cbiAgICAgICAgICAgIDwvYXgtY2hlY2stYm94PlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgQGZvciAob2JqIG9mIHJlbWFpbmluZ09iamVjdHMoKTsgdHJhY2sgb2JqLmlkKSB7XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJfX29iamVjdC1oZWFkZXJcIiBbYXR0ci5kYXRhLWlkXT1cIm9iai5pZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19vYmplY3QtdGl0bGVcIiBbdGl0bGVdPVwib2JqLmRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgb2JqLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmIChyZW1haW5pbmdPYmplY3RzKCkubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJfX3JlbW92ZS1vYmplY3QtYnV0dG9uXCIgKGNsaWNrKT1cInJlbW92ZU9iamVjdChvYmouaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGltZXNcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgPC90aGVhZD5cbiAgICAgIDx0Ym9keSBjbGFzcz1cIl9fdGJvZHlcIj5cbiAgICAgICAgQGZvciAoZmllbGQgb2YgZmlsdGVyZWRGaWVsZHMoKTsgdHJhY2sgZmllbGQucGF0aDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICA8dHJcbiAgICAgICAgICAgIGNsYXNzPVwiX19yb3dcIlxuICAgICAgICAgICAgW2NsYXNzLl9fcm93LS1vZGRdPVwiaSAlIDIgPT09IDFcIlxuICAgICAgICAgICAgW2NsYXNzLl9fcm93LS1oYXMtZGlmZmVyZW5jZXNdPVwiaGFzVW5lcXVhbFZhbHVlcyhmaWVsZC5wYXRoKVwiXG4gICAgICAgICAgICBbY2xhc3MuX19yb3ctLWhhcy1lcXVhbC12YWx1ZXNdPVwiaGFzRXF1YWxWYWx1ZXMoZmllbGQucGF0aClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIl9fZmllbGQtY2VsbFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19maWVsZC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fZmllbGQtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGZpZWxkLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiX19maWVsZC1kZXNjcmlwdGlvblwiPnt7IGZpZWxkLmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICBAZm9yIChvYmogb2YgcmVtYWluaW5nT2JqZWN0cygpOyB0cmFjayBvYmouaWQ7IGxldCBvYmpJbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICBjbGFzcz1cIl9fb2JqZWN0LWNlbGxcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtaWRdPVwib2JqLmlkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuX19jZWxsLS1jaGFuZ2VkXT1cImhhc1ZhbHVlQ2hhbmdlZEZyb21QcmV2aW91cyhmaWVsZC5wYXRoLCBvYmpJbmRleCkgJiYgaXNDaGFuZ2VzTW9kZSgpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAob2JqLmNvbnRleHRbZmllbGQucGF0aF0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fb2JqZWN0LWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJvYmouY29udGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJmaWVsZC53aWRnZXRcIiBbbW9kZV09XCIndmlldydcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX29iamVjdC1wbGFjZWhvbGRlclwiPi0tLTwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGhhc1ZhbHVlQ2hhbmdpbmdUb05leHQoZmllbGQucGF0aCwgb2JqSW5kZXgpICYmIGlzQ2hhbmdlc01vZGUoKSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fY2hhbmdlLWluZGljYXRvclwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWFycm93LXJpZ2h0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIH1cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG48L2Rpdj5cbjwhLS1cbiAgI2VuZHJlZ2lvblxuLS0+XG4iXX0=","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPComponentSlot {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlot, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.8\", type: AXPComponentSlot, isStandalone: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlot, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50LXNsb3QvY29tcG9uZW50LXNsb3QudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBUSxNQUFNLGVBQWUsQ0FBQzs7QUFpQmhELE1BQU0sT0FBZ0IsZ0JBQWdCOzhHQUFoQixnQkFBZ0I7a0dBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFEckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUENvbnRleHREYXRhLCBBWFBPcHRpb25zRGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBDb21wb25lbnRTbG90Q29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICBwcmlvcml0eT86IG51bWJlcjtcbiAgY29tcG9uZW50PzogVHlwZTxhbnk+O1xuICBjb25kaXRpb24/OiAoKGNvbnRleHQ/OiBBWFBDb250ZXh0RGF0YSkgPT4gKGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+KSkgfCBzdHJpbmc7XG4gIGxvYWRDb21wb25lbnQ/OiAoKSA9PiBUeXBlPGFueT4gfCBQcm9taXNlPFR5cGU8YW55Pj47XG4gIG9wdGlvbnM/OiBBWFBPcHRpb25zRGF0YSB8ICgoKSA9PiBBWFBPcHRpb25zRGF0YSkgfCAoKCkgPT4gUHJvbWlzZTxBWFBPcHRpb25zRGF0YT4pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbXBvbmVudFNsb3RNb2R1bGVDb25maWdzIHtcbiAgW3Nsb3ROYW1lOiBzdHJpbmddOiBBWFBDb21wb25lbnRTbG90Q29uZmlnW107XG59XG5cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQQ29tcG9uZW50U2xvdCB7XG4gIGhvc3Q6IGFueTtcbn1cbiJdfQ==","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPComponentSlotRegistryService {\n constructor() {\n this.registry = new Map();\n }\n register(slotName, config) {\n let configs = this.registry.get(slotName) || [];\n // Check if the component is already registered in this slot\n const isDuplicate = configs.some(existingConfig => existingConfig.name === config.name);\n if (!isDuplicate) {\n configs = [...configs, config]; // Add the new configuration\n this.registry.set(slotName, configs);\n }\n }\n get(slotName) {\n return this.registry.get(slotName) || [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlotRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlotRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlotRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QtcmVnaXN0ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50LXNsb3QvY29tcG9uZW50LXNsb3QtcmVnaXN0ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQzs7QUFNckQsTUFBTSxPQUFPLCtCQUErQjtJQUg1QztRQUtZLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztLQWlCbEU7SUFmRyxRQUFRLENBQUMsUUFBZ0IsRUFBRSxNQUE4QjtRQUNyRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFaEQsNERBQTREO1FBQzVELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDZixPQUFPLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtZQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNMLENBQUM7SUFFRCxHQUFHLENBQUMsUUFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0MsQ0FBQzs4R0FsQlEsK0JBQStCO2tIQUEvQiwrQkFBK0IsY0FGNUIsTUFBTTs7MkZBRVQsK0JBQStCO2tCQUgzQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUENvbXBvbmVudFNsb3RDb25maWcgfSBmcm9tIFwiLi9jb21wb25lbnQtc2xvdC50eXBlc1wiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUENvbXBvbmVudFNsb3RSZWdpc3RyeVNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSByZWdpc3RyeSA9IG5ldyBNYXA8c3RyaW5nLCBBWFBDb21wb25lbnRTbG90Q29uZmlnW10+KCk7XG5cbiAgICByZWdpc3RlcihzbG90TmFtZTogc3RyaW5nLCBjb25maWc6IEFYUENvbXBvbmVudFNsb3RDb25maWcpIHtcbiAgICAgICAgbGV0IGNvbmZpZ3MgPSB0aGlzLnJlZ2lzdHJ5LmdldChzbG90TmFtZSkgfHwgW107XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGNvbXBvbmVudCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQgaW4gdGhpcyBzbG90XG4gICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gY29uZmlncy5zb21lKGV4aXN0aW5nQ29uZmlnID0+IGV4aXN0aW5nQ29uZmlnLm5hbWUgPT09IGNvbmZpZy5uYW1lKTtcblxuICAgICAgICBpZiAoIWlzRHVwbGljYXRlKSB7XG4gICAgICAgICAgICBjb25maWdzID0gWy4uLmNvbmZpZ3MsIGNvbmZpZ107IC8vIEFkZCB0aGUgbmV3IGNvbmZpZ3VyYXRpb25cbiAgICAgICAgICAgIHRoaXMucmVnaXN0cnkuc2V0KHNsb3ROYW1lLCBjb25maWdzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldChzbG90TmFtZTogc3RyaW5nKTogQVhQQ29tcG9uZW50U2xvdENvbmZpZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVnaXN0cnkuZ2V0KHNsb3ROYW1lKSB8fCBbXTtcbiAgICB9XG59Il19","import { AXPContextStore, AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { computed, Directive, effect, ElementRef, inject, Injector, input, runInInjectionContext, signal, ViewContainerRef, } from '@angular/core';\nimport { sortBy } from 'lodash-es';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPComponentSlotDirective {\n constructor() {\n this.name = input.required(...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.host = input(...(ngDevMode ? [undefined, { debugName: \"host\" }] : []));\n this.context = input(...(ngDevMode ? [undefined, { debugName: \"context\" }] : []));\n this.elementRef = inject(ElementRef);\n this.registryService = inject(AXPComponentSlotRegistryService);\n this.injector = inject(Injector);\n this.evaluator = inject(AXPExpressionEvaluatorService);\n this.viewContainerRef = inject(ViewContainerRef);\n this.contextStore = inject(AXPContextStore);\n this.isEmpty = computed(() => this._viewCount() === 0, ...(ngDevMode ? [{ debugName: \"isEmpty\" }] : []));\n // Create a signal to store the count of children\n this._viewCount = signal(0, ...(ngDevMode ? [{ debugName: \"_viewCount\" }] : []));\n // Track component references for updates\n this.componentRefs = [];\n // Watch for context changes and update component instances\n effect(() => {\n const currentContext = this.context();\n const currentHost = this.host();\n // Update all component references with new context and host\n this.componentRefs.forEach(componentRef => {\n if (componentRef.instance) {\n Object.assign(componentRef.instance, {\n host: currentHost,\n context: currentContext,\n });\n }\n });\n });\n }\n async ngOnInit() {\n await this.loadComponents();\n // Update the signal after loading\n this._viewCount.set(this.viewContainerRef.length);\n }\n async loadComponents() {\n this.viewContainerRef.clear();\n // Clear previous component references\n this.componentRefs = [];\n const configs = sortBy(this.registryService.get(this.name()), (c) => c.priority ?? 0);\n if (!configs) {\n console.error(`No component found for slot ${this.name()}`);\n return;\n }\n const results = await Promise.all(configs.map(async (c) => ({\n config: c,\n visible: c.condition ? await this.evaluateCondition(c.condition) : true,\n })));\n const slots = results.filter((r) => r.visible).map((r) => r.config);\n this.viewContainerRef.clear();\n await Promise.all(slots.map(async (config) => {\n let component;\n let options = {};\n // load component\n if (typeof config.loadComponent === 'function') {\n await runInInjectionContext(this.injector, async () => {\n component = await config.loadComponent?.();\n });\n }\n else if (config.component) {\n component = config.component;\n }\n // load options\n if (typeof config.options === 'function') {\n await runInInjectionContext(this.injector, async () => {\n const fun = config.options;\n options = await fun();\n });\n }\n else if (config.options) {\n options = await this.evaluator.evaluate(config.options, {});\n }\n // apply options and host\n const componentRef = this.viewContainerRef.createComponent(component);\n // Store the component reference for future updates\n this.componentRefs.push(componentRef);\n Object.assign(componentRef.instance, {\n host: this.host(),\n context: this.context(),\n ...options,\n });\n }));\n }\n async evaluateCondition(condition) {\n if (typeof condition === 'string') {\n const result = await this.evaluator.evaluate(condition, {});\n return result;\n }\n return condition(this.contextStore.data());\n //return condition(this.context());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.8\", type: AXPComponentSlotDirective, isStandalone: false, selector: \"axp-component-slot\", inputs: { name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: true, transformFunction: null }, host: { classPropertyName: \"host\", publicName: \"host\", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: \"context\", publicName: \"context\", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: [\"slot\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlotDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'axp-component-slot',\n standalone: false,\n exportAs: 'slot',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudC1zbG90L2NvbXBvbmVudC1zbG90LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLGVBQWUsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZHLE9BQU8sRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBRUwscUJBQXFCLEVBQ3JCLE1BQU0sRUFFTixnQkFBZ0IsR0FFakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFPckYsTUFBTSxPQUFPLHlCQUF5QjtJQW9CcEM7UUFuQkEsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLCtDQUFVLENBQUM7UUFDaEMsU0FBSSxHQUFHLEtBQUssMERBQU8sQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyw2REFBTyxDQUFDO1FBRWYsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQzFELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25ELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXZDLFlBQU8sR0FBRyxRQUFR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LElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzQyxtQ0FBbUM7SUFDckMsQ0FBQzs4R0F6R1UseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSxNQUFNO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUENvbnRleHREYXRhLCBBWFBDb250ZXh0U3RvcmUsIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIE9uSW5pdCxcbiAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxuICBzaWduYWwsXG4gIFR5cGUsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzb3J0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vY29tcG9uZW50LXNsb3QtcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdheHAtY29tcG9uZW50LXNsb3QnLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgZXhwb3J0QXM6ICdzbG90Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tcG9uZW50U2xvdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIGhvc3QgPSBpbnB1dDxhbnk+KCk7XG4gIGNvbnRleHQgPSBpbnB1dDxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlZ2lzdHJ5U2VydmljZSA9IGluamVjdChBWFBDb21wb25lbnRTbG90UmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgZXZhbHVhdG9yID0gaW5qZWN0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlKTtcbiAgcHVibGljIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHB1YmxpYyBjb250ZXh0U3RvcmUgPSBpbmplY3QoQVhQQ29udGV4dFN0b3JlKTtcblxuICBwdWJsaWMgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3ZpZXdDb3VudCgpID09PSAwKTtcblxuICAvLyBDcmVhdGUgYSBzaWduYWwgdG8gc3RvcmUgdGhlIGNvdW50IG9mIGNoaWxkcmVuXG4gIHByaXZhdGUgX3ZpZXdDb3VudCA9IHNpZ25hbCgwKTtcblxuICAvLyBUcmFjayBjb21wb25lbnQgcmVmZXJlbmNlcyBmb3IgdXBkYXRlc1xuICBwcml2YXRlIGNvbXBvbmVudFJlZnM6IENvbXBvbmVudFJlZjxhbnk+W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBXYXRjaCBmb3IgY29udGV4dCBjaGFuZ2VzIGFuZCB1cGRhdGUgY29tcG9uZW50IGluc3RhbmNlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dCgpO1xuICAgICAgY29uc3QgY3VycmVudEhvc3QgPSB0aGlzLmhvc3QoKTtcblxuICAgICAgLy8gVXBkYXRlIGFsbCBjb21wb25lbnQgcmVmZXJlbmNlcyB3aXRoIG5ldyBjb250ZXh0IGFuZCBob3N0XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZnMuZm9yRWFjaChjb21wb25lbnRSZWYgPT4ge1xuICAgICAgICBpZiAoY29tcG9uZW50UmVmLmluc3RhbmNlKSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcbiAgICAgICAgICAgIGhvc3Q6IGN1cnJlbnRIb3N0LFxuICAgICAgICAgICAgY29udGV4dDogY3VycmVudENvbnRleHQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgYXdhaXQgdGhpcy5sb2FkQ29tcG9uZW50cygpO1xuICAgIC8vIFVwZGF0ZSB0aGUgc2lnbmFsIGFmdGVyIGxvYWRpbmdcbiAgICB0aGlzLl92aWV3Q291bnQuc2V0KHRoaXMudmlld0NvbnRhaW5lclJlZi5sZW5ndGgpO1xuICB9XG5cbiAgYXN5bmMgbG9hZENvbXBvbmVudHMoKSB7XG4gICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgLy8gQ2xlYXIgcHJldmlvdXMgY29tcG9uZW50IHJlZmVyZW5jZXNcbiAgICB0aGlzLmNvbXBvbmVudFJlZnMgPSBbXTtcblxuICAgIGNvbnN0IGNvbmZpZ3MgPSBzb3J0QnkodGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0KHRoaXMubmFtZSgpKSwgKGMpID0+IGMucHJpb3JpdHkgPz8gMCk7XG4gICAgaWYgKCFjb25maWdzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBObyBjb21wb25lbnQgZm91bmQgZm9yIHNsb3QgJHt0aGlzLm5hbWUoKX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY29uZmlncy5tYXAoYXN5bmMgKGMpID0+ICh7XG4gICAgICAgIGNvbmZpZzogYyxcbiAgICAgICAgdmlzaWJsZTogYy5jb25kaXRpb24gPyBhd2FpdCB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKGMuY29uZGl0aW9uKSA6IHRydWUsXG4gICAgICB9KSksXG4gICAgKTtcbiAgICBjb25zdCBzbG90cyA9IHJlc3VsdHMuZmlsdGVyKChyKSA9PiByLnZpc2libGUpLm1hcCgocikgPT4gci5jb25maWcpO1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgc2xvdHMubWFwKGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgbGV0IGNvbXBvbmVudCE6IFR5cGU8YW55PiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBvcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSA9IHt9O1xuICAgICAgICAvLyBsb2FkIGNvbXBvbmVudFxuICAgICAgICBpZiAodHlwZW9mIGNvbmZpZy5sb2FkQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYXdhaXQgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbXBvbmVudCA9IGF3YWl0IGNvbmZpZy5sb2FkQ29tcG9uZW50Py4oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChjb25maWcuY29tcG9uZW50KSB7XG4gICAgICAgICAgY29tcG9uZW50ID0gY29uZmlnLmNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICAvLyBsb2FkIG9wdGlvbnNcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWcub3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGF3YWl0IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmdW4gPSBjb25maWcub3B0aW9ucyBhcyBGdW5jdGlvbjtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBhd2FpdCBmdW4oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChjb25maWcub3B0aW9ucykge1xuICAgICAgICAgIG9wdGlvbnMgPSBhd2FpdCB0aGlzLmV2YWx1YXRvci5ldmFsdWF0ZShjb25maWcub3B0aW9ucywge30pO1xuICAgICAgICB9XG4gICAgICAgIC8vIGFwcGx5IG9wdGlvbnMgYW5kIGhvc3RcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQhKTtcblxuICAgICAgICAvLyBTdG9yZSB0aGUgY29tcG9uZW50IHJlZmVyZW5jZSBmb3IgZnV0dXJlIHVwZGF0ZXNcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWZzLnB1c2goY29tcG9uZW50UmVmKTtcblxuICAgICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xuICAgICAgICAgIGhvc3Q6IHRoaXMuaG9zdCgpLFxuICAgICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dCgpLFxuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVDb25kaXRpb24oY29uZGl0aW9uOiBzdHJpbmcgfCAoKGNvbnRleHQ/OiBBWFBDb250ZXh0RGF0YSkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4pKSB7XG4gICAgaWYgKHR5cGVvZiBjb25kaXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV2YWx1YXRvci5ldmFsdWF0ZShjb25kaXRpb24sIHt9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIHJldHVybiBjb25kaXRpb24odGhpcy5jb250ZXh0U3RvcmUuZGF0YSgpKTtcbiAgICAvL3JldHVybiBjb25kaXRpb24odGhpcy5jb250ZXh0KCkpO1xuICB9XG59XG4iXX0=","import { Inject, NgModule, Optional } from '@angular/core';\nimport { AXPComponentSlotRegistryService } from './component-slot-registery.service';\nimport { AXPComponentSlotDirective } from './component-slot.directive';\nimport * as i0 from \"@angular/core\";\nexport class AXPComponentSlotModule {\n static forRoot(configs) {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n });\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n ]\n };\n }\n static forChild(configs) {\n return {\n ngModule: AXPComponentSlotModule,\n providers: [\n {\n provide: 'AXPComponentSlotModuleFactory',\n useFactory: (registry) => () => {\n if (configs) {\n for (const [key, value] of Object.entries(configs)) {\n value.forEach(v => {\n registry.register(key, v);\n });\n }\n }\n },\n deps: [AXPComponentSlotRegistryService],\n multi: true\n }\n ]\n };\n }\n /**\n * @ignore\n */\n constructor(instances) {\n instances?.forEach(f => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlotModule, deps: [{ token: 'AXPComponentSlotModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlotModule, declarations: [AXPComponentSlotDirective], exports: [AXPComponentSlotDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlotModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPComponentSlotModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [AXPComponentSlotDirective],\n exports: [AXPComponentSlotDirective]\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['AXPComponentSlotModuleFactory']\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudC1zbG90L2NvbXBvbmVudC1zbG90Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUF1QixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU12RSxNQUFNLE9BQU8sc0JBQXNCO0lBRS9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBdUM7UUFDbEQsT0FBTztZQUNILFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwrQkFBK0I7b0JBQ3hDLFVBQVUsRUFBRSxDQUFDLFFBQXlDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTt3QkFDNUQsSUFBSSxPQUFPLEVBQUUsQ0FBQzs0QkFDVixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dDQUNqRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO29DQUNkLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dDQUM5QixDQUFDLENBQUMsQ0FBQTs0QkFDTixDQUFDO3dCQUNMLENBQUM7b0JBQ0wsQ0FBQztvQkFDRCxJQUFJLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztvQkFDdkMsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUF1QztRQUNuRCxPQUFPO1lBQ0gsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLCtCQUErQjtvQkFDeEMsVUFBVSxFQUFFLENBQUMsUUFBeUMsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO3dCQUM1RCxJQUFJLE9BQU8sRUFBRSxDQUFDOzRCQUNWLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0NBQ2pELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0NBQ2QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0NBQzlCLENBQUMsQ0FBQyxDQUFBOzRCQUNOLENBQUM7d0JBQ0wsQ0FBQztvQkFDTCxDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLCtCQUErQixDQUFDO29CQUN2QyxLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUVKO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQWlFLFNBQWdCO1FBQzdFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkIsQ0FBQyxFQUFFLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBdERRLHNCQUFzQixrQkFrREMsK0JBQStCOytHQWxEdEQsc0JBQXNCLGlCQUhoQix5QkFBeUIsYUFDOUIseUJBQXlCOytHQUUxQixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUN2Qzs7MEJBbURnQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBDb21wb25lbnRTbG90TW9kdWxlQ29uZmlncyB9IGZyb20gJy4vY29tcG9uZW50LXNsb3QudHlwZXMnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vY29tcG9uZW50LXNsb3QtcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdERpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50LXNsb3QuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtBWFBDb21wb25lbnRTbG90RGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbQVhQQ29tcG9uZW50U2xvdERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tcG9uZW50U2xvdE1vZHVsZSB7XG5cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWdzPzogQVhQQ29tcG9uZW50U2xvdE1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUENvbXBvbmVudFNsb3RNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBBWFBDb21wb25lbnRTbG90TW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiAnQVhQQ29tcG9uZW50U2xvdE1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYUENvbXBvbmVudFNsb3RSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25maWdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlncykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKGtleSwgdik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQVhQQ29tcG9uZW50U2xvdFJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHN0YXRpYyBmb3JDaGlsZChjb25maWdzPzogQVhQQ29tcG9uZW50U2xvdE1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUENvbXBvbmVudFNsb3RNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBBWFBDb21wb25lbnRTbG90TW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiAnQVhQQ29tcG9uZW50U2xvdE1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYUENvbXBvbmVudFNsb3RSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25maWdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlncykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKGtleSwgdik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQVhQQ29tcG9uZW50U2xvdFJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoJ0FYUENvbXBvbmVudFNsb3RNb2R1bGVGYWN0b3J5JykgaW5zdGFuY2VzOiBhbnlbXSkge1xuICAgICAgICBpbnN0YW5jZXM/LmZvckVhY2goZiA9PiB7XG4gICAgICAgICAgICBmKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxufVxuIl19","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDataTableModule, } from '@acorex/components/data-table';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal, viewChild } from '@angular/core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPCategoryTreeComponent } from '../category-tree';\nimport { isEmpty, isNil } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/cdk/common\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/data-table\";\nimport * as i5 from \"@acorex/components/search-box\";\nimport * as i6 from \"@acorex/platform/layout/builder\";\nimport * as i7 from \"@angular/common\";\nimport * as i8 from \"@acorex/core/translation\";\n//#endregion\nexport class AXPDataSelectorComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n //#region ---- Properties ----\n this.config = signal({\n title: '',\n dataSource: null,\n columns: [],\n selectionMode: 'single',\n searchFields: [],\n parentField: undefined,\n allowCreate: false\n }, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.searchTerm = '';\n this.grid = viewChild('grid', ...(ngDevMode ? [{ debugName: \"grid\" }] : []));\n this.initialSelectedItems = [];\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n // Category Filter State\n this.activeCategoryFilter = signal(null, ...(ngDevMode ? [{ debugName: \"activeCategoryFilter\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n this.allowSelect = computed(() => this.selectedItems().length > 0, ...(ngDevMode ? [{ debugName: \"allowSelect\" }] : []));\n this.hasSearch = computed(() => {\n const searchFields = this.config().searchFields;\n return searchFields && searchFields.length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasSearch\" }] : []));\n this.searchPlaceholder = computed(() => {\n const searchFields = this.config().searchFields;\n if (!searchFields || searchFields.length === 0) {\n return 'Search...';\n }\n return `Search in ${searchFields.join(', ')}...`;\n }, ...(ngDevMode ? [{ debugName: \"searchPlaceholder\" }] : []));\n // Category Tree Configuration\n this.categoryTreeConfig = computed(() => ({\n textField: 'title',\n valueField: 'id',\n showCheckbox: false,\n searchable: true,\n searchPlaceholder: '@general:terms.interface.category.search.placeholder',\n emptyStateTitle: '@general:terms.interface.category.search.no-records.title',\n emptyStateDescription: '@general:terms.interface.category.search.no-records.description',\n emptyStateIcon: 'fa-light fa-folder-open',\n }), ...(ngDevMode ? [{ debugName: \"categoryTreeConfig\" }] : []));\n // Category Tree Actions (no CRUD in filter mode)\n this.categoryTreeActions = computed(() => ({\n canCreate: false,\n canUpdate: false,\n canDelete: false,\n canCreateChild: false,\n }), ...(ngDevMode ? [{ debugName: \"categoryTreeActions\" }] : []));\n }\n //#endregion\n //#region ---- Lifecycle Methods ----\n ngOnInit() {\n // Set config from data passed by popup service\n // The config will be automatically set by AXBasePageComponent\n }\n ngAfterViewInit() {\n if (this.initialSelectedItems.length > 0 && this.grid()) {\n this.grid()?.selectRows(...this.initialSelectedItems);\n }\n if (this.searchTerm) {\n this.applySearchFilter(this.searchTerm);\n }\n else {\n this.applyFilterAndSort();\n }\n }\n //#endregion\n //#region ---- Event Handlers ----\n handleRowDbClick(e) {\n this.close({ items: [e.data] });\n }\n handleRowClick(e) {\n if (this.config().selectionMode === 'multiple') {\n this.selectedItems.set([...this.selectedItems(), e.data]);\n }\n else if (this.selectedItems().length > 0) {\n const selected = this.selectedItems().find((item) => item.id === e.data.id);\n if (selected) {\n this.selectedItems.set(this.selectedItems().filter((item) => item.id !== selected.id));\n }\n else {\n this.selectedItems.set([e.data]);\n }\n }\n else if (this.selectedItems().length === 0) {\n this.selectedItems.set([e.data]);\n }\n else {\n this.selectedItems.set([e.data]);\n }\n }\n async handleSelectedRowsChange(rows) {\n this.selectedItems.set(rows);\n }\n handleChangeSearchValue(e) {\n if (e.isUserInteraction) {\n this.applySearchFilter(e.value);\n }\n }\n async handleCreateNewClick() {\n this.close();\n // TODO: Implement create new functionality\n }\n handleCloseClick() {\n this.close();\n }\n handleSelectClick() {\n this.close({ items: this.selectedItems() });\n }\n async handleExpandRow(row) {\n if (this.grid()) {\n await this.grid().expandRow(row);\n }\n }\n // Category Filter Event Handlers\n handleCategoryFilterClick(node) {\n const categoryConfig = this.config().categoryFilter;\n // Get the filter value from the node\n const filterValue = node.id;\n // Store active filter state\n this.activeCategoryFilter.set({\n node,\n filterValue\n });\n // Apply filter to main data source\n this.applyCategoryFilter(filterValue, categoryConfig);\n }\n clearCategoryFilter() {\n this.activeCategoryFilter.set(null);\n this.config().dataSource.clearFilter();\n this.config().dataSource.refresh();\n }\n //#endregion\n //#region ---- Private Methods ----\n applySearchFilter(searchTerm) {\n const searchFields = this.config().searchFields;\n if (!searchFields || searchFields.length === 0) {\n return;\n }\n if (isEmpty(searchTerm) || isNil(searchTerm)) {\n this.config().dataSource.clearFilter();\n this.config().dataSource.refresh();\n return;\n }\n // Apply search filter to data source\n // This will be implemented based on the data source type\n this.config().dataSource.filter({\n field: 'title',\n value: searchTerm,\n operator: { type: 'contains' }\n });\n this.config().dataSource.refresh();\n }\n applyFilterAndSort() {\n // Apply any existing filters and sorting\n }\n applyCategoryFilter(filterValue, categoryConfig) {\n if (isNil(filterValue) || filterValue === 'root') {\n this.config().dataSource.clearFilter();\n this.config().dataSource.refresh();\n return;\n }\n const filter = {\n field: null,\n logic: 'and',\n operator: null,\n filters: [{\n field: categoryConfig.filterField,\n value: filterValue,\n operator: { type: 'contains' }\n }]\n };\n // Apply filter to data source (adds to existing filters)\n this.config().dataSource.filter(filter);\n this.config().dataSource.refresh();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPDataSelectorComponent, isStandalone: true, selector: \"axp-data-selector\", viewQueries: [{ propertyName: \"grid\", first: true, predicate: [\"grid\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"axp-data-selector\\\">\\n <!-- Main Content Area -->\\n <div class=\\\"axp-data-selector-content\\\" [class.with-category-filter]=\\\"config().categoryFilter?.enabled\\\">\\n <!-- Category Filter Side Panel -->\\n @if (config().categoryFilter?.enabled) {\\n <div class=\\\"axp-category-filter-panel\\\" [style.width]=\\\"config().categoryFilter?.width || '300px'\\\">\\n <axp-category-tree [dataSource]=\\\"config().categoryFilter!.dataSource\\\" [config]=\\\"categoryTreeConfig()\\\"\\n [actions]=\\\"categoryTreeActions()\\\" (nodeClick)=\\\"handleCategoryFilterClick($event)\\\">\\n </axp-category-tree>\\n </div>\\n }\\n\\n <!-- Main Data Area -->\\n <div class=\\\"axp-main-data-area\\\">\\n @if (hasSearch()) {\\n <div class=\\\"ax-w-full ax-mb-2\\\">\\n <ax-search-box [placeholder]=\\\"searchPlaceholder()\\\" [value]=\\\"searchTerm\\\"\\n (onValueChanged)=\\\"handleChangeSearchValue($event)\\\" [axAutoFocus]=\\\"true\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n }\\n\\n <ax-data-table #grid [showFooter]=\\\"false\\\" class=\\\"ax-h-[50vh]\\\" [paging]=\\\"true\\\"\\n [loading]=\\\"{ enabled: true, animation: true }\\\" [dataSource]=\\\"config().dataSource\\\"\\n [parentField]=\\\"config().parentField\\\" (selectedRowsChange)=\\\"handleSelectedRowsChange($event)\\\"\\n (onRowClick)=\\\"handleRowClick($event)\\\" (onRowDbClick)=\\\"handleRowDbClick($event)\\\">\\n @if (config().selectionMode === 'multiple') {\\n <ax-select-column fixed=\\\"start\\\" [width]=\\\"'50px'\\\"></ax-select-column>\\n }\\n\\n @for (col of config().columns; track col.name) {\\n @if (col.visible) {\\n <axp-widget-column-renderer [expandHandler]=\\\"$index === 0 && config().parentField ? true : false\\\"\\n [caption]=\\\"col.title | translate | async\\\" [node]=\\\"{\\n path: col.name,\\n type: col.widget.type,\\n options: col.widget.options,\\n }\\\">\\n </axp-widget-column-renderer>\\n }\\n }\\n </ax-data-table>\\n </div>\\n </div>\\n</div>\\n\\n<ax-footer>\\n <ax-suffix>\\n <ax-button look=\\\"solid\\\" [text]=\\\"('@general:actions.close.title' | translate | async)!\\\"\\n (onClick)=\\\"handleCloseClick()\\\">\\n </ax-button>\\n <ax-button look=\\\"solid\\\" color=\\\"primary\\\" [text]=\\\"('@general:actions.select.title' | translate | async)!\\\"\\n (onClick)=\\\"handleSelectClick()\\\" [disabled]=\\\"allowSelect() === false\\\">\\n </ax-button>\\n <!-- @if (config().allowCreate) {\\n <ax-button\\n look=\\\"solid\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.create.title' | translate | async\\\"\\n (onClick)=\\\"handleCreateNewClick()\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-add\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n } -->\\n </ax-suffix>\\n</ax-footer>\", styles: [\":host{display:block;height:100%}.ax-expand-handler{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:8px}.ax-expand-handler:hover{opacity:.8}.ax-expand-handler.ax-invisible{visibility:hidden}.ax-h-\\\\[50vh\\\\]{height:50vh}.ax-overflow-hidden{overflow:hidden}.ax-flex{display:flex}.ax-flex-col{flex-direction:column}.ax-gap-4{gap:1rem}.ax-p-4{padding:1rem}.ax-w-full{width:100%}.axp-data-selector{display:flex;flex-direction:column;height:100%;overflow:hidden}.axp-data-selector-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color);background:var(--surface-color);flex-shrink:0}.axp-data-selector-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-color)}.axp-data-selector-content{display:flex;flex:1;overflow:hidden}.axp-data-selector-content.with-category-filter .axp-main-data-area{flex:1;overflow:hidden}.axp-data-selector .axp-category-filter-panel{border-right:1px solid var(--border-color);padding:1rem;overflow-y:auto;background:var(--surface-color);flex-shrink:0}.axp-data-selector .axp-main-data-area{flex:1;overflow:hidden;padding:1rem;display:flex;flex-direction:column;gap:1rem}.axp-data-selector .axp-main-data-area .ax-data-table{flex:1;min-height:0}.axp-data-selector .axp-main-data-area .ax-search-box{width:100%}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"directive\", type: i1.AXAutoFocusDirective, selector: \"[axAutoFocus]\", inputs: [\"axAutoFocus\", \"axAutoFocusTime\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDataTableModule }, { kind: \"component\", type: i4.AXDataTableComponent, selector: \"ax-data-table\", inputs: [\"dataSource\", \"selectedRows\", \"parentField\", \"rowTemplate\", \"emptyTemplate\", \"noDataTemplate\", \"alternative\", \"showHeader\", \"fixedHeader\", \"showFooter\", \"fixedFooter\", \"itemHeight\", \"allowReordering\", \"paging\", \"fetchDataMode\", \"loading\", \"focusedRow\"], outputs: [\"selectedRowsChange\", \"focusedRowChange\", \"onRowClick\", \"onRowDbClick\", \"onColumnsOrderChanged\", \"onColumnSizeChanged\", \"onPageChanged\"] }, { kind: \"component\", type: i4.AXRowSelectColumnComponent, selector: \"ax-select-column\", inputs: [\"width\", \"caption\", \"fixed\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i5.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i6.AXPWidgetColumnRendererComponent, selector: \"axp-widget-column-renderer\", inputs: [\"caption\", \"customExpandIcon\", \"customCollapseIcon\", \"customWidth\", \"node\", \"footerTemplate\", \"expandHandler\", \"cellTemplate\", \"headerTemplate\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: AXPCategoryTreeComponent, selector: \"axp-category-tree\", inputs: [\"dataSource\", \"config\", \"actions\", \"events\"], outputs: [\"nodeClick\", \"nodeSelect\", \"nodeCreate\", \"nodeUpdate\", \"nodeDelete\", \"searchChange\", \"collapseChange\"] }, { kind: \"pipe\", type: i7.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-data-selector', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n AXCommonModule,\n AXButtonModule,\n AXFormModule,\n AXDecoratorModule,\n AXDropdownButtonModule,\n AXDataTableModule,\n AXSearchBoxModule,\n AXPLayoutBuilderModule,\n AXTranslationModule,\n AXBadgeModule,\n AXPCategoryTreeComponent,\n ], inputs: [], template: \"<div class=\\\"axp-data-selector\\\">\\n <!-- Main Content Area -->\\n <div class=\\\"axp-data-selector-content\\\" [class.with-category-filter]=\\\"config().categoryFilter?.enabled\\\">\\n <!-- Category Filter Side Panel -->\\n @if (config().categoryFilter?.enabled) {\\n <div class=\\\"axp-category-filter-panel\\\" [style.width]=\\\"config().categoryFilter?.width || '300px'\\\">\\n <axp-category-tree [dataSource]=\\\"config().categoryFilter!.dataSource\\\" [config]=\\\"categoryTreeConfig()\\\"\\n [actions]=\\\"categoryTreeActions()\\\" (nodeClick)=\\\"handleCategoryFilterClick($event)\\\">\\n </axp-category-tree>\\n </div>\\n }\\n\\n <!-- Main Data Area -->\\n <div class=\\\"axp-main-data-area\\\">\\n @if (hasSearch()) {\\n <div class=\\\"ax-w-full ax-mb-2\\\">\\n <ax-search-box [placeholder]=\\\"searchPlaceholder()\\\" [value]=\\\"searchTerm\\\"\\n (onValueChanged)=\\\"handleChangeSearchValue($event)\\\" [axAutoFocus]=\\\"true\\\">\\n <ax-clear-button></ax-clear-button>\\n </ax-search-box>\\n </div>\\n }\\n\\n <ax-data-table #grid [showFooter]=\\\"false\\\" class=\\\"ax-h-[50vh]\\\" [paging]=\\\"true\\\"\\n [loading]=\\\"{ enabled: true, animation: true }\\\" [dataSource]=\\\"config().dataSource\\\"\\n [parentField]=\\\"config().parentField\\\" (selectedRowsChange)=\\\"handleSelectedRowsChange($event)\\\"\\n (onRowClick)=\\\"handleRowClick($event)\\\" (onRowDbClick)=\\\"handleRowDbClick($event)\\\">\\n @if (config().selectionMode === 'multiple') {\\n <ax-select-column fixed=\\\"start\\\" [width]=\\\"'50px'\\\"></ax-select-column>\\n }\\n\\n @for (col of config().columns; track col.name) {\\n @if (col.visible) {\\n <axp-widget-column-renderer [expandHandler]=\\\"$index === 0 && config().parentField ? true : false\\\"\\n [caption]=\\\"col.title | translate | async\\\" [node]=\\\"{\\n path: col.name,\\n type: col.widget.type,\\n options: col.widget.options,\\n }\\\">\\n </axp-widget-column-renderer>\\n }\\n }\\n </ax-data-table>\\n </div>\\n </div>\\n</div>\\n\\n<ax-footer>\\n <ax-suffix>\\n <ax-button look=\\\"solid\\\" [text]=\\\"('@general:actions.close.title' | translate | async)!\\\"\\n (onClick)=\\\"handleCloseClick()\\\">\\n </ax-button>\\n <ax-button look=\\\"solid\\\" color=\\\"primary\\\" [text]=\\\"('@general:actions.select.title' | translate | async)!\\\"\\n (onClick)=\\\"handleSelectClick()\\\" [disabled]=\\\"allowSelect() === false\\\">\\n </ax-button>\\n <!-- @if (config().allowCreate) {\\n <ax-button\\n look=\\\"solid\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@general:actions.create.title' | translate | async\\\"\\n (onClick)=\\\"handleCreateNewClick()\\\"\\n >\\n <ax-prefix>\\n <ax-icon icon=\\\"fa-solid fa-add\\\"></ax-icon>\\n </ax-prefix>\\n </ax-button>\\n } -->\\n </ax-suffix>\\n</ax-footer>\", styles: [\":host{display:block;height:100%}.ax-expand-handler{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-right:8px}.ax-expand-handler:hover{opacity:.8}.ax-expand-handler.ax-invisible{visibility:hidden}.ax-h-\\\\[50vh\\\\]{height:50vh}.ax-overflow-hidden{overflow:hidden}.ax-flex{display:flex}.ax-flex-col{flex-direction:column}.ax-gap-4{gap:1rem}.ax-p-4{padding:1rem}.ax-w-full{width:100%}.axp-data-selector{display:flex;flex-direction:column;height:100%;overflow:hidden}.axp-data-selector-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color);background:var(--surface-color);flex-shrink:0}.axp-data-selector-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-color)}.axp-data-selector-content{display:flex;flex:1;overflow:hidden}.axp-data-selector-content.with-category-filter .axp-main-data-area{flex:1;overflow:hidden}.axp-data-selector .axp-category-filter-panel{border-right:1px solid var(--border-color);padding:1rem;overflow-y:auto;background:var(--surface-color);flex-shrink:0}.axp-data-selector .axp-main-data-area{flex:1;overflow:hidden;padding:1rem;display:flex;flex-direction:column;gap:1rem}.axp-data-selector .axp-main-data-area .ax-data-table{flex:1;min-height:0}.axp-data-selector .axp-main-data-area .ax-search-box{width:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvZGF0YS1zZWxlY3Rvci9kYXRhLXNlbGVjdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9kYXRhLXNlbGVjdG9yL2RhdGEtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBK0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNqSCxPQUFPLEVBRUgsaUJBQWlCLEdBR3BCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVB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USx3QkFBd0I7a0dBQXhCLHdCQUF3QixrTkNoRnJDLGswRkFvRVksazZDREhKLFlBQVksOEJBQ1osY0FBYywySkFDZCxjQUFjLDZYQUNkLFlBQVksOEJBQ1osaUJBQWlCLHFXQUNqQixzQkFBc0IsOEJBQ3RCLGlCQUFpQiwyb0JBQ2pCLGlCQUFpQiw0WUFDakIsc0JBQXNCLG1TQUN0QixtQkFBbUIsOEJBQ25CLGFBQWEsK0JBQ2Isd0JBQXdCOzsyRkFJbkIsd0JBQXdCO2tCQXJCcEMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDTCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2Isd0JBQXdCO3FCQUMzQixVQUNPLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbW1vbk1vZHVsZSwgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBWERhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBBWERhdGFUYWJsZU1vZHVsZSxcbiAgICBBWERhdGFUYWJsZVJvd0NsaWNrLFxuICAgIEFYRGF0YVRhYmxlUm93RGJDbGljayxcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RhdGEtdGFibGUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuXG4vLyBJbXBvcnQgY2F0ZWdvcnkgdHJlZSB0eXBlcyBhbmQgY29tcG9uZW50XG5pbXBvcnQgeyBBWFBDYXRlZ29yeUVudGl0eSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2NvcmVcIjtcbmltcG9ydCB7IEFYUENhdGVnb3J5VHJlZURhdGFTb3VyY2UsIEFYUENhdGVnb3J5VHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL2NhdGVnb3J5LXRyZWUnO1xuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGVzICAgLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUERhdGFTZWxlY3RvckNvbHVtbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgdmlzaWJsZTogYm9vbGVhbjtcbiAgICB3aWRnZXQ6IHtcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICBvcHRpb25zOiBhbnk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBEYXRhU2VsZWN0b3JDb25maWcge1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGF0YVNvdXJjZTogQVhEYXRhU291cmNlPGFueT47XG4gICAgY29sdW1uczogQVhQRGF0YVNlbGVjdG9yQ29sdW1uW107XG4gICAgc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScgfCAnbXVsdGlwbGUnO1xuICAgIHNlYXJjaEZpZWxkcz86IHN0cmluZ1tdO1xuICAgIHBhcmVudEZpZWxkPzogc3RyaW5nO1xuICAgIGFsbG93Q3JlYXRlPzogYm9vbGVhbjtcblxuICAgIC8vIENhdGVnb3J5IEZpbHRlciBDb25maWd1cmF0aW9uXG4gICAgY2F0ZWdvcnlGaWx0ZXI/OiB7XG4gICAgICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICAgIGRhdGFTb3VyY2U6IEFYUENhdGVnb3J5VHJlZURhdGFTb3VyY2U7XG4gICAgICAgIGZpbHRlckZpZWxkOiBzdHJpbmc7IC8vIFJlcXVpcmVkIGZpZWxkIGluIG1haW4gZGF0YVNvdXJjZSB0byBmaWx0ZXIgb25cbiAgICAgICAgZmlsdGVyT3BlcmF0b3I/OiAnZXF1YWwnIHwgJ2NvbnRhaW5zJyB8ICdpbic7IC8vIEhvdyB0byBhcHBseSB0aGUgZmlsdGVyXG4gICAgICAgIHdpZHRoPzogc3RyaW5nOyAvLyBTaWRlIHBhbmVsIHdpZHRoIChkZWZhdWx0OiAnMzAwcHgnKVxuICAgIH07XG59XG5cbi8vI2VuZHJlZ2lvblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2F4cC1kYXRhLXNlbGVjdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2RhdGEtc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBWENvbW1vbk1vZHVsZSxcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYRm9ybU1vZHVsZSxcbiAgICAgICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgICAgIEFYRHJvcGRvd25CdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYRGF0YVRhYmxlTW9kdWxlLFxuICAgICAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICAgICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICAgICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICAgICAgQVhCYWRnZU1vZHVsZSxcbiAgICAgICAgQVhQQ2F0ZWdvcnlUcmVlQ29tcG9uZW50LFxuICAgIF0sXG4gICAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRGF0YVNlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFByb3BlcnRpZXMgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgY29uZmlnID0gc2lnbmFsPEFYUERhdGFTZWxlY3RvckNvbmZpZz4oe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRhdGFTb3VyY2U6IG51bGwhLFxuICAgICAgICBjb2x1bW5zOiBbXSxcbiAgICAgICAgc2VsZWN0aW9uTW9kZTogJ3NpbmdsZScsXG4gICAgICAgIHNlYXJjaEZpZWxkczogW10sXG4gICAgICAgIHBhcmVudEZpZWxkOiB1bmRlZmluZWQsXG4gICAgICAgIGFsbG93Q3JlYXRlOiBmYWxzZVxuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIHNlYXJjaFRlcm06IHN0cmluZyA9ICcnO1xuICAgIHByb3RlY3RlZCBmaWx0ZXI6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbjtcblxuICAgIHByb3RlY3RlZCBncmlkID0gdmlld0NoaWxkPEFYRGF0YVRhYmxlQ29tcG9uZW50PignZ3JpZCcpO1xuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxTZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgIHByb3RlY3RlZCBzZWxlY3RlZEl0ZW1zID0gc2lnbmFsPGFueVtdPihbXSk7XG5cbiAgICAvLyBDYXRlZ29yeSBGaWx0ZXIgU3RhdGVcbiAgICBwcm90ZWN0ZWQgYWN0aXZlQ2F0ZWdvcnlGaWx0ZXIgPSBzaWduYWw8e1xuICAgICAgICBub2RlOiBBWFBDYXRlZ29yeUVudGl0eTtcbiAgICAgICAgZmlsdGVyVmFsdWU6IGFueTtcbiAgICB9IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgQ29tcHV0ZWQgUHJvcGVydGllcyAgIC0tLS1cblxuICAgIHByb3RlY3RlZCBhbGxvd1NlbGVjdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA+IDApO1xuXG4gICAgcHJvdGVjdGVkIGhhc1NlYXJjaCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc2VhcmNoRmllbGRzID0gdGhpcy5jb25maWcoKS5zZWFyY2hGaWVsZHM7XG4gICAgICAgIHJldHVybiBzZWFyY2hGaWVsZHMgJiYgc2VhcmNoRmllbGRzLmxlbmd0aCA+IDA7XG4gICAgfSk7XG5cbiAgICBwcm90ZWN0ZWQgc2VhcmNoUGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEZpZWxkcyA9IHRoaXMuY29uZmlnKCkuc2VhcmNoRmllbGRzO1xuICAgICAgICBpZiAoIXNlYXJjaEZpZWxkcyB8fCBzZWFyY2hGaWVsZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1NlYXJjaC4uLic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGBTZWFyY2ggaW4gJHtzZWFyY2hGaWVsZHMuam9pbignLCAnKX0uLi5gO1xuICAgIH0pO1xuXG4gICAgLy8gQ2F0ZWdvcnkgVHJlZSBDb25maWd1cmF0aW9uXG4gICAgcHJvdGVjdGVkIGNhdGVnb3J5VHJlZUNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgICAgIHRleHRGaWVsZDogJ3RpdGxlJyxcbiAgICAgICAgdmFsdWVGaWVsZDogJ2lkJyxcbiAgICAgICAgc2hvd0NoZWNrYm94OiBmYWxzZSxcbiAgICAgICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UuY2F0ZWdvcnkuc2VhcmNoLnBsYWNlaG9sZGVyJyxcbiAgICAgICAgZW1wdHlTdGF0ZVRpdGxlOiAnQGdlbmVyYWw6dGVybXMuaW50ZXJmYWNlLmNhdGVnb3J5LnNlYXJjaC5uby1yZWNvcmRzLnRpdGxlJyxcbiAgICAgICAgZW1wdHlTdGF0ZURlc2NyaXB0aW9uOiAnQGdlbmVyYWw6dGVybXMuaW50ZXJmYWNlLmNhdGVnb3J5LnNlYXJjaC5uby1yZWNvcmRzLmRlc2NyaXB0aW9uJyxcbiAgICAgICAgZW1wdHlTdGF0ZUljb246ICdmYS1saWdodCBmYS1mb2xkZXItb3BlbicsXG4gICAgfSkpO1xuXG4gICAgLy8gQ2F0ZWdvcnkgVHJlZSBBY3Rpb25zIChubyBDUlVEIGluIGZpbHRlciBtb2RlKVxuICAgIHByb3RlY3RlZCBjYXRlZ29yeVRyZWVBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAgICAgY2FuQ3JlYXRlOiBmYWxzZSxcbiAgICAgICAgY2FuVXBkYXRlOiBmYWxzZSxcbiAgICAgICAgY2FuRGVsZXRlOiBmYWxzZSxcbiAgICAgICAgY2FuQ3JlYXRlQ2hpbGQ6IGZhbHNlLFxuICAgIH0pKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBMaWZlY3ljbGUgTWV0aG9kcyAgIC0tLS1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gU2V0IGNvbmZpZyBmcm9tIGRhdGEgcGFzc2VkIGJ5IHBvcHVwIHNlcnZpY2VcbiAgICAgICAgLy8gVGhlIGNvbmZpZyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc2V0IGJ5IEFYQmFzZVBhZ2VDb21wb25lbnRcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5pbml0aWFsU2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwICYmIHRoaXMuZ3JpZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWQoKT8uc2VsZWN0Um93cyguLi50aGlzLmluaXRpYWxTZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWFyY2hUZXJtKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5U2VhcmNoRmlsdGVyKHRoaXMuc2VhcmNoVGVybSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIEV2ZW50IEhhbmRsZXJzICAgLS0tLVxuXG4gICAgcHJvdGVjdGVkIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XG4gICAgICAgIHRoaXMuY2xvc2UoeyBpdGVtczogW2UuZGF0YV0gfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGhhbmRsZVJvd0NsaWNrKGU6IEFYRGF0YVRhYmxlUm93Q2xpY2spIHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnKCkuc2VsZWN0aW9uTW9kZSA9PT0gJ211bHRpcGxlJykge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbLi4udGhpcy5zZWxlY3RlZEl0ZW1zKCksIGUuZGF0YV0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEl0ZW1zKCkuZmluZCgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gZS5kYXRhLmlkKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQodGhpcy5zZWxlY3RlZEl0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlkICE9PSBzZWxlY3RlZC5pZCkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtlLmRhdGFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW2UuZGF0YV0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbZS5kYXRhXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU2VsZWN0ZWRSb3dzQ2hhbmdlKHJvd3M6IHVua25vd25bXSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KHJvd3MpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVDaGFuZ2VTZWFyY2hWYWx1ZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmFwcGx5U2VhcmNoRmlsdGVyKGUudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNyZWF0ZU5ld0NsaWNrKCkge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIC8vIFRPRE86IEltcGxlbWVudCBjcmVhdGUgbmV3IGZ1bmN0aW9uYWxpdHlcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBoYW5kbGVTZWxlY3RDbGljaygpIHtcbiAgICAgICAgdGhpcy5jbG9zZSh7IGl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXMoKSB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlRXhwYW5kUm93KHJvdzogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmdyaWQoKSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5ncmlkKCkhLmV4cGFuZFJvdyhyb3cpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2F0ZWdvcnkgRmlsdGVyIEV2ZW50IEhhbmRsZXJzXG4gICAgcHJvdGVjdGVkIGhhbmRsZUNhdGVnb3J5RmlsdGVyQ2xpY2sobm9kZTogQVhQQ2F0ZWdvcnlFbnRpdHkpIHtcbiAgICAgICAgY29uc3QgY2F0ZWdvcnlDb25maWcgPSB0aGlzLmNvbmZpZygpLmNhdGVnb3J5RmlsdGVyITtcblxuICAgICAgICAvLyBHZXQgdGhlIGZpbHRlciB2YWx1ZSBmcm9tIHRoZSBub2RlXG4gICAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gbm9kZS5pZDtcblxuICAgICAgICAvLyBTdG9yZSBhY3RpdmUgZmlsdGVyIHN0YXRlXG4gICAgICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnlGaWx0ZXIuc2V0KHtcbiAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBcHBseSBmaWx0ZXIgdG8gbWFpbiBkYXRhIHNvdXJjZVxuICAgICAgICB0aGlzLmFwcGx5Q2F0ZWdvcnlGaWx0ZXIoZmlsdGVyVmFsdWUsIGNhdGVnb3J5Q29uZmlnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY2xlYXJDYXRlZ29yeUZpbHRlcigpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeUZpbHRlci5zZXQobnVsbCk7XG4gICAgICAgIHRoaXMuY29uZmlnKCkuZGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgICAgICB0aGlzLmNvbmZpZygpLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQcml2YXRlIE1ldGhvZHMgICAtLS0tXG5cbiAgICBwcml2YXRlIGFwcGx5U2VhcmNoRmlsdGVyKHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgICAgICBjb25zdCBzZWFyY2hGaWVsZHMgPSB0aGlzLmNvbmZpZygpLnNlYXJjaEZpZWxkcztcbiAgICAgICAgaWYgKCFzZWFyY2hGaWVsZHMgfHwgc2VhcmNoRmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRW1wdHkoc2VhcmNoVGVybSkgfHwgaXNOaWwoc2VhcmNoVGVybSkpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnKCkuZGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgICAgICAgICAgdGhpcy5jb25maWcoKS5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFwcGx5IHNlYXJjaCBmaWx0ZXIgdG8gZGF0YSBzb3VyY2VcbiAgICAgICAgLy8gVGhpcyB3aWxsIGJlIGltcGxlbWVudGVkIGJhc2VkIG9uIHRoZSBkYXRhIHNvdXJjZSB0eXBlXG4gICAgICAgIHRoaXMuY29uZmlnKCkuZGF0YVNvdXJjZS5maWx0ZXIoe1xuICAgICAgICAgICAgZmllbGQ6ICd0aXRsZScsXG4gICAgICAgICAgICB2YWx1ZTogc2VhcmNoVGVybSxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdjb250YWlucycgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb25maWcoKS5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5RmlsdGVyQW5kU29ydCgpIHtcbiAgICAgICAgLy8gQXBwbHkgYW55IGV4aXN0aW5nIGZpbHRlcnMgYW5kIHNvcnRpbmdcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5Q2F0ZWdvcnlGaWx0ZXIoZmlsdGVyVmFsdWU6IGFueSwgY2F0ZWdvcnlDb25maWc6IGFueSkge1xuXG4gICAgICAgIGlmIChpc05pbChmaWx0ZXJWYWx1ZSkgfHwgZmlsdGVyVmFsdWUgPT09ICdyb290Jykge1xuICAgICAgICAgICAgdGhpcy5jb25maWcoKS5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZygpLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsdGVyID0ge1xuICAgICAgICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgICAgICAgbG9naWM6ICdhbmQnIGFzIGNvbnN0LFxuICAgICAgICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICBmaWVsZDogY2F0ZWdvcnlDb25maWcuZmlsdGVyRmllbGQsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlclZhbHVlLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdjb250YWlucycgfVxuICAgICAgICAgICAgfV1cbiAgICAgICAgfSBhcyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb247XG5cblxuICAgICAgICAvLyBBcHBseSBmaWx0ZXIgdG8gZGF0YSBzb3VyY2UgKGFkZHMgdG8gZXhpc3RpbmcgZmlsdGVycylcbiAgICAgICAgdGhpcy5jb25maWcoKS5kYXRhU291cmNlLmZpbHRlcihmaWx0ZXIpO1xuICAgICAgICB0aGlzLmNvbmZpZygpLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuIiwiPGRpdiBjbGFzcz1cImF4cC1kYXRhLXNlbGVjdG9yXCI+XG4gIDwhLS0gTWFpbiBDb250ZW50IEFyZWEgLS0+XG4gIDxkaXYgY2xhc3M9XCJheHAtZGF0YS1zZWxlY3Rvci1jb250ZW50XCIgW2NsYXNzLndpdGgtY2F0ZWdvcnktZmlsdGVyXT1cImNvbmZpZygpLmNhdGVnb3J5RmlsdGVyPy5lbmFibGVkXCI+XG4gICAgPCEtLSBDYXRlZ29yeSBGaWx0ZXIgU2lkZSBQYW5lbCAtLT5cbiAgICBAaWYgKGNvbmZpZygpLmNhdGVnb3J5RmlsdGVyPy5lbmFibGVkKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4cC1jYXRlZ29yeS1maWx0ZXItcGFuZWxcIiBbc3R5bGUud2lkdGhdPVwiY29uZmlnKCkuY2F0ZWdvcnlGaWx0ZXI/LndpZHRoIHx8ICczMDBweCdcIj5cbiAgICAgIDxheHAtY2F0ZWdvcnktdHJlZSBbZGF0YVNvdXJjZV09XCJjb25maWcoKS5jYXRlZ29yeUZpbHRlciEuZGF0YVNvdXJjZVwiIFtjb25maWddPVwiY2F0ZWdvcnlUcmVlQ29uZmlnKClcIlxuICAgICAgICBbYWN0aW9uc109XCJjYXRlZ29yeVRyZWVBY3Rpb25zKClcIiAobm9kZUNsaWNrKT1cImhhbmRsZUNhdGVnb3J5RmlsdGVyQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgPC9heHAtY2F0ZWdvcnktdHJlZT5cbiAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8IS0tIE1haW4gRGF0YSBBcmVhIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJheHAtbWFpbi1kYXRhLWFyZWFcIj5cbiAgICAgIEBpZiAoaGFzU2VhcmNoKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGwgYXgtbWItMlwiPlxuICAgICAgICA8YXgtc2VhcmNoLWJveCBbcGxhY2Vob2xkZXJdPVwic2VhcmNoUGxhY2Vob2xkZXIoKVwiIFt2YWx1ZV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlQ2hhbmdlU2VhcmNoVmFsdWUoJGV2ZW50KVwiIFtheEF1dG9Gb2N1c109XCJ0cnVlXCI+XG4gICAgICAgICAgPGF4LWNsZWFyLWJ1dHRvbj48L2F4LWNsZWFyLWJ1dHRvbj5cbiAgICAgICAgPC9heC1zZWFyY2gtYm94PlxuICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxheC1kYXRhLXRhYmxlICNncmlkIFtzaG93Rm9vdGVyXT1cImZhbHNlXCIgY2xhc3M9XCJheC1oLVs1MHZoXVwiIFtwYWdpbmddPVwidHJ1ZVwiXG4gICAgICAgIFtsb2FkaW5nXT1cInsgZW5hYmxlZDogdHJ1ZSwgYW5pbWF0aW9uOiB0cnVlIH1cIiBbZGF0YVNvdXJjZV09XCJjb25maWcoKS5kYXRhU291cmNlXCJcbiAgICAgICAgW3BhcmVudEZpZWxkXT1cImNvbmZpZygpLnBhcmVudEZpZWxkXCIgKHNlbGVjdGVkUm93c0NoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChvblJvd0NsaWNrKT1cImhhbmRsZVJvd0NsaWNrKCRldmVudClcIiAob25Sb3dEYkNsaWNrKT1cImhhbmRsZVJvd0RiQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICBAaWYgKGNvbmZpZygpLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScpIHtcbiAgICAgICAgPGF4LXNlbGVjdC1jb2x1bW4gZml4ZWQ9XCJzdGFydFwiIFt3aWR0aF09XCInNTBweCdcIj48L2F4LXNlbGVjdC1jb2x1bW4+XG4gICAgICAgIH1cblxuICAgICAgICBAZm9yIChjb2wgb2YgY29uZmlnKCkuY29sdW1uczsgdHJhY2sgY29sLm5hbWUpIHtcbiAgICAgICAgQGlmIChjb2wudmlzaWJsZSkge1xuICAgICAgICA8YXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXIgW2V4cGFuZEhhbmRsZXJdPVwiJGluZGV4ID09PSAwICYmIGNvbmZpZygpLnBhcmVudEZpZWxkID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICBbY2FwdGlvbl09XCJjb2wudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luY1wiIFtub2RlXT1cIntcbiAgICAgICAgICAgICAgICBwYXRoOiBjb2wubmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiBjb2wud2lkZ2V0LnR5cGUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogY29sLndpZGdldC5vcHRpb25zLFxuICAgICAgICAgICAgICB9XCI+XG4gICAgICAgIDwvYXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXI+XG4gICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC9heC1kYXRhLXRhYmxlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48YXgtZm9vdGVyPlxuICA8YXgtc3VmZml4PlxuICAgIDxheC1idXR0b24gbG9vaz1cInNvbGlkXCIgW3RleHRdPVwiKCdAZ2VuZXJhbDphY3Rpb25zLmNsb3NlLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCI+XG4gICAgPC9heC1idXR0b24+XG4gICAgPGF4LWJ1dHRvbiBsb29rPVwic29saWRcIiBjb2xvcj1cInByaW1hcnlcIiBbdGV4dF09XCIoJ0BnZW5lcmFsOmFjdGlvbnMuc2VsZWN0LnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlU2VsZWN0Q2xpY2soKVwiIFtkaXNhYmxlZF09XCJhbGxvd1NlbGVjdCgpID09PSBmYWxzZVwiPlxuICAgIDwvYXgtYnV0dG9uPlxuICAgIDwhLS0gQGlmIChjb25maWcoKS5hbGxvd0NyZWF0ZSkge1xuICAgICAgPGF4LWJ1dHRvblxuICAgICAgICBsb29rPVwic29saWRcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbdGV4dF09XCInQGdlbmVyYWw6YWN0aW9ucy5jcmVhdGUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVDcmVhdGVOZXdDbGljaygpXCJcbiAgICAgID5cbiAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtYWRkXCI+PC9heC1pY29uPlxuICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgIDwvYXgtYnV0dG9uPlxuICAgIH0gLS0+XG4gIDwvYXgtc3VmZml4PlxuPC9heC1mb290ZXI+Il19","import { Injectable, inject, signal } from '@angular/core';\nimport { AXPopupService } from '@acorex/components/popup';\nimport * as i0 from \"@angular/core\";\nexport class AXPDataSelectorService {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.popupService = inject(AXPopupService);\n }\n //#endregion\n //#region ---- Public Methods ----\n /**\n * Open data selector popup\n */\n async open(config) {\n const component = await import('./data-selector.component').then(c => c.AXPDataSelectorComponent);\n const result = await this.popupService.open(component, {\n title: config.title,\n size: config.categoryFilter?.enabled ?\n 'lg'\n : (config.columns.length > 3 ? 'lg' : 'md'),\n data: {\n config: signal(config)\n }\n });\n return result.data || null;\n }\n /**\n * Open data selector with category filter\n */\n async openWithCategoryFilter(config, categoryFilterConfig) {\n const enhancedConfig = {\n ...config,\n categoryFilter: {\n enabled: true,\n ...categoryFilterConfig\n }\n };\n return this.open(enhancedConfig);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataSelectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataSelectorService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDataSelectorService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zZWxlY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2RhdGEtc2VsZWN0b3IvZGF0YS1zZWxlY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBTzFELE1BQU0sT0FBTyxzQkFBc0I7SUFIbkM7UUFLSSwrQ0FBK0M7UUFFOUIsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7S0FnRDFEO0lBOUNHLFlBQVk7SUFFWixzQ0FBc0M7SUFFdEM7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQTZCO1FBQ3BDLE1BQU0sU0FBUyxHQUFHLE1BQU0sTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDbEcsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkQsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNsQyxJQUFJO2dCQUNKLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDL0MsSUFBSSxFQUFFO2dCQUNGLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQ3pCO1NBQ0osQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztJQUMvQixDQUFDO0lBR0Q7O09BRUc7SUFDSCxLQUFLLENBQUMsc0JBQXNCLENBQ3hCLE1BQXFELEVBQ3JELG9CQU1DO1FBRUQsTUFBTSxjQUFjLEdBQTBCO1lBQzFDLEdBQUcsTUFBTTtZQUNULGNBQWMsRUFBRTtnQkFDWixPQUFPLEVBQUUsSUFBSTtnQkFDYixHQUFHLG9CQUFvQjthQUMxQjtTQUNKLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckMsQ0FBQzs4R0FuRFEsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7MkZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBEYXRhU2VsZWN0b3JDb25maWcgfSBmcm9tICcuL2RhdGEtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUENhdGVnb3J5VHJlZURhdGFTb3VyY2UgfSBmcm9tICcuLi9jYXRlZ29yeS10cmVlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBWFBEYXRhU2VsZWN0b3JTZXJ2aWNlIHtcblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgUHVibGljIE1ldGhvZHMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBPcGVuIGRhdGEgc2VsZWN0b3IgcG9wdXBcbiAgICAgKi9cbiAgICBhc3luYyBvcGVuKGNvbmZpZzogQVhQRGF0YVNlbGVjdG9yQ29uZmlnKTogUHJvbWlzZTx7IGl0ZW1zOiBhbnlbXSB9IHwgbnVsbD4ge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSBhd2FpdCBpbXBvcnQoJy4vZGF0YS1zZWxlY3Rvci5jb21wb25lbnQnKS50aGVuKGMgPT4gYy5BWFBEYXRhU2VsZWN0b3JDb21wb25lbnQpO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbXBvbmVudCwge1xuICAgICAgICAgICAgdGl0bGU6IGNvbmZpZy50aXRsZSxcbiAgICAgICAgICAgIHNpemU6IGNvbmZpZy5jYXRlZ29yeUZpbHRlcj8uZW5hYmxlZCA/XG4gICAgICAgICAgICAgICAgJ2xnJ1xuICAgICAgICAgICAgICAgIDogKGNvbmZpZy5jb2x1bW5zLmxlbmd0aCA+IDMgPyAnbGcnIDogJ21kJyksXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgY29uZmlnOiBzaWduYWwoY29uZmlnKVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0LmRhdGEgfHwgbnVsbDtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIE9wZW4gZGF0YSBzZWxlY3RvciB3aXRoIGNhdGVnb3J5IGZpbHRlclxuICAgICAqL1xuICAgIGFzeW5jIG9wZW5XaXRoQ2F0ZWdvcnlGaWx0ZXIoXG4gICAgICAgIGNvbmZpZzogT21pdDxBWFBEYXRhU2VsZWN0b3JDb25maWcsICdjYXRlZ29yeUZpbHRlcic+LFxuICAgICAgICBjYXRlZ29yeUZpbHRlckNvbmZpZzoge1xuICAgICAgICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IEFYUENhdGVnb3J5VHJlZURhdGFTb3VyY2U7XG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogc3RyaW5nO1xuICAgICAgICAgICAgZmlsdGVyT3BlcmF0b3I/OiAnZXF1YWwnIHwgJ2NvbnRhaW5zJyB8ICdpbic7XG4gICAgICAgICAgICB3aWR0aD86IHN0cmluZztcbiAgICAgICAgfVxuICAgICk6IFByb21pc2U8eyBpdGVtczogYW55W10gfSB8IG51bGw+IHtcbiAgICAgICAgY29uc3QgZW5oYW5jZWRDb25maWc6IEFYUERhdGFTZWxlY3RvckNvbmZpZyA9IHtcbiAgICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAgIGNhdGVnb3J5RmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAuLi5jYXRlZ29yeUZpbHRlckNvbmZpZ1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLm9wZW4oZW5oYW5jZWRDb25maWcpO1xuICAgIH1cbn1cbiJdfQ==","import { AXFormComponent, AXFormModule } from '@acorex/components/form';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPGridLayoutDirective } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { AXPLayoutBuilderModule, AXPPageStatus, AXPWidgetContainerComponent, } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { get, isEqual } from 'lodash-es';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutHeaderComponent, AXPThemeLayoutSectionComponent } from '../blocks';\nimport { AXPStateMessageComponent } from '../state-message';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/form\";\nimport * as i2 from \"@acorex/platform/layout/builder\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@acorex/core/translation\";\nexport class AXPDynamicFormComponent {\n constructor() {\n this.evaluatorService = inject(AXPExpressionEvaluatorService);\n /**\n * Tracks the latest scheduled evaluation to ensure last-write-wins for async evaluate\n */\n this.evaluationRunId = 0;\n /**\n * Memoization cache for resolveParamLayout to keep stable object identities\n */\n this.layoutCache = new Map();\n //#region ---- Inputs ----\n /**\n * Form definition containing groups and fields\n */\n this.formDefinition = input.required(...(ngDevMode ? [{ debugName: \"formDefinition\" }] : []));\n /**\n * Form context/model data\n */\n this.context = input.required(...(ngDevMode ? [{ debugName: \"context\" }] : []));\n /**\n * Form appearance and density styling (normal, compact, spacious)\n */\n this.layoutLook = input('normal', ...(ngDevMode ? [{ debugName: \"layoutLook\" }] : []));\n /**\n * Form layout direction and flow (vertical, horizontal, grid)\n */\n this.layoutDirection = input('vertical', ...(ngDevMode ? [{ debugName: \"layoutDirection\" }] : []));\n /**\n * Default form mode. Can be overridden by section/group and field.\n */\n this.mode = input('edit', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n /**\n * Custom layout configuration for form fields\n */\n this.layoutConfig = input({\n positions: {\n default: { colSpan: 12 },\n md: { colSpan: 8 },\n lg: { colSpan: 6 },\n xl: { colSpan: 5 },\n xxl: { colSpan: 4 },\n },\n }, ...(ngDevMode ? [{ debugName: \"layoutConfig\" }] : []));\n this.evaluatedFormDefinition = signal(null, ...(ngDevMode ? [{ debugName: \"evaluatedFormDefinition\" }] : []));\n /**\n * Evaluate definition when inputs change with last-write-wins and deep-equality guard\n */\n this.eff = effect(() => {\n const formDef = this.formDefinition();\n const ctx = this.context();\n const runId = ++this.evaluationRunId;\n (async () => {\n const evaluated = await this.expressionEvaluator(formDef, ctx);\n // Ignore stale results\n if (runId !== this.evaluationRunId) {\n return;\n }\n const prev = this.evaluatedFormDefinition();\n if (!isEqual(prev, evaluated)) {\n this.evaluatedFormDefinition.set(evaluated);\n }\n })();\n }, ...(ngDevMode ? [{ debugName: \"eff\" }] : []));\n //#endregion\n //#region ---- Outputs ----\n /**\n * Emitted when form context changes\n */\n this.contextChange = output();\n /**\n * Emitted when context change is initiated\n */\n this.contextInitiated = output();\n /**\n * Emitted when form becomes valid/invalid\n */\n this.validityChange = output();\n //#endregion\n //#region ---- Properties ----\n this.form = viewChild(AXFormComponent, ...(ngDevMode ? [{ debugName: \"form\" }] : []));\n this.container = viewChild(AXPWidgetContainerComponent, ...(ngDevMode ? [{ debugName: \"container\" }] : []));\n /**\n * Internal context signal for reactivity\n */\n this.internalContext = signal({}, ...(ngDevMode ? [{ debugName: \"internalContext\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n /**\n * Computed layout configuration\n */\n this.computedLayout = computed(() => this.layoutConfig(), ...(ngDevMode ? [{ debugName: \"computedLayout\" }] : []));\n /**\n * Resolve effective mode with precedence: field > group > form\n */\n this.resolveParamMode = (group, param) => {\n const fieldMode = param?.mode;\n const groupMode = group?.mode;\n const formMode = this.mode();\n console.log(fieldMode, groupMode, formMode);\n return (fieldMode || groupMode || formMode || 'edit');\n };\n /**\n * Host classes based on layout look and direction\n */\n this.hostClasses = computed(() => {\n const classes = ['axp-dynamic-form'];\n const look = this.layoutLook();\n const direction = this.layoutDirection();\n const mode = this.mode();\n if (look && look !== 'normal') {\n classes.push(`--look-${look}`);\n }\n if (direction && direction !== 'vertical') {\n classes.push(`--direction-${direction}`);\n }\n if (mode && mode !== 'edit') {\n classes.push(`--mode-${mode}`);\n }\n return classes.join(' ');\n }, ...(ngDevMode ? [{ debugName: \"hostClasses\" }] : []));\n //#endregion\n //#region ---- Effects ----\n /**\n * Effect to sync context changes\n */\n this.#contextSyncEffect = effect(() => {\n const ctx = this.context() ?? {};\n const prev = this.internalContext() ?? {};\n if (!isEqual(prev, ctx)) {\n this.internalContext.set(ctx);\n }\n }, ...(ngDevMode ? [{ debugName: \"#contextSyncEffect\" }] : []));\n /**\n * Effect to handle form status changes\n */\n this.#formStatusEffect = effect(() => {\n const form = this.form();\n if (form) {\n // You can add form status tracking here if needed\n this.container()?.builderService.setStatus(AXPPageStatus.Rendered);\n }\n }, ...(ngDevMode ? [{ debugName: \"#formStatusEffect\" }] : []));\n /**\n * Invalidate memoization cache when layout config or evaluated definition changes\n */\n this.#layoutCacheInvalidationEffect = effect(() => {\n // Depend on layout config and evaluated definition identity\n // Any structural change should flush the cache to ensure correctness\n const _layout = this.layoutConfig();\n const _evaluated = this.evaluatedFormDefinition();\n // Simple invalidation: clear cache when either changes\n this.layoutCache.clear();\n }, ...(ngDevMode ? [{ debugName: \"#layoutCacheInvalidationEffect\" }] : []));\n }\n //#endregion\n //#region ---- Evaluator ----\n async expressionEvaluator(expression, context) {\n const scope = {\n context: {\n eval: (path) => get(context, path),\n },\n };\n return await this.evaluatorService.evaluate(expression, scope);\n }\n /**\n * Resolve effective grid layout for a specific parameter, merging per-parameter override with form layout.\n */\n resolveParamLayout(param) {\n const base = this.layoutConfig();\n const override = param.layout;\n // Build a signature to memoize per param + current base layout snapshot + override\n const signature = JSON.stringify({\n path: param?.path,\n base,\n override,\n });\n const cacheKey = param?.path ?? JSON.stringify(param);\n const cached = this.layoutCache.get(cacheKey);\n if (cached && cached.signature === signature) {\n return cached.config;\n }\n if (override == null) {\n this.layoutCache.set(cacheKey, { signature, config: base });\n return base;\n }\n const normalize = (value, fallback) => typeof value === 'number' && value > 0 ? value : fallback;\n const toConfig = (o) => {\n if (typeof o === 'number') {\n const cfg = {\n positions: {\n default: { colSpan: o },\n md: { colSpan: o },\n lg: { colSpan: o },\n xl: { colSpan: o },\n xxl: { colSpan: o },\n },\n };\n return cfg;\n }\n // When parameter layout object is provided, do NOT fall back to form layout.\n // Use cascading values across breakpoints: default -> md -> lg -> xl -> xxl.\n const d = normalize(o.default, 12);\n const md = normalize(o.md, d);\n const lg = normalize(o.lg, md);\n const xl = normalize(o.xl, lg);\n const xxl = normalize(o.xxl, xl);\n const cfg = {\n positions: {\n default: { colSpan: d },\n md: { colSpan: md },\n lg: { colSpan: lg },\n xl: { colSpan: xl },\n xxl: { colSpan: xxl },\n },\n };\n return cfg;\n };\n const result = toConfig(override);\n this.layoutCache.set(cacheKey, { signature, config: result });\n return result;\n }\n //#endregion\n //#region ---- Lifecycle Methods ----\n ngOnInit() {\n // Initialize internal context with input context\n this.internalContext.set(this.context() ?? {});\n }\n //#endregion\n //#region ---- Effects ----\n /**\n * Effect to sync context changes\n */\n #contextSyncEffect;\n /**\n * Effect to handle form status changes\n */\n #formStatusEffect;\n /**\n * Invalidate memoization cache when layout config or evaluated definition changes\n */\n #layoutCacheInvalidationEffect;\n //#endregion\n //#region ---- Event Handlers ----\n /**\n * Handle context change events from widget container\n */\n handleContextChanged(event) {\n if (event.state === 'initiated') {\n this.contextInitiated.emit(event.data);\n }\n else {\n this.internalContext.set(event.data ?? {});\n this.contextChange.emit(this.internalContext());\n }\n }\n isRequired(param) {\n const validations = param.widget?.options?.['validations'];\n if (Array.isArray(validations)) {\n return validations.some((v) => v?.rule === 'required');\n }\n if (validations && typeof validations === 'object') {\n // Support object-shaped validations like { required: true }\n return Boolean(validations['required']);\n }\n return false;\n }\n //#endregion\n //#region ---- Public Methods ----\n /**\n * Get the form component instance\n */\n getForm() {\n return this.form();\n }\n /**\n * Get current form context\n */\n getContext() {\n return this.internalContext();\n }\n /**\n * Update form context programmatically\n */\n updateContext(context) {\n this.internalContext.set(context);\n }\n /**\n * Validate the form\n */\n async validate() {\n const form = this.form();\n if (form) {\n const isValid = await form.validate();\n this.validityChange.emit(isValid.result);\n return isValid.result;\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPDynamicFormComponent, isStandalone: true, selector: \"axp-dynamic-form\", inputs: { formDefinition: { classPropertyName: \"formDefinition\", publicName: \"formDefinition\", isSignal: true, isRequired: true, transformFunction: null }, context: { classPropertyName: \"context\", publicName: \"context\", isSignal: true, isRequired: true, transformFunction: null }, layoutLook: { classPropertyName: \"layoutLook\", publicName: \"layoutLook\", isSignal: true, isRequired: false, transformFunction: null }, layoutDirection: { classPropertyName: \"layoutDirection\", publicName: \"layoutDirection\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null }, layoutConfig: { classPropertyName: \"layoutConfig\", publicName: \"layoutConfig\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contextChange: \"contextChange\", contextInitiated: \"contextInitiated\", validityChange: \"validityChange\" }, host: { properties: { \"class\": \"hostClasses()\" }, classAttribute: \"axp-dynamic-form\" }, viewQueries: [{ propertyName: \"form\", first: true, predicate: AXFormComponent, descendants: true, isSignal: true }, { propertyName: \"container\", first: true, predicate: AXPWidgetContainerComponent, descendants: true, isSignal: true }], ngImport: i0, template: \"<ax-form>\\n <axp-widgets-container [context]=\\\"internalContext()\\\" (onContextChanged)=\\\"handleContextChanged($event)\\\">\\n <axp-layout-sections>\\n @for (group of evaluatedFormDefinition()?.groups; track group.name) {\\n <axp-layout-section>\\n @if (group.title || group.description) {\\n <axp-layout-header>\\n <axp-layout-title>{{ group.title! | translate | async }}</axp-layout-title>\\n @if (group.description) {\\n <axp-layout-description>{{ group.description! | translate | async }}</axp-layout-description>\\n }\\n </axp-layout-header>\\n }\\n <axp-layout-content>\\n @if (layoutDirection() === 'grid') {\\n <div class=\\\"__field-container\\\">\\n @for (param of group.parameters; track param.path) {\\n @if (param.widget.options?.['hidden'] !== true) {\\n <ax-form-field class=\\\"__field-input\\\" [gridLayout]=\\\"resolveParamLayout(param)\\\">\\n <ax-label [required]=\\\"isRequired(param)\\\">{{ param.title! | translate | async }}</ax-label>\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"param.widget\\\"\\n [mode]=\\\"resolveParamMode(group, param)\\\"\\n ></ng-container>\\n @if (param.description) {\\n <axp-layout-description>{{ param.description! | translate | async }}</axp-layout-description>\\n }\\n </ax-form-field>\\n }\\n }\\n </div>\\n } @else {\\n @for (param of group.parameters; track param.path) {\\n @if (param.widget.options?.['hidden'] !== true) {\\n <div class=\\\"__field-container\\\">\\n <ax-form-field class=\\\"__field-input\\\" [gridLayout]=\\\"resolveParamLayout(param)\\\">\\n <ax-label [required]=\\\"isRequired(param)\\\">{{ param.title! | translate | async }}</ax-label>\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"param.widget\\\"\\n [mode]=\\\"resolveParamMode(group, param)\\\"\\n ></ng-container>\\n @if (param.description) {\\n <axp-layout-description>{{ param.description! | translate | async }}</axp-layout-description>\\n }\\n </ax-form-field>\\n </div>\\n }\\n }\\n }\\n </axp-layout-content>\\n </axp-layout-section>\\n } @empty {\\n <axp-layout-section>\\n <axp-layout-content>\\n <axp-state-message\\n icon=\\\"fa-light fa-clipboard-list\\\"\\n [title]=\\\"'@general:no-form-definition.title'\\\"\\n [description]=\\\"'@general:no-form-definition.description'\\\"\\n >\\n </axp-state-message>\\n </axp-layout-content>\\n </axp-layout-section>\\n }\\n </axp-layout-sections>\\n </axp-widgets-container>\\n</ax-form>\\n\", styles: [\"axp-dynamic-form{width:100%}axp-dynamic-form axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}axp-dynamic-form axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}axp-dynamic-form axp-layout-section axp-layout-content .__field-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:2.5rem;padding-right:2.5rem}}axp-dynamic-form axp-layout-section axp-layout-content .__field-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12}@media (min-width: 768px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 4 / span 4}}@media (min-width: 1024px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 4 / span 4}}@media (min-width: 1536px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 3 / span 3}}axp-dynamic-form axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;gap:.25rem;padding:.25rem .5rem;margin-bottom:.5rem;border-width:0px}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container .__field-info{margin-bottom:.125rem;width:100%}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{font-size:.875rem;line-height:1.25rem;font-weight:500}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container .__field-input{width:100%}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.125rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}axp-dynamic-form.--look-compact axp-layout-section{margin-bottom:.75rem}axp-dynamic-form.--look-compact axp-layout-section axp-layout-header{margin-bottom:.5rem;gap:0px;padding:.5rem}axp-dynamic-form.--look-compact axp-layout-section axp-layout-header axp-layout-title{font-size:1rem;line-height:1.5rem;font-weight:600}axp-dynamic-form.--look-compact axp-layout-section axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}axp-dynamic-form.--look-borderless axp-layout-section{border-width:0px!important;--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;gap:.25rem;padding:.25rem .5rem;margin-bottom:.5rem;border-width:0px}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container .__field-info{margin-bottom:.125rem;width:100%}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{font-size:.875rem;line-height:1.25rem;font-weight:500}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container .__field-input{width:100%}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.125rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}axp-dynamic-form.--direction-vertical axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}axp-dynamic-form.--direction-vertical axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12;width:100%}axp-dynamic-form.--direction-vertical axp-layout-section axp-layout-content .__field-container .__field-input{grid-column:span 12 / span 12;width:100%}axp-dynamic-form.--direction-vertical axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.25rem!important;font-size:.875rem!important;line-height:1.25rem!important}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:row;align-items:center;gap:1rem;padding-top:.75rem;padding-bottom:.75rem}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container .__field-info{width:12rem;flex-shrink:0}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{margin-bottom:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:500}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container .__field-input{flex:1 1 0%}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}axp-dynamic-form.--direction-grid axp-layout-section axp-layout-content .__field-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;padding:1rem}axp-dynamic-form.--direction-grid axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: \n // ACoreX\n AXFormModule }, { kind: \"component\", type: i1.AXFormFieldComponent, selector: \"ax-form-field\", inputs: [\"labelMode\"] }, { kind: \"component\", type: i1.AXFormComponent, selector: \"ax-form\", inputs: [\"labelMode\", \"look\", \"messageStyle\", \"updateOn\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: \n // Platform\n AXPLayoutBuilderModule }, { kind: \"component\", type: i2.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i2.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \"\\n\\n axp-page-content, \\n axp-page-footer-container,\\n axp-page-footer,\\n axp-page-header,\\n axp-page-header-container,\\n axp-page-toolbar,\\n\\n axp-layout-content, \\n axp-layout-page-content, \\n\\n axp-layout-sections,\\n axp-layout-body,\\n axp-layout-page-body,\\n axp-layout-prefix,\\n axp-layout-suffix,\\n axp-layout-title-bar,\\n axp-layout-title, \\n axp-layout-title-actions, \\n axp-layout-nav-button, \\n axp-layout-description, \\n axp-layout-breadcrumbs,\\n axp-layout-list-action,\\n \" }, { kind: \"component\", type: AXPThemeLayoutHeaderComponent, selector: \"axp-layout-header\" }, { kind: \"component\", type: AXPThemeLayoutSectionComponent, selector: \"axp-layout-section\" }, { kind: \"directive\", type: AXPGridLayoutDirective, selector: \"[gridLayout]\", inputs: [\"gridLayout\"] }, { kind: \"component\", type: AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"component\", type: AXPStateMessageComponent, selector: \"axp-state-message\", inputs: [\"mode\", \"icon\", \"title\", \"description\", \"variant\"] }, { kind: \"pipe\", type: i3.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicFormComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, selector: 'axp-dynamic-form', imports: [\n CommonModule,\n FormsModule,\n // ACoreX\n AXFormModule,\n AXValidationModule,\n AXTranslationModule,\n // Platform\n AXPLayoutBuilderModule,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutHeaderComponent,\n AXPThemeLayoutSectionComponent,\n AXPGridLayoutDirective,\n AXLabelComponent,\n AXPStateMessageComponent,\n ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n class: 'axp-dynamic-form',\n '[class]': 'hostClasses()',\n }, template: \"<ax-form>\\n <axp-widgets-container [context]=\\\"internalContext()\\\" (onContextChanged)=\\\"handleContextChanged($event)\\\">\\n <axp-layout-sections>\\n @for (group of evaluatedFormDefinition()?.groups; track group.name) {\\n <axp-layout-section>\\n @if (group.title || group.description) {\\n <axp-layout-header>\\n <axp-layout-title>{{ group.title! | translate | async }}</axp-layout-title>\\n @if (group.description) {\\n <axp-layout-description>{{ group.description! | translate | async }}</axp-layout-description>\\n }\\n </axp-layout-header>\\n }\\n <axp-layout-content>\\n @if (layoutDirection() === 'grid') {\\n <div class=\\\"__field-container\\\">\\n @for (param of group.parameters; track param.path) {\\n @if (param.widget.options?.['hidden'] !== true) {\\n <ax-form-field class=\\\"__field-input\\\" [gridLayout]=\\\"resolveParamLayout(param)\\\">\\n <ax-label [required]=\\\"isRequired(param)\\\">{{ param.title! | translate | async }}</ax-label>\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"param.widget\\\"\\n [mode]=\\\"resolveParamMode(group, param)\\\"\\n ></ng-container>\\n @if (param.description) {\\n <axp-layout-description>{{ param.description! | translate | async }}</axp-layout-description>\\n }\\n </ax-form-field>\\n }\\n }\\n </div>\\n } @else {\\n @for (param of group.parameters; track param.path) {\\n @if (param.widget.options?.['hidden'] !== true) {\\n <div class=\\\"__field-container\\\">\\n <ax-form-field class=\\\"__field-input\\\" [gridLayout]=\\\"resolveParamLayout(param)\\\">\\n <ax-label [required]=\\\"isRequired(param)\\\">{{ param.title! | translate | async }}</ax-label>\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"param.widget\\\"\\n [mode]=\\\"resolveParamMode(group, param)\\\"\\n ></ng-container>\\n @if (param.description) {\\n <axp-layout-description>{{ param.description! | translate | async }}</axp-layout-description>\\n }\\n </ax-form-field>\\n </div>\\n }\\n }\\n }\\n </axp-layout-content>\\n </axp-layout-section>\\n } @empty {\\n <axp-layout-section>\\n <axp-layout-content>\\n <axp-state-message\\n icon=\\\"fa-light fa-clipboard-list\\\"\\n [title]=\\\"'@general:no-form-definition.title'\\\"\\n [description]=\\\"'@general:no-form-definition.description'\\\"\\n >\\n </axp-state-message>\\n </axp-layout-content>\\n </axp-layout-section>\\n }\\n </axp-layout-sections>\\n </axp-widgets-container>\\n</ax-form>\\n\", styles: [\"axp-dynamic-form{width:100%}axp-dynamic-form axp-layout-section axp-layout-content{display:flex;width:100%;flex-direction:column}axp-dynamic-form axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));border-style:dashed;--tw-divide-opacity: 1;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-divide-opacity, 1))}axp-dynamic-form axp-layout-section axp-layout-content .__field-container{align-items:center;gap:1rem;padding:1rem}@media (min-width: 1024px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width: 1280px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:2rem;padding-right:2rem}}@media (min-width: 1536px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container{padding-left:2.5rem;padding-right:2.5rem}}axp-dynamic-form axp-layout-section axp-layout-content .__field-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12}@media (min-width: 768px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 4 / span 4}}@media (min-width: 1024px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 4 / span 4}}@media (min-width: 1536px){axp-dynamic-form axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 3 / span 3}}axp-dynamic-form axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.5rem!important;font-size:.75rem!important;line-height:1rem!important}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;gap:.25rem;padding:.25rem .5rem;margin-bottom:.5rem;border-width:0px}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container .__field-info{margin-bottom:.125rem;width:100%}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{font-size:.875rem;line-height:1.25rem;font-weight:500}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container .__field-input{width:100%}axp-dynamic-form.--look-compact axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.125rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}axp-dynamic-form.--look-compact axp-layout-section{margin-bottom:.75rem}axp-dynamic-form.--look-compact axp-layout-section axp-layout-header{margin-bottom:.5rem;gap:0px;padding:.5rem}axp-dynamic-form.--look-compact axp-layout-section axp-layout-header axp-layout-title{font-size:1rem;line-height:1.5rem;font-weight:600}axp-dynamic-form.--look-compact axp-layout-section axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}axp-dynamic-form.--look-borderless axp-layout-section{border-width:0px!important;--tw-shadow: 0 0 #0000 !important;--tw-shadow-colored: 0 0 #0000 !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;gap:.25rem;padding:.25rem .5rem;margin-bottom:.5rem;border-width:0px}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container .__field-info{margin-bottom:.125rem;width:100%}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{font-size:.875rem;line-height:1.25rem;font-weight:500}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container .__field-input{width:100%}axp-dynamic-form.--look-borderless axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.125rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}axp-dynamic-form.--direction-vertical axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}axp-dynamic-form.--direction-vertical axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12;width:100%}axp-dynamic-form.--direction-vertical axp-layout-section axp-layout-content .__field-container .__field-input{grid-column:span 12 / span 12;width:100%}axp-dynamic-form.--direction-vertical axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.25rem!important;font-size:.875rem!important;line-height:1.25rem!important}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content>:not([hidden])~:not([hidden]){border-style:none}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container{display:flex;flex-direction:row;align-items:center;gap:1rem;padding-top:.75rem;padding-bottom:.75rem}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container .__field-info{width:12rem;flex-shrink:0}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container .__field-info axp-layout-title{margin-bottom:.25rem;font-size:.875rem;line-height:1.25rem;font-weight:500}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container .__field-input{flex:1 1 0%}axp-dynamic-form.--direction-horizontal axp-layout-section axp-layout-content .__field-container axp-layout-description{margin-top:.25rem!important;font-size:.75rem!important;line-height:1rem!important;opacity:.75!important}axp-dynamic-form.--direction-grid axp-layout-section axp-layout-content .__field-container{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem;padding:1rem}axp-dynamic-form.--direction-grid axp-layout-section axp-layout-content .__field-container .__field-info{grid-column:span 12 / span 12}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUErQiw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25HLE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsYUFBYSxFQUNiLDJCQUEyQixHQUM1QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsNkJBQTZCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQXNDNUQsTUFBTSxPQUFPLHVCQUF1QjtJQTVCcEM7UUE2QlUscUJBQWdCLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakU7O1dBRUc7UUFDSyxvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUU1Qjs7V0FFRztRQUNLLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQXFFLENBQUM7UUFFbkcsOEJBQThCO1FBRTlCOztXQUVHO1FBQ0gsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSx5REFBNEIsQ0FBQztRQUU1RDs7V0FFRztRQUNILFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxrREFBTyxDQUFDO1FBRWhDOztXQUVHO1FBQ0gsZUFBVSxHQUFHLEtBQUssQ0FBcUIsUUFBUSxzREFBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ0gsb0JBQWUsR0FBRyxLQUFLLENBQTBCLFVBQVUsMkRBQUMsQ0FBQztRQUU3RDs7V0FFRztRQUNILFNBQUksR0FBRyxLQUFLLENBQXFCLE1BQU0sZ0RBQUMsQ0FBQztRQUV6Qzs7V0FFRztRQUNILGlCQUFZLEdBQUcsS0FBSyxDQUE2QjtZQUMvQyxTQUFTLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtnQkFDeEIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtnQkFDbEIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtnQkFDbEIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtnQkFDbEIsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTthQUNwQjtTQUNGLHdEQUFDLENBQUM7UUFlTyw0QkFBdUIsR0FBRyxNQUFNLENBQU0sSUFBSSxtRUFBQyxDQUFDO1FBRXREOztXQUVHO1FBQ0gsUUFBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMzQixNQUFNLEtBQUssR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDckMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDVixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9ELHVCQUF1QjtnQkFDdkIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUNuQyxPQUFPO2dCQUNULENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzlDLENBQUM7WUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1AsQ0FBQywrQ0FBQyxDQUFDO1FBRUgsWUFBWTtRQUVaLCtCQUErQjtRQUUvQjs7V0FFRztRQUNILGtCQUFhLEdBQUcsTUFBTSxFQUFPLENBQUM7UUFFOUI7O1dBRUc7UUFDSCxxQkFBZ0IsR0FBRyxNQUFNLEVBQU8sQ0FBQztRQUVqQzs7V0FFRztRQUNILG1CQUFjLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFFbkMsWUFBWTtRQUVaLGtDQUFrQztRQUUxQixTQUFJLEdBQUcsU0FBUyxDQUFDLGVBQWUsZ0RBQUMsQ0FBQztRQUNsQyxjQUFTLEdBQUcsU0FBUyxDQUFDLDJCQUEyQixxREFBQyxDQUFDO1FBRTNEOztXQUVHO1FBQ08sb0JBQWUsR0FBRyxNQUFNLENBQU0sRUFBRSwyREFBQyxDQUFDO1FBRTVDLFlBQVk7UUFFWiwyQ0FBMkM7UUFFM0M7O1dBRUc7UUFDTyxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLDBEQUFDLENBQUM7UUFFL0Q7O1dBRUc7UUFDTyxxQkFBZ0IsR0FBRyxDQUFDLEtBQVUsRUFBRSxLQUFvQyxFQUFzQixFQUFFO1lBQ3BHLE1BQU0sU0FBUyxHQUFJLEtBQWEsRUFBRSxJQUFzQyxDQUFDO1lBQ3pFLE1BQU0sU0FBUyxHQUFJLEtBQWEsRUFBRSxJQUFzQyxDQUFDO1lBQ3pFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDNUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLElBQUksUUFBUSxJQUFJLE1BQU0sQ0FBdUIsQ0FBQztRQUM5RSxDQUFDLENBQUM7UUFtRUY7O1dBRUc7UUFDTyxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMvQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXpCLElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUNELElBQUksU0FBUyxJQUFJLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDM0MsQ0FBQztZQUNELElBQUksSUFBSSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixDQUFDLHVEQUFDLENBQUM7UUFXSCxZQUFZO1FBRVosK0JBQStCO1FBRS9COztXQUVHO1FBQ0gsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUMvQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUMsOERBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ0gsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxrREFBa0Q7Z0JBQ2xELElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxjQUFjLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRSxDQUFDO1FBQ0gsQ0FBQyw2REFBQyxDQUFDO1FBRUg7O1dBRUc7UUFDSCxtQ0FBOEIsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzNDLDREQUE0RDtZQUM1RCxxRUFBcUU7WUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2xELHVEQUF1RDtZQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLENBQUMsMEVBQUMsQ0FBQztLQXFFSjtJQTlSQyxZQUFZO0lBRVosaUNBQWlDO0lBRXZCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxVQUFlLEVBQUUsT0FBWTtRQUMvRCxNQUFNLEtBQUssR0FBZ0M7WUFDekMsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7YUFDM0M7U0FDRixDQUFDO1FBQ0YsT0FBTyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUEyRUQ7O09BRUc7SUFDTyxrQkFBa0IsQ0FBQyxLQUFvQztRQUMvRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUksS0FBdUMsQ0FBQyxNQUFNLENBQUM7UUFFakUsbUZBQW1GO1FBQ25GLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDL0IsSUFBSSxFQUFHLEtBQWEsRUFBRSxJQUFJO1lBQzFCLElBQUk7WUFDSixRQUFRO1NBQ1QsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUksS0FBYSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9ELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0MsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDNUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUF5QixFQUFFLFFBQWdCLEVBQVUsRUFBRSxDQUN4RSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDNUQsTUFBTSxRQUFRLEdBQUcsQ0FDZixDQUFxRixFQUN6RCxFQUFFO1lBQzlCLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzFCLE1BQU0sR0FBRyxHQUFHO29CQUNWLFNBQVMsRUFBRTt3QkFDVCxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO3dCQUN2QixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO3dCQUNsQixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO3dCQUNsQixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO3dCQUNsQixHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO3FCQUNwQjtpQkFDNEIsQ0FBQztnQkFDaEMsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1lBQ0QsNkVBQTZFO1lBQzdFLDZFQUE2RTtZQUM3RSxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuQyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQixNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqQyxNQUFNLEdBQUcsR0FBRztnQkFDVixTQUFTLEVBQUU7b0JBQ1QsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRTtvQkFDdkIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtvQkFDbkIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtvQkFDbkIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTtvQkFDbkIsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRTtpQkFDdEI7YUFDNEIsQ0FBQztZQUNoQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxRQUFlLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQXVCRCxZQUFZO0lBRVoseUNBQXlDO0lBRXpDLFFBQVE7UUFDTixpREFBaUQ7UUFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZO0lBRVosK0JBQStCO0lBRS9COztPQUVHO0lBQ0gsa0JBQWtCLENBTWY7SUFFSDs7T0FFRztJQUNILGlCQUFpQixDQU1kO0lBRUg7O09BRUc7SUFDSCw4QkFBOEIsQ0FPM0I7SUFFSCxZQUFZO0lBRVosc0NBQXNDO0lBRXRDOztPQUVHO0lBQ08sb0JBQW9CLENBQUMsS0FBa0M7UUFDL0QsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0gsQ0FBQztJQUVTLFVBQVUsQ0FBQyxLQUFvQztRQUN2RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBWSxDQUFDO1FBQ3RFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxXQUFXLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkQsNERBQTREO1lBQzVELE9BQU8sT0FBTyxDQUFFLFdBQXVDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsWUFBWTtJQUVaLHNDQUFzQztJQUV0Qzs7T0FFRztJQUNJLE9BQU87UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYSxDQUFDLE9BQVk7UUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFFBQVE7UUFDbkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBL1VVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHluQ0E4R1QsZUFBZSw0RkFDViwyQkFBMkIsZ0VDbEwzRCxtb0dBb0VBLHM5TUR2QkksWUFBWSw4QkFDWixXQUFXO2dCQUNYLFNBQVM7Z0JBQ1QsWUFBWSxrVEFDWixrQkFBa0IsOEJBQ2xCLG1CQUFtQjtnQkFDbkIsV0FBVztnQkFDWCxzQkFBc0IsK1pBQ3RCLDRCQUE0QixnbEJBQzVCLDZCQUE2Qiw4REFDN0IsOEJBQThCLCtEQUM5QixzQkFBc0IsaUZBQ3RCLGdCQUFnQiwrR0FDaEIsd0JBQXdCOzsyRkFTZix1QkFBdUI7a0JBNUJuQyxTQUFTO2lDQUNJLElBQUksWUFDTixrQkFBa0IsV0FHbkI7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsNkJBQTZCO3dCQUM3Qiw4QkFBOEI7d0JBQzlCLHNCQUFzQjt3QkFDdEIsZ0JBQWdCO3dCQUNoQix3QkFBd0I7cUJBQ3pCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLFNBQVMsRUFBRSxlQUFlO3FCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRm9ybUNvbXBvbmVudCwgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhMYWJlbENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sYWJlbCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFYUEdyaWRMYXlvdXREaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUsIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gIEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCxcbiAgQVhQUGFnZVN0YXR1cyxcbiAgQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBPbkluaXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZ2V0LCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsIEFYUFRoZW1lTGF5b3V0SGVhZGVyQ29tcG9uZW50LCBBWFBUaGVtZUxheW91dFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9ibG9ja3MnO1xuaW1wb3J0IHsgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vc3RhdGUtbWVzc2FnZSc7XG5pbXBvcnQge1xuICBBWFBEeW5hbWljRm9ybURlZmluaXRpb24sXG4gIEFYUER5bmFtaWNGb3JtRGlyZWN0aW9uLFxuICBBWFBEeW5hbWljRm9ybUZpZWxkRGVmaW5pdGlvbixcbiAgQVhQRHluYW1pY0Zvcm1MYXlvdXRDb25maWcsXG4gIEFYUER5bmFtaWNGb3JtTG9vayxcbiAgQVhQRHluYW1pY0Zvcm1Nb2RlLFxufSBmcm9tICcuL2R5bmFtaWMtZm9ybS50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2F4cC1keW5hbWljLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuc2NzcycsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgLy8gQUNvcmVYXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIC8vIFBsYXRmb3JtXG4gICAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgICBBWFBUaGVtZUxheW91dEJsb2NrQ29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0SGVhZGVyQ29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0U2VjdGlvbkNvbXBvbmVudCxcbiAgICBBWFBHcmlkTGF5b3V0RGlyZWN0aXZlLFxuICAgIEFYTGFiZWxDb21wb25lbnQsXG4gICAgQVhQU3RhdGVNZXNzYWdlQ29tcG9uZW50LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYXhwLWR5bmFtaWMtZm9ybScsXG4gICAgJ1tjbGFzc10nOiAnaG9zdENsYXNzZXMoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUER5bmFtaWNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBldmFsdWF0b3JTZXJ2aWNlID0gaW5qZWN0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlKTtcbiAgLyoqXG4gICAqIFRyYWNrcyB0aGUgbGF0ZXN0IHNjaGVkdWxlZCBldmFsdWF0aW9uIHRvIGVuc3VyZSBsYXN0LXdyaXRlLXdpbnMgZm9yIGFzeW5jIGV2YWx1YXRlXG4gICAqL1xuICBwcml2YXRlIGV2YWx1YXRpb25SdW5JZCA9IDA7XG5cbiAgLyoqXG4gICAqIE1lbW9pemF0aW9uIGNhY2hlIGZvciByZXNvbHZlUGFyYW1MYXlvdXQgdG8ga2VlcCBzdGFibGUgb2JqZWN0IGlkZW50aXRpZXNcbiAgICovXG4gIHByaXZhdGUgbGF5b3V0Q2FjaGUgPSBuZXcgTWFwPHN0cmluZywgeyBzaWduYXR1cmU6IHN0cmluZzsgY29uZmlnOiBBWFBEeW5hbWljRm9ybUxheW91dENvbmZpZyB9PigpO1xuXG4gIC8vI3JlZ2lvbiAtLS0tICAgSW5wdXRzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBGb3JtIGRlZmluaXRpb24gY29udGFpbmluZyBncm91cHMgYW5kIGZpZWxkc1xuICAgKi9cbiAgZm9ybURlZmluaXRpb24gPSBpbnB1dC5yZXF1aXJlZDxBWFBEeW5hbWljRm9ybURlZmluaXRpb24+KCk7XG5cbiAgLyoqXG4gICAqIEZvcm0gY29udGV4dC9tb2RlbCBkYXRhXG4gICAqL1xuICBjb250ZXh0ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xuXG4gIC8qKlxuICAgKiBGb3JtIGFwcGVhcmFuY2UgYW5kIGRlbnNpdHkgc3R5bGluZyAobm9ybWFsLCBjb21wYWN0LCBzcGFjaW91cylcbiAgICovXG4gIGxheW91dExvb2sgPSBpbnB1dDxBWFBEeW5hbWljRm9ybUxvb2s+KCdub3JtYWwnKTtcblxuICAvKipcbiAgICogRm9ybSBsYXlvdXQgZGlyZWN0aW9uIGFuZCBmbG93ICh2ZXJ0aWNhbCwgaG9yaXpvbnRhbCwgZ3JpZClcbiAgICovXG4gIGxheW91dERpcmVjdGlvbiA9IGlucHV0PEFYUER5bmFtaWNGb3JtRGlyZWN0aW9uPigndmVydGljYWwnKTtcblxuICAvKipcbiAgICogRGVmYXVsdCBmb3JtIG1vZGUuIENhbiBiZSBvdmVycmlkZGVuIGJ5IHNlY3Rpb24vZ3JvdXAgYW5kIGZpZWxkLlxuICAgKi9cbiAgbW9kZSA9IGlucHV0PEFYUER5bmFtaWNGb3JtTW9kZT4oJ2VkaXQnKTtcblxuICAvKipcbiAgICogQ3VzdG9tIGxheW91dCBjb25maWd1cmF0aW9uIGZvciBmb3JtIGZpZWxkc1xuICAgKi9cbiAgbGF5b3V0Q29uZmlnID0gaW5wdXQ8QVhQRHluYW1pY0Zvcm1MYXlvdXRDb25maWc+KHtcbiAgICBwb3NpdGlvbnM6IHtcbiAgICAgIGRlZmF1bHQ6IHsgY29sU3BhbjogMTIgfSxcbiAgICAgIG1kOiB7IGNvbFNwYW46IDggfSxcbiAgICAgIGxnOiB7IGNvbFNwYW46IDYgfSxcbiAgICAgIHhsOiB7IGNvbFNwYW46IDUgfSxcbiAgICAgIHh4bDogeyBjb2xTcGFuOiA0IH0sXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBFdmFsdWF0b3IgICAtLS0tXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGV4cHJlc3Npb25FdmFsdWF0b3IoZXhwcmVzc2lvbjogYW55LCBjb250ZXh0OiBhbnkpIHtcbiAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge1xuICAgICAgY29udGV4dDoge1xuICAgICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiBnZXQoY29udGV4dCwgcGF0aCksXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXZhbHVhdG9yU2VydmljZS5ldmFsdWF0ZShleHByZXNzaW9uLCBzY29wZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZXZhbHVhdGVkRm9ybURlZmluaXRpb24gPSBzaWduYWw8YW55PihudWxsKTtcblxuICAvKipcbiAgICogRXZhbHVhdGUgZGVmaW5pdGlvbiB3aGVuIGlucHV0cyBjaGFuZ2Ugd2l0aCBsYXN0LXdyaXRlLXdpbnMgYW5kIGRlZXAtZXF1YWxpdHkgZ3VhcmRcbiAgICovXG4gIGVmZiA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZm9ybURlZiA9IHRoaXMuZm9ybURlZmluaXRpb24oKTtcbiAgICBjb25zdCBjdHggPSB0aGlzLmNvbnRleHQoKTtcbiAgICBjb25zdCBydW5JZCA9ICsrdGhpcy5ldmFsdWF0aW9uUnVuSWQ7XG4gICAgKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGV2YWx1YXRlZCA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvcihmb3JtRGVmLCBjdHgpO1xuICAgICAgLy8gSWdub3JlIHN0YWxlIHJlc3VsdHNcbiAgICAgIGlmIChydW5JZCAhPT0gdGhpcy5ldmFsdWF0aW9uUnVuSWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgcHJldiA9IHRoaXMuZXZhbHVhdGVkRm9ybURlZmluaXRpb24oKTtcbiAgICAgIGlmICghaXNFcXVhbChwcmV2LCBldmFsdWF0ZWQpKSB7XG4gICAgICAgIHRoaXMuZXZhbHVhdGVkRm9ybURlZmluaXRpb24uc2V0KGV2YWx1YXRlZCk7XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBPdXRwdXRzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gZm9ybSBjb250ZXh0IGNoYW5nZXNcbiAgICovXG4gIGNvbnRleHRDaGFuZ2UgPSBvdXRwdXQ8YW55PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gY29udGV4dCBjaGFuZ2UgaXMgaW5pdGlhdGVkXG4gICAqL1xuICBjb250ZXh0SW5pdGlhdGVkID0gb3V0cHV0PGFueT4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGZvcm0gYmVjb21lcyB2YWxpZC9pbnZhbGlkXG4gICAqL1xuICB2YWxpZGl0eUNoYW5nZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgUHJvcGVydGllcyAgIC0tLS1cblxuICBwcml2YXRlIGZvcm0gPSB2aWV3Q2hpbGQoQVhGb3JtQ29tcG9uZW50KTtcbiAgcHJpdmF0ZSBjb250YWluZXIgPSB2aWV3Q2hpbGQoQVhQV2lkZ2V0Q29udGFpbmVyQ29tcG9uZW50KTtcblxuICAvKipcbiAgICogSW50ZXJuYWwgY29udGV4dCBzaWduYWwgZm9yIHJlYWN0aXZpdHlcbiAgICovXG4gIHByb3RlY3RlZCBpbnRlcm5hbENvbnRleHQgPSBzaWduYWw8YW55Pih7fSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDb21wdXRlZCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBDb21wdXRlZCBsYXlvdXQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbXB1dGVkTGF5b3V0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sYXlvdXRDb25maWcoKSk7XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgZWZmZWN0aXZlIG1vZGUgd2l0aCBwcmVjZWRlbmNlOiBmaWVsZCA+IGdyb3VwID4gZm9ybVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVQYXJhbU1vZGUgPSAoZ3JvdXA6IGFueSwgcGFyYW06IEFYUER5bmFtaWNGb3JtRmllbGREZWZpbml0aW9uKTogQVhQRHluYW1pY0Zvcm1Nb2RlID0+IHtcbiAgICBjb25zdCBmaWVsZE1vZGUgPSAocGFyYW0gYXMgYW55KT8ubW9kZSBhcyBBWFBEeW5hbWljRm9ybU1vZGUgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZ3JvdXBNb2RlID0gKGdyb3VwIGFzIGFueSk/Lm1vZGUgYXMgQVhQRHluYW1pY0Zvcm1Nb2RlIHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZvcm1Nb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgY29uc29sZS5sb2coZmllbGRNb2RlLCBncm91cE1vZGUsIGZvcm1Nb2RlKTtcbiAgICByZXR1cm4gKGZpZWxkTW9kZSB8fCBncm91cE1vZGUgfHwgZm9ybU1vZGUgfHwgJ2VkaXQnKSBhcyBBWFBEeW5hbWljRm9ybU1vZGU7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgZWZmZWN0aXZlIGdyaWQgbGF5b3V0IGZvciBhIHNwZWNpZmljIHBhcmFtZXRlciwgbWVyZ2luZyBwZXItcGFyYW1ldGVyIG92ZXJyaWRlIHdpdGggZm9ybSBsYXlvdXQuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZVBhcmFtTGF5b3V0KHBhcmFtOiBBWFBEeW5hbWljRm9ybUZpZWxkRGVmaW5pdGlvbik6IEFYUER5bmFtaWNGb3JtTGF5b3V0Q29uZmlnIHtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5sYXlvdXRDb25maWcoKTtcbiAgICBjb25zdCBvdmVycmlkZSA9IChwYXJhbSBhcyBBWFBEeW5hbWljRm9ybUZpZWxkRGVmaW5pdGlvbikubGF5b3V0O1xuXG4gICAgLy8gQnVpbGQgYSBzaWduYXR1cmUgdG8gbWVtb2l6ZSBwZXIgcGFyYW0gKyBjdXJyZW50IGJhc2UgbGF5b3V0IHNuYXBzaG90ICsgb3ZlcnJpZGVcbiAgICBjb25zdCBzaWduYXR1cmUgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBwYXRoOiAocGFyYW0gYXMgYW55KT8ucGF0aCxcbiAgICAgIGJhc2UsXG4gICAgICBvdmVycmlkZSxcbiAgICB9KTtcbiAgICBjb25zdCBjYWNoZUtleSA9IChwYXJhbSBhcyBhbnkpPy5wYXRoID8/IEpTT04uc3RyaW5naWZ5KHBhcmFtKTtcbiAgICBjb25zdCBjYWNoZWQgPSB0aGlzLmxheW91dENhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKGNhY2hlZCAmJiBjYWNoZWQuc2lnbmF0dXJlID09PSBzaWduYXR1cmUpIHtcbiAgICAgIHJldHVybiBjYWNoZWQuY29uZmlnO1xuICAgIH1cblxuICAgIGlmIChvdmVycmlkZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLmxheW91dENhY2hlLnNldChjYWNoZUtleSwgeyBzaWduYXR1cmUsIGNvbmZpZzogYmFzZSB9KTtcbiAgICAgIHJldHVybiBiYXNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZSA9ICh2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkLCBmYWxsYmFjazogbnVtYmVyKTogbnVtYmVyID0+XG4gICAgICB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIHZhbHVlID4gMCA/IHZhbHVlIDogZmFsbGJhY2s7XG4gICAgY29uc3QgdG9Db25maWcgPSAoXG4gICAgICBvOiBudW1iZXIgfCB7IGRlZmF1bHQ/OiBudW1iZXI7IG1kPzogbnVtYmVyOyBsZz86IG51bWJlcjsgeGw/OiBudW1iZXI7IHh4bD86IG51bWJlciB9LFxuICAgICk6IEFYUER5bmFtaWNGb3JtTGF5b3V0Q29uZmlnID0+IHtcbiAgICAgIGlmICh0eXBlb2YgbyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgY2ZnID0ge1xuICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgZGVmYXVsdDogeyBjb2xTcGFuOiBvIH0sXG4gICAgICAgICAgICBtZDogeyBjb2xTcGFuOiBvIH0sXG4gICAgICAgICAgICBsZzogeyBjb2xTcGFuOiBvIH0sXG4gICAgICAgICAgICB4bDogeyBjb2xTcGFuOiBvIH0sXG4gICAgICAgICAgICB4eGw6IHsgY29sU3BhbjogbyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0gYXMgQVhQRHluYW1pY0Zvcm1MYXlvdXRDb25maWc7XG4gICAgICAgIHJldHVybiBjZmc7XG4gICAgICB9XG4gICAgICAvLyBXaGVuIHBhcmFtZXRlciBsYXlvdXQgb2JqZWN0IGlzIHByb3ZpZGVkLCBkbyBOT1QgZmFsbCBiYWNrIHRvIGZvcm0gbGF5b3V0LlxuICAgICAgLy8gVXNlIGNhc2NhZGluZyB2YWx1ZXMgYWNyb3NzIGJyZWFrcG9pbnRzOiBkZWZhdWx0IC0+IG1kIC0+IGxnIC0+IHhsIC0+IHh4bC5cbiAgICAgIGNvbnN0IGQgPSBub3JtYWxpemUoby5kZWZhdWx0LCAxMik7XG4gICAgICBjb25zdCBtZCA9IG5vcm1hbGl6ZShvLm1kLCBkKTtcbiAgICAgIGNvbnN0IGxnID0gbm9ybWFsaXplKG8ubGcsIG1kKTtcbiAgICAgIGNvbnN0IHhsID0gbm9ybWFsaXplKG8ueGwsIGxnKTtcbiAgICAgIGNvbnN0IHh4bCA9IG5vcm1hbGl6ZShvLnh4bCwgeGwpO1xuICAgICAgY29uc3QgY2ZnID0ge1xuICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICBkZWZhdWx0OiB7IGNvbFNwYW46IGQgfSxcbiAgICAgICAgICBtZDogeyBjb2xTcGFuOiBtZCB9LFxuICAgICAgICAgIGxnOiB7IGNvbFNwYW46IGxnIH0sXG4gICAgICAgICAgeGw6IHsgY29sU3BhbjogeGwgfSxcbiAgICAgICAgICB4eGw6IHsgY29sU3BhbjogeHhsIH0sXG4gICAgICAgIH0sXG4gICAgICB9IGFzIEFYUER5bmFtaWNGb3JtTGF5b3V0Q29uZmlnO1xuICAgICAgcmV0dXJuIGNmZztcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gdG9Db25maWcob3ZlcnJpZGUgYXMgYW55KTtcbiAgICB0aGlzLmxheW91dENhY2hlLnNldChjYWNoZUtleSwgeyBzaWduYXR1cmUsIGNvbmZpZzogcmVzdWx0IH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogSG9zdCBjbGFzc2VzIGJhc2VkIG9uIGxheW91dCBsb29rIGFuZCBkaXJlY3Rpb25cbiAgICovXG4gIHByb3RlY3RlZCBob3N0Q2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjbGFzc2VzID0gWydheHAtZHluYW1pYy1mb3JtJ107XG4gICAgY29uc3QgbG9vayA9IHRoaXMubGF5b3V0TG9vaygpO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHRoaXMubGF5b3V0RGlyZWN0aW9uKCk7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMubW9kZSgpO1xuXG4gICAgaWYgKGxvb2sgJiYgbG9vayAhPT0gJ25vcm1hbCcpIHtcbiAgICAgIGNsYXNzZXMucHVzaChgLS1sb29rLSR7bG9va31gKTtcbiAgICB9XG4gICAgaWYgKGRpcmVjdGlvbiAmJiBkaXJlY3Rpb24gIT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIGNsYXNzZXMucHVzaChgLS1kaXJlY3Rpb24tJHtkaXJlY3Rpb259YCk7XG4gICAgfVxuICAgIGlmIChtb2RlICYmIG1vZGUgIT09ICdlZGl0Jykge1xuICAgICAgY2xhc3Nlcy5wdXNoKGAtLW1vZGUtJHttb2RlfWApO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH0pO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgTGlmZWN5Y2xlIE1ldGhvZHMgICAtLS0tXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gSW5pdGlhbGl6ZSBpbnRlcm5hbCBjb250ZXh0IHdpdGggaW5wdXQgY29udGV4dFxuICAgIHRoaXMuaW50ZXJuYWxDb250ZXh0LnNldCh0aGlzLmNvbnRleHQoKSA/PyB7fSk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEVmZmVjdHMgICAtLS0tXG5cbiAgLyoqXG4gICAqIEVmZmVjdCB0byBzeW5jIGNvbnRleHQgY2hhbmdlc1xuICAgKi9cbiAgI2NvbnRleHRTeW5jRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBjdHggPSB0aGlzLmNvbnRleHQoKSA/PyB7fTtcbiAgICBjb25zdCBwcmV2ID0gdGhpcy5pbnRlcm5hbENvbnRleHQoKSA/PyB7fTtcbiAgICBpZiAoIWlzRXF1YWwocHJldiwgY3R4KSkge1xuICAgICAgdGhpcy5pbnRlcm5hbENvbnRleHQuc2V0KGN0eCk7XG4gICAgfVxuICB9KTtcblxuICAvKipcbiAgICogRWZmZWN0IHRvIGhhbmRsZSBmb3JtIHN0YXR1cyBjaGFuZ2VzXG4gICAqL1xuICAjZm9ybVN0YXR1c0VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybSgpO1xuICAgIGlmIChmb3JtKSB7XG4gICAgICAvLyBZb3UgY2FuIGFkZCBmb3JtIHN0YXR1cyB0cmFja2luZyBoZXJlIGlmIG5lZWRlZFxuICAgICAgdGhpcy5jb250YWluZXIoKT8uYnVpbGRlclNlcnZpY2Uuc2V0U3RhdHVzKEFYUFBhZ2VTdGF0dXMuUmVuZGVyZWQpO1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqXG4gICAqIEludmFsaWRhdGUgbWVtb2l6YXRpb24gY2FjaGUgd2hlbiBsYXlvdXQgY29uZmlnIG9yIGV2YWx1YXRlZCBkZWZpbml0aW9uIGNoYW5nZXNcbiAgICovXG4gICNsYXlvdXRDYWNoZUludmFsaWRhdGlvbkVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgLy8gRGVwZW5kIG9uIGxheW91dCBjb25maWcgYW5kIGV2YWx1YXRlZCBkZWZpbml0aW9uIGlkZW50aXR5XG4gICAgLy8gQW55IHN0cnVjdHVyYWwgY2hhbmdlIHNob3VsZCBmbHVzaCB0aGUgY2FjaGUgdG8gZW5zdXJlIGNvcnJlY3RuZXNzXG4gICAgY29uc3QgX2xheW91dCA9IHRoaXMubGF5b3V0Q29uZmlnKCk7XG4gICAgY29uc3QgX2V2YWx1YXRlZCA9IHRoaXMuZXZhbHVhdGVkRm9ybURlZmluaXRpb24oKTtcbiAgICAvLyBTaW1wbGUgaW52YWxpZGF0aW9uOiBjbGVhciBjYWNoZSB3aGVuIGVpdGhlciBjaGFuZ2VzXG4gICAgdGhpcy5sYXlvdXRDYWNoZS5jbGVhcigpO1xuICB9KTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEV2ZW50IEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgY29udGV4dCBjaGFuZ2UgZXZlbnRzIGZyb20gd2lkZ2V0IGNvbnRhaW5lclxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbnRleHRDaGFuZ2VkKGV2ZW50OiBBWFBMYXlvdXRDb250ZXh0Q2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuc3RhdGUgPT09ICdpbml0aWF0ZWQnKSB7XG4gICAgICB0aGlzLmNvbnRleHRJbml0aWF0ZWQuZW1pdChldmVudC5kYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcm5hbENvbnRleHQuc2V0KGV2ZW50LmRhdGEgPz8ge30pO1xuICAgICAgdGhpcy5jb250ZXh0Q2hhbmdlLmVtaXQodGhpcy5pbnRlcm5hbENvbnRleHQoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGlzUmVxdWlyZWQocGFyYW06IEFYUER5bmFtaWNGb3JtRmllbGREZWZpbml0aW9uKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsaWRhdGlvbnMgPSBwYXJhbS53aWRnZXQ/Lm9wdGlvbnM/LlsndmFsaWRhdGlvbnMnXSBhcyB1bmtub3duO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbGlkYXRpb25zKSkge1xuICAgICAgcmV0dXJuIHZhbGlkYXRpb25zLnNvbWUoKHY6IGFueSkgPT4gdj8ucnVsZSA9PT0gJ3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICh2YWxpZGF0aW9ucyAmJiB0eXBlb2YgdmFsaWRhdGlvbnMgPT09ICdvYmplY3QnKSB7XG4gICAgICAvLyBTdXBwb3J0IG9iamVjdC1zaGFwZWQgdmFsaWRhdGlvbnMgbGlrZSB7IHJlcXVpcmVkOiB0cnVlIH1cbiAgICAgIHJldHVybiBCb29sZWFuKCh2YWxpZGF0aW9ucyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbJ3JlcXVpcmVkJ10pO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBNZXRob2RzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZvcm0gY29tcG9uZW50IGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9ybSgpOiBBWEZvcm1Db21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZvcm0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudCBmb3JtIGNvbnRleHRcbiAgICovXG4gIHB1YmxpYyBnZXRDb250ZXh0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxDb250ZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGZvcm0gY29udGV4dCBwcm9ncmFtbWF0aWNhbGx5XG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQ29udGV4dChjb250ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmludGVybmFsQ29udGV4dC5zZXQoY29udGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgdGhlIGZvcm1cbiAgICovXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtKCk7XG4gICAgaWYgKGZvcm0pIHtcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSBhd2FpdCBmb3JtLnZhbGlkYXRlKCk7XG4gICAgICB0aGlzLnZhbGlkaXR5Q2hhbmdlLmVtaXQoaXNWYWxpZC5yZXN1bHQpO1xuICAgICAgcmV0dXJuIGlzVmFsaWQucmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsIjxheC1mb3JtPlxuICA8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cImludGVybmFsQ29udGV4dCgpXCIgKG9uQ29udGV4dENoYW5nZWQpPVwiaGFuZGxlQ29udGV4dENoYW5nZWQoJGV2ZW50KVwiPlxuICAgIDxheHAtbGF5b3V0LXNlY3Rpb25zPlxuICAgICAgQGZvciAoZ3JvdXAgb2YgZXZhbHVhdGVkRm9ybURlZmluaXRpb24oKT8uZ3JvdXBzOyB0cmFjayBncm91cC5uYW1lKSB7XG4gICAgICAgIDxheHAtbGF5b3V0LXNlY3Rpb24+XG4gICAgICAgICAgQGlmIChncm91cC50aXRsZSB8fCBncm91cC5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgPGF4cC1sYXlvdXQtaGVhZGVyPlxuICAgICAgICAgICAgICA8YXhwLWxheW91dC10aXRsZT57eyBncm91cC50aXRsZSEgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXhwLWxheW91dC10aXRsZT5cbiAgICAgICAgICAgICAgQGlmIChncm91cC5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgIDxheHAtbGF5b3V0LWRlc2NyaXB0aW9uPnt7IGdyb3VwLmRlc2NyaXB0aW9uISB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heHAtbGF5b3V0LWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2F4cC1sYXlvdXQtaGVhZGVyPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8YXhwLWxheW91dC1jb250ZW50PlxuICAgICAgICAgICAgQGlmIChsYXlvdXREaXJlY3Rpb24oKSA9PT0gJ2dyaWQnKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2ZpZWxkLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHBhcmFtIG9mIGdyb3VwLnBhcmFtZXRlcnM7IHRyYWNrIHBhcmFtLnBhdGgpIHtcbiAgICAgICAgICAgICAgICAgIEBpZiAocGFyYW0ud2lkZ2V0Lm9wdGlvbnM/LlsnaGlkZGVuJ10gIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWZvcm0tZmllbGQgY2xhc3M9XCJfX2ZpZWxkLWlucHV0XCIgW2dyaWRMYXlvdXRdPVwicmVzb2x2ZVBhcmFtTGF5b3V0KHBhcmFtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbCBbcmVxdWlyZWRdPVwiaXNSZXF1aXJlZChwYXJhbSlcIj57eyBwYXJhbS50aXRsZSEgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgYXhwLXdpZGdldC1yZW5kZXJlclxuICAgICAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwicGFyYW0ud2lkZ2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cInJlc29sdmVQYXJhbU1vZGUoZ3JvdXAsIHBhcmFtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAocGFyYW0uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxheHAtbGF5b3V0LWRlc2NyaXB0aW9uPnt7IHBhcmFtLmRlc2NyaXB0aW9uISB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heHAtbGF5b3V0LWRlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgQGZvciAocGFyYW0gb2YgZ3JvdXAucGFyYW1ldGVyczsgdHJhY2sgcGFyYW0ucGF0aCkge1xuICAgICAgICAgICAgICAgIEBpZiAocGFyYW0ud2lkZ2V0Lm9wdGlvbnM/LlsnaGlkZGVuJ10gIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2ZpZWxkLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZCBjbGFzcz1cIl9fZmllbGQtaW5wdXRcIiBbZ3JpZExheW91dF09XCJyZXNvbHZlUGFyYW1MYXlvdXQocGFyYW0pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWxhYmVsIFtyZXF1aXJlZF09XCJpc1JlcXVpcmVkKHBhcmFtKVwiPnt7IHBhcmFtLnRpdGxlISB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBheHAtd2lkZ2V0LXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbm9kZV09XCJwYXJhbS53aWRnZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwicmVzb2x2ZVBhcmFtTW9kZShncm91cCwgcGFyYW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChwYXJhbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGF4cC1sYXlvdXQtZGVzY3JpcHRpb24+e3sgcGFyYW0uZGVzY3JpcHRpb24hIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4cC1sYXlvdXQtZGVzY3JpcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2F4cC1sYXlvdXQtY29udGVudD5cbiAgICAgICAgPC9heHAtbGF5b3V0LXNlY3Rpb24+XG4gICAgICB9IEBlbXB0eSB7XG4gICAgICAgIDxheHAtbGF5b3V0LXNlY3Rpb24+XG4gICAgICAgICAgPGF4cC1sYXlvdXQtY29udGVudD5cbiAgICAgICAgICAgIDxheHAtc3RhdGUtbWVzc2FnZVxuICAgICAgICAgICAgICBpY29uPVwiZmEtbGlnaHQgZmEtY2xpcGJvYXJkLWxpc3RcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0BnZW5lcmFsOm5vLWZvcm0tZGVmaW5pdGlvbi50aXRsZSdcIlxuICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ0BnZW5lcmFsOm5vLWZvcm0tZGVmaW5pdGlvbi5kZXNjcmlwdGlvbidcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9heHAtc3RhdGUtbWVzc2FnZT5cbiAgICAgICAgICA8L2F4cC1sYXlvdXQtY29udGVudD5cbiAgICAgICAgPC9heHAtbGF5b3V0LXNlY3Rpb24+XG4gICAgICB9XG4gICAgPC9heHAtbGF5b3V0LXNlY3Rpb25zPlxuICA8L2F4cC13aWRnZXRzLWNvbnRhaW5lcj5cbjwvYXgtZm9ybT5cbiJdfQ==","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXStepWizardComponent, AXStepWizardModule } from '@acorex/components/step-wizard';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPStickyDirective } from '@acorex/platform/common';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, input, output, signal, viewChild, viewChildren, ViewEncapsulation, } from '@angular/core';\nimport { AXPDynamicFormComponent } from '../dynamic-form/dynamic-form.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/step-wizard\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@acorex/core/translation\";\n//#endregion\nexport class AXPDynamicFormStepperComponent {\n constructor() {\n //#region ---- Inputs ----\n /**\n * Stepper definition providing steps metadata and behavior configuration\n */\n this.definition = input.required(...(ngDevMode ? [{ debugName: \"definition\" }] : []));\n /**\n * Shared root context for all steps\n */\n this.context = input.required(...(ngDevMode ? [{ debugName: \"context\" }] : []));\n /**\n * Optional pass-through layout props for inner forms\n */\n this.layoutLook = input('normal', ...(ngDevMode ? [{ debugName: \"layoutLook\" }] : []));\n this.stepperDirection = input('horizontal', ...(ngDevMode ? [{ debugName: \"stepperDirection\" }] : []));\n this.layoutConfig = input(...(ngDevMode ? [undefined, { debugName: \"layoutConfig\" }] : []));\n /**\n * Optional guard that controls advancing to the next step (async only)\n */\n this.guardNext = input(...(ngDevMode ? [undefined, { debugName: \"guardNext\" }] : []));\n //#endregion\n //#region ---- Outputs ----\n /**\n * Emits when the shared root context changes\n */\n this.contextChange = output();\n /**\n * Emits when the active step changes\n */\n this.stepChange = output();\n /**\n * Emits after successful finish\n */\n this.finished = output();\n /**\n * Emits when cancelled by API\n */\n this.cancel = output();\n /**\n * Emits when navigation is blocked by validation or policy\n */\n this.navigationBlocked = output();\n //#endregion\n //#region ---- State ----\n /**\n * Internal reactive copy of the shared context\n */\n this.internalContext = signal({}, ...(ngDevMode ? [{ debugName: \"internalContext\" }] : []));\n /**\n * Active step index\n */\n this.currentStepIndex = signal(0, ...(ngDevMode ? [{ debugName: \"currentStepIndex\" }] : []));\n /**\n * Navigation lock while async guards are pending\n */\n this.navigationLocked = signal(false, ...(ngDevMode ? [{ debugName: \"navigationLocked\" }] : []));\n /**\n * Reference to underlying step wizard to sync visual navigation\n */\n this.wizard = viewChild(AXStepWizardComponent, ...(ngDevMode ? [{ debugName: \"wizard\" }] : []));\n /**\n * References to rendered dynamic forms (usually one active)\n */\n this.forms = viewChildren(AXPDynamicFormComponent, ...(ngDevMode ? [{ debugName: \"forms\" }] : []));\n //#endregion\n //#region ---- Computed Properties ----\n this.steps = computed(() => this.definition().steps ?? [], ...(ngDevMode ? [{ debugName: \"steps\" }] : []));\n this.stepCount = computed(() => this.steps().length, ...(ngDevMode ? [{ debugName: \"stepCount\" }] : []));\n this.currentStep = computed(() => this.steps()[this.currentStepIndex()] ?? undefined, ...(ngDevMode ? [{ debugName: \"currentStep\" }] : []));\n this.isFirstComputed = computed(() => this.currentStepIndex() === 0, ...(ngDevMode ? [{ debugName: \"isFirstComputed\" }] : []));\n this.isLastComputed = computed(() => this.currentStepIndex() === Math.max(0, this.stepCount() - 1), ...(ngDevMode ? [{ debugName: \"isLastComputed\" }] : []));\n /**\n * Non-undefined layout config for inner dynamic forms\n */\n this.effectiveLayoutConfig = computed(() => this.layoutConfig() ?? {\n positions: {\n default: { colSpan: 12 },\n md: { colSpan: 8 },\n lg: { colSpan: 6 },\n xl: { colSpan: 5 },\n xxl: { colSpan: 4 },\n },\n }, ...(ngDevMode ? [{ debugName: \"effectiveLayoutConfig\" }] : []));\n //#endregion\n //#region ---- Effects ----\n /**\n * Keep internal context in sync with input context\n */\n this.#contextSync = effect(() => {\n const ctx = this.context();\n this.internalContext.set(ctx ?? {});\n }, ...(ngDevMode ? [{ debugName: \"#contextSync\" }] : []));\n }\n //#endregion\n //#region ---- Effects ----\n /**\n * Keep internal context in sync with input context\n */\n #contextSync;\n //#endregion\n //#region ---- Public API ----\n /**\n * Returns the current step pointer\n */\n getCurrentStep() {\n const step = this.currentStep();\n return { index: this.currentStepIndex(), id: step?.id ?? '' };\n }\n /**\n * Public helpers for templates/consumers\n */\n isFirst() {\n return this.currentStepIndex() === 0;\n }\n isLast() {\n return this.currentStepIndex() === Math.max(0, this.stepCount() - 1);\n }\n /**\n * Returns the root context\n */\n getContext() {\n return this.internalContext();\n }\n /**\n * Replaces the root context programmatically\n */\n setContext(ctx) {\n this.internalContext.set(ctx ?? {});\n this.contextChange.emit(this.internalContext());\n }\n /**\n * Validates the current step.\n */\n async validateCurrentStep() {\n const instances = this.forms();\n if (!instances || instances.length === 0) {\n return true;\n }\n const index = this.currentStepIndex();\n const form = instances[index] ?? instances[0];\n if (form && typeof form.validate === 'function') {\n return await form.validate();\n }\n return true;\n }\n /**\n * Attempts to advance to the next step applying validation and guard\n */\n async next() {\n if (this.navigationLocked()) {\n return;\n }\n const valid = await this.validateCurrentStep();\n if (!valid) {\n const step = this.currentStep();\n if (step) {\n this.navigationBlocked.emit({ reason: 'invalid', stepId: step.id });\n }\n return;\n }\n const index = this.currentStepIndex();\n const step = this.steps()[index];\n if (!step) {\n return;\n }\n const event = { index, id: step.id, fullContext: this.internalContext() };\n const guard = this.guardNext();\n if (guard) {\n try {\n this.navigationLocked.set(true);\n const allowed = await guard(event);\n if (!allowed) {\n return;\n }\n }\n finally {\n this.navigationLocked.set(false);\n }\n }\n // Context is already synced through onStepContextChange\n this.contextChange.emit(this.internalContext());\n // Advance\n if (index < this.stepCount() - 1) {\n this.#activateStep(index + 1);\n // Sync visual wizard\n this.wizard()?.next();\n }\n }\n /**\n * Goes back to the previous step if possible\n */\n async previous() {\n if (this.navigationLocked()) {\n return;\n }\n const index = this.currentStepIndex();\n if (index <= 0) {\n return;\n }\n const current = this.steps()[index];\n if (current && current.canGoBack === false) {\n this.navigationBlocked.emit({ reason: 'cannot-go-back', stepId: current.id, targetIndex: index - 1 });\n return;\n }\n this.#activateStep(index - 1);\n // Sync visual wizard\n this.wizard()?.previous();\n }\n /**\n * Navigates to a specific step by id or index\n */\n async goTo(stepIdOrIndex) {\n if (typeof stepIdOrIndex === 'number') {\n await this.#attemptNavigateToIndex(stepIdOrIndex);\n return;\n }\n const idx = this.steps().findIndex((s) => s.id === stepIdOrIndex);\n if (idx >= 0) {\n await this.#attemptNavigateToIndex(idx);\n }\n }\n /**\n * Validates all steps and emits finished when successful\n */\n async finish() {\n // MVP: assume all steps valid\n this.finished.emit(this.internalContext());\n }\n /**\n * Emits cancel event without state changes\n */\n cancelFlow() {\n this.cancel.emit();\n }\n //#endregion\n //#region ---- Utilities ----\n #activateStep(index) {\n this.currentStepIndex.set(index);\n const step = this.steps()[index];\n if (step?.dataPath) {\n // Ensure the path exists for binding\n this.#ensurePath(step.dataPath);\n }\n if (step) {\n this.stepChange.emit({ index, id: step.id });\n }\n }\n /**\n * Attempts navigation to a specific index while enforcing linear/skip/back rules and validation.\n */\n async #attemptNavigateToIndex(targetIndex) {\n if (targetIndex < 0 || targetIndex >= this.stepCount()) {\n return;\n }\n const currentIndex = this.currentStepIndex();\n if (targetIndex === currentIndex) {\n return;\n }\n const steps = this.steps();\n const current = steps[currentIndex];\n const target = steps[targetIndex];\n if (!current || !target) {\n return;\n }\n // Moving backward: ensure all steps between have canGoBack !== false\n if (targetIndex < currentIndex) {\n for (let i = currentIndex; i > targetIndex; i--) {\n const step = steps[i];\n if (step && step.canGoBack === false) {\n this.navigationBlocked.emit({ reason: 'cannot-go-back', stepId: step.id, targetIndex });\n return;\n }\n }\n this.#activateStep(targetIndex);\n const w = this.wizard();\n if (w && typeof w.goStep === 'function') {\n w.goStep(targetIndex);\n }\n else {\n this.wizard()?.previous();\n }\n return;\n }\n // Moving forward: enforce linear and canSkip\n const isLinear = !!this.definition().linear;\n if (isLinear && targetIndex > currentIndex + 1) {\n this.navigationBlocked.emit({ reason: 'linear', stepId: current.id, targetIndex });\n return;\n }\n // Check skipped steps for canSkip\n for (let i = currentIndex + 1; i < targetIndex; i++) {\n const step = steps[i];\n if (step && step.canSkip !== true) {\n this.navigationBlocked.emit({ reason: 'cannot-skip', stepId: step.id, targetIndex });\n return;\n }\n }\n // Forward navigation should validate current step and pass guard\n const valid = await this.validateCurrentStep();\n if (!valid) {\n this.navigationBlocked.emit({ reason: 'invalid', stepId: current.id, targetIndex });\n return;\n }\n const guard = this.guardNext();\n if (guard) {\n try {\n this.navigationLocked.set(true);\n const allowed = await guard({ index: currentIndex, id: current.id, fullContext: this.internalContext() });\n if (!allowed) {\n return;\n }\n }\n finally {\n this.navigationLocked.set(false);\n }\n }\n this.#activateStep(targetIndex);\n const w = this.wizard();\n if (w && typeof w.goStep === 'function') {\n w.goStep(targetIndex);\n }\n else {\n this.wizard()?.next();\n }\n }\n #readStepSlice(path) {\n const root = this.internalContext();\n if (!path) {\n return { slice: root, exists: true };\n }\n const parts = path.split('.').filter(Boolean);\n let node = root;\n for (const key of parts) {\n if (node == null || typeof node !== 'object') {\n return { slice: undefined, exists: false };\n }\n node = node[key];\n }\n return { slice: node, exists: node !== undefined };\n }\n #writeStepSlice(path, value) {\n if (!path) {\n // Replace full root with value only if value is an object\n if (value && typeof value === 'object') {\n this.internalContext.set(value);\n }\n return;\n }\n const root = { ...this.internalContext() };\n const parts = path.split('.').filter(Boolean);\n let node = root;\n for (let i = 0; i < parts.length; i++) {\n const key = parts[i];\n if (i === parts.length - 1) {\n node[key] = value;\n }\n else {\n node[key] = node[key] && typeof node[key] === 'object' ? { ...node[key] } : {};\n node = node[key];\n }\n }\n this.internalContext.set(root);\n }\n #ensurePath(path) {\n const root = { ...this.internalContext() };\n const parts = path.split('.').filter(Boolean);\n let node = root;\n for (const key of parts) {\n if (!node[key] || typeof node[key] !== 'object') {\n node[key] = {};\n }\n node = node[key];\n }\n this.internalContext.set(root);\n }\n /**\n * Handle per-step context changes and keep internal root context in sync.\n */\n onStepContextChange(stepId, stepContext) {\n const step = this.steps().find((s) => s.id === stepId);\n if (!step) {\n return;\n }\n this.#writeStepSlice(step.dataPath, stepContext);\n this.contextChange.emit(this.internalContext());\n }\n /**\n * Exposes reading a step slice to the template\n */\n readStepSlice(path) {\n return this.#readStepSlice(path);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicFormStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPDynamicFormStepperComponent, isStandalone: true, selector: \"axp-dynamic-form-stepper\", inputs: { definition: { classPropertyName: \"definition\", publicName: \"definition\", isSignal: true, isRequired: true, transformFunction: null }, context: { classPropertyName: \"context\", publicName: \"context\", isSignal: true, isRequired: true, transformFunction: null }, layoutLook: { classPropertyName: \"layoutLook\", publicName: \"layoutLook\", isSignal: true, isRequired: false, transformFunction: null }, stepperDirection: { classPropertyName: \"stepperDirection\", publicName: \"stepperDirection\", isSignal: true, isRequired: false, transformFunction: null }, layoutConfig: { classPropertyName: \"layoutConfig\", publicName: \"layoutConfig\", isSignal: true, isRequired: false, transformFunction: null }, guardNext: { classPropertyName: \"guardNext\", publicName: \"guardNext\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { contextChange: \"contextChange\", stepChange: \"stepChange\", finished: \"finished\", cancel: \"cancel\", navigationBlocked: \"navigationBlocked\" }, host: { properties: { \"class.--vertical\": \"stepperDirection() === 'vertical'\" }, classAttribute: \"axp-dynamic-form-stepper\" }, viewQueries: [{ propertyName: \"wizard\", first: true, predicate: AXStepWizardComponent, descendants: true, isSignal: true }, { propertyName: \"forms\", predicate: AXPDynamicFormComponent, descendants: true, isSignal: true }], ngImport: i0, template: \"<ax-step-wizard\\n class=\\\"ax-sticky ax-top-0 ax-z-10 ax-transition-all\\\"\\n #sticky=\\\"axpSticky\\\"\\n [axpSticky]=\\\"'ax-bg-lightest ax-shadow-md ax-pt-4'\\\"\\n [stickyParent]=\\\"'.ax-popup-body-container'\\\"\\n #wizard\\n [content]=\\\"wizardContent\\\"\\n [stickyOffset]=\\\"100\\\"\\n [look]=\\\"'text-line'\\\"\\n [orientation]=\\\"stepperDirection()\\\"\\n>\\n @for (step of steps(); track step.id) {\\n <ax-step-wizard-item [label]=\\\"(step.title || '' | translate | async)!\\\" [id]=\\\"step.id\\\">\\n @if (step.icon) {\\n <ax-icon [class]=\\\"step.icon\\\"></ax-icon>\\n }\\n <ax-content>\\n <axp-dynamic-form\\n [formDefinition]=\\\"{ groups: step.groups }\\\"\\n [context]=\\\"readStepSlice(step.dataPath).slice\\\"\\n [layoutLook]=\\\"layoutLook()\\\"\\n [layoutDirection]=\\\"step.formDirection || 'vertical'\\\"\\n [layoutConfig]=\\\"effectiveLayoutConfig()\\\"\\n (contextChange)=\\\"onStepContextChange(step.id, $event)\\\"\\n ></axp-dynamic-form>\\n </ax-content>\\n </ax-step-wizard-item>\\n }\\n</ax-step-wizard>\\n\\n<ng-template [axStepWizardContent] #wizardContent=\\\"axStepWizardContent\\\"></ng-template>\\n\", styles: [\".axp-dynamic-form-stepper.--vertical{display:flex;gap:1rem}.axp-dynamic-form-stepper.--vertical ax-step-wizard{width:unset}.axp-dynamic-form-stepper.--vertical ax-content{flex:1 1 auto}.axp-dynamic-form-stepper axp-layout-section{margin-bottom:.75rem}.axp-dynamic-form-stepper axp-layout-section axp-layout-header{margin-bottom:.5rem;gap:0px;padding:.5rem;padding:0}.axp-dynamic-form-stepper axp-layout-section axp-layout-header axp-layout-title{padding-bottom:1rem;font-size:1.25rem;line-height:1.75rem;font-weight:700}.axp-dynamic-form-stepper axp-layout-section axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-dynamic-form-stepper axp-layout-section axp-layout-section axp-layout-content{padding:0}.axp-dynamic-form-stepper axp-layout-section axp-layout-section axp-layout-content .__field-container{padding:0!important}.axp-dynamic-form-stepper ax-step-wizard{margin-bottom:2rem}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXStepWizardModule }, { kind: \"component\", type: i1.AXStepWizardComponent, selector: \"ax-step-wizard\", inputs: [\"connector\", \"size\", \"look\", \"changeStep\", \"orientation\", \"content\"], outputs: [\"stepChanged\"] }, { kind: \"component\", type: i1.AXStepWizardItemComponent, selector: \"ax-step-wizard-item\", inputs: [\"disabled\", \"color\", \"step\", \"label\", \"description\", \"customTemplate\", \"active\", \"passed\", \"look\", \"state\", \"id\"], outputs: [\"activeChange\", \"passedChange\", \"lookChange\", \"stateChange\"] }, { kind: \"directive\", type: i1.AXStepWizardContentDirective, selector: \"[axStepWizardContent]\", inputs: [\"axStepWizardContent\"], exportAs: [\"axStepWizardContent\"] }, { kind: \"component\", type: AXPDynamicFormComponent, selector: \"axp-dynamic-form\", inputs: [\"formDefinition\", \"context\", \"layoutLook\", \"layoutDirection\", \"mode\", \"layoutConfig\"], outputs: [\"contextChange\", \"contextInitiated\", \"validityChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"directive\", type: AXPStickyDirective, selector: \"[axpSticky]\", inputs: [\"axpSticky\", \"stickyOffset\", \"stickyParent\", \"stickyTarget\"], outputs: [\"isStickyChange\"], exportAs: [\"axpSticky\"] }, { kind: \"pipe\", type: i3.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicFormStepperComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, selector: 'axp-dynamic-form-stepper', imports: [\n CommonModule,\n AXStepWizardModule,\n AXPDynamicFormComponent,\n AXDecoratorModule,\n AXTranslationModule,\n AXPStickyDirective,\n ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n class: 'axp-dynamic-form-stepper',\n '[class.--vertical]': \"stepperDirection() === 'vertical'\",\n }, template: \"<ax-step-wizard\\n class=\\\"ax-sticky ax-top-0 ax-z-10 ax-transition-all\\\"\\n #sticky=\\\"axpSticky\\\"\\n [axpSticky]=\\\"'ax-bg-lightest ax-shadow-md ax-pt-4'\\\"\\n [stickyParent]=\\\"'.ax-popup-body-container'\\\"\\n #wizard\\n [content]=\\\"wizardContent\\\"\\n [stickyOffset]=\\\"100\\\"\\n [look]=\\\"'text-line'\\\"\\n [orientation]=\\\"stepperDirection()\\\"\\n>\\n @for (step of steps(); track step.id) {\\n <ax-step-wizard-item [label]=\\\"(step.title || '' | translate | async)!\\\" [id]=\\\"step.id\\\">\\n @if (step.icon) {\\n <ax-icon [class]=\\\"step.icon\\\"></ax-icon>\\n }\\n <ax-content>\\n <axp-dynamic-form\\n [formDefinition]=\\\"{ groups: step.groups }\\\"\\n [context]=\\\"readStepSlice(step.dataPath).slice\\\"\\n [layoutLook]=\\\"layoutLook()\\\"\\n [layoutDirection]=\\\"step.formDirection || 'vertical'\\\"\\n [layoutConfig]=\\\"effectiveLayoutConfig()\\\"\\n (contextChange)=\\\"onStepContextChange(step.id, $event)\\\"\\n ></axp-dynamic-form>\\n </ax-content>\\n </ax-step-wizard-item>\\n }\\n</ax-step-wizard>\\n\\n<ng-template [axStepWizardContent] #wizardContent=\\\"axStepWizardContent\\\"></ng-template>\\n\", styles: [\".axp-dynamic-form-stepper.--vertical{display:flex;gap:1rem}.axp-dynamic-form-stepper.--vertical ax-step-wizard{width:unset}.axp-dynamic-form-stepper.--vertical ax-content{flex:1 1 auto}.axp-dynamic-form-stepper axp-layout-section{margin-bottom:.75rem}.axp-dynamic-form-stepper axp-layout-section axp-layout-header{margin-bottom:.5rem;gap:0px;padding:.5rem;padding:0}.axp-dynamic-form-stepper axp-layout-section axp-layout-header axp-layout-title{padding-bottom:1rem;font-size:1.25rem;line-height:1.75rem;font-weight:700}.axp-dynamic-form-stepper axp-layout-section axp-layout-header axp-layout-description{margin-top:.25rem;font-size:.75rem;line-height:1rem;opacity:.75}.axp-dynamic-form-stepper axp-layout-section axp-layout-section axp-layout-content{padding:0}.axp-dynamic-form-stepper axp-layout-section axp-layout-section axp-layout-content .__field-container{padding:0!important}.axp-dynamic-form-stepper ax-step-wizard{margin-bottom:2rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2R5bmFtaWMtZm9ybS1zdGVwcGVyL2R5bmFtaWMtZm9ybS1zdGVwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9keW5hbWljLWZvcm0tc3RlcHBlci9keW5hbWljLWZvcm0tc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUNaLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7O0FBSWpGLFlBQVk7QUFzQlosTUFBTSxPQUFPLDhCQUE4QjtJQXBCM0M7UUFxQkUsOEJBQThCO1FBRTlCOztXQUVHO1FBQ0gsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLHFEQUFtQyxDQUFDO1FBRS9EOztXQUVHO1FBQ0gsWUFB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TyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7OEdBMWJVLDhCQUE4QjtrR0FBOUIsOEJBQThCLGt0Q0FnRkwscUJBQXFCLDJFQUtuQix1QkFBdUIsZ0VDcEkvRCxvb0NBK0JBLDQrQkRFSSxZQUFZLDhCQUNaLGtCQUFrQixncUJBQ2xCLHVCQUF1Qiw4TkFDdkIsaUJBQWlCLHNWQUNqQixtQkFBbUIsK0JBQ25CLGtCQUFrQjs7MkZBU1QsOEJBQThCO2tCQXBCMUMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sMEJBQTBCLFdBRzNCO3dCQUNQLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixrQkFBa0I7cUJBQ25CLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSwwQkFBMEI7d0JBQ2pDLG9CQUFvQixFQUFFLG1DQUFtQztxQkFDMUQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gLS0tLSAgIEltcG9ydHMgICAtLS0tXG5cbmltcG9ydCB7IEFYT3JpZW50YXRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFN0ZXBXaXphcmRDb21wb25lbnQsIEFYU3RlcFdpemFyZE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zdGVwLXdpemFyZCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcblxuaW1wb3J0IHsgQVhQU3RpY2t5RGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxuICB2aWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUER5bmFtaWNGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRHluYW1pY0Zvcm1MYXlvdXRDb25maWcsIEFYUER5bmFtaWNGb3JtTG9vayB9IGZyb20gJy4uL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0udHlwZXMnO1xuaW1wb3J0IHsgQVhQRHluYW1pY0Zvcm1TdGVwcGVyRGVmaW5pdGlvbiB9IGZyb20gJy4vZHluYW1pYy1mb3JtLXN0ZXBwZXIudHlwZXMnO1xuXG4vLyNlbmRyZWdpb25cblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnYXhwLWR5bmFtaWMtZm9ybS1zdGVwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWFN0ZXBXaXphcmRNb2R1bGUsXG4gICAgQVhQRHluYW1pY0Zvcm1Db21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBTdGlja3lEaXJlY3RpdmUsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdheHAtZHluYW1pYy1mb3JtLXN0ZXBwZXInLFxuICAgICdbY2xhc3MuLS12ZXJ0aWNhbF0nOiBcInN0ZXBwZXJEaXJlY3Rpb24oKSA9PT0gJ3ZlcnRpY2FsJ1wiLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEeW5hbWljRm9ybVN0ZXBwZXJDb21wb25lbnQge1xuICAvLyNyZWdpb24gLS0tLSAgIElucHV0cyAgIC0tLS1cblxuICAvKipcbiAgICogU3RlcHBlciBkZWZpbml0aW9uIHByb3ZpZGluZyBzdGVwcyBtZXRhZGF0YSBhbmQgYmVoYXZpb3IgY29uZmlndXJhdGlvblxuICAgKi9cbiAgZGVmaW5pdGlvbiA9IGlucHV0LnJlcXVpcmVkPEFYUER5bmFtaWNGb3JtU3RlcHBlckRlZmluaXRpb24+KCk7XG5cbiAgLyoqXG4gICAqIFNoYXJlZCByb290IGNvbnRleHQgZm9yIGFsbCBzdGVwc1xuICAgKi9cbiAgY29udGV4dCA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgcGFzcy10aHJvdWdoIGxheW91dCBwcm9wcyBmb3IgaW5uZXIgZm9ybXNcbiAgICovXG4gIGxheW91dExvb2sgPSBpbnB1dDxBWFBEeW5hbWljRm9ybUxvb2s+KCdub3JtYWwnKTtcbiAgc3RlcHBlckRpcmVjdGlvbiA9IGlucHV0PEFYT3JpZW50YXRpb24+KCdob3Jpem9udGFsJyk7XG4gIGxheW91dENvbmZpZyA9IGlucHV0PEFYUER5bmFtaWNGb3JtTGF5b3V0Q29uZmlnIHwgdW5kZWZpbmVkPigpO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBndWFyZCB0aGF0IGNvbnRyb2xzIGFkdmFuY2luZyB0byB0aGUgbmV4dCBzdGVwIChhc3luYyBvbmx5KVxuICAgKi9cbiAgZ3VhcmROZXh0ID0gaW5wdXQ8KChlOiB7IGluZGV4OiBudW1iZXI7IGlkOiBzdHJpbmc7IGZ1bGxDb250ZXh0OiBhbnkgfSkgPT4gUHJvbWlzZTxib29sZWFuPikgfCB1bmRlZmluZWQ+KCk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBPdXRwdXRzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBzaGFyZWQgcm9vdCBjb250ZXh0IGNoYW5nZXNcbiAgICovXG4gIGNvbnRleHRDaGFuZ2UgPSBvdXRwdXQ8YW55PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIHRoZSBhY3RpdmUgc3RlcCBjaGFuZ2VzXG4gICAqL1xuICBzdGVwQ2hhbmdlID0gb3V0cHV0PHsgaW5kZXg6IG51bWJlcjsgaWQ6IHN0cmluZyB9PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhZnRlciBzdWNjZXNzZnVsIGZpbmlzaFxuICAgKi9cbiAgZmluaXNoZWQgPSBvdXRwdXQ8YW55PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIGNhbmNlbGxlZCBieSBBUElcbiAgICovXG4gIGNhbmNlbCA9IG91dHB1dDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuIG5hdmlnYXRpb24gaXMgYmxvY2tlZCBieSB2YWxpZGF0aW9uIG9yIHBvbGljeVxuICAgKi9cbiAgbmF2aWdhdGlvbkJsb2NrZWQgPSBvdXRwdXQ8e1xuICAgIHJlYXNvbjogJ2ludmFsaWQnIHwgJ2xpbmVhcicgfCAnY2Fubm90LXNraXAnIHwgJ2Nhbm5vdC1nby1iYWNrJztcbiAgICBzdGVwSWQ6IHN0cmluZztcbiAgICB0YXJnZXRJbmRleD86IG51bWJlcjtcbiAgfT4oKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFN0YXRlICAgLS0tLVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCByZWFjdGl2ZSBjb3B5IG9mIHRoZSBzaGFyZWQgY29udGV4dFxuICAgKi9cbiAgcHJpdmF0ZSBpbnRlcm5hbENvbnRleHQgPSBzaWduYWw8YW55Pih7fSk7XG5cbiAgLyoqXG4gICAqIEFjdGl2ZSBzdGVwIGluZGV4XG4gICAqL1xuICBwcm90ZWN0ZWQgY3VycmVudFN0ZXBJbmRleCA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIC8qKlxuICAgKiBOYXZpZ2F0aW9uIGxvY2sgd2hpbGUgYXN5bmMgZ3VhcmRzIGFyZSBwZW5kaW5nXG4gICAqL1xuICBwcml2YXRlIG5hdmlnYXRpb25Mb2NrZWQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdW5kZXJseWluZyBzdGVwIHdpemFyZCB0byBzeW5jIHZpc3VhbCBuYXZpZ2F0aW9uXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHdpemFyZCA9IHZpZXdDaGlsZChBWFN0ZXBXaXphcmRDb21wb25lbnQpO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2VzIHRvIHJlbmRlcmVkIGR5bmFtaWMgZm9ybXMgKHVzdWFsbHkgb25lIGFjdGl2ZSlcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybXMgPSB2aWV3Q2hpbGRyZW4oQVhQRHluYW1pY0Zvcm1Db21wb25lbnQpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQ29tcHV0ZWQgUHJvcGVydGllcyAgIC0tLS1cblxuICBwcm90ZWN0ZWQgc3RlcHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRlZmluaXRpb24oKS5zdGVwcyA/PyBbXSk7XG4gIHByb3RlY3RlZCBzdGVwQ291bnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0ZXBzKCkubGVuZ3RoKTtcbiAgcHJvdGVjdGVkIGN1cnJlbnRTdGVwID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGVwcygpW3RoaXMuY3VycmVudFN0ZXBJbmRleCgpXSA/PyB1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgaXNGaXJzdENvbXB1dGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jdXJyZW50U3RlcEluZGV4KCkgPT09IDApO1xuICBwcm90ZWN0ZWQgaXNMYXN0Q29tcHV0ZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmN1cnJlbnRTdGVwSW5kZXgoKSA9PT0gTWF0aC5tYXgoMCwgdGhpcy5zdGVwQ291bnQoKSAtIDEpKTtcblxuICAvKipcbiAgICogTm9uLXVuZGVmaW5lZCBsYXlvdXQgY29uZmlnIGZvciBpbm5lciBkeW5hbWljIGZvcm1zXG4gICAqL1xuICBwcm90ZWN0ZWQgZWZmZWN0aXZlTGF5b3V0Q29uZmlnID0gY29tcHV0ZWQ8QVhQRHluYW1pY0Zvcm1MYXlvdXRDb25maWc+KFxuICAgICgpID0+XG4gICAgICB0aGlzLmxheW91dENvbmZpZygpID8/IHtcbiAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgZGVmYXVsdDogeyBjb2xTcGFuOiAxMiB9LFxuICAgICAgICAgIG1kOiB7IGNvbFNwYW46IDggfSxcbiAgICAgICAgICBsZzogeyBjb2xTcGFuOiA2IH0sXG4gICAgICAgICAgeGw6IHsgY29sU3BhbjogNSB9LFxuICAgICAgICAgIHh4bDogeyBjb2xTcGFuOiA0IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICApO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgRWZmZWN0cyAgIC0tLS1cblxuICAvKipcbiAgICogS2VlcCBpbnRlcm5hbCBjb250ZXh0IGluIHN5bmMgd2l0aCBpbnB1dCBjb250ZXh0XG4gICAqL1xuICAjY29udGV4dFN5bmMgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuY29udGV4dCgpO1xuICAgIHRoaXMuaW50ZXJuYWxDb250ZXh0LnNldChjdHggPz8ge30pO1xuICB9KTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBBUEkgICAtLS0tXG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgc3RlcCBwb2ludGVyXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudFN0ZXAoKTogeyBpbmRleDogbnVtYmVyOyBpZDogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLmN1cnJlbnRTdGVwKCk7XG4gICAgcmV0dXJuIHsgaW5kZXg6IHRoaXMuY3VycmVudFN0ZXBJbmRleCgpLCBpZDogc3RlcD8uaWQgPz8gJycgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdWJsaWMgaGVscGVycyBmb3IgdGVtcGxhdGVzL2NvbnN1bWVyc1xuICAgKi9cbiAgcHVibGljIGlzRmlyc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0ZXBJbmRleCgpID09PSAwO1xuICB9XG4gIHB1YmxpYyBpc0xhc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFN0ZXBJbmRleCgpID09PSBNYXRoLm1heCgwLCB0aGlzLnN0ZXBDb3VudCgpIC0gMSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcm9vdCBjb250ZXh0XG4gICAqL1xuICBwdWJsaWMgZ2V0Q29udGV4dCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmludGVybmFsQ29udGV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIHRoZSByb290IGNvbnRleHQgcHJvZ3JhbW1hdGljYWxseVxuICAgKi9cbiAgcHVibGljIHNldENvbnRleHQoY3R4OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmludGVybmFsQ29udGV4dC5zZXQoY3R4ID8/IHt9KTtcbiAgICB0aGlzLmNvbnRleHRDaGFuZ2UuZW1pdCh0aGlzLmludGVybmFsQ29udGV4dCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGN1cnJlbnQgc3RlcC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZUN1cnJlbnRTdGVwKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGluc3RhbmNlcyA9IHRoaXMuZm9ybXMoKTtcbiAgICBpZiAoIWluc3RhbmNlcyB8fCBpbnN0YW5jZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmN1cnJlbnRTdGVwSW5kZXgoKTtcbiAgICBjb25zdCBmb3JtID0gaW5zdGFuY2VzW2luZGV4XSA/PyBpbnN0YW5jZXNbMF07XG4gICAgaWYgKGZvcm0gJiYgdHlwZW9mIGZvcm0udmFsaWRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBhd2FpdCBmb3JtLnZhbGlkYXRlKCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGFkdmFuY2UgdG8gdGhlIG5leHQgc3RlcCBhcHBseWluZyB2YWxpZGF0aW9uIGFuZCBndWFyZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIG5leHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMubmF2aWdhdGlvbkxvY2tlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHZhbGlkID0gYXdhaXQgdGhpcy52YWxpZGF0ZUN1cnJlbnRTdGVwKCk7XG5cbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICBjb25zdCBzdGVwID0gdGhpcy5jdXJyZW50U3RlcCgpO1xuICAgICAgaWYgKHN0ZXApIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uQmxvY2tlZC5lbWl0KHsgcmVhc29uOiAnaW52YWxpZCcsIHN0ZXBJZDogc3RlcC5pZCB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudFN0ZXBJbmRleCgpO1xuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXBzKClbaW5kZXhdO1xuICAgIGlmICghc3RlcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50ID0geyBpbmRleCwgaWQ6IHN0ZXAuaWQsIGZ1bGxDb250ZXh0OiB0aGlzLmludGVybmFsQ29udGV4dCgpIH07XG5cbiAgICBjb25zdCBndWFyZCA9IHRoaXMuZ3VhcmROZXh0KCk7XG4gICAgaWYgKGd1YXJkKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25Mb2NrZWQuc2V0KHRydWUpO1xuICAgICAgICBjb25zdCBhbGxvd2VkID0gYXdhaXQgZ3VhcmQoZXZlbnQpO1xuICAgICAgICBpZiAoIWFsbG93ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkxvY2tlZC5zZXQoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENvbnRleHQgaXMgYWxyZWFkeSBzeW5jZWQgdGhyb3VnaCBvblN0ZXBDb250ZXh0Q2hhbmdlXG4gICAgdGhpcy5jb250ZXh0Q2hhbmdlLmVtaXQodGhpcy5pbnRlcm5hbENvbnRleHQoKSk7XG5cbiAgICAvLyBBZHZhbmNlXG4gICAgaWYgKGluZGV4IDwgdGhpcy5zdGVwQ291bnQoKSAtIDEpIHtcbiAgICAgIHRoaXMuI2FjdGl2YXRlU3RlcChpbmRleCArIDEpO1xuICAgICAgLy8gU3luYyB2aXN1YWwgd2l6YXJkXG4gICAgICB0aGlzLndpemFyZCgpPy5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdvZXMgYmFjayB0byB0aGUgcHJldmlvdXMgc3RlcCBpZiBwb3NzaWJsZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHByZXZpb3VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm5hdmlnYXRpb25Mb2NrZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY3VycmVudFN0ZXBJbmRleCgpO1xuICAgIGlmIChpbmRleCA8PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnN0ZXBzKClbaW5kZXhdO1xuICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQuY2FuR29CYWNrID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uQmxvY2tlZC5lbWl0KHsgcmVhc29uOiAnY2Fubm90LWdvLWJhY2snLCBzdGVwSWQ6IGN1cnJlbnQuaWQsIHRhcmdldEluZGV4OiBpbmRleCAtIDEgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuI2FjdGl2YXRlU3RlcChpbmRleCAtIDEpO1xuICAgIC8vIFN5bmMgdmlzdWFsIHdpemFyZFxuICAgIHRoaXMud2l6YXJkKCk/LnByZXZpb3VzKCk7XG4gIH1cblxuICAvKipcbiAgICogTmF2aWdhdGVzIHRvIGEgc3BlY2lmaWMgc3RlcCBieSBpZCBvciBpbmRleFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdvVG8oc3RlcElkT3JJbmRleDogc3RyaW5nIHwgbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHR5cGVvZiBzdGVwSWRPckluZGV4ID09PSAnbnVtYmVyJykge1xuICAgICAgYXdhaXQgdGhpcy4jYXR0ZW1wdE5hdmlnYXRlVG9JbmRleChzdGVwSWRPckluZGV4KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaWR4ID0gdGhpcy5zdGVwcygpLmZpbmRJbmRleCgocykgPT4gcy5pZCA9PT0gc3RlcElkT3JJbmRleCk7XG4gICAgaWYgKGlkeCA+PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLiNhdHRlbXB0TmF2aWdhdGVUb0luZGV4KGlkeCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBhbGwgc3RlcHMgYW5kIGVtaXRzIGZpbmlzaGVkIHdoZW4gc3VjY2Vzc2Z1bFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZpbmlzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBNVlA6IGFzc3VtZSBhbGwgc3RlcHMgdmFsaWRcbiAgICB0aGlzLmZpbmlzaGVkLmVtaXQodGhpcy5pbnRlcm5hbENvbnRleHQoKSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgY2FuY2VsIGV2ZW50IHdpdGhvdXQgc3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgcHVibGljIGNhbmNlbEZsb3coKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBVdGlsaXRpZXMgICAtLS0tXG5cbiAgI2FjdGl2YXRlU3RlcChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50U3RlcEluZGV4LnNldChpbmRleCk7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuc3RlcHMoKVtpbmRleF07XG4gICAgaWYgKHN0ZXA/LmRhdGFQYXRoKSB7XG4gICAgICAvLyBFbnN1cmUgdGhlIHBhdGggZXhpc3RzIGZvciBiaW5kaW5nXG4gICAgICB0aGlzLiNlbnN1cmVQYXRoKHN0ZXAuZGF0YVBhdGgpO1xuICAgIH1cbiAgICBpZiAoc3RlcCkge1xuICAgICAgdGhpcy5zdGVwQ2hhbmdlLmVtaXQoeyBpbmRleCwgaWQ6IHN0ZXAuaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIG5hdmlnYXRpb24gdG8gYSBzcGVjaWZpYyBpbmRleCB3aGlsZSBlbmZvcmNpbmcgbGluZWFyL3NraXAvYmFjayBydWxlcyBhbmQgdmFsaWRhdGlvbi5cbiAgICovXG4gIGFzeW5jICNhdHRlbXB0TmF2aWdhdGVUb0luZGV4KHRhcmdldEluZGV4OiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGFyZ2V0SW5kZXggPCAwIHx8IHRhcmdldEluZGV4ID49IHRoaXMuc3RlcENvdW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5jdXJyZW50U3RlcEluZGV4KCk7XG4gICAgaWYgKHRhcmdldEluZGV4ID09PSBjdXJyZW50SW5kZXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGVwcyA9IHRoaXMuc3RlcHMoKTtcbiAgICBjb25zdCBjdXJyZW50ID0gc3RlcHNbY3VycmVudEluZGV4XTtcbiAgICBjb25zdCB0YXJnZXQgPSBzdGVwc1t0YXJnZXRJbmRleF07XG4gICAgaWYgKCFjdXJyZW50IHx8ICF0YXJnZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBNb3ZpbmcgYmFja3dhcmQ6IGVuc3VyZSBhbGwgc3RlcHMgYmV0d2VlbiBoYXZlIGNhbkdvQmFjayAhPT0gZmFsc2VcbiAgICBpZiAodGFyZ2V0SW5kZXggPCBjdXJyZW50SW5kZXgpIHtcbiAgICAgIGZvciAobGV0IGkgPSBjdXJyZW50SW5kZXg7IGkgPiB0YXJnZXRJbmRleDsgaS0tKSB7XG4gICAgICAgIGNvbnN0IHN0ZXAgPSBzdGVwc1tpXTtcbiAgICAgICAgaWYgKHN0ZXAgJiYgc3RlcC5jYW5Hb0JhY2sgPT09IGZhbHNlKSB7XG4gICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uQmxvY2tlZC5lbWl0KHsgcmVhc29uOiAnY2Fubm90LWdvLWJhY2snLCBzdGVwSWQ6IHN0ZXAuaWQsIHRhcmdldEluZGV4IH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy4jYWN0aXZhdGVTdGVwKHRhcmdldEluZGV4KTtcbiAgICAgIGNvbnN0IHcgPSB0aGlzLndpemFyZCgpO1xuICAgICAgaWYgKHcgJiYgdHlwZW9mIHcuZ29TdGVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHcuZ29TdGVwKHRhcmdldEluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMud2l6YXJkKCk/LnByZXZpb3VzKCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gTW92aW5nIGZvcndhcmQ6IGVuZm9yY2UgbGluZWFyIGFuZCBjYW5Ta2lwXG4gICAgY29uc3QgaXNMaW5lYXIgPSAhIXRoaXMuZGVmaW5pdGlvbigpLmxpbmVhcjtcbiAgICBpZiAoaXNMaW5lYXIgJiYgdGFyZ2V0SW5kZXggPiBjdXJyZW50SW5kZXggKyAxKSB7XG4gICAgICB0aGlzLm5hdmlnYXRpb25CbG9ja2VkLmVtaXQoeyByZWFzb246ICdsaW5lYXInLCBzdGVwSWQ6IGN1cnJlbnQuaWQsIHRhcmdldEluZGV4IH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBDaGVjayBza2lwcGVkIHN0ZXBzIGZvciBjYW5Ta2lwXG4gICAgZm9yIChsZXQgaSA9IGN1cnJlbnRJbmRleCArIDE7IGkgPCB0YXJnZXRJbmRleDsgaSsrKSB7XG4gICAgICBjb25zdCBzdGVwID0gc3RlcHNbaV07XG4gICAgICBpZiAoc3RlcCAmJiBzdGVwLmNhblNraXAgIT09IHRydWUpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uQmxvY2tlZC5lbWl0KHsgcmVhc29uOiAnY2Fubm90LXNraXAnLCBzdGVwSWQ6IHN0ZXAuaWQsIHRhcmdldEluZGV4IH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRm9yd2FyZCBuYXZpZ2F0aW9uIHNob3VsZCB2YWxpZGF0ZSBjdXJyZW50IHN0ZXAgYW5kIHBhc3MgZ3VhcmRcbiAgICBjb25zdCB2YWxpZCA9IGF3YWl0IHRoaXMudmFsaWRhdGVDdXJyZW50U3RlcCgpO1xuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbkJsb2NrZWQuZW1pdCh7IHJlYXNvbjogJ2ludmFsaWQnLCBzdGVwSWQ6IGN1cnJlbnQuaWQsIHRhcmdldEluZGV4IH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBndWFyZCA9IHRoaXMuZ3VhcmROZXh0KCk7XG4gICAgaWYgKGd1YXJkKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25Mb2NrZWQuc2V0KHRydWUpO1xuICAgICAgICBjb25zdCBhbGxvd2VkID0gYXdhaXQgZ3VhcmQoeyBpbmRleDogY3VycmVudEluZGV4LCBpZDogY3VycmVudC5pZCwgZnVsbENvbnRleHQ6IHRoaXMuaW50ZXJuYWxDb250ZXh0KCkgfSk7XG4gICAgICAgIGlmICghYWxsb3dlZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTG9ja2VkLnNldChmYWxzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuI2FjdGl2YXRlU3RlcCh0YXJnZXRJbmRleCk7XG4gICAgY29uc3QgdyA9IHRoaXMud2l6YXJkKCk7XG4gICAgaWYgKHcgJiYgdHlwZW9mIHcuZ29TdGVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB3LmdvU3RlcCh0YXJnZXRJbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud2l6YXJkKCk/Lm5leHQoKTtcbiAgICB9XG4gIH1cblxuICAjcmVhZFN0ZXBTbGljZShwYXRoPzogc3RyaW5nKTogeyBzbGljZTogYW55OyBleGlzdHM6IGJvb2xlYW4gfSB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMuaW50ZXJuYWxDb250ZXh0KCk7XG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICByZXR1cm4geyBzbGljZTogcm9vdCwgZXhpc3RzOiB0cnVlIH07XG4gICAgfVxuICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLicpLmZpbHRlcihCb29sZWFuKTtcbiAgICBsZXQgbm9kZTogYW55ID0gcm9vdDtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBwYXJ0cykge1xuICAgICAgaWYgKG5vZGUgPT0gbnVsbCB8fCB0eXBlb2Ygbm9kZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmV0dXJuIHsgc2xpY2U6IHVuZGVmaW5lZCwgZXhpc3RzOiBmYWxzZSB9O1xuICAgICAgfVxuICAgICAgbm9kZSA9IG5vZGVba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHsgc2xpY2U6IG5vZGUsIGV4aXN0czogbm9kZSAhPT0gdW5kZWZpbmVkIH07XG4gIH1cblxuICAjd3JpdGVTdGVwU2xpY2UocGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFwYXRoKSB7XG4gICAgICAvLyBSZXBsYWNlIGZ1bGwgcm9vdCB3aXRoIHZhbHVlIG9ubHkgaWYgdmFsdWUgaXMgYW4gb2JqZWN0XG4gICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICB0aGlzLmludGVybmFsQ29udGV4dC5zZXQodmFsdWUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByb290ID0geyAuLi50aGlzLmludGVybmFsQ29udGV4dCgpIH07XG4gICAgY29uc3QgcGFydHMgPSBwYXRoLnNwbGl0KCcuJykuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGxldCBub2RlOiBhbnkgPSByb290O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGtleSA9IHBhcnRzW2ldO1xuICAgICAgaWYgKGkgPT09IHBhcnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgbm9kZVtrZXldID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlW2tleV0gPSBub2RlW2tleV0gJiYgdHlwZW9mIG5vZGVba2V5XSA9PT0gJ29iamVjdCcgPyB7IC4uLm5vZGVba2V5XSB9IDoge307XG4gICAgICAgIG5vZGUgPSBub2RlW2tleV07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaW50ZXJuYWxDb250ZXh0LnNldChyb290KTtcbiAgfVxuXG4gICNlbnN1cmVQYXRoKHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHJvb3QgPSB7IC4uLnRoaXMuaW50ZXJuYWxDb250ZXh0KCkgfTtcbiAgICBjb25zdCBwYXJ0cyA9IHBhdGguc3BsaXQoJy4nKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgbGV0IG5vZGU6IGFueSA9IHJvb3Q7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgcGFydHMpIHtcbiAgICAgIGlmICghbm9kZVtrZXldIHx8IHR5cGVvZiBub2RlW2tleV0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgIG5vZGVba2V5XSA9IHt9O1xuICAgICAgfVxuICAgICAgbm9kZSA9IG5vZGVba2V5XTtcbiAgICB9XG4gICAgdGhpcy5pbnRlcm5hbENvbnRleHQuc2V0KHJvb3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBwZXItc3RlcCBjb250ZXh0IGNoYW5nZXMgYW5kIGtlZXAgaW50ZXJuYWwgcm9vdCBjb250ZXh0IGluIHN5bmMuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25TdGVwQ29udGV4dENoYW5nZShzdGVwSWQ6IHN0cmluZywgc3RlcENvbnRleHQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXBzKCkuZmluZCgocykgPT4gcy5pZCA9PT0gc3RlcElkKTtcbiAgICBpZiAoIXN0ZXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy4jd3JpdGVTdGVwU2xpY2Uoc3RlcC5kYXRhUGF0aCwgc3RlcENvbnRleHQpO1xuICAgIHRoaXMuY29udGV4dENoYW5nZS5lbWl0KHRoaXMuaW50ZXJuYWxDb250ZXh0KCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9zZXMgcmVhZGluZyBhIHN0ZXAgc2xpY2UgdG8gdGhlIHRlbXBsYXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZFN0ZXBTbGljZShwYXRoPzogc3RyaW5nKTogeyBzbGljZTogYW55OyBleGlzdHM6IGJvb2xlYW4gfSB7XG4gICAgcmV0dXJuIHRoaXMuI3JlYWRTdGVwU2xpY2UocGF0aCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsIjxheC1zdGVwLXdpemFyZFxuICBjbGFzcz1cImF4LXN0aWNreSBheC10b3AtMCBheC16LTEwIGF4LXRyYW5zaXRpb24tYWxsXCJcbiAgI3N0aWNreT1cImF4cFN0aWNreVwiXG4gIFtheHBTdGlja3ldPVwiJ2F4LWJnLWxpZ2h0ZXN0IGF4LXNoYWRvdy1tZCBheC1wdC00J1wiXG4gIFtzdGlja3lQYXJlbnRdPVwiJy5heC1wb3B1cC1ib2R5LWNvbnRhaW5lcidcIlxuICAjd2l6YXJkXG4gIFtjb250ZW50XT1cIndpemFyZENvbnRlbnRcIlxuICBbc3RpY2t5T2Zmc2V0XT1cIjEwMFwiXG4gIFtsb29rXT1cIid0ZXh0LWxpbmUnXCJcbiAgW29yaWVudGF0aW9uXT1cInN0ZXBwZXJEaXJlY3Rpb24oKVwiXG4+XG4gIEBmb3IgKHN0ZXAgb2Ygc3RlcHMoKTsgdHJhY2sgc3RlcC5pZCkge1xuICAgIDxheC1zdGVwLXdpemFyZC1pdGVtIFtsYWJlbF09XCIoc3RlcC50aXRsZSB8fCAnJyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIiBbaWRdPVwic3RlcC5pZFwiPlxuICAgICAgQGlmIChzdGVwLmljb24pIHtcbiAgICAgICAgPGF4LWljb24gW2NsYXNzXT1cInN0ZXAuaWNvblwiPjwvYXgtaWNvbj5cbiAgICAgIH1cbiAgICAgIDxheC1jb250ZW50PlxuICAgICAgICA8YXhwLWR5bmFtaWMtZm9ybVxuICAgICAgICAgIFtmb3JtRGVmaW5pdGlvbl09XCJ7IGdyb3Vwczogc3RlcC5ncm91cHMgfVwiXG4gICAgICAgICAgW2NvbnRleHRdPVwicmVhZFN0ZXBTbGljZShzdGVwLmRhdGFQYXRoKS5zbGljZVwiXG4gICAgICAgICAgW2xheW91dExvb2tdPVwibGF5b3V0TG9vaygpXCJcbiAgICAgICAgICBbbGF5b3V0RGlyZWN0aW9uXT1cInN0ZXAuZm9ybURpcmVjdGlvbiB8fCAndmVydGljYWwnXCJcbiAgICAgICAgICBbbGF5b3V0Q29uZmlnXT1cImVmZmVjdGl2ZUxheW91dENvbmZpZygpXCJcbiAgICAgICAgICAoY29udGV4dENoYW5nZSk9XCJvblN0ZXBDb250ZXh0Q2hhbmdlKHN0ZXAuaWQsICRldmVudClcIlxuICAgICAgICA+PC9heHAtZHluYW1pYy1mb3JtPlxuICAgICAgPC9heC1jb250ZW50PlxuICAgIDwvYXgtc3RlcC13aXphcmQtaXRlbT5cbiAgfVxuPC9heC1zdGVwLXdpemFyZD5cblxuPG5nLXRlbXBsYXRlIFtheFN0ZXBXaXphcmRDb250ZW50XSAjd2l6YXJkQ29udGVudD1cImF4U3RlcFdpemFyZENvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, Input, signal, viewChild } from '@angular/core';\nimport { AXPDynamicFormStepperComponent } from '../dynamic-form-stepper/dynamic-form-stepper.component';\nimport { AXPDynamicFormComponent } from '../dynamic-form/dynamic-form.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/dropdown-button\";\nimport * as i5 from \"@acorex/components/loading\";\nimport * as i6 from \"@acorex/core/translation\";\nexport class AXPDynamicDialogComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.dynamicForm = viewChild(AXPDynamicFormComponent, ...(ngDevMode ? [{ debugName: \"dynamicForm\" }] : []));\n this.stepper = viewChild(AXPDynamicFormStepperComponent, ...(ngDevMode ? [{ debugName: \"stepper\" }] : []));\n this.isSubmitting = signal(false, ...(ngDevMode ? [{ debugName: \"isSubmitting\" }] : []));\n this.previousContext = signal({}, ...(ngDevMode ? [{ debugName: \"previousContext\" }] : []));\n this.formData = signal({}, ...(ngDevMode ? [{ debugName: \"formData\" }] : []));\n // This will be set by the popup service automatically\n this.dialogResult = null;\n this.isSubmittingFromDialog = false;\n this.callBack = () => { };\n //#region ---- Computed Properties ----\n /**\n * Form context for widget container\n */\n this.formContext = computed(() => this.formData(), ...(ngDevMode ? [{ debugName: \"formContext\" }] : []));\n /**\n * Combined loading state from both signal and dialog\n */\n this.isFormLoading = computed(() => this.isSubmitting() || this.isSubmittingFromDialog, ...(ngDevMode ? [{ debugName: \"isFormLoading\" }] : []));\n this.defaultLayout = () => ({\n positions: {\n default: { colSpan: 12 },\n md: { colSpan: 8 },\n lg: { colSpan: 6 },\n xl: { colSpan: 5 },\n xxl: { colSpan: 4 },\n },\n });\n /**\n * Determine rendering mode and effective definitions\n */\n this.hasLegacyForm = computed(() => !!this.config.formDefinition, ...(ngDevMode ? [{ debugName: \"hasLegacyForm\" }] : []));\n this.providedDefinition = computed(() => this.config.definition, ...(ngDevMode ? [{ debugName: \"providedDefinition\" }] : []));\n this.providedMode = computed(() => this.config.mode || 'edit', ...(ngDevMode ? [{ debugName: \"providedMode\" }] : []));\n this.isStepperDefinition = computed(() => {\n const def = this.providedDefinition();\n return !!def && Array.isArray(def?.steps) && def.steps.length > 1;\n }, ...(ngDevMode ? [{ debugName: \"isStepperDefinition\" }] : []));\n this.shouldRenderForm = computed(() => {\n if (this.hasLegacyForm())\n return true;\n const def = this.providedDefinition();\n // Render form when definition is form-like or single/no step\n if (!def)\n return false;\n if (Array.isArray(def?.steps)) {\n return def.steps.length <= 1;\n }\n // No steps property -> treat as AXPDynamicFormDefinition\n return true;\n }, ...(ngDevMode ? [{ debugName: \"shouldRenderForm\" }] : []));\n this.effectiveFormDefinition = computed(() => {\n if (this.config.formDefinition)\n return this.config.formDefinition;\n const def = this.providedDefinition();\n if (!def)\n return undefined;\n if (Array.isArray(def?.steps)) {\n // Single-step stepper -> convert to form def\n const step = def.steps[0];\n return step ? { groups: step.groups } : undefined;\n }\n return def;\n }, ...(ngDevMode ? [{ debugName: \"effectiveFormDefinition\" }] : []));\n this.resolvedFormDefinition = computed(() => {\n return (this.effectiveFormDefinition() ?? { groups: [] });\n }, ...(ngDevMode ? [{ debugName: \"resolvedFormDefinition\" }] : []));\n this.effectiveLayoutLook = computed(() => this.config.layoutLook ?? 'borderless', ...(ngDevMode ? [{ debugName: \"effectiveLayoutLook\" }] : []));\n this.effectiveLayoutConfig = computed(() => this.config.layoutConfig ?? this.defaultLayout(), ...(ngDevMode ? [{ debugName: \"effectiveLayoutConfig\" }] : []));\n // Stepper-only\n this.stepperGuardNext = computed(() => this.config.stepper?.guardNext, ...(ngDevMode ? [{ debugName: \"stepperGuardNext\" }] : []));\n this.stepperDirection = computed(() => this.config.stepper?.stepperDirection ?? 'horizontal', ...(ngDevMode ? [{ debugName: \"stepperDirection\" }] : []));\n this.stepperDefinition = computed(() => {\n const def = this.providedDefinition();\n return (def ?? { steps: [] });\n }, ...(ngDevMode ? [{ debugName: \"stepperDefinition\" }] : []));\n this.stepperIsFirst = computed(() => this.stepper()?.isFirst() ?? true, ...(ngDevMode ? [{ debugName: \"stepperIsFirst\" }] : []));\n this.stepperIsLast = computed(() => this.stepper()?.isLast() ?? false, ...(ngDevMode ? [{ debugName: \"stepperIsLast\" }] : []));\n /**\n * Effective form direction when rendering dynamic-form (single-step or legacy form).\n * If a single-step definition is provided and that step specifies formDirection, use it.\n */\n this.effectiveFormDirection = computed(() => {\n if (this.hasLegacyForm()) {\n return 'vertical';\n }\n const def = this.providedDefinition();\n if (def && Array.isArray(def?.steps) && def.steps.length === 1) {\n return def.steps[0]?.formDirection ?? 'vertical';\n }\n return 'vertical';\n }, ...(ngDevMode ? [{ debugName: \"effectiveFormDirection\" }] : []));\n /**\n * Footer actions for dynamic button system\n */\n this.footerPrefixActions = computed(() => this.config.actions?.footer?.prefix || [], ...(ngDevMode ? [{ debugName: \"footerPrefixActions\" }] : []));\n this.footerSuffixActions = computed(() => this.config.actions?.footer?.suffix || [], ...(ngDevMode ? [{ debugName: \"footerSuffixActions\" }] : []));\n this.visibleFooterPrefixActions = computed(() => {\n const prefixFooterActions = this.footerPrefixActions();\n return prefixFooterActions.filter((action) => action.visible != false);\n }, ...(ngDevMode ? [{ debugName: \"visibleFooterPrefixActions\" }] : []));\n this.visibleFooterSuffixActions = computed(() => {\n const suffixFooterActions = this.footerSuffixActions();\n return suffixFooterActions.filter((action) => action.visible != false);\n }, ...(ngDevMode ? [{ debugName: \"visibleFooterSuffixActions\" }] : []));\n this.hasFooterActions = computed(() => {\n const prefixActions = this.visibleFooterPrefixActions();\n const suffixActions = this.visibleFooterSuffixActions();\n return prefixActions.length > 0 || suffixActions.length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasFooterActions\" }] : []));\n /** Stepper footer: choose a single confirm action from provided suffix actions (first visible). */\n this.confirmAction = computed(() => {\n const items = this.footerSuffixActions();\n return items.find((a) => a.visible !== false);\n }, ...(ngDevMode ? [{ debugName: \"confirmAction\" }] : []));\n this.confirmActionTitle = computed(() => this.confirmAction()?.title ?? 'Confirm', ...(ngDevMode ? [{ debugName: \"confirmActionTitle\" }] : []));\n }\n //#endregion\n //#region ---- Lifecycle Methods ----\n ngOnInit() {\n this.formData.set(this.config.context ?? {});\n }\n //#endregion\n //#region ---- Event Handlers ----\n handleContextInitiated(context) {\n this.previousContext.set(context);\n }\n handleContextChanged(context) {\n this.formData.set(context);\n }\n //#endregion\n //#region ---- Action Execution ----\n /**\n * Execute a dynamic action\n */\n async executeAction(action) {\n if (action.command) {\n // Execute the command if provided\n await this.executeCommand(action.command);\n }\n else {\n // Handle custom action logic here\n const result = {\n context: this.formData(),\n action: action.name || action.title,\n };\n this.close(result);\n }\n }\n /**\n * Execute a command\n */\n async executeCommand(command) {\n // Handle command execution logic here\n if (command.options?.['validate'] == true) {\n if (!(await this.isFormValid())) {\n return;\n }\n }\n //\n if (command.name == 'cancel') {\n this.close();\n }\n const result = {\n context: this.formData(),\n action: command.name,\n };\n // Store result in component property and popup data\n this.dialogResult = result;\n // Store in popup data for DialogRef access\n if (this.data) {\n this.data.context = result.context;\n this.data.action = result.action;\n }\n // Call the callback with DialogRef\n this.callBack({\n close: (result) => {\n this.close(result);\n },\n context: () => {\n return this.formData();\n },\n action: () => {\n return result.action;\n },\n setLoading: (loading) => {\n this.isSubmitting.set(loading);\n },\n });\n }\n //#endregion\n //#region ---- Public Methods ----\n /**\n * Check if form is valid\n */\n async isFormValid() {\n if (this.isStepperDefinition()) {\n return (await this.stepper()?.validateCurrentStep()) ?? false;\n }\n return (await this.dynamicForm()?.validate()) ?? false;\n }\n /** Stepper navigation handlers */\n goPrev() {\n this.stepper()?.previous();\n }\n goNext() {\n this.stepper()?.next();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicDialogComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPDynamicDialogComponent, isStandalone: true, selector: \"axp-dynamic-dialog\", inputs: { config: \"config\" }, viewQueries: [{ propertyName: \"dynamicForm\", first: true, predicate: AXPDynamicFormComponent, descendants: true, isSignal: true }, { propertyName: \"stepper\", first: true, predicate: AXPDynamicFormStepperComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"@if (shouldRenderForm()) {\\n <div class=\\\"ax-p-4\\\">\\n <axp-dynamic-form\\n [formDefinition]=\\\"resolvedFormDefinition()\\\"\\n [context]=\\\"formContext()\\\"\\n [mode]=\\\"providedMode()\\\"\\n [layoutConfig]=\\\"effectiveLayoutConfig()\\\"\\n [layoutLook]=\\\"effectiveLayoutLook()\\\"\\n [layoutDirection]=\\\"effectiveFormDirection()\\\"\\n (contextChange)=\\\"handleContextChanged($event)\\\"\\n (contextInitiated)=\\\"handleContextInitiated($event)\\\"\\n >\\n </axp-dynamic-form>\\n </div>\\n\\n <ax-footer>\\n <ax-prefix>\\n <ng-container *ngTemplateOutlet=\\\"footerPrefixActions\\\"></ng-container>\\n </ax-prefix>\\n <ax-suffix>\\n <ng-container *ngTemplateOutlet=\\\"footerSuffixActions\\\"></ng-container>\\n </ax-suffix>\\n </ax-footer>\\n} @else {\\n <div class=\\\"ax-p-4\\\">\\n <axp-dynamic-form-stepper\\n #stepperRef\\n [definition]=\\\"stepperDefinition()\\\"\\n [context]=\\\"formContext()\\\"\\n [layoutLook]=\\\"effectiveLayoutLook()\\\"\\n [layoutConfig]=\\\"effectiveLayoutConfig()\\\"\\n [stepperDirection]=\\\"stepperDirection()\\\"\\n [guardNext]=\\\"stepperGuardNext()\\\"\\n (contextChange)=\\\"handleContextChanged($event)\\\"\\n >\\n </axp-dynamic-form-stepper>\\n </div>\\n\\n <ax-footer>\\n <ax-prefix>\\n <ax-button\\n [disabled]=\\\"stepperIsFirst()\\\"\\n [text]=\\\"'@general:actions.previous.title' | translate | async\\\"\\n [look]=\\\"'outline'\\\"\\n (onClick)=\\\"goPrev()\\\"\\n ></ax-button>\\n </ax-prefix>\\n <ax-suffix>\\n @if (!stepperIsLast()) {\\n <ax-button\\n [text]=\\\"'@general:actions.next.title' | translate | async\\\"\\n [color]=\\\"'primary'\\\"\\n (onClick)=\\\"goNext()\\\"\\n ></ax-button>\\n } @else {\\n <ax-suffix>\\n <ng-container *ngTemplateOutlet=\\\"footerSuffixActions\\\"></ng-container>\\n </ax-suffix>\\n }\\n </ax-suffix>\\n </ax-footer>\\n}\\n<!-- Footer Prefix Actions -->\\n<ng-template #footerPrefixActions>\\n @for (action of visibleFooterPrefixActions(); track $index) {\\n <ax-button\\n [disabled]=\\\"action.disabled || isFormLoading()\\\"\\n [text]=\\\"(action.title | translate | async)!\\\"\\n [look]=\\\"'outline'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"executeAction(action)\\\"\\n >\\n @if (isFormLoading() && action.command?.name != 'cancel') {\\n <ax-loading></ax-loading>\\n }\\n <ax-prefix>\\n <i class=\\\"{{ action.icon }}\\\"></i>\\n </ax-prefix>\\n </ax-button>\\n }\\n</ng-template>\\n\\n<!-- Footer Suffix Actions -->\\n<ng-template #footerSuffixActions>\\n @for (action of visibleFooterSuffixActions(); track $index) {\\n @if (action?.items && (action?.items?.length ?? 0) > 0) {\\n <ax-dropdown-button\\n [disabled]=\\\"action.disabled || isSubmitting()\\\"\\n [text]=\\\"(action.title | translate | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"executeAction(action)\\\"\\n >\\n @if (action.icon) {\\n <ax-prefix>\\n <ax-icon icon=\\\"{{ action.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n }\\n <ax-button-item-list>\\n @for (sub of action?.items; track $index) {\\n <ax-button-item\\n [text]=\\\"(sub.title | translate | async)!\\\"\\n [color]=\\\"sub.color\\\"\\n [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"executeAction(sub)\\\"\\n >\\n @if (sub.icon) {\\n <ax-prefix>\\n <ax-icon icon=\\\"{{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n }\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n } @else {\\n <ax-button\\n [disabled]=\\\"action.disabled || isSubmitting()\\\"\\n [text]=\\\"(action.title | translate | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"executeAction(action)\\\"\\n >\\n @if (action.icon) {\\n <ax-prefix>\\n <ax-icon icon=\\\"{{ action.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n }\\n </ax-button>\\n }\\n }\\n</ng-template>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: \n //\n AXFormModule }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"component\", type: AXPDynamicFormComponent, selector: \"axp-dynamic-form\", inputs: [\"formDefinition\", \"context\", \"layoutLook\", \"layoutDirection\", \"mode\", \"layoutConfig\"], outputs: [\"contextChange\", \"contextInitiated\", \"validityChange\"] }, { kind: \"component\", type: AXPDynamicFormStepperComponent, selector: \"axp-dynamic-form-stepper\", inputs: [\"definition\", \"context\", \"layoutLook\", \"stepperDirection\", \"layoutConfig\", \"guardNext\"], outputs: [\"contextChange\", \"stepChange\", \"finished\", \"cancel\", \"navigationBlocked\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i3.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: i3.AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"component\", type: i3.AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"component\", type: i4.AXDropdownButtonComponent, selector: \"ax-dropdown-button\", inputs: [\"disabled\", \"size\", \"color\", \"look\", \"text\", \"type\", \"mode\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"lookChange\", \"colorChange\", \"disabledChange\"] }, { kind: \"ngmodule\", type: AXDropdownModule }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i5.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i6.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-dynamic-dialog', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n //\n AXFormModule,\n AXValidationModule,\n AXPDynamicFormComponent,\n AXPDynamicFormStepperComponent,\n AXDecoratorModule,\n AXButtonModule,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXLoadingModule,\n AXTranslationModule,\n ], template: \"@if (shouldRenderForm()) {\\n <div class=\\\"ax-p-4\\\">\\n <axp-dynamic-form\\n [formDefinition]=\\\"resolvedFormDefinition()\\\"\\n [context]=\\\"formContext()\\\"\\n [mode]=\\\"providedMode()\\\"\\n [layoutConfig]=\\\"effectiveLayoutConfig()\\\"\\n [layoutLook]=\\\"effectiveLayoutLook()\\\"\\n [layoutDirection]=\\\"effectiveFormDirection()\\\"\\n (contextChange)=\\\"handleContextChanged($event)\\\"\\n (contextInitiated)=\\\"handleContextInitiated($event)\\\"\\n >\\n </axp-dynamic-form>\\n </div>\\n\\n <ax-footer>\\n <ax-prefix>\\n <ng-container *ngTemplateOutlet=\\\"footerPrefixActions\\\"></ng-container>\\n </ax-prefix>\\n <ax-suffix>\\n <ng-container *ngTemplateOutlet=\\\"footerSuffixActions\\\"></ng-container>\\n </ax-suffix>\\n </ax-footer>\\n} @else {\\n <div class=\\\"ax-p-4\\\">\\n <axp-dynamic-form-stepper\\n #stepperRef\\n [definition]=\\\"stepperDefinition()\\\"\\n [context]=\\\"formContext()\\\"\\n [layoutLook]=\\\"effectiveLayoutLook()\\\"\\n [layoutConfig]=\\\"effectiveLayoutConfig()\\\"\\n [stepperDirection]=\\\"stepperDirection()\\\"\\n [guardNext]=\\\"stepperGuardNext()\\\"\\n (contextChange)=\\\"handleContextChanged($event)\\\"\\n >\\n </axp-dynamic-form-stepper>\\n </div>\\n\\n <ax-footer>\\n <ax-prefix>\\n <ax-button\\n [disabled]=\\\"stepperIsFirst()\\\"\\n [text]=\\\"'@general:actions.previous.title' | translate | async\\\"\\n [look]=\\\"'outline'\\\"\\n (onClick)=\\\"goPrev()\\\"\\n ></ax-button>\\n </ax-prefix>\\n <ax-suffix>\\n @if (!stepperIsLast()) {\\n <ax-button\\n [text]=\\\"'@general:actions.next.title' | translate | async\\\"\\n [color]=\\\"'primary'\\\"\\n (onClick)=\\\"goNext()\\\"\\n ></ax-button>\\n } @else {\\n <ax-suffix>\\n <ng-container *ngTemplateOutlet=\\\"footerSuffixActions\\\"></ng-container>\\n </ax-suffix>\\n }\\n </ax-suffix>\\n </ax-footer>\\n}\\n<!-- Footer Prefix Actions -->\\n<ng-template #footerPrefixActions>\\n @for (action of visibleFooterPrefixActions(); track $index) {\\n <ax-button\\n [disabled]=\\\"action.disabled || isFormLoading()\\\"\\n [text]=\\\"(action.title | translate | async)!\\\"\\n [look]=\\\"'outline'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"executeAction(action)\\\"\\n >\\n @if (isFormLoading() && action.command?.name != 'cancel') {\\n <ax-loading></ax-loading>\\n }\\n <ax-prefix>\\n <i class=\\\"{{ action.icon }}\\\"></i>\\n </ax-prefix>\\n </ax-button>\\n }\\n</ng-template>\\n\\n<!-- Footer Suffix Actions -->\\n<ng-template #footerSuffixActions>\\n @for (action of visibleFooterSuffixActions(); track $index) {\\n @if (action?.items && (action?.items?.length ?? 0) > 0) {\\n <ax-dropdown-button\\n [disabled]=\\\"action.disabled || isSubmitting()\\\"\\n [text]=\\\"(action.title | translate | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"executeAction(action)\\\"\\n >\\n @if (action.icon) {\\n <ax-prefix>\\n <ax-icon icon=\\\"{{ action.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n }\\n <ax-button-item-list>\\n @for (sub of action?.items; track $index) {\\n <ax-button-item\\n [text]=\\\"(sub.title | translate | async)!\\\"\\n [color]=\\\"sub.color\\\"\\n [disabled]=\\\"sub.disabled\\\"\\n (onClick)=\\\"executeAction(sub)\\\"\\n >\\n @if (sub.icon) {\\n <ax-prefix>\\n <ax-icon icon=\\\"{{ sub.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n }\\n </ax-button-item>\\n @if (sub.break) {\\n <ax-divider></ax-divider>\\n }\\n }\\n </ax-button-item-list>\\n </ax-dropdown-button>\\n } @else {\\n <ax-button\\n [disabled]=\\\"action.disabled || isSubmitting()\\\"\\n [text]=\\\"(action.title | translate | async)!\\\"\\n [look]=\\\"'solid'\\\"\\n [color]=\\\"action.color\\\"\\n (onClick)=\\\"executeAction(action)\\\"\\n >\\n @if (action.icon) {\\n <ax-prefix>\\n <ax-icon icon=\\\"{{ action.icon }}\\\"></ax-icon>\\n </ax-prefix>\\n }\\n </ax-button>\\n }\\n }\\n</ng-template>\\n\" }]\n }], propDecorators: { config: [{\n type: Input,\n args: [{ required: true }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2R5bmFtaWMtZGlhbG9nL2R5bmFtaWMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9keW5hbWljLWRpYWxvZy9keW5hbWljLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0RBQXdELENBQUM7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O3dCQUNaLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2Qiw4QkFBOEI7d0JBQzlCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3BCOzhCQUcwQixNQUFNO3NCQUFoQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0sIEFYUEV4ZWN1dGVDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgSW5wdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBEeW5hbWljRm9ybVN0ZXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi9keW5hbWljLWZvcm0tc3RlcHBlci9keW5hbWljLWZvcm0tc3RlcHBlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhQRHluYW1pY0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBEeW5hbWljRm9ybURpcmVjdGlvbiB9IGZyb20gJy4uL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0udHlwZXMnO1xuaW1wb3J0IHsgQVhQRGlhbG9nUmVmLCBBWFBEeW5hbWljRGlhbG9nQ29uZmlnLCBBWFBEeW5hbWljRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi9keW5hbWljLWRpYWxvZy50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1keW5hbWljLWRpYWxvZycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIC8vXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWFBEeW5hbWljRm9ybUNvbXBvbmVudCxcbiAgICBBWFBEeW5hbWljRm9ybVN0ZXBwZXJDb21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcbiAgICBBWERyb3Bkb3duTW9kdWxlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEeW5hbWljRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbmZpZyE6IEFYUER5bmFtaWNEaWFsb2dDb25maWc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkeW5hbWljRm9ybSA9IHZpZXdDaGlsZChBWFBEeW5hbWljRm9ybUNvbXBvbmVudCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdGVwcGVyID0gdmlld0NoaWxkKEFYUER5bmFtaWNGb3JtU3RlcHBlckNvbXBvbmVudCk7XG5cbiAgaXNTdWJtaXR0aW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBwcmV2aW91c0NvbnRleHQgPSBzaWduYWw8YW55Pih7fSk7XG4gIHByaXZhdGUgZm9ybURhdGEgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgYW55Pj4oe30pO1xuXG4gIC8vIFRoaXMgd2lsbCBiZSBzZXQgYnkgdGhlIHBvcHVwIHNlcnZpY2UgYXV0b21hdGljYWxseVxuICBkaWFsb2dSZXN1bHQ6IEFYUER5bmFtaWNEaWFsb2dSZXN1bHQgfCBudWxsID0gbnVsbDtcbiAgaXNTdWJtaXR0aW5nRnJvbURpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuICBkYXRhOiBhbnk7XG5cbiAgY2FsbEJhY2s6IChkaWFsb2dSZWY6IEFYUERpYWxvZ1JlZikgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQ29tcHV0ZWQgUHJvcGVydGllcyAgIC0tLS1cblxuICAvKipcbiAgICogRm9ybSBjb250ZXh0IGZvciB3aWRnZXQgY29udGFpbmVyXG4gICAqL1xuICBwcm90ZWN0ZWQgZm9ybUNvbnRleHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZvcm1EYXRhKCkpO1xuXG4gIC8qKlxuICAgKiBDb21iaW5lZCBsb2FkaW5nIHN0YXRlIGZyb20gYm90aCBzaWduYWwgYW5kIGRpYWxvZ1xuICAgKi9cbiAgcHJvdGVjdGVkIGlzRm9ybUxvYWRpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlzU3VibWl0dGluZygpIHx8IHRoaXMuaXNTdWJtaXR0aW5nRnJvbURpYWxvZyk7XG5cbiAgcHJvdGVjdGVkIGRlZmF1bHRMYXlvdXQgPSAoKSA9PiAoe1xuICAgIHBvc2l0aW9uczoge1xuICAgICAgZGVmYXVsdDogeyBjb2xTcGFuOiAxMiB9LFxuICAgICAgbWQ6IHsgY29sU3BhbjogOCB9LFxuICAgICAgbGc6IHsgY29sU3BhbjogNiB9LFxuICAgICAgeGw6IHsgY29sU3BhbjogNSB9LFxuICAgICAgeHhsOiB7IGNvbFNwYW46IDQgfSxcbiAgICB9LFxuICB9KTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lIHJlbmRlcmluZyBtb2RlIGFuZCBlZmZlY3RpdmUgZGVmaW5pdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBoYXNMZWdhY3lGb3JtID0gY29tcHV0ZWQoKCkgPT4gISF0aGlzLmNvbmZpZy5mb3JtRGVmaW5pdGlvbik7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcm92aWRlZERlZmluaXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZy5kZWZpbml0aW9uKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByb3ZpZGVkTW9kZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnLm1vZGUgfHwgJ2VkaXQnKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNTdGVwcGVyRGVmaW5pdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBkZWYgPSB0aGlzLnByb3ZpZGVkRGVmaW5pdGlvbigpIGFzIGFueTtcbiAgICByZXR1cm4gISFkZWYgJiYgQXJyYXkuaXNBcnJheShkZWY/LnN0ZXBzKSAmJiBkZWYuc3RlcHMubGVuZ3RoID4gMTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNob3VsZFJlbmRlckZvcm0gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuaGFzTGVnYWN5Rm9ybSgpKSByZXR1cm4gdHJ1ZTtcbiAgICBjb25zdCBkZWYgPSB0aGlzLnByb3ZpZGVkRGVmaW5pdGlvbigpIGFzIGFueTtcbiAgICAvLyBSZW5kZXIgZm9ybSB3aGVuIGRlZmluaXRpb24gaXMgZm9ybS1saWtlIG9yIHNpbmdsZS9ubyBzdGVwXG4gICAgaWYgKCFkZWYpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkZWY/LnN0ZXBzKSkge1xuICAgICAgcmV0dXJuIGRlZi5zdGVwcy5sZW5ndGggPD0gMTtcbiAgICB9XG4gICAgLy8gTm8gc3RlcHMgcHJvcGVydHkgLT4gdHJlYXQgYXMgQVhQRHluYW1pY0Zvcm1EZWZpbml0aW9uXG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBlZmZlY3RpdmVGb3JtRGVmaW5pdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAodGhpcy5jb25maWcuZm9ybURlZmluaXRpb24pIHJldHVybiB0aGlzLmNvbmZpZy5mb3JtRGVmaW5pdGlvbjtcbiAgICBjb25zdCBkZWYgPSB0aGlzLnByb3ZpZGVkRGVmaW5pdGlvbigpIGFzIGFueTtcbiAgICBpZiAoIWRlZikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkZWY/LnN0ZXBzKSkge1xuICAgICAgLy8gU2luZ2xlLXN0ZXAgc3RlcHBlciAtPiBjb252ZXJ0IHRvIGZvcm0gZGVmXG4gICAgICBjb25zdCBzdGVwID0gZGVmLnN0ZXBzWzBdO1xuICAgICAgcmV0dXJuIHN0ZXAgPyAoeyBncm91cHM6IHN0ZXAuZ3JvdXBzIH0gYXMgYW55KSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGRlZiBhcyBhbnk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZXNvbHZlZEZvcm1EZWZpbml0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiAodGhpcy5lZmZlY3RpdmVGb3JtRGVmaW5pdGlvbigpID8/IHsgZ3JvdXBzOiBbXSB9KSBhcyBhbnk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBlZmZlY3RpdmVMYXlvdXRMb29rID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcubGF5b3V0TG9vayA/PyAnYm9yZGVybGVzcycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWZmZWN0aXZlTGF5b3V0Q29uZmlnID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcubGF5b3V0Q29uZmlnID8/IHRoaXMuZGVmYXVsdExheW91dCgpKTtcblxuICAvLyBTdGVwcGVyLW9ubHlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0ZXBwZXJHdWFyZE5leHQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpZy5zdGVwcGVyPy5ndWFyZE5leHQpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RlcHBlckRpcmVjdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnLnN0ZXBwZXI/LnN0ZXBwZXJEaXJlY3Rpb24gPz8gJ2hvcml6b250YWwnKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RlcHBlckRlZmluaXRpb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZGVmID0gdGhpcy5wcm92aWRlZERlZmluaXRpb24oKSBhcyBhbnk7XG4gICAgcmV0dXJuIChkZWYgPz8geyBzdGVwczogW10gfSkgYXMgYW55O1xuICB9KTtcblxuICBwdWJsaWMgc3RlcHBlcklzRmlyc3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0ZXBwZXIoKT8uaXNGaXJzdCgpID8/IHRydWUpO1xuICBwdWJsaWMgc3RlcHBlcklzTGFzdCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RlcHBlcigpPy5pc0xhc3QoKSA/PyBmYWxzZSk7XG5cbiAgLyoqXG4gICAqIEVmZmVjdGl2ZSBmb3JtIGRpcmVjdGlvbiB3aGVuIHJlbmRlcmluZyBkeW5hbWljLWZvcm0gKHNpbmdsZS1zdGVwIG9yIGxlZ2FjeSBmb3JtKS5cbiAgICogSWYgYSBzaW5nbGUtc3RlcCBkZWZpbml0aW9uIGlzIHByb3ZpZGVkIGFuZCB0aGF0IHN0ZXAgc3BlY2lmaWVzIGZvcm1EaXJlY3Rpb24sIHVzZSBpdC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBlZmZlY3RpdmVGb3JtRGlyZWN0aW9uID0gY29tcHV0ZWQ8QVhQRHluYW1pY0Zvcm1EaXJlY3Rpb24+KCgpID0+IHtcbiAgICBpZiAodGhpcy5oYXNMZWdhY3lGb3JtKCkpIHtcbiAgICAgIHJldHVybiAndmVydGljYWwnO1xuICAgIH1cbiAgICBjb25zdCBkZWYgPSB0aGlzLnByb3ZpZGVkRGVmaW5pdGlvbigpIGFzIGFueTtcbiAgICBpZiAoZGVmICYmIEFycmF5LmlzQXJyYXkoZGVmPy5zdGVwcykgJiYgZGVmLnN0ZXBzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgcmV0dXJuIGRlZi5zdGVwc1swXT8uZm9ybURpcmVjdGlvbiA/PyAndmVydGljYWwnO1xuICAgIH1cbiAgICByZXR1cm4gJ3ZlcnRpY2FsJztcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEZvb3RlciBhY3Rpb25zIGZvciBkeW5hbWljIGJ1dHRvbiBzeXN0ZW1cbiAgICovXG4gIHByb3RlY3RlZCBmb290ZXJQcmVmaXhBY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcuYWN0aW9ucz8uZm9vdGVyPy5wcmVmaXggfHwgW10pO1xuICBwcm90ZWN0ZWQgZm9vdGVyU3VmZml4QWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnLmFjdGlvbnM/LmZvb3Rlcj8uc3VmZml4IHx8IFtdKTtcblxuICBwcm90ZWN0ZWQgdmlzaWJsZUZvb3RlclByZWZpeEFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcHJlZml4Rm9vdGVyQWN0aW9ucyA9IHRoaXMuZm9vdGVyUHJlZml4QWN0aW9ucygpO1xuICAgIHJldHVybiBwcmVmaXhGb290ZXJBY3Rpb25zLmZpbHRlcigoYWN0aW9uOiBBWFBBY3Rpb25NZW51SXRlbSkgPT4gYWN0aW9uLnZpc2libGUgIT0gZmFsc2UpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgdmlzaWJsZUZvb3RlclN1ZmZpeEFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc3VmZml4Rm9vdGVyQWN0aW9ucyA9IHRoaXMuZm9vdGVyU3VmZml4QWN0aW9ucygpO1xuICAgIHJldHVybiBzdWZmaXhGb290ZXJBY3Rpb25zLmZpbHRlcigoYWN0aW9uOiBBWFBBY3Rpb25NZW51SXRlbSkgPT4gYWN0aW9uLnZpc2libGUgIT0gZmFsc2UpO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgaGFzRm9vdGVyQWN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBwcmVmaXhBY3Rpb25zID0gdGhpcy52aXNpYmxlRm9vdGVyUHJlZml4QWN0aW9ucygpO1xuICAgIGNvbnN0IHN1ZmZpeEFjdGlvbnMgPSB0aGlzLnZpc2libGVGb290ZXJTdWZmaXhBY3Rpb25zKCk7XG4gICAgcmV0dXJuIHByZWZpeEFjdGlvbnMubGVuZ3RoID4gMCB8fCBzdWZmaXhBY3Rpb25zLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIC8qKiBTdGVwcGVyIGZvb3RlcjogY2hvb3NlIGEgc2luZ2xlIGNvbmZpcm0gYWN0aW9uIGZyb20gcHJvdmlkZWQgc3VmZml4IGFjdGlvbnMgKGZpcnN0IHZpc2libGUpLiAqL1xuICBwcm90ZWN0ZWQgY29uZmlybUFjdGlvbiA9IGNvbXB1dGVkPEFYUEFjdGlvbk1lbnVJdGVtIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmZvb3RlclN1ZmZpeEFjdGlvbnMoKTtcbiAgICByZXR1cm4gaXRlbXMuZmluZCgoYSkgPT4gYS52aXNpYmxlICE9PSBmYWxzZSk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBjb25maXJtQWN0aW9uVGl0bGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbmZpcm1BY3Rpb24oKT8udGl0bGUgPz8gJ0NvbmZpcm0nKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIExpZmVjeWNsZSBNZXRob2RzICAgLS0tLVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybURhdGEuc2V0KHRoaXMuY29uZmlnLmNvbnRleHQgPz8ge30pO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBFdmVudCBIYW5kbGVycyAgIC0tLS1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dEluaXRpYXRlZChjb250ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZpb3VzQ29udGV4dC5zZXQoY29udGV4dCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dENoYW5nZWQoY29udGV4dDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtRGF0YS5zZXQoY29udGV4dCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEFjdGlvbiBFeGVjdXRpb24gICAtLS0tXG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYSBkeW5hbWljIGFjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGV4ZWN1dGVBY3Rpb24oYWN0aW9uOiBBWFBBY3Rpb25NZW51SXRlbSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChhY3Rpb24uY29tbWFuZCkge1xuICAgICAgLy8gRXhlY3V0ZSB0aGUgY29tbWFuZCBpZiBwcm92aWRlZFxuICAgICAgYXdhaXQgdGhpcy5leGVjdXRlQ29tbWFuZChhY3Rpb24uY29tbWFuZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEhhbmRsZSBjdXN0b20gYWN0aW9uIGxvZ2ljIGhlcmVcbiAgICAgIGNvbnN0IHJlc3VsdDogQVhQRHluYW1pY0RpYWxvZ1Jlc3VsdCA9IHtcbiAgICAgICAgY29udGV4dDogdGhpcy5mb3JtRGF0YSgpLFxuICAgICAgICBhY3Rpb246IGFjdGlvbi5uYW1lIHx8IGFjdGlvbi50aXRsZSxcbiAgICAgIH07XG4gICAgICB0aGlzLmNsb3NlKHJlc3VsdCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYSBjb21tYW5kXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZDogQVhQRXhlY3V0ZUNvbW1hbmQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBIYW5kbGUgY29tbWFuZCBleGVjdXRpb24gbG9naWMgaGVyZVxuXG4gICAgaWYgKGNvbW1hbmQub3B0aW9ucz8uWyd2YWxpZGF0ZSddID09IHRydWUpIHtcbiAgICAgIGlmICghKGF3YWl0IHRoaXMuaXNGb3JtVmFsaWQoKSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICAvL1xuICAgIGlmIChjb21tYW5kLm5hbWUgPT0gJ2NhbmNlbCcpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQ6IEFYUER5bmFtaWNEaWFsb2dSZXN1bHQgPSB7XG4gICAgICBjb250ZXh0OiB0aGlzLmZvcm1EYXRhKCksXG4gICAgICBhY3Rpb246IGNvbW1hbmQubmFtZSxcbiAgICB9O1xuXG4gICAgLy8gU3RvcmUgcmVzdWx0IGluIGNvbXBvbmVudCBwcm9wZXJ0eSBhbmQgcG9wdXAgZGF0YVxuICAgIHRoaXMuZGlhbG9nUmVzdWx0ID0gcmVzdWx0O1xuXG4gICAgLy8gU3RvcmUgaW4gcG9wdXAgZGF0YSBmb3IgRGlhbG9nUmVmIGFjY2Vzc1xuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuZGF0YS5jb250ZXh0ID0gcmVzdWx0LmNvbnRleHQ7XG4gICAgICB0aGlzLmRhdGEuYWN0aW9uID0gcmVzdWx0LmFjdGlvbjtcbiAgICB9XG5cbiAgICAvLyBDYWxsIHRoZSBjYWxsYmFjayB3aXRoIERpYWxvZ1JlZlxuICAgIHRoaXMuY2FsbEJhY2soe1xuICAgICAgY2xvc2U6IChyZXN1bHQ/OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZShyZXN1bHQpO1xuICAgICAgfSxcbiAgICAgIGNvbnRleHQ6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybURhdGEoKTtcbiAgICAgIH0sXG4gICAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5hY3Rpb247XG4gICAgICB9LFxuICAgICAgc2V0TG9hZGluZzogKGxvYWRpbmc6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgdGhpcy5pc1N1Ym1pdHRpbmcuc2V0KGxvYWRpbmcpO1xuICAgICAgfSxcbiAgICB9IGFzIEFYUERpYWxvZ1JlZik7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBNZXRob2RzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBmb3JtIGlzIHZhbGlkXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgaXNGb3JtVmFsaWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKHRoaXMuaXNTdGVwcGVyRGVmaW5pdGlvbigpKSB7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuc3RlcHBlcigpPy52YWxpZGF0ZUN1cnJlbnRTdGVwKCkpID8/IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZHluYW1pY0Zvcm0oKT8udmFsaWRhdGUoKSkgPz8gZmFsc2U7XG4gIH1cblxuICAvKiogU3RlcHBlciBuYXZpZ2F0aW9uIGhhbmRsZXJzICovXG4gIHByb3RlY3RlZCBnb1ByZXYoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcGVyKCk/LnByZXZpb3VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ29OZXh0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHBlcigpPy5uZXh0KCk7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsIkBpZiAoc2hvdWxkUmVuZGVyRm9ybSgpKSB7XG4gIDxkaXYgY2xhc3M9XCJheC1wLTRcIj5cbiAgICA8YXhwLWR5bmFtaWMtZm9ybVxuICAgICAgW2Zvcm1EZWZpbml0aW9uXT1cInJlc29sdmVkRm9ybURlZmluaXRpb24oKVwiXG4gICAgICBbY29udGV4dF09XCJmb3JtQ29udGV4dCgpXCJcbiAgICAgIFttb2RlXT1cInByb3ZpZGVkTW9kZSgpXCJcbiAgICAgIFtsYXlvdXRDb25maWddPVwiZWZmZWN0aXZlTGF5b3V0Q29uZmlnKClcIlxuICAgICAgW2xheW91dExvb2tdPVwiZWZmZWN0aXZlTGF5b3V0TG9vaygpXCJcbiAgICAgIFtsYXlvdXREaXJlY3Rpb25dPVwiZWZmZWN0aXZlRm9ybURpcmVjdGlvbigpXCJcbiAgICAgIChjb250ZXh0Q2hhbmdlKT1cImhhbmRsZUNvbnRleHRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgKGNvbnRleHRJbml0aWF0ZWQpPVwiaGFuZGxlQ29udGV4dEluaXRpYXRlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9heHAtZHluYW1pYy1mb3JtPlxuICA8L2Rpdj5cblxuICA8YXgtZm9vdGVyPlxuICAgIDxheC1wcmVmaXg+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyUHJlZml4QWN0aW9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtcHJlZml4PlxuICAgIDxheC1zdWZmaXg+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyU3VmZml4QWN0aW9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc3VmZml4PlxuICA8L2F4LWZvb3Rlcj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwiYXgtcC00XCI+XG4gICAgPGF4cC1keW5hbWljLWZvcm0tc3RlcHBlclxuICAgICAgI3N0ZXBwZXJSZWZcbiAgICAgIFtkZWZpbml0aW9uXT1cInN0ZXBwZXJEZWZpbml0aW9uKClcIlxuICAgICAgW2NvbnRleHRdPVwiZm9ybUNvbnRleHQoKVwiXG4gICAgICBbbGF5b3V0TG9va109XCJlZmZlY3RpdmVMYXlvdXRMb29rKClcIlxuICAgICAgW2xheW91dENvbmZpZ109XCJlZmZlY3RpdmVMYXlvdXRDb25maWcoKVwiXG4gICAgICBbc3RlcHBlckRpcmVjdGlvbl09XCJzdGVwcGVyRGlyZWN0aW9uKClcIlxuICAgICAgW2d1YXJkTmV4dF09XCJzdGVwcGVyR3VhcmROZXh0KClcIlxuICAgICAgKGNvbnRleHRDaGFuZ2UpPVwiaGFuZGxlQ29udGV4dENoYW5nZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYXhwLWR5bmFtaWMtZm9ybS1zdGVwcGVyPlxuICA8L2Rpdj5cblxuICA8YXgtZm9vdGVyPlxuICAgIDxheC1wcmVmaXg+XG4gICAgICA8YXgtYnV0dG9uXG4gICAgICAgIFtkaXNhYmxlZF09XCJzdGVwcGVySXNGaXJzdCgpXCJcbiAgICAgICAgW3RleHRdPVwiJ0BnZW5lcmFsOmFjdGlvbnMucHJldmlvdXMudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICBbbG9va109XCInb3V0bGluZSdcIlxuICAgICAgICAob25DbGljayk9XCJnb1ByZXYoKVwiXG4gICAgICA+PC9heC1idXR0b24+XG4gICAgPC9heC1wcmVmaXg+XG4gICAgPGF4LXN1ZmZpeD5cbiAgICAgIEBpZiAoIXN0ZXBwZXJJc0xhc3QoKSkge1xuICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgW3RleHRdPVwiJ0BnZW5lcmFsOmFjdGlvbnMubmV4dC50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgW2NvbG9yXT1cIidwcmltYXJ5J1wiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiZ29OZXh0KClcIlxuICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyU3VmZml4QWN0aW9uc1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2F4LXN1ZmZpeD5cbiAgICAgIH1cbiAgICA8L2F4LXN1ZmZpeD5cbiAgPC9heC1mb290ZXI+XG59XG48IS0tIEZvb3RlciBQcmVmaXggQWN0aW9ucyAtLT5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyUHJlZml4QWN0aW9ucz5cbiAgQGZvciAoYWN0aW9uIG9mIHZpc2libGVGb290ZXJQcmVmaXhBY3Rpb25zKCk7IHRyYWNrICRpbmRleCkge1xuICAgIDxheC1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb24uZGlzYWJsZWQgfHwgaXNGb3JtTG9hZGluZygpXCJcbiAgICAgIFt0ZXh0XT1cIihhY3Rpb24udGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYykhXCJcbiAgICAgIFtsb29rXT1cIidvdXRsaW5lJ1wiXG4gICAgICBbY29sb3JdPVwiYWN0aW9uLmNvbG9yXCJcbiAgICAgIChvbkNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oYWN0aW9uKVwiXG4gICAgPlxuICAgICAgQGlmIChpc0Zvcm1Mb2FkaW5nKCkgJiYgYWN0aW9uLmNvbW1hbmQ/Lm5hbWUgIT0gJ2NhbmNlbCcpIHtcbiAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgfVxuICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgPGkgY2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiPjwvaT5cbiAgICAgIDwvYXgtcHJlZml4PlxuICAgIDwvYXgtYnV0dG9uPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIEZvb3RlciBTdWZmaXggQWN0aW9ucyAtLT5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyU3VmZml4QWN0aW9ucz5cbiAgQGZvciAoYWN0aW9uIG9mIHZpc2libGVGb290ZXJTdWZmaXhBY3Rpb25zKCk7IHRyYWNrICRpbmRleCkge1xuICAgIEBpZiAoYWN0aW9uPy5pdGVtcyAmJiAoYWN0aW9uPy5pdGVtcz8ubGVuZ3RoID8/IDApID4gMCkge1xuICAgICAgPGF4LWRyb3Bkb3duLWJ1dHRvblxuICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkIHx8IGlzU3VibWl0dGluZygpXCJcbiAgICAgICAgW3RleHRdPVwiKGFjdGlvbi50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgICBbbG9va109XCInc29saWQnXCJcbiAgICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvclwiXG4gICAgICAgIChvbkNsaWNrKT1cImV4ZWN1dGVBY3Rpb24oYWN0aW9uKVwiXG4gICAgICA+XG4gICAgICAgIEBpZiAoYWN0aW9uLmljb24pIHtcbiAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cInt7IGFjdGlvbi5pY29uIH19XCI+PC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICB9XG4gICAgICAgIDxheC1idXR0b24taXRlbS1saXN0PlxuICAgICAgICAgIEBmb3IgKHN1YiBvZiBhY3Rpb24/Lml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxheC1idXR0b24taXRlbVxuICAgICAgICAgICAgICBbdGV4dF09XCIoc3ViLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMpIVwiXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJzdWIuY29sb3JcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic3ViLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiZXhlY3V0ZUFjdGlvbihzdWIpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmIChzdWIuaWNvbikge1xuICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwie3sgc3ViLmljb24gfX1cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYXgtYnV0dG9uLWl0ZW0+XG4gICAgICAgICAgICBAaWYgKHN1Yi5icmVhaykge1xuICAgICAgICAgICAgICA8YXgtZGl2aWRlcj48L2F4LWRpdmlkZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtLWxpc3Q+XG4gICAgICA8L2F4LWRyb3Bkb3duLWJ1dHRvbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxheC1idXR0b25cbiAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZCB8fCBpc1N1Ym1pdHRpbmcoKVwiXG4gICAgICAgIFt0ZXh0XT1cIihhY3Rpb24udGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYykhXCJcbiAgICAgICAgW2xvb2tdPVwiJ3NvbGlkJ1wiXG4gICAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgICAob25DbGljayk9XCJleGVjdXRlQWN0aW9uKGFjdGlvbilcIlxuICAgICAgPlxuICAgICAgICBAaWYgKGFjdGlvbi5pY29uKSB7XG4gICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgIDxheC1pY29uIGljb249XCJ7eyBhY3Rpb24uaWNvbiB9fVwiPjwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LXByZWZpeD5cbiAgICAgICAgfVxuICAgICAgPC9heC1idXR0b24+XG4gICAgfVxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19","import { inject, Injectable } from '@angular/core';\nimport { AXPopupService } from '@acorex/components/popup';\nimport * as i0 from \"@angular/core\";\nexport class AXPDynamicDialogService {\n constructor() {\n this.popupService = inject(AXPopupService);\n }\n /**\n * Show a dynamic dialog with the given configuration\n * @param config Dialog configuration including fields, validation, and UI options\n * @returns Promise resolving to dialog reference for controlling the dialog\n */\n async showDialog(config) {\n const component = await import('./dynamic-dialog.component').then(c => c.AXPDynamicDialogComponent);\n return new Promise(async (resolve) => {\n // Open popup and wait for it to close\n await this.popupService.open(component, {\n title: config.title,\n size: config.size || 'md',\n closeButton: config.closeButton,\n closeOnBackdropClick: false,\n draggable: false,\n data: {\n config,\n dialogResult: null,\n isSubmittingFromDialog: false,\n callBack: (result) => {\n resolve(result);\n }\n }\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicDialogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicDialogService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicDialogService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kaWFsb2cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9keW5hbWljLWRpYWxvZy9keW5hbWljLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNMUQsTUFBTSxPQUFPLHVCQUF1QjtJQUhwQztRQUlxQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQTZCMUQ7SUEzQkc7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBOEI7UUFDM0MsTUFBTSxTQUFTLEdBQUcsTUFBTSxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUVwRyxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNqQyxzQ0FBc0M7WUFDdEMsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ3BDLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSTtnQkFDekIsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXO2dCQUMvQixvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixTQUFTLEVBQUUsS0FBSztnQkFDaEIsSUFBSSxFQUFFO29CQUNGLE1BQU07b0JBQ04sWUFBWSxFQUFFLElBQUk7b0JBQ2xCLHNCQUFzQixFQUFFLEtBQUs7b0JBQzdCLFFBQVEsRUFBRSxDQUFDLE1BQW9CLEVBQUUsRUFBRTt3QkFDL0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNwQixDQUFDO2lCQUNKO2FBQ0osQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTdCUSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQUZwQixNQUFNOzsyRkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBEeW5hbWljRGlhbG9nQ29uZmlnLCBBWFBEeW5hbWljRGlhbG9nUmVzdWx0LCBBWFBEaWFsb2dSZWYgfSBmcm9tICcuL2R5bmFtaWMtZGlhbG9nLnR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBWFBEeW5hbWljRGlhbG9nU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyBhIGR5bmFtaWMgZGlhbG9nIHdpdGggdGhlIGdpdmVuIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBAcGFyYW0gY29uZmlnIERpYWxvZyBjb25maWd1cmF0aW9uIGluY2x1ZGluZyBmaWVsZHMsIHZhbGlkYXRpb24sIGFuZCBVSSBvcHRpb25zXG4gICAgICogQHJldHVybnMgUHJvbWlzZSByZXNvbHZpbmcgdG8gZGlhbG9nIHJlZmVyZW5jZSBmb3IgY29udHJvbGxpbmcgdGhlIGRpYWxvZ1xuICAgICAqL1xuICAgIGFzeW5jIHNob3dEaWFsb2coY29uZmlnOiBBWFBEeW5hbWljRGlhbG9nQ29uZmlnKTogUHJvbWlzZTxBWFBEaWFsb2dSZWY+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gYXdhaXQgaW1wb3J0KCcuL2R5bmFtaWMtZGlhbG9nLmNvbXBvbmVudCcpLnRoZW4oYyA9PiBjLkFYUER5bmFtaWNEaWFsb2dDb21wb25lbnQpO1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgLy8gT3BlbiBwb3B1cCBhbmQgd2FpdCBmb3IgaXQgdG8gY2xvc2VcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucG9wdXBTZXJ2aWNlLm9wZW4oY29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGNvbmZpZy50aXRsZSxcbiAgICAgICAgICAgICAgICBzaXplOiBjb25maWcuc2l6ZSB8fCAnbWQnLFxuICAgICAgICAgICAgICAgIGNsb3NlQnV0dG9uOiBjb25maWcuY2xvc2VCdXR0b24sXG4gICAgICAgICAgICAgICAgY2xvc2VPbkJhY2tkcm9wQ2xpY2s6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGRyYWdnYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZ1Jlc3VsdDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaXNTdWJtaXR0aW5nRnJvbURpYWxvZzogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNhbGxCYWNrOiAocmVzdWx0OiBBWFBEaWFsb2dSZWYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { AXPDynamicDialogService } from '../dynamic-dialog/dynamic-dialog.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPDynamicFormBuilderService {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.dialogService = inject(AXPDynamicDialogService);\n }\n //#endregion\n //#region ---- Public Methods ----\n /**\n * Create a new form builder\n */\n form() {\n return new FormBuilder();\n }\n /**\n * Create a new dialog builder\n */\n dialog() {\n return new DialogBuilder(this.dialogService);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicFormBuilderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicFormBuilderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPDynamicFormBuilderService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//#region ---- Form Builder Implementation ----\nclass FormBuilder {\n constructor() {\n this.state = {\n groups: [],\n layoutConfig: {\n positions: {\n default: { colSpan: 12 },\n md: { colSpan: 8 },\n lg: { colSpan: 6 },\n xl: { colSpan: 5 },\n xxl: { colSpan: 4 },\n },\n },\n look: 'normal',\n direction: 'vertical',\n };\n }\n group(name, delegate) {\n const groupBuilder = new GroupBuilder(this, name);\n if (delegate) {\n delegate(groupBuilder);\n }\n this.addGroup(groupBuilder.build());\n return this;\n }\n layout(config) {\n this.state.layoutConfig = { ...this.state.layoutConfig, ...config };\n return this;\n }\n look(look) {\n this.state.look = look;\n return this;\n }\n direction(direction) {\n this.state.direction = direction;\n return this;\n }\n mode(mode) {\n this.state.mode = mode;\n return this;\n }\n build() {\n return {\n groups: this.state.groups,\n mode: this.state.mode,\n };\n }\n addGroup(group) {\n this.state.groups.push(group);\n }\n}\n//#endregion\n//#region ---- Group Builder Implementation ----\nclass GroupBuilder {\n constructor(formBuilder, name) {\n this.formBuilder = formBuilder;\n this.groupState = {\n name: '',\n title: '',\n description: '',\n parameters: [],\n };\n this.groupState.name = name;\n }\n title(title) {\n this.groupState.title = title;\n return this;\n }\n description(description) {\n this.groupState.description = description;\n return this;\n }\n mode(mode) {\n this.groupState.mode = mode;\n return this;\n }\n field(path, delegate) {\n const fieldBuilder = new FieldBuilder(this, path);\n if (delegate) {\n delegate(fieldBuilder);\n }\n this.addField(fieldBuilder.build());\n return this;\n }\n group(name, delegate) {\n const nestedGroupBuilder = new GroupBuilder(this.formBuilder, name);\n if (delegate) {\n delegate(nestedGroupBuilder);\n }\n this.addGroup(nestedGroupBuilder.build());\n return this;\n }\n build() {\n return {\n name: this.groupState.name,\n title: this.groupState.title,\n description: this.groupState.description,\n parameters: this.groupState.parameters,\n mode: this.groupState.mode,\n };\n }\n addField(field) {\n this.groupState.parameters.push(field);\n }\n addGroup(group) {\n // For nested groups, we add them to the parent form builder\n this.formBuilder['addGroup'](group);\n }\n}\n//#endregion\n//#region ---- Field Builder Implementation ----\nclass FieldBuilder {\n constructor(groupBuilder, path) {\n this.groupBuilder = groupBuilder;\n this.fieldState = {\n path: '',\n title: '',\n description: '',\n defaultValue: undefined,\n hidden: undefined,\n readonly: undefined,\n disabled: undefined,\n widget: undefined,\n };\n this.fieldState.path = path;\n this.fieldState.title = path;\n }\n //#region ---- Utility Methods ----\n /**\n * Merge provided widget options with field-level options\n */\n mergeWithFieldOptions(options) {\n return {\n hidden: this.fieldState.hidden,\n readonly: this.fieldState.readonly,\n disabled: this.fieldState.disabled,\n ...options,\n };\n }\n //#endregion\n title(title) {\n this.fieldState.title = title;\n return this;\n }\n description(description) {\n this.fieldState.description = description;\n return this;\n }\n mode(mode) {\n this.fieldState.mode = mode;\n return this;\n }\n options(options) {\n this.fieldState.defaultValue = options['defaultValue'];\n this.fieldState.hidden = options['hidden'];\n this.fieldState.readonly = options['readonly'];\n this.fieldState.disabled = options['disabled'];\n return this;\n }\n layout(layout) {\n this.fieldState.layout = layout;\n return this;\n }\n textBox(options) {\n this.fieldState.widget = {\n type: 'text-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n largeTextBox(options) {\n this.fieldState.widget = {\n type: 'large-text-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n richText(options) {\n this.fieldState.widget = {\n type: 'rich-text-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n passwordBox(options) {\n this.fieldState.widget = {\n type: 'password-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n selectBox(options) {\n this.fieldState.widget = {\n type: 'select-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n selectionList(options) {\n this.fieldState.widget = {\n type: 'selection-list-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n lookupBox(options) {\n this.fieldState.widget = {\n type: 'lookup-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n numberBox(options) {\n this.fieldState.widget = {\n type: 'number-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n dateTimeBox(options) {\n this.fieldState.widget = {\n type: 'date-time-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n toggleSwitch(options) {\n this.fieldState.widget = {\n type: 'toggle-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n colorBox(options) {\n this.fieldState.widget = {\n type: 'color-editor',\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n widget(type, options) {\n this.fieldState.widget = {\n type,\n path: this.fieldState.path,\n defaultValue: this.fieldState.defaultValue,\n options: this.mergeWithFieldOptions(options),\n };\n return this;\n }\n build() {\n return {\n path: this.fieldState.path,\n title: this.fieldState.title,\n description: this.fieldState.description,\n widget: this.fieldState.widget,\n layout: this.fieldState.layout,\n mode: this.fieldState.mode,\n };\n }\n}\n//#endregion\n//#region ---- Dialog Builder Implementation ----\nclass DialogBuilder extends FormBuilder {\n constructor(dialogService) {\n super();\n this.dialogService = dialogService;\n this.dialogState = {\n groups: [],\n steps: [],\n layoutConfig: {\n positions: {\n default: { colSpan: 12 },\n md: { colSpan: 8 },\n lg: { colSpan: 6 },\n xl: { colSpan: 5 },\n xxl: { colSpan: 4 },\n },\n },\n look: 'borderless',\n direction: 'vertical',\n mode: 'edit',\n closeButton: false,\n title: '',\n message: '',\n size: 'md',\n context: {},\n actions: {\n footer: {\n prefix: [],\n suffix: [],\n },\n },\n };\n }\n // Override to keep chaining within dialog context\n group(name, delegate) {\n super.group(name, delegate);\n return this;\n }\n step(id, delegate) {\n const builder = new StepBuilder(this, id);\n if (delegate) {\n delegate(builder);\n }\n this.dialogState.steps.push(builder.build());\n return this;\n }\n stepperDirection(direction) {\n this.dialogState.stepperDirection = direction;\n return this;\n }\n guardNext(guard) {\n this.dialogState.guardNext = guard;\n return this;\n }\n // Ensure dialog state mirrors form state and chaining type stays IDialogBuilder\n layout(config) {\n super.layout(config);\n this.dialogState.layoutConfig = { ...this.dialogState.layoutConfig, ...config };\n return this;\n }\n look(look) {\n super.look(look);\n this.dialogState.look = look;\n return this;\n }\n direction(direction) {\n super.direction(direction);\n this.dialogState.direction = direction;\n return this;\n }\n mode(mode) {\n console.log(mode);\n super.mode(mode);\n this.dialogState.mode = mode;\n return this;\n }\n closeButton(closeButton) {\n this.dialogState.closeButton = closeButton;\n return this;\n }\n title(title) {\n this.dialogState.title = title;\n return this;\n }\n message(message) {\n this.dialogState.message = message;\n return this;\n }\n size(size) {\n this.dialogState.size = size;\n return this;\n }\n context(context) {\n this.dialogState.context = context;\n return this;\n }\n actions(delegate) {\n const actionBuilder = new ActionBuilder(this);\n if (delegate) {\n delegate(actionBuilder);\n }\n return this;\n }\n async show() {\n const built = this.build();\n const hasSteps = this.dialogState.steps.length > 0;\n const config = {\n title: this.dialogState.title,\n message: this.dialogState.message,\n closeButton: this.dialogState.closeButton,\n definition: hasSteps\n ? {\n steps: this.dialogState.steps.map((s) => ({\n id: s.id,\n title: s.title,\n description: s.description,\n icon: s.icon,\n groups: s.groups,\n formDirection: s.formDirection,\n })),\n }\n : {\n steps: [\n {\n id: 'form',\n groups: built.groups,\n formDirection: this.dialogState.direction,\n },\n ],\n },\n context: this.dialogState.context,\n size: this.dialogState.size,\n actions: this.dialogState.actions,\n layoutConfig: this.dialogState.layoutConfig,\n layoutLook: this.dialogState.look,\n mode: this.dialogState.mode,\n stepper: hasSteps\n ? {\n guardNext: this.dialogState.guardNext,\n stepperDirection: this.dialogState.stepperDirection,\n }\n : undefined,\n };\n return await this.dialogService.showDialog(config);\n }\n}\n//#endregion\n//#region ---- Action Builder Implementation ----\nclass ActionBuilder {\n constructor(dialogBuilder) {\n this.dialogBuilder = dialogBuilder;\n }\n cancel(text) {\n if (!this.dialogBuilder['dialogState'].actions.footer.suffix) {\n this.dialogBuilder['dialogState'].actions.footer.suffix = [];\n }\n this.dialogBuilder['dialogState'].actions.footer.suffix.push({\n title: text || '@general:actions.cancel.title',\n icon: 'fa-times',\n color: 'default',\n command: { name: 'cancel' },\n });\n return this;\n }\n submit(text) {\n if (!this.dialogBuilder['dialogState'].actions.footer.suffix) {\n this.dialogBuilder['dialogState'].actions.footer.suffix = [];\n }\n this.dialogBuilder['dialogState'].actions.footer.suffix.push({\n title: text || '@general:actions.submit.title',\n icon: 'fa-check',\n color: 'primary',\n command: { name: 'submit', options: { validate: true } },\n });\n return this;\n }\n custom(action) {\n if (!this.dialogBuilder['dialogState'].actions.footer.suffix) {\n this.dialogBuilder['dialogState'].actions.footer.suffix = [];\n }\n this.dialogBuilder['dialogState'].actions.footer.suffix.push(action);\n return this;\n }\n}\n// #region ---- Step Builder Implementation ----\nclass StepBuilder {\n constructor(dialogBuilder, id) {\n this.dialogBuilder = dialogBuilder;\n this.stepState = {\n id: '',\n groups: [],\n };\n this.stepState.id = id;\n }\n title(title) {\n this.stepState.title = title;\n return this;\n }\n description(description) {\n this.stepState.description = description;\n return this;\n }\n icon(icon) {\n this.stepState.icon = icon;\n return this;\n }\n direction(direction) {\n this.stepState.formDirection = direction;\n return this;\n }\n group(name, delegate) {\n const groupBuilder = new GroupBuilder(this.dialogBuilder, name);\n if (delegate) {\n delegate(groupBuilder);\n }\n this.stepState.groups.push(groupBuilder.build());\n return this;\n }\n build() {\n return this.stepState;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWJ1aWxkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUF3Q25GLE1BQU0sT0FBTyw0QkFBNEI7SUFIekM7UUFJRSwrQ0FBK0M7UUFFOUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQW1CbEU7SUFqQkMsWUFBWTtJQUVaLHNDQUFzQztJQUV0Qzs7T0FFRztJQUNILElBQUk7UUFDRixPQUFPLElBQUksV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OEdBckJVLDRCQUE0QjtrSEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07OzJGQUVQLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBeUJELG1EQUFtRDtBQUVuRCxNQUFNLFdBQVc7SUFBakI7UUFDVSxVQUFLLEdBQXFCO1lBQ2hDLE1BQU0sRUFBRSxFQUFFO1lBQ1YsWUFBWSxFQUFFO2dCQUNaLFNBQVMsRUFBRTtvQkFDVCxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO29CQUN4QixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFO29CQUNsQixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFF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Q0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVcsQ0FBQyxXQUFtQjtRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLElBQVk7UUFDZixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWtDO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBWSxFQUFFLFFBQXlDO1FBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9wdXBTaXplVHlwZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBBY3Rpb25NZW51SXRlbSwgQVhQQ29udGV4dERhdGEgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBEeW5hbWljRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2R5bmFtaWMtZGlhbG9nL2R5bmFtaWMtZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQRGlhbG9nUmVmLCBBWFBEeW5hbWljRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vZHluYW1pYy1kaWFsb2cvZHluYW1pYy1kaWFsb2cudHlwZXMnO1xuaW1wb3J0IHtcbiAgQ29sb3JCb3hPcHRpb25zLFxuICBEYXRlVGltZUJveE9wdGlvbnMsXG4gIERpYWxvZ0J1aWxkZXJTdGF0ZSxcbiAgRmllbGRCdWlsZGVyU3RhdGUsXG4gIEZvcm1CdWlsZGVyU3RhdGUsXG4gIEdyb3VwQnVpbGRlclN0YXRlLFxuICBJQWN0aW9uQnVpbGRlcixcbiAgSURpYWxvZ0J1aWxkZXIsXG4gIElGaWVsZEJ1aWxkZXIsXG4gIElGaWVsZE9wdGlvbnMsXG4gIElGb3JtQnVpbGRlcixcbiAgSUdyb3VwQnVpbGRlcixcbiAgSVN0ZXBCdWlsZGVyLFxuICBMYXJnZVRleHRCb3hPcHRpb25zLFxuICBMb29rdXBCb3hPcHRpb25zLFxuICBOdW1iZXJCb3hPcHRpb25zLFxuICBQYXNzd29yZEJveE9wdGlvbnMsXG4gIFJpY2hUZXh0T3B0aW9ucyxcbiAgU2VsZWN0Qm94T3B0aW9ucyxcbiAgU2VsZWN0aW9uTGlzdE9wdGlvbnMsXG4gIFN0ZXBCdWlsZGVyU3RhdGUsXG4gIFRleHRCb3hPcHRpb25zLFxuICBUb2dnbGVTd2l0Y2hPcHRpb25zLFxufSBmcm9tICcuL2R5bmFtaWMtZm9ybS1idWlsZGVyLnR5cGVzJztcbmltcG9ydCB7XG4gIEFYUER5bmFtaWNGb3JtRGVmaW5pdGlvbixcbiAgQVhQRHluYW1pY0Zvcm1EaXJlY3Rpb24sXG4gIEFYUER5bmFtaWNGb3JtRmllbGREZWZpbml0aW9uLFxuICBBWFBEeW5hbWljRm9ybUdyb3VwRGVmaW5pdGlvbixcbiAgQVhQRHluYW1pY0Zvcm1MYXlvdXRDb25maWcsXG4gIEFYUER5bmFtaWNGb3JtTG9vayxcbiAgQVhQRHluYW1pY0Zvcm1Nb2RlLFxufSBmcm9tICcuL2R5bmFtaWMtZm9ybS50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBEeW5hbWljRm9ybUJ1aWxkZXJTZXJ2aWNlIHtcbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoQVhQRHluYW1pY0RpYWxvZ1NlcnZpY2UpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgUHVibGljIE1ldGhvZHMgICAtLS0tXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBmb3JtIGJ1aWxkZXJcbiAgICovXG4gIGZvcm0oKTogSUZvcm1CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEZvcm1CdWlsZGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGRpYWxvZyBidWlsZGVyXG4gICAqL1xuICBkaWFsb2coKTogSURpYWxvZ0J1aWxkZXIge1xuICAgIHJldHVybiBuZXcgRGlhbG9nQnVpbGRlcih0aGlzLmRpYWxvZ1NlcnZpY2UpO1xuICB9XG59XG5cbi8vI3JlZ2lvbiAtLS0tICAgRm9ybSBCdWlsZGVyIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG5jbGFzcyBGb3JtQnVpbGRlciBpbXBsZW1lbnRzIElGb3JtQnVpbGRlciB7XG4gIHByaXZhdGUgc3RhdGU6IEZvcm1CdWlsZGVyU3RhdGUgPSB7XG4gICAgZ3JvdXBzOiBbXSxcbiAgICBsYXlvdXRDb25maWc6IHtcbiAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICBkZWZhdWx0OiB7IGNvbFNwYW46IDEyIH0sXG4gICAgICAgIG1kOiB7IGNvbFNwYW46IDggfSxcbiAgICAgICAgbGc6IHsgY29sU3BhbjogNiB9LFxuICAgICAgICB4bDogeyBjb2xTcGFuOiA1IH0sXG4gICAgICAgIHh4bDogeyBjb2xTcGFuOiA0IH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgbG9vazogJ25vcm1hbCcsXG4gICAgZGlyZWN0aW9uOiAndmVydGljYWwnLFxuICB9O1xuXG4gIGdyb3VwKG5hbWU6IHN0cmluZywgZGVsZWdhdGU/OiAoZ3JvdXA6IElHcm91cEJ1aWxkZXIpID0+IHZvaWQpOiBJRm9ybUJ1aWxkZXIge1xuICAgIGNvbnN0IGdyb3VwQnVpbGRlciA9IG5ldyBHcm91cEJ1aWxkZXIodGhpcywgbmFtZSk7XG4gICAgaWYgKGRlbGVnYXRlKSB7XG4gICAgICBkZWxlZ2F0ZShncm91cEJ1aWxkZXIpO1xuICAgIH1cbiAgICB0aGlzLmFkZEdyb3VwKGdyb3VwQnVpbGRlci5idWlsZCgpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxheW91dChjb25maWc6IFBhcnRpYWw8QVhQRHluYW1pY0Zvcm1MYXlvdXRDb25maWc+KTogSUZvcm1CdWlsZGVyIHtcbiAgICB0aGlzLnN0YXRlLmxheW91dENvbmZpZyA9IHsgLi4udGhpcy5zdGF0ZS5sYXlvdXRDb25maWcsIC4uLmNvbmZpZyB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9vayhsb29rOiBBWFBEeW5hbWljRm9ybUxvb2spOiBJRm9ybUJ1aWxkZXIge1xuICAgIHRoaXMuc3RhdGUubG9vayA9IGxvb2s7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkaXJlY3Rpb24oZGlyZWN0aW9uOiBBWFBEeW5hbWljRm9ybURpcmVjdGlvbik6IElGb3JtQnVpbGRlciB7XG4gICAgdGhpcy5zdGF0ZS5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBtb2RlKG1vZGU6IEFYUER5bmFtaWNGb3JtTW9kZSk6IElGb3JtQnVpbGRlciB7XG4gICAgdGhpcy5zdGF0ZS5tb2RlID0gbW9kZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGJ1aWxkKCk6IEFYUER5bmFtaWNGb3JtRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdyb3VwczogdGhpcy5zdGF0ZS5ncm91cHMsXG4gICAgICBtb2RlOiB0aGlzLnN0YXRlLm1vZGUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkR3JvdXAoZ3JvdXA6IEFYUER5bmFtaWNGb3JtR3JvdXBEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZS5ncm91cHMucHVzaChncm91cCk7XG4gIH1cbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgR3JvdXAgQnVpbGRlciBJbXBsZW1lbnRhdGlvbiAgIC0tLS1cblxuY2xhc3MgR3JvdXBCdWlsZGVyIGltcGxlbWVudHMgSUdyb3VwQnVpbGRlciB7XG4gIHByaXZhdGUgZ3JvdXBTdGF0ZTogR3JvdXBCdWlsZGVyU3RhdGUgPSB7XG4gICAgbmFtZTogJycsXG4gICAgdGl0bGU6ICcnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICBwYXJhbWV0ZXJzOiBbXSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBuYW1lOiBzdHJpbmcsXG4gICkge1xuICAgIHRoaXMuZ3JvdXBTdGF0ZS5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIHRpdGxlKHRpdGxlOiBzdHJpbmcpOiBJR3JvdXBCdWlsZGVyIHtcbiAgICB0aGlzLmdyb3VwU3RhdGUudGl0bGUgPSB0aXRsZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBJR3JvdXBCdWlsZGVyIHtcbiAgICB0aGlzLmdyb3VwU3RhdGUuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG1vZGUobW9kZTogQVhQRHluYW1pY0Zvcm1Nb2RlKTogSUdyb3VwQnVpbGRlciB7XG4gICAgdGhpcy5ncm91cFN0YXRlLm1vZGUgPSBtb2RlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZmllbGQocGF0aDogc3RyaW5nLCBkZWxlZ2F0ZT86IChmaWVsZDogSUZpZWxkQnVpbGRlcikgPT4gdm9pZCk6IElHcm91cEJ1aWxkZXIge1xuICAgIGNvbnN0IGZpZWxkQnVpbGRlciA9IG5ldyBGaWVsZEJ1aWxkZXIodGhpcywgcGF0aCk7XG4gICAgaWYgKGRlbGVnYXRlKSB7XG4gICAgICBkZWxlZ2F0ZShmaWVsZEJ1aWxkZXIpO1xuICAgIH1cbiAgICB0aGlzLmFkZEZpZWxkKGZpZWxkQnVpbGRlci5idWlsZCgpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdyb3VwKG5hbWU6IHN0cmluZywgZGVsZWdhdGU/OiAoZ3JvdXA6IElHcm91cEJ1aWxkZXIpID0+IHZvaWQpOiBJR3JvdXBCdWlsZGVyIHtcbiAgICBjb25zdCBuZXN0ZWRHcm91cEJ1aWxkZXIgPSBuZXcgR3JvdXBCdWlsZGVyKHRoaXMuZm9ybUJ1aWxkZXIsIG5hbWUpO1xuICAgIGlmIChkZWxlZ2F0ZSkge1xuICAgICAgZGVsZWdhdGUobmVzdGVkR3JvdXBCdWlsZGVyKTtcbiAgICB9XG4gICAgdGhpcy5hZGRHcm91cChuZXN0ZWRHcm91cEJ1aWxkZXIuYnVpbGQoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBidWlsZCgpOiBBWFBEeW5hbWljRm9ybUdyb3VwRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMuZ3JvdXBTdGF0ZS5uYW1lLFxuICAgICAgdGl0bGU6IHRoaXMuZ3JvdXBTdGF0ZS50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmdyb3VwU3RhdGUuZGVzY3JpcHRpb24sXG4gICAgICBwYXJhbWV0ZXJzOiB0aGlzLmdyb3VwU3RhdGUucGFyYW1ldGVycyxcbiAgICAgIG1vZGU6IHRoaXMuZ3JvdXBTdGF0ZS5tb2RlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFkZEZpZWxkKGZpZWxkOiBBWFBEeW5hbWljRm9ybUZpZWxkRGVmaW5pdGlvbik6IHZvaWQge1xuICAgIHRoaXMuZ3JvdXBTdGF0ZS5wYXJhbWV0ZXJzLnB1c2goZmllbGQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRHcm91cChncm91cDogQVhQRHluYW1pY0Zvcm1Hcm91cERlZmluaXRpb24pOiB2b2lkIHtcbiAgICAvLyBGb3IgbmVzdGVkIGdyb3Vwcywgd2UgYWRkIHRoZW0gdG8gdGhlIHBhcmVudCBmb3JtIGJ1aWxkZXJcbiAgICB0aGlzLmZvcm1CdWlsZGVyWydhZGRHcm91cCddKGdyb3VwKTtcbiAgfVxufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBGaWVsZCBCdWlsZGVyIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG5jbGFzcyBGaWVsZEJ1aWxkZXIgaW1wbGVtZW50cyBJRmllbGRCdWlsZGVyIHtcbiAgcHJpdmF0ZSBmaWVsZFN0YXRlOiBGaWVsZEJ1aWxkZXJTdGF0ZSA9IHtcbiAgICBwYXRoOiAnJyxcbiAgICB0aXRsZTogJycsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkLFxuICAgIGhpZGRlbjogdW5kZWZpbmVkLFxuICAgIHJlYWRvbmx5OiB1bmRlZmluZWQsXG4gICAgZGlzYWJsZWQ6IHVuZGVmaW5lZCxcbiAgICB3aWRnZXQ6IHVuZGVmaW5lZCxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGdyb3VwQnVpbGRlcjogR3JvdXBCdWlsZGVyLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgKSB7XG4gICAgdGhpcy5maWVsZFN0YXRlLnBhdGggPSBwYXRoO1xuICAgIHRoaXMuZmllbGRTdGF0ZS50aXRsZSA9IHBhdGg7XG4gIH1cblxuICAvLyNyZWdpb24gLS0tLSAgIFV0aWxpdHkgTWV0aG9kcyAgIC0tLS1cblxuICAvKipcbiAgICogTWVyZ2UgcHJvdmlkZWQgd2lkZ2V0IG9wdGlvbnMgd2l0aCBmaWVsZC1sZXZlbCBvcHRpb25zXG4gICAqL1xuICBwcml2YXRlIG1lcmdlV2l0aEZpZWxkT3B0aW9uczxUT3B0aW9ucyBleHRlbmRzIG9iamVjdCB8IHVuZGVmaW5lZD4oXG4gICAgb3B0aW9ucz86IFRPcHRpb25zLFxuICApOiBUT3B0aW9ucyAmIHtcbiAgICBoaWRkZW46IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHk6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgZGlzYWJsZWQ6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBoaWRkZW46IHRoaXMuZmllbGRTdGF0ZS5oaWRkZW4sXG4gICAgICByZWFkb25seTogdGhpcy5maWVsZFN0YXRlLnJlYWRvbmx5LFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZmllbGRTdGF0ZS5kaXNhYmxlZCxcbiAgICAgIC4uLihvcHRpb25zIGFzIG9iamVjdCksXG4gICAgfSBhcyB1bmtub3duIGFzIFRPcHRpb25zICYge1xuICAgICAgaGlkZGVuOiBzdHJpbmcgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgICAgcmVhZG9ubHk6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgICBkaXNhYmxlZDogc3RyaW5nIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICB9O1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgdGl0bGUodGl0bGU6IHN0cmluZyk6IElGaWVsZEJ1aWxkZXIge1xuICAgIHRoaXMuZmllbGRTdGF0ZS50aXRsZSA9IHRpdGxlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IElGaWVsZEJ1aWxkZXIge1xuICAgIHRoaXMuZmllbGRTdGF0ZS5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbW9kZShtb2RlOiBBWFBEeW5hbWljRm9ybU1vZGUpOiBJRmllbGRCdWlsZGVyIHtcbiAgICB0aGlzLmZpZWxkU3RhdGUubW9kZSA9IG1vZGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBvcHRpb25zKG9wdGlvbnM6IElGaWVsZE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyIHtcbiAgICB0aGlzLmZpZWxkU3RhdGUuZGVmYXVsdFZhbHVlID0gb3B0aW9uc1snZGVmYXVsdFZhbHVlJ107XG4gICAgdGhpcy5maWVsZFN0YXRlLmhpZGRlbiA9IG9wdGlvbnNbJ2hpZGRlbiddO1xuICAgIHRoaXMuZmllbGRTdGF0ZS5yZWFkb25seSA9IG9wdGlvbnNbJ3JlYWRvbmx5J107XG4gICAgdGhpcy5maWVsZFN0YXRlLmRpc2FibGVkID0gb3B0aW9uc1snZGlzYWJsZWQnXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxheW91dChsYXlvdXQ6IEFYUER5bmFtaWNGb3JtRmllbGREZWZpbml0aW9uWydsYXlvdXQnXSk6IElGaWVsZEJ1aWxkZXIge1xuICAgIHRoaXMuZmllbGRTdGF0ZS5sYXlvdXQgPSBsYXlvdXQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB0ZXh0Qm94KG9wdGlvbnM/OiBUZXh0Qm94T3B0aW9ucyk6IElGaWVsZEJ1aWxkZXIge1xuICAgIHRoaXMuZmllbGRTdGF0ZS53aWRnZXQgPSB7XG4gICAgICB0eXBlOiAndGV4dC1lZGl0b3InLFxuICAgICAgcGF0aDogdGhpcy5maWVsZFN0YXRlLnBhdGgsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZmllbGRTdGF0ZS5kZWZhdWx0VmFsdWUsXG4gICAgICBvcHRpb25zOiB0aGlzLm1lcmdlV2l0aEZpZWxkT3B0aW9ucyhvcHRpb25zKSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbGFyZ2VUZXh0Qm94KG9wdGlvbnM/OiBMYXJnZVRleHRCb3hPcHRpb25zKTogSUZpZWxkQnVpbGRlciB7XG4gICAgdGhpcy5maWVsZFN0YXRlLndpZGdldCA9IHtcbiAgICAgIHR5cGU6ICdsYXJnZS10ZXh0LWVkaXRvcicsXG4gICAgICBwYXRoOiB0aGlzLmZpZWxkU3RhdGUucGF0aCxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5maWVsZFN0YXRlLmRlZmF1bHRWYWx1ZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VXaXRoRmllbGRPcHRpb25zKG9wdGlvbnMpLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICByaWNoVGV4dChvcHRpb25zPzogUmljaFRleHRPcHRpb25zKTogSUZpZWxkQnVpbGRlciB7XG4gICAgdGhpcy5maWVsZFN0YXRlLndpZGdldCA9IHtcbiAgICAgIHR5cGU6ICdyaWNoLXRleHQtZWRpdG9yJyxcbiAgICAgIHBhdGg6IHRoaXMuZmllbGRTdGF0ZS5wYXRoLFxuICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmZpZWxkU3RhdGUuZGVmYXVsdFZhbHVlLFxuICAgICAgb3B0aW9uczogdGhpcy5tZXJnZVdpdGhGaWVsZE9wdGlvbnMob3B0aW9ucyksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBhc3N3b3JkQm94KG9wdGlvbnM/OiBQYXNzd29yZEJveE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyIHtcbiAgICB0aGlzLmZpZWxkU3RhdGUud2lkZ2V0ID0ge1xuICAgICAgdHlwZTogJ3Bhc3N3b3JkLWVkaXRvcicsXG4gICAgICBwYXRoOiB0aGlzLmZpZWxkU3RhdGUucGF0aCxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5maWVsZFN0YXRlLmRlZmF1bHRWYWx1ZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VXaXRoRmllbGRPcHRpb25zKG9wdGlvbnMpLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZWxlY3RCb3gob3B0aW9uczogU2VsZWN0Qm94T3B0aW9ucyk6IElGaWVsZEJ1aWxkZXIge1xuICAgIHRoaXMuZmllbGRTdGF0ZS53aWRnZXQgPSB7XG4gICAgICB0eXBlOiAnc2VsZWN0LWVkaXRvcicsXG4gICAgICBwYXRoOiB0aGlzLmZpZWxkU3RhdGUucGF0aCxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5maWVsZFN0YXRlLmRlZmF1bHRWYWx1ZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VXaXRoRmllbGRPcHRpb25zKG9wdGlvbnMpLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZWxlY3Rpb25MaXN0KG9wdGlvbnM6IFNlbGVjdGlvbkxpc3RPcHRpb25zKTogSUZpZWxkQnVpbGRlciB7XG4gICAgdGhpcy5maWVsZFN0YXRlLndpZGdldCA9IHtcbiAgICAgIHR5cGU6ICdzZWxlY3Rpb24tbGlzdC1lZGl0b3InLFxuICAgICAgcGF0aDogdGhpcy5maWVsZFN0YXRlLnBhdGgsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZmllbGRTdGF0ZS5kZWZhdWx0VmFsdWUsXG4gICAgICBvcHRpb25zOiB0aGlzLm1lcmdlV2l0aEZpZWxkT3B0aW9ucyhvcHRpb25zKSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbG9va3VwQm94KG9wdGlvbnM6IExvb2t1cEJveE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyIHtcbiAgICB0aGlzLmZpZWxkU3RhdGUud2lkZ2V0ID0ge1xuICAgICAgdHlwZTogJ2xvb2t1cC1lZGl0b3InLFxuICAgICAgcGF0aDogdGhpcy5maWVsZFN0YXRlLnBhdGgsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZmllbGRTdGF0ZS5kZWZhdWx0VmFsdWUsXG4gICAgICBvcHRpb25zOiB0aGlzLm1lcmdlV2l0aEZpZWxkT3B0aW9ucyhvcHRpb25zKSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbnVtYmVyQm94KG9wdGlvbnM/OiBOdW1iZXJCb3hPcHRpb25zKTogSUZpZWxkQnVpbGRlciB7XG4gICAgdGhpcy5maWVsZFN0YXRlLndpZGdldCA9IHtcbiAgICAgIHR5cGU6ICdudW1iZXItZWRpdG9yJyxcbiAgICAgIHBhdGg6IHRoaXMuZmllbGRTdGF0ZS5wYXRoLFxuICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmZpZWxkU3RhdGUuZGVmYXVsdFZhbHVlLFxuICAgICAgb3B0aW9uczogdGhpcy5tZXJnZVdpdGhGaWVsZE9wdGlvbnMob3B0aW9ucyksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGRhdGVUaW1lQm94KG9wdGlvbnM/OiBEYXRlVGltZUJveE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyIHtcbiAgICB0aGlzLmZpZWxkU3RhdGUud2lkZ2V0ID0ge1xuICAgICAgdHlwZTogJ2RhdGUtdGltZS1lZGl0b3InLFxuICAgICAgcGF0aDogdGhpcy5maWVsZFN0YXRlLnBhdGgsXG4gICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZmllbGRTdGF0ZS5kZWZhdWx0VmFsdWUsXG4gICAgICBvcHRpb25zOiB0aGlzLm1lcmdlV2l0aEZpZWxkT3B0aW9ucyhvcHRpb25zKSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdG9nZ2xlU3dpdGNoKG9wdGlvbnM/OiBUb2dnbGVTd2l0Y2hPcHRpb25zKTogSUZpZWxkQnVpbGRlciB7XG4gICAgdGhpcy5maWVsZFN0YXRlLndpZGdldCA9IHtcbiAgICAgIHR5cGU6ICd0b2dnbGUtZWRpdG9yJyxcbiAgICAgIHBhdGg6IHRoaXMuZmllbGRTdGF0ZS5wYXRoLFxuICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmZpZWxkU3RhdGUuZGVmYXVsdFZhbHVlLFxuICAgICAgb3B0aW9uczogdGhpcy5tZXJnZVdpdGhGaWVsZE9wdGlvbnMob3B0aW9ucyksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGNvbG9yQm94KG9wdGlvbnM/OiBDb2xvckJveE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyIHtcbiAgICB0aGlzLmZpZWxkU3RhdGUud2lkZ2V0ID0ge1xuICAgICAgdHlwZTogJ2NvbG9yLWVkaXRvcicsXG4gICAgICBwYXRoOiB0aGlzLmZpZWxkU3RhdGUucGF0aCxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5maWVsZFN0YXRlLmRlZmF1bHRWYWx1ZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VXaXRoRmllbGRPcHRpb25zKG9wdGlvbnMpLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICB3aWRnZXQodHlwZTogc3RyaW5nLCBvcHRpb25zPzogYW55KTogSUZpZWxkQnVpbGRlciB7XG4gICAgdGhpcy5maWVsZFN0YXRlLndpZGdldCA9IHtcbiAgICAgIHR5cGUsXG4gICAgICBwYXRoOiB0aGlzLmZpZWxkU3RhdGUucGF0aCxcbiAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5maWVsZFN0YXRlLmRlZmF1bHRWYWx1ZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMubWVyZ2VXaXRoRmllbGRPcHRpb25zKG9wdGlvbnMpLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBidWlsZCgpOiBBWFBEeW5hbWljRm9ybUZpZWxkRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGg6IHRoaXMuZmllbGRTdGF0ZS5wYXRoLFxuICAgICAgdGl0bGU6IHRoaXMuZmllbGRTdGF0ZS50aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmZpZWxkU3RhdGUuZGVzY3JpcHRpb24sXG4gICAgICB3aWRnZXQ6IHRoaXMuZmllbGRTdGF0ZS53aWRnZXQhLFxuICAgICAgbGF5b3V0OiB0aGlzLmZpZWxkU3RhdGUubGF5b3V0LFxuICAgICAgbW9kZTogdGhpcy5maWVsZFN0YXRlLm1vZGUsXG4gICAgfTtcbiAgfVxufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBEaWFsb2cgQnVpbGRlciBJbXBsZW1lbnRhdGlvbiAgIC0tLS1cblxuY2xhc3MgRGlhbG9nQnVpbGRlciBleHRlbmRzIEZvcm1CdWlsZGVyIGltcGxlbWVudHMgSURpYWxvZ0J1aWxkZXIge1xuICBwcml2YXRlIGRpYWxvZ1N0YXRlOiBEaWFsb2dCdWlsZGVyU3RhdGUgPSB7XG4gICAgZ3JvdXBzOiBbXSxcbiAgICBzdGVwczogW10sXG4gICAgbGF5b3V0Q29uZmlnOiB7XG4gICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgZGVmYXVsdDogeyBjb2xTcGFuOiAxMiB9LFxuICAgICAgICBtZDogeyBjb2xTcGFuOiA4IH0sXG4gICAgICAgIGxnOiB7IGNvbFNwYW46IDYgfSxcbiAgICAgICAgeGw6IHsgY29sU3BhbjogNSB9LFxuICAgICAgICB4eGw6IHsgY29sU3BhbjogNCB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGxvb2s6ICdib3JkZXJsZXNzJyxcbiAgICBkaXJlY3Rpb246ICd2ZXJ0aWNhbCcsXG4gICAgbW9kZTogJ2VkaXQnLFxuICAgIGNsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICB0aXRsZTogJycsXG4gICAgbWVzc2FnZTogJycsXG4gICAgc2l6ZTogJ21kJyxcbiAgICBjb250ZXh0OiB7fSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBmb290ZXI6IHtcbiAgICAgICAgcHJlZml4OiBbXSxcbiAgICAgICAgc3VmZml4OiBbXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IEFYUER5bmFtaWNEaWFsb2dTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8vIE92ZXJyaWRlIHRvIGtlZXAgY2hhaW5pbmcgd2l0aGluIGRpYWxvZyBjb250ZXh0XG4gIG92ZXJyaWRlIGdyb3VwKG5hbWU6IHN0cmluZywgZGVsZWdhdGU/OiAoZ3JvdXA6IElHcm91cEJ1aWxkZXIpID0+IHZvaWQpOiBJRGlhbG9nQnVpbGRlciB7XG4gICAgc3VwZXIuZ3JvdXAobmFtZSwgZGVsZWdhdGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3RlcChpZDogc3RyaW5nLCBkZWxlZ2F0ZT86IChzdGVwOiBJU3RlcEJ1aWxkZXIpID0+IHZvaWQpOiBJRGlhbG9nQnVpbGRlciB7XG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBTdGVwQnVpbGRlcih0aGlzLCBpZCk7XG4gICAgaWYgKGRlbGVnYXRlKSB7XG4gICAgICBkZWxlZ2F0ZShidWlsZGVyKTtcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dTdGF0ZS5zdGVwcy5wdXNoKGJ1aWxkZXIuYnVpbGQoKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzdGVwcGVyRGlyZWN0aW9uKGRpcmVjdGlvbjogYW55KTogSURpYWxvZ0J1aWxkZXIge1xuICAgIHRoaXMuZGlhbG9nU3RhdGUuc3RlcHBlckRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGd1YXJkTmV4dChndWFyZDogKGU6IHsgaW5kZXg6IG51bWJlcjsgaWQ6IHN0cmluZzsgZnVsbENvbnRleHQ6IHVua25vd24gfSkgPT4gUHJvbWlzZTxib29sZWFuPik6IElEaWFsb2dCdWlsZGVyIHtcbiAgICB0aGlzLmRpYWxvZ1N0YXRlLmd1YXJkTmV4dCA9IGd1YXJkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gRW5zdXJlIGRpYWxvZyBzdGF0ZSBtaXJyb3JzIGZvcm0gc3RhdGUgYW5kIGNoYWluaW5nIHR5cGUgc3RheXMgSURpYWxvZ0J1aWxkZXJcbiAgb3ZlcnJpZGUgbGF5b3V0KGNvbmZpZzogUGFydGlhbDxBWFBEeW5hbWljRm9ybUxheW91dENvbmZpZz4pOiBJRGlhbG9nQnVpbGRlciB7XG4gICAgc3VwZXIubGF5b3V0KGNvbmZpZyk7XG4gICAgdGhpcy5kaWFsb2dTdGF0ZS5sYXlvdXRDb25maWcgPSB7IC4uLnRoaXMuZGlhbG9nU3RhdGUubGF5b3V0Q29uZmlnLCAuLi5jb25maWcgfSBhcyBBWFBEeW5hbWljRm9ybUxheW91dENvbmZpZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG92ZXJyaWRlIGxvb2sobG9vazogQVhQRHluYW1pY0Zvcm1Mb29rKTogSURpYWxvZ0J1aWxkZXIge1xuICAgIHN1cGVyLmxvb2sobG9vayk7XG4gICAgdGhpcy5kaWFsb2dTdGF0ZS5sb29rID0gbG9vaztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIG92ZXJyaWRlIGRpcmVjdGlvbihkaXJlY3Rpb246IEFYUER5bmFtaWNGb3JtRGlyZWN0aW9uKTogSURpYWxvZ0J1aWxkZXIge1xuICAgIHN1cGVyLmRpcmVjdGlvbihkaXJlY3Rpb24pO1xuICAgIHRoaXMuZGlhbG9nU3RhdGUuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgb3ZlcnJpZGUgbW9kZShtb2RlOiBBWFBEeW5hbWljRm9ybU1vZGUpOiBJRGlhbG9nQnVpbGRlciB7XG4gICAgY29uc29sZS5sb2cobW9kZSk7XG4gICAgc3VwZXIubW9kZShtb2RlKTtcbiAgICB0aGlzLmRpYWxvZ1N0YXRlLm1vZGUgPSBtb2RlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgY2xvc2VCdXR0b24oY2xvc2VCdXR0b246IGJvb2xlYW4pOiBJRGlhbG9nQnVpbGRlciB7XG4gICAgdGhpcy5kaWFsb2dTdGF0ZS5jbG9zZUJ1dHRvbiA9IGNsb3NlQnV0dG9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdGl0bGUodGl0bGU6IHN0cmluZyk6IElEaWFsb2dCdWlsZGVyIHtcbiAgICB0aGlzLmRpYWxvZ1N0YXRlLnRpdGxlID0gdGl0bGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBtZXNzYWdlKG1lc3NhZ2U/OiBzdHJpbmcpOiBJRGlhbG9nQnVpbGRlciB7XG4gICAgdGhpcy5kaWFsb2dTdGF0ZS5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNpemUoc2l6ZTogQVhQb3B1cFNpemVUeXBlKTogSURpYWxvZ0J1aWxkZXIge1xuICAgIHRoaXMuZGlhbG9nU3RhdGUuc2l6ZSA9IHNpemU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjb250ZXh0KGNvbnRleHQ6IEFYUENvbnRleHREYXRhKTogSURpYWxvZ0J1aWxkZXIge1xuICAgIHRoaXMuZGlhbG9nU3RhdGUuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBhY3Rpb25zKGRlbGVnYXRlPzogKGFjdGlvbnM6IElBY3Rpb25CdWlsZGVyKSA9PiB2b2lkKTogSURpYWxvZ0J1aWxkZXIge1xuICAgIGNvbnN0IGFjdGlvbkJ1aWxkZXIgPSBuZXcgQWN0aW9uQnVpbGRlcih0aGlzKTtcbiAgICBpZiAoZGVsZWdhdGUpIHtcbiAgICAgIGRlbGVnYXRlKGFjdGlvbkJ1aWxkZXIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFzeW5jIHNob3coKTogUHJvbWlzZTxBWFBEaWFsb2dSZWY+IHtcbiAgICBjb25zdCBidWlsdCA9IHRoaXMuYnVpbGQoKTtcbiAgICBjb25zdCBoYXNTdGVwcyA9IHRoaXMuZGlhbG9nU3RhdGUuc3RlcHMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBjb25maWc6IEFYUER5bmFtaWNEaWFsb2dDb25maWcgPSB7XG4gICAgICB0aXRsZTogdGhpcy5kaWFsb2dTdGF0ZS50aXRsZSEsXG4gICAgICBtZXNzYWdlOiB0aGlzLmRpYWxvZ1N0YXRlLm1lc3NhZ2UsXG4gICAgICBjbG9zZUJ1dHRvbjogdGhpcy5kaWFsb2dTdGF0ZS5jbG9zZUJ1dHRvbixcbiAgICAgIGRlZmluaXRpb246IGhhc1N0ZXBzXG4gICAgICAgID8ge1xuICAgICAgICAgICAgc3RlcHM6IHRoaXMuZGlhbG9nU3RhdGUuc3RlcHMubWFwKChzKSA9PiAoe1xuICAgICAgICAgICAgICBpZDogcy5pZCxcbiAgICAgICAgICAgICAgdGl0bGU6IHMudGl0bGUsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICBpY29uOiBzLmljb24sXG4gICAgICAgICAgICAgIGdyb3Vwczogcy5ncm91cHMsXG4gICAgICAgICAgICAgIGZvcm1EaXJlY3Rpb246IHMuZm9ybURpcmVjdGlvbixcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgc3RlcHM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGlkOiAnZm9ybScsXG4gICAgICAgICAgICAgICAgZ3JvdXBzOiBidWlsdC5ncm91cHMsXG4gICAgICAgICAgICAgICAgZm9ybURpcmVjdGlvbjogdGhpcy5kaWFsb2dTdGF0ZS5kaXJlY3Rpb24sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICBjb250ZXh0OiB0aGlzLmRpYWxvZ1N0YXRlLmNvbnRleHQsXG4gICAgICBzaXplOiB0aGlzLmRpYWxvZ1N0YXRlLnNpemUsXG4gICAgICBhY3Rpb25zOiB0aGlzLmRpYWxvZ1N0YXRlLmFjdGlvbnMsXG4gICAgICBsYXlvdXRDb25maWc6IHRoaXMuZGlhbG9nU3RhdGUubGF5b3V0Q29uZmlnLFxuICAgICAgbGF5b3V0TG9vazogdGhpcy5kaWFsb2dTdGF0ZS5sb29rLFxuICAgICAgbW9kZTogdGhpcy5kaWFsb2dTdGF0ZS5tb2RlLFxuICAgICAgc3RlcHBlcjogaGFzU3RlcHNcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBndWFyZE5leHQ6IHRoaXMuZGlhbG9nU3RhdGUuZ3VhcmROZXh0LFxuICAgICAgICAgICAgc3RlcHBlckRpcmVjdGlvbjogdGhpcy5kaWFsb2dTdGF0ZS5zdGVwcGVyRGlyZWN0aW9uLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0RpYWxvZyhjb25maWcpO1xuICB9XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIEFjdGlvbiBCdWlsZGVyIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG5jbGFzcyBBY3Rpb25CdWlsZGVyIGltcGxlbWVudHMgSUFjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpYWxvZ0J1aWxkZXI6IERpYWxvZ0J1aWxkZXIpIHt9XG5cbiAgY2FuY2VsKHRleHQ/OiBzdHJpbmcpOiBJQWN0aW9uQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLmRpYWxvZ0J1aWxkZXJbJ2RpYWxvZ1N0YXRlJ10uYWN0aW9ucyEuZm9vdGVyIS5zdWZmaXgpIHtcbiAgICAgIHRoaXMuZGlhbG9nQnVpbGRlclsnZGlhbG9nU3RhdGUnXS5hY3Rpb25zIS5mb290ZXIhLnN1ZmZpeCA9IFtdO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ0J1aWxkZXJbJ2RpYWxvZ1N0YXRlJ10uYWN0aW9ucyEuZm9vdGVyIS5zdWZmaXghLnB1c2goe1xuICAgICAgdGl0bGU6IHRleHQgfHwgJ0BnZW5lcmFsOmFjdGlvbnMuY2FuY2VsLnRpdGxlJyxcbiAgICAgIGljb246ICdmYS10aW1lcycsXG4gICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgY29tbWFuZDogeyBuYW1lOiAnY2FuY2VsJyB9LFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc3VibWl0KHRleHQ/OiBzdHJpbmcpOiBJQWN0aW9uQnVpbGRlciB7XG4gICAgaWYgKCF0aGlzLmRpYWxvZ0J1aWxkZXJbJ2RpYWxvZ1N0YXRlJ10uYWN0aW9ucyEuZm9vdGVyIS5zdWZmaXgpIHtcbiAgICAgIHRoaXMuZGlhbG9nQnVpbGRlclsnZGlhbG9nU3RhdGUnXS5hY3Rpb25zIS5mb290ZXIhLnN1ZmZpeCA9IFtdO1xuICAgIH1cbiAgICB0aGlzLmRpYWxvZ0J1aWxkZXJbJ2RpYWxvZ1N0YXRlJ10uYWN0aW9ucyEuZm9vdGVyIS5zdWZmaXghLnB1c2goe1xuICAgICAgdGl0bGU6IHRleHQgfHwgJ0BnZW5lcmFsOmFjdGlvbnMuc3VibWl0LnRpdGxlJyxcbiAgICAgIGljb246ICdmYS1jaGVjaycsXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgICAgY29tbWFuZDogeyBuYW1lOiAnc3VibWl0Jywgb3B0aW9uczogeyB2YWxpZGF0ZTogdHJ1ZSB9IH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjdXN0b20oYWN0aW9uOiBBWFBBY3Rpb25NZW51SXRlbSk6IElBY3Rpb25CdWlsZGVyIHtcbiAgICBpZiAoIXRoaXMuZGlhbG9nQnVpbGRlclsnZGlhbG9nU3RhdGUnXS5hY3Rpb25zIS5mb290ZXIhLnN1ZmZpeCkge1xuICAgICAgdGhpcy5kaWFsb2dCdWlsZGVyWydkaWFsb2dTdGF0ZSddLmFjdGlvbnMhLmZvb3RlciEuc3VmZml4ID0gW107XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nQnVpbGRlclsnZGlhbG9nU3RhdGUnXS5hY3Rpb25zIS5mb290ZXIhLnN1ZmZpeCEucHVzaChhY3Rpb24pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG5cbi8vICNyZWdpb24gLS0tLSAgIFN0ZXAgQnVpbGRlciBJbXBsZW1lbnRhdGlvbiAgIC0tLS1cblxuY2xhc3MgU3RlcEJ1aWxkZXIgaW1wbGVtZW50cyBJU3RlcEJ1aWxkZXIge1xuICBwcml2YXRlIHN0ZXBTdGF0ZTogU3RlcEJ1aWxkZXJTdGF0ZSA9IHtcbiAgICBpZDogJycsXG4gICAgZ3JvdXBzOiBbXSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRpYWxvZ0J1aWxkZXI6IERpYWxvZ0J1aWxkZXIsXG4gICAgaWQ6IHN0cmluZyxcbiAgKSB7XG4gICAgdGhpcy5zdGVwU3RhdGUuaWQgPSBpZDtcbiAgfVxuXG4gIHRpdGxlKHRpdGxlOiBzdHJpbmcpOiBJU3RlcEJ1aWxkZXIge1xuICAgIHRoaXMuc3RlcFN0YXRlLnRpdGxlID0gdGl0bGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKTogSVN0ZXBCdWlsZGVyIHtcbiAgICB0aGlzLnN0ZXBTdGF0ZS5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgaWNvbihpY29uOiBzdHJpbmcpOiBJU3RlcEJ1aWxkZXIge1xuICAgIHRoaXMuc3RlcFN0YXRlLmljb24gPSBpY29uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZGlyZWN0aW9uKGRpcmVjdGlvbjogQVhQRHluYW1pY0Zvcm1EaXJlY3Rpb24pOiBJU3RlcEJ1aWxkZXIge1xuICAgIHRoaXMuc3RlcFN0YXRlLmZvcm1EaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBncm91cChuYW1lOiBzdHJpbmcsIGRlbGVnYXRlPzogKGdyb3VwOiBJR3JvdXBCdWlsZGVyKSA9PiB2b2lkKTogSVN0ZXBCdWlsZGVyIHtcbiAgICBjb25zdCBncm91cEJ1aWxkZXIgPSBuZXcgR3JvdXBCdWlsZGVyKHRoaXMuZGlhbG9nQnVpbGRlciBhcyBhbnksIG5hbWUpO1xuICAgIGlmIChkZWxlZ2F0ZSkge1xuICAgICAgZGVsZWdhdGUoZ3JvdXBCdWlsZGVyKTtcbiAgICB9XG4gICAgdGhpcy5zdGVwU3RhdGUuZ3JvdXBzLnB1c2goZ3JvdXBCdWlsZGVyLmJ1aWxkKCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYnVpbGQoKTogU3RlcEJ1aWxkZXJTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcFN0YXRlO1xuICB9XG59XG5cbi8vICNlbmRyZWdpb25cblxuLy8jZW5kcmVnaW9uXG4iXX0=","export {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWJ1aWxkZXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS1idWlsZGVyLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUE0UkEsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYT3JpZW50YXRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3B1cFNpemVUeXBlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYUEFjdGlvbk1lbnVJdGVtLCBBWFBDb250ZXh0RGF0YSwgQVhQVmFsaWRhdGlvblJ1bGVzIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUFdpZGdldE5vZGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUERpYWxvZ1JlZiB9IGZyb20gJy4uL2R5bmFtaWMtZGlhbG9nL2R5bmFtaWMtZGlhbG9nLnR5cGVzJztcbmltcG9ydCB7XG4gIEFYUER5bmFtaWNGb3JtRGVmaW5pdGlvbixcbiAgQVhQRHluYW1pY0Zvcm1EaXJlY3Rpb24sXG4gIEFYUER5bmFtaWNGb3JtRmllbGREZWZpbml0aW9uLFxuICBBWFBEeW5hbWljRm9ybUdyb3VwRGVmaW5pdGlvbixcbiAgQVhQRHluYW1pY0Zvcm1MYXlvdXRDb25maWcsXG4gIEFYUER5bmFtaWNGb3JtTG9vayxcbiAgQVhQRHluYW1pY0Zvcm1Nb2RlLFxufSBmcm9tICcuL2R5bmFtaWMtZm9ybS50eXBlcyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgV2lkZ2V0IE9wdGlvbnMgVHlwZXMgICAtLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgVGV4dEJveE9wdGlvbnMge1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1hc2s/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuICB2YWxpZGF0aW9ucz86IEFYUFZhbGlkYXRpb25SdWxlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXJnZVRleHRCb3hPcHRpb25zIHtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICByb3dzPzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgdmFsaWRhdGlvbnM/OiBBWFBWYWxpZGF0aW9uUnVsZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmljaFRleHRPcHRpb25zIHtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHRvb2xiYXI/OiBzdHJpbmdbXTtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgdmFsaWRhdGlvbnM/OiBBWFBWYWxpZGF0aW9uUnVsZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0Qm94T3B0aW9uczxUSXRlbSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgdmFsdWVGaWVsZDoga2V5b2YgVEl0ZW0gJiBzdHJpbmc7XG4gIHRleHRGaWVsZDoga2V5b2YgVEl0ZW0gJiBzdHJpbmc7XG4gIGRhdGFTb3VyY2U6IFRJdGVtW107XG4gIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuICBhbGxvd1NlYXJjaD86IGJvb2xlYW47XG4gIHZhbGlkYXRpb25zPzogQVhQVmFsaWRhdGlvblJ1bGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvb2t1cEJveE9wdGlvbnMge1xuICBlbnRpdHk6IHN0cmluZztcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xuICBleHBvc2U/OiBBcnJheTx7IHNvdXJjZTogc3RyaW5nOyB0YXJnZXQ6IHN0cmluZyB9PjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHRleHRGaWVsZD86IHN0cmluZztcbiAgdmFsdWVGaWVsZD86IHN0cmluZztcbiAgbG9vaz86IHN0cmluZztcbiAgY29sdW1ucz86IHN0cmluZ1tdO1xuICBhbGxvd0NsZWFyPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIHZhbGlkYXRpb25zPzogQVhQVmFsaWRhdGlvblJ1bGVzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51bWJlckJveE9wdGlvbnMge1xuICBtaW5WYWx1ZT86IG51bWJlcjtcbiAgbWF4VmFsdWU/OiBudW1iZXI7XG4gIHN0ZXA/OiBudW1iZXI7XG4gIGZvcm1hdD86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuICB2YWxpZGF0aW9ucz86IEFYUFZhbGlkYXRpb25SdWxlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRlVGltZUJveE9wdGlvbnMge1xuICBmb3JtYXQ/OiBzdHJpbmc7XG4gIG1pbj86IERhdGU7XG4gIG1heD86IERhdGU7XG4gIHNob3dUaW1lPzogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuICB2YWxpZGF0aW9ucz86IEFYUFZhbGlkYXRpb25SdWxlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb2dnbGVTd2l0Y2hPcHRpb25zIHtcbiAgb25UZXh0Pzogc3RyaW5nO1xuICBvZmZUZXh0Pzogc3RyaW5nO1xuICB2YWxpZGF0aW9ucz86IEFYUFZhbGlkYXRpb25SdWxlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzd29yZEJveE9wdGlvbnMge1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIHNob3dUb2dnbGU/OiBib29sZWFuO1xuICB2YWxpZGF0aW9ucz86IEFYUFZhbGlkYXRpb25SdWxlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rpb25MaXN0T3B0aW9uczxUSXRlbSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgdmFsdWVGaWVsZDoga2V5b2YgVEl0ZW0gJiBzdHJpbmc7XG4gIHRleHRGaWVsZDoga2V5b2YgVEl0ZW0gJiBzdHJpbmc7XG4gIGRhdGFTb3VyY2U6IFRJdGVtW107XG4gIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuICB2YWxpZGF0aW9ucz86IEFYUFZhbGlkYXRpb25SdWxlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xvckJveE9wdGlvbnMge1xuICBkZWZhdWx0Q29sb3I/OiBzdHJpbmc7XG4gIHNob3dBbHBoYT86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuICB2YWxpZGF0aW9ucz86IEFYUFZhbGlkYXRpb25SdWxlcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRPcHRpb25zIHtcbiAgaGlkZGVuPzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgcmVhZG9ubHk/OiBzdHJpbmcgfCBib29sZWFuO1xuICBkaXNhYmxlZD86IHN0cmluZyB8IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IGFueTtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgQnVpbGRlciBJbnRlcmZhY2VzICAgLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZEJ1aWxkZXIge1xuICAvLyBGaWVsZCBjb25maWd1cmF0aW9uXG4gIHRpdGxlKHRpdGxlOiBzdHJpbmcpOiBJRmllbGRCdWlsZGVyO1xuICBkZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKTogSUZpZWxkQnVpbGRlcjtcbiAgbW9kZShtb2RlOiBBWFBEeW5hbWljRm9ybU1vZGUpOiBJRmllbGRCdWlsZGVyO1xuICAvL2RlZmF1bHRWYWx1ZSh2YWx1ZTogYW55KTogSUZpZWxkQnVpbGRlcjtcbiAgb3B0aW9ucyh2YWx1ZXM6IElGaWVsZE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyO1xuICBsYXlvdXQobGF5b3V0OiBBWFBEeW5hbWljRm9ybUZpZWxkRGVmaW5pdGlvblsnbGF5b3V0J10pOiBJRmllbGRCdWlsZGVyO1xuXG4gIC8vIFRleHQgaW5wdXRzXG4gIHRleHRCb3gob3B0aW9ucz86IFRleHRCb3hPcHRpb25zKTogSUZpZWxkQnVpbGRlcjtcbiAgbGFyZ2VUZXh0Qm94KG9wdGlvbnM/OiBMYXJnZVRleHRCb3hPcHRpb25zKTogSUZpZWxkQnVpbGRlcjtcbiAgcmljaFRleHQob3B0aW9ucz86IFJpY2hUZXh0T3B0aW9ucyk6IElGaWVsZEJ1aWxkZXI7XG4gIHBhc3N3b3JkQm94KG9wdGlvbnM/OiBQYXNzd29yZEJveE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyO1xuXG4gIC8vIFNlbGVjdGlvbiBpbnB1dHNcbiAgc2VsZWN0Qm94KG9wdGlvbnM6IFNlbGVjdEJveE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyO1xuICBsb29rdXBCb3gob3B0aW9uczogTG9va3VwQm94T3B0aW9ucyk6IElGaWVsZEJ1aWxkZXI7XG4gIHNlbGVjdGlvbkxpc3Qob3B0aW9uczogU2VsZWN0aW9uTGlzdE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyO1xuXG4gIC8vIE51bWVyaWMgaW5wdXRzXG4gIG51bWJlckJveChvcHRpb25zPzogTnVtYmVyQm94T3B0aW9ucyk6IElGaWVsZEJ1aWxkZXI7XG5cbiAgLy8gRGF0ZS9UaW1lXG4gIGRhdGVUaW1lQm94KG9wdGlvbnM/OiBEYXRlVGltZUJveE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyO1xuXG4gIC8vIFNwZWNpYWwgaW5wdXRzXG4gIHRvZ2dsZVN3aXRjaChvcHRpb25zPzogVG9nZ2xlU3dpdGNoT3B0aW9ucyk6IElGaWVsZEJ1aWxkZXI7XG4gIGNvbG9yQm94KG9wdGlvbnM/OiBDb2xvckJveE9wdGlvbnMpOiBJRmllbGRCdWlsZGVyO1xuXG4gIC8vIEN1c3RvbSB3aWRnZXRcbiAgd2lkZ2V0KHR5cGU6IHN0cmluZywgb3B0aW9ucz86IHVua25vd24pOiBJRmllbGRCdWlsZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcm91cEJ1aWxkZXIge1xuICB0aXRsZSh0aXRsZTogc3RyaW5nKTogSUdyb3VwQnVpbGRlcjtcbiAgZGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IElHcm91cEJ1aWxkZXI7XG4gIG1vZGUobW9kZTogQVhQRHluYW1pY0Zvcm1Nb2RlKTogSUdyb3VwQnVpbGRlcjtcbiAgZmllbGQocGF0aDogc3RyaW5nLCBkZWxlZ2F0ZT86IChmaWVsZDogSUZpZWxkQnVpbGRlcikgPT4gdm9pZCk6IElHcm91cEJ1aWxkZXI7XG4gIGdyb3VwKG5hbWU6IHN0cmluZywgZGVsZWdhdGU/OiAoZ3JvdXA6IElHcm91cEJ1aWxkZXIpID0+IHZvaWQpOiBJR3JvdXBCdWlsZGVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdGVwQnVpbGRlciB7XG4gIHRpdGxlKHRpdGxlOiBzdHJpbmcpOiBJU3RlcEJ1aWxkZXI7XG4gIGRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiBJU3RlcEJ1aWxkZXI7XG4gIGljb24oaWNvbjogc3RyaW5nKTogSVN0ZXBCdWlsZGVyO1xuICBkaXJlY3Rpb24oZGlyZWN0aW9uOiBBWFBEeW5hbWljRm9ybURpcmVjdGlvbik6IElTdGVwQnVpbGRlcjtcbiAgZ3JvdXAobmFtZTogc3RyaW5nLCBkZWxlZ2F0ZT86IChncm91cDogSUdyb3VwQnVpbGRlcikgPT4gdm9pZCk6IElTdGVwQnVpbGRlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRm9ybUJ1aWxkZXIge1xuICBncm91cChuYW1lOiBzdHJpbmcsIGRlbGVnYXRlPzogKGdyb3VwOiBJR3JvdXBCdWlsZGVyKSA9PiB2b2lkKTogSUZvcm1CdWlsZGVyO1xuICBsYXlvdXQoY29uZmlnOiBQYXJ0aWFsPEFYUER5bmFtaWNGb3JtTGF5b3V0Q29uZmlnPik6IElGb3JtQnVpbGRlcjtcbiAgbG9vayhsb29rOiBBWFBEeW5hbWljRm9ybUxvb2spOiBJRm9ybUJ1aWxkZXI7XG4gIGRpcmVjdGlvbihkaXJlY3Rpb246IEFYUER5bmFtaWNGb3JtRGlyZWN0aW9uKTogSUZvcm1CdWlsZGVyO1xuICBtb2RlKG1vZGU6IEFYUER5bmFtaWNGb3JtTW9kZSk6IElGb3JtQnVpbGRlcjtcbiAgYnVpbGQoKTogQVhQRHluYW1pY0Zvcm1EZWZpbml0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBY3Rpb25CdWlsZGVyIHtcbiAgY2FuY2VsKHRleHQ/OiBzdHJpbmcpOiBJQWN0aW9uQnVpbGRlcjtcbiAgc3VibWl0KHRleHQ/OiBzdHJpbmcpOiBJQWN0aW9uQnVpbGRlcjtcbiAgY3VzdG9tKGFjdGlvbjogQVhQQWN0aW9uTWVudUl0ZW0pOiBJQWN0aW9uQnVpbGRlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGlhbG9nQnVpbGRlciBleHRlbmRzIElGb3JtQnVpbGRlciB7XG4gIC8vIE92ZXJyaWRlIHRvIGtlZXAgY2hhaW5pbmcgd2l0aGluIGRpYWxvZyBjb250ZXh0XG4gIGdyb3VwKG5hbWU6IHN0cmluZywgZGVsZWdhdGU/OiAoZ3JvdXA6IElHcm91cEJ1aWxkZXIpID0+IHZvaWQpOiBJRGlhbG9nQnVpbGRlcjtcbiAgbGF5b3V0KGNvbmZpZzogUGFydGlhbDxBWFBEeW5hbWljRm9ybUxheW91dENvbmZpZz4pOiBJRGlhbG9nQnVpbGRlcjtcbiAgbG9vayhsb29rOiBBWFBEeW5hbWljRm9ybUxvb2spOiBJRGlhbG9nQnVpbGRlcjtcbiAgZGlyZWN0aW9uKGRpcmVjdGlvbjogQVhQRHluYW1pY0Zvcm1EaXJlY3Rpb24pOiBJRGlhbG9nQnVpbGRlcjtcbiAgY2xvc2VCdXR0b24oY2xvc2VCdXR0b246IGJvb2xlYW4pOiBJRGlhbG9nQnVpbGRlcjtcbiAgLy8gU3RlcHMgQVBJXG4gIHN0ZXAoaWQ6IHN0cmluZywgZGVsZWdhdGU/OiAoc3RlcDogSVN0ZXBCdWlsZGVyKSA9PiB2b2lkKTogSURpYWxvZ0J1aWxkZXI7XG4gIHN0ZXBwZXJEaXJlY3Rpb24oZGlyZWN0aW9uOiBBWE9yaWVudGF0aW9uKTogSURpYWxvZ0J1aWxkZXI7XG4gIGd1YXJkTmV4dChndWFyZDogKGU6IHsgaW5kZXg6IG51bWJlcjsgaWQ6IHN0cmluZzsgZnVsbENvbnRleHQ6IHVua25vd24gfSkgPT4gUHJvbWlzZTxib29sZWFuPik6IElEaWFsb2dCdWlsZGVyO1xuXG4gIC8vIERpYWxvZy1zcGVjaWZpYyBtZXRob2RzXG4gIHRpdGxlKHRpdGxlOiBzdHJpbmcpOiBJRGlhbG9nQnVpbGRlcjtcbiAgbWVzc2FnZShtZXNzYWdlPzogc3RyaW5nKTogSURpYWxvZ0J1aWxkZXI7XG4gIHNpemUoc2l6ZTogQVhQb3B1cFNpemVUeXBlKTogSURpYWxvZ0J1aWxkZXI7XG4gIGNvbnRleHQoY29udGV4dDogQVhQQ29udGV4dERhdGEpOiBJRGlhbG9nQnVpbGRlcjtcbiAgYWN0aW9ucyhkZWxlZ2F0ZT86IChhY3Rpb25zOiBJQWN0aW9uQnVpbGRlcikgPT4gdm9pZCk6IElEaWFsb2dCdWlsZGVyO1xuICBzaG93KCk6IFByb21pc2U8QVhQRGlhbG9nUmVmPjtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgQnVpbGRlciBTdGF0ZSBJbnRlcmZhY2VzICAgLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1CdWlsZGVyU3RhdGUge1xuICBncm91cHM6IEFYUER5bmFtaWNGb3JtR3JvdXBEZWZpbml0aW9uW107XG4gIGxheW91dENvbmZpZzogQVhQRHluYW1pY0Zvcm1MYXlvdXRDb25maWc7XG4gIGxvb2s6IEFYUER5bmFtaWNGb3JtTG9vaztcbiAgZGlyZWN0aW9uOiBBWFBEeW5hbWljRm9ybURpcmVjdGlvbjtcbiAgbW9kZT86IEFYUER5bmFtaWNGb3JtTW9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dCdWlsZGVyU3RhdGUgZXh0ZW5kcyBGb3JtQnVpbGRlclN0YXRlIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIHNpemU/OiBBWFBvcHVwU2l6ZVR5cGU7XG4gIGNvbnRleHQ/OiBBWFBDb250ZXh0RGF0YTtcbiAgc3RlcHM6IFN0ZXBCdWlsZGVyU3RhdGVbXTtcbiAgc3RlcHBlckRpcmVjdGlvbj86IEFYT3JpZW50YXRpb247XG4gIGNsb3NlQnV0dG9uPzogYm9vbGVhbjtcbiAgZ3VhcmROZXh0PzogKGU6IHsgaW5kZXg6IG51bWJlcjsgaWQ6IHN0cmluZzsgZnVsbENvbnRleHQ6IHVua25vd24gfSkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgYWN0aW9ucz86IHtcbiAgICBmb290ZXI/OiB7XG4gICAgICBwcmVmaXg/OiBBWFBBY3Rpb25NZW51SXRlbVtdO1xuICAgICAgc3VmZml4PzogQVhQQWN0aW9uTWVudUl0ZW1bXTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkQnVpbGRlclN0YXRlIHtcbiAgcGF0aDogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IGFueTtcbiAgaGlkZGVuPzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgcmVhZG9ubHk/OiBzdHJpbmcgfCBib29sZWFuO1xuICBkaXNhYmxlZD86IHN0cmluZyB8IGJvb2xlYW47XG4gIHdpZGdldD86IEFYUFdpZGdldE5vZGU7XG4gIGxheW91dD86IEFYUER5bmFtaWNGb3JtRmllbGREZWZpbml0aW9uWydsYXlvdXQnXTtcbiAgbW9kZT86IEFYUER5bmFtaWNGb3JtTW9kZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cEJ1aWxkZXJTdGF0ZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwYXJhbWV0ZXJzOiBBWFBEeW5hbWljRm9ybUZpZWxkRGVmaW5pdGlvbltdO1xuICBtb2RlPzogQVhQRHluYW1pY0Zvcm1Nb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBCdWlsZGVyU3RhdGUge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGZvcm1EaXJlY3Rpb24/OiBBWFBEeW5hbWljRm9ybURpcmVjdGlvbjtcbiAgZ3JvdXBzOiBBWFBEeW5hbWljRm9ybUdyb3VwRGVmaW5pdGlvbltdO1xufVxuXG4vLyNlbmRyZWdpb25cbiJdfQ==","//#region ---- Imports ----\nexport {};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXN0ZXBwZXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvZHluYW1pYy1mb3JtLXN0ZXBwZXIvZHluYW1pYy1mb3JtLXN0ZXBwZXIudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCOztBQW1EL0IsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQVhQRHluYW1pY0Zvcm1EaXJlY3Rpb24sIEFYUER5bmFtaWNGb3JtR3JvdXBEZWZpbml0aW9uIH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS50eXBlcyc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIFN0ZXAgRGVmaW5pdGlvbnMgICAtLS0tXG5cbi8qKlxuICogRGVzY3JpYmVzIGEgc2luZ2xlIHN0ZXAgb2YgdGhlIGR5bmFtaWMgZm9ybSBzdGVwcGVyLlxuICogRWFjaCBzdGVwIGNvbnRhaW5zIG9uZSBvciBtb3JlIGdyb3VwcyByZW5kZXJlZCBieSBBWFBEeW5hbWljRm9ybUNvbXBvbmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBEeW5hbWljRm9ybVN0ZXBwZXJTdGVwRGVmaW5pdGlvbiB7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHN0ZXAgKi9cbiAgaWQ6IHN0cmluZztcbiAgLyoqIERpc3BsYXkgdGl0bGUgZm9yIHRoZSBzdGVwICovXG4gIHRpdGxlPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgZGVzY3JpcHRpdmUgdGV4dCBmb3IgdGhlIHN0ZXAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBpY29uIG5hbWUgZm9yIHRoZSBzdGVwIGhlYWRlciAqL1xuICBpY29uPzogc3RyaW5nO1xuICAvKiogRmllbGQgZ3JvdXBzIHRvIHJlbmRlciBpbiB0aGlzIHN0ZXAgKi9cbiAgZ3JvdXBzOiBBWFBEeW5hbWljRm9ybUdyb3VwRGVmaW5pdGlvbltdO1xuICAvKiogT3B0aW9uYWwgbGF5b3V0IGRpcmVjdGlvbiBvdmVycmlkZSBmb3IgdGhpcyBzdGVwJ3MgZm9ybSAqL1xuICBmb3JtRGlyZWN0aW9uPzogQVhQRHluYW1pY0Zvcm1EaXJlY3Rpb247XG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIG1heSBza2lwIHRoaXMgc3RlcCAoZGVmYXVsdHMgdG8gZmFsc2UpICovXG4gIGNhblNraXA/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgdXNlciBtYXkgbmF2aWdhdGUgYmFjayBmcm9tIHRoaXMgc3RlcCAoZGVmYXVsdHMgdG8gdHJ1ZSkgKi9cbiAgY2FuR29CYWNrPzogYm9vbGVhbjtcbiAgLyoqIE9wdGlvbmFsIGRhdGEgcGF0aCBpbnNpZGUgdGhlIHNoYXJlZCBjb250ZXh0IGZvciB0aGlzIHN0ZXAncyBkYXRhICovXG4gIGRhdGFQYXRoPzogc3RyaW5nO1xufVxuXG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIC0tLS0gICBTdGVwcGVyIERlZmluaXRpb24gICAtLS0tXG5cbi8qKlxuICogUm9vdCBkZWZpbml0aW9uIGZvciB0aGUgZHluYW1pYyBmb3JtIHN0ZXBwZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRHluYW1pY0Zvcm1TdGVwcGVyRGVmaW5pdGlvbiB7XG4gIC8qKiBPcmRlcmVkIGNvbGxlY3Rpb24gb2Ygc3RlcHMgKi9cbiAgc3RlcHM6IEFYUER5bmFtaWNGb3JtU3RlcHBlclN0ZXBEZWZpbml0aW9uW107XG4gIC8qKiBFbmZvcmNlIHNlcXVlbnRpYWwgbmF2aWdhdGlvbiAobm8ganVtcGluZyB0byBmdXR1cmUgc3RlcHMpICovXG4gIGxpbmVhcj86IGJvb2xlYW47XG4gIC8qKiBTaG93IHByb2dyZXNzIGluZGljYXRvciBhYm92ZSB0aGUgY29udGVudCAqL1xuICBzaG93UHJvZ3Jlc3M/OiBib29sZWFuO1xuICAvKiogU2hvdyBzdGVwIG51bWJlcnMgaW4gdGhlIGhlYWRlciAqL1xuICBzaG93U3RlcE51bWJlcnM/OiBib29sZWFuO1xufVxuXG4vLyNlbmRyZWdpb25cbiJdfQ==","import { InjectionToken } from '@angular/core';\n//#endregion\n//#region ---- Injection Tokens ----\n/**\n * Injection token to provide available extra property types.\n */\nexport const AXP_EXTRA_PROPERTY_TYPES = new InjectionToken('AXP_EXTRA_PROPERTY_TYPES');\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtcHJvcGVydGllcy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9leHRyYS1wcm9wZXJ0aWVzL2V4dHJhLXByb3BlcnRpZXMudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQThDL0MsWUFBWTtBQUVaLHdDQUF3QztBQUV4Qzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUN0RCwwQkFBMEIsQ0FDN0IsQ0FBQztBQUVGLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBPcHRpb25zRGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIHNjaGVtYS1vbmx5IGRlZmluaXRpb24gZm9yIGFuIGV4dHJhIHByb3BlcnR5IChubyB2YWx1ZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRXh0cmFQcm9wZXJ0eVNjaGVtYUl0ZW0ge1xuICAgIC8qKiBVbmlxdWUga2V5IGZvciB0aGUgcHJvcGVydHkgKHVzZWQgYXMgaWRlbnRpZmllcikgKi9cbiAgICBrZXk6IHN0cmluZztcblxuICAgIC8qKiBIdW1hbi1yZWFkYWJsZSB0aXRsZS9sYWJlbCAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKiogV2lkZ2V0IG5hbWUvaWQgdG8gcmVuZGVyIChlLmcuLCAndGV4dC1lZGl0b3InLCAnY2hlY2tib3gtZWRpdG9yJykgKi9cbiAgICB0eXBlOiBzdHJpbmc7XG5cbiAgICAvKiogT3B0aW9uYWwgd2lkZ2V0LXNwZWNpZmljIG9wdGlvbnMgKi9cbiAgICBvcHRpb25zPzogQVhQT3B0aW9uc0RhdGE7XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgc2luZ2xlIGV4dHJhIHByb3BlcnR5IHJvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBFeHRyYVByb3BlcnR5SXRlbSBleHRlbmRzIEFYUEV4dHJhUHJvcGVydHlTY2hlbWFJdGVtIHtcbiAgICAvKiogQ3VycmVudCB2YWx1ZSBib3VuZCB0byB0aGUgcmVuZGVyZWQgd2lkZ2V0ICovXG4gICAgdmFsdWU6IHVua25vd247XG59XG5cblxuXG4vKipcbiAqIERlc2NyaWJlcyBhbiBhdmFpbGFibGUgZXh0cmEgcHJvcGVydHkgdHlwZSB0aGF0IHVzZXIgY2FuIHNlbGVjdCB3aGVuIGFkZGluZyByb3dzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEV4dHJhUHJvcGVydHlUeXBlIHtcbiAgICAvKiogVW5pcXVlIGlkIGZvciB0aGUgdHlwZSAoaXQgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSB3aWRnZXQgbmFtZSkgKi9cbiAgICBpZDogc3RyaW5nO1xuXG4gICAgLyoqIFVJIHRpdGxlIGZvciBzZWxlY3Rpb24gZHJvcGRvd24gKi9cbiAgICB0aXRsZTogc3RyaW5nO1xuXG5cbiAgICAvKiogRGVmYXVsdCB3aWRnZXQgb3B0aW9ucyBhcHBsaWVkIG9uIGNyZWF0ZSAqL1xuICAgIGRlZmF1bHRPcHRpb25zPzogQVhQT3B0aW9uc0RhdGE7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIEluamVjdGlvbiBUb2tlbnMgICAtLS0tXG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIHRvIHByb3ZpZGUgYXZhaWxhYmxlIGV4dHJhIHByb3BlcnR5IHR5cGVzLlxuICovXG5leHBvcnQgY29uc3QgQVhQX0VYVFJBX1BST1BFUlRZX1RZUEVTID0gbmV3IEluamVjdGlvblRva2VuPEFYUEV4dHJhUHJvcGVydHlUeXBlW10+KFxuICAgICdBWFBfRVhUUkFfUFJPUEVSVFlfVFlQRVMnLFxuKTtcblxuLy8jZW5kcmVnaW9uXG5cblxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { camelCase, cloneDeep, isEqual } from 'lodash-es';\nimport { AXP_EXTRA_PROPERTY_TYPES } from './extra-properties.types';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/form\";\nimport * as i3 from \"@acorex/components/label\";\nimport * as i4 from \"@acorex/components/text-box\";\nimport * as i5 from \"@acorex/components/select-box\";\nimport * as i6 from \"@acorex/components/button\";\nimport * as i7 from \"@acorex/components/decorators\";\nimport * as i8 from \"@acorex/platform/layout/builder\";\nimport * as i9 from \"@angular/cdk/drag-drop\";\nimport * as i10 from \"@angular/common\";\nimport * as i11 from \"@acorex/core/translation\";\nexport class AXPExtraPropertiesComponent {\n constructor() {\n //#region ---- Inputs ----\n this.items = input([], ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n this.mode = input('edit', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n //#endregion\n //#region ---- Outputs ----\n this.itemsChange = output();\n //#endregion\n //#region ---- Services & Dependencies ----\n this.providedTypes = inject(AXP_EXTRA_PROPERTY_TYPES, { optional: true }) ?? [];\n this.translationService = inject(AXTranslationService);\n //#endregion\n //#region ---- Class Properties ----\n this.newKey = signal('', ...(ngDevMode ? [{ debugName: \"newKey\" }] : []));\n this.newTitle = signal('', ...(ngDevMode ? [{ debugName: \"newTitle\" }] : []));\n this.newTypeId = signal('', ...(ngDevMode ? [{ debugName: \"newTypeId\" }] : []));\n this.newValue = signal(undefined, ...(ngDevMode ? [{ debugName: \"newValue\" }] : []));\n /** Local, ephemeral context for widget rendering */\n this.internalContext = signal({}, ...(ngDevMode ? [{ debugName: \"internalContext\" }] : []));\n this.lastTypeByKey = {};\n this.draftVersion = signal(0, ...(ngDevMode ? [{ debugName: \"draftVersion\" }] : []));\n this.draftKey = computed(() => `__draft__v${this.draftVersion()}`, ...(ngDevMode ? [{ debugName: \"draftKey\" }] : []));\n this.typeOptions = computed(() => this.providedTypes, ...(ngDevMode ? [{ debugName: \"typeOptions\" }] : []));\n this.presetTypes = computed(() => this.providedTypes.slice(0, 5), ...(ngDevMode ? [{ debugName: \"presetTypes\" }] : []));\n this.canAdd = computed(() => {\n const key = this.newKey()?.trim();\n const title = this.newTitle()?.trim();\n const typeId = this.newTypeId();\n const val = this.newValue();\n const hasValue = val !== undefined && val !== null && (typeof val !== 'string' || val.trim() !== '');\n if (!key || !title || !typeId || !hasValue)\n return false;\n return !this.items().some((i) => i.key === key);\n }, ...(ngDevMode ? [{ debugName: \"canAdd\" }] : []));\n //#endregion\n //#region ---- Effects ----\n /** Sync incoming items' values into internal context for rendering */\n this.syncContextFromItems = effect(() => {\n const items = this.items();\n const current = this.internalContext();\n const currentExtra = current['extra'] ?? {};\n const extra = { ...currentExtra };\n for (const it of items) {\n if (it.value !== undefined && it.value !== null) {\n extra[it.key] = it.value;\n }\n else if (Object.prototype.hasOwnProperty.call(extra, it.key)) {\n delete extra[it.key];\n }\n }\n const nextContext = { ...current, extra };\n if (!isEqual(nextContext, current)) {\n this.internalContext.set(nextContext);\n }\n }, ...(ngDevMode ? [{ debugName: \"syncContextFromItems\" }] : []));\n /**\n * Clear item values when their widget type changes to avoid incompatible stale values\n */\n this.clearValueOnTypeChange = effect(() => {\n const items = this.items();\n const changedKeys = new Set();\n for (const it of items) {\n const prevType = this.lastTypeByKey[it.key];\n if (prevType && prevType !== it.type) {\n changedKeys.add(it.key);\n }\n this.lastTypeByKey[it.key] = it.type;\n }\n if (changedKeys.size > 0) {\n const updated = items.map((it) => (changedKeys.has(it.key) ? { ...it, value: undefined } : it));\n // Reset cached default values for affected nodes\n changedKeys.forEach((k) => {\n const node = this.nodeCache[k];\n if (node) {\n node.defaultValue = undefined;\n }\n });\n this.itemsChange.emit(updated);\n }\n }, ...(ngDevMode ? [{ debugName: \"clearValueOnTypeChange\" }] : []));\n this.nodeCache = {};\n }\n //#endregion\n //#region ---- Event Handlers ----\n onContextChanged(event) {\n // Ignore initial bootstrapping to prevent cycles\n if (event.state === 'initiated')\n return;\n const data = (event.data ?? {});\n const extra = data['extra'] ?? {};\n // sync draft value\n const dk = this.draftKey();\n if (Object.prototype.hasOwnProperty.call(extra, dk)) {\n this.newValue.set(extra[dk]);\n }\n const nextItems = this.items().map((it) => ({ ...it, value: extra[it.key] }));\n if (!isEqual(nextItems, this.items())) {\n this.itemsChange.emit(nextItems);\n }\n }\n //#endregion\n //#region ---- Utility Methods ----\n handleAddItem() {\n if (!this.canAdd())\n return;\n const type = this.typeOptions().find((t) => t.id === this.newTypeId());\n const next = {\n key: this.newKey().trim(),\n title: this.newTitle().trim(),\n type: this.newTypeId(),\n value: this.newValue(),\n options: cloneDeep(type?.defaultOptions ?? {}),\n };\n const updated = [...this.items(), next];\n this.itemsChange.emit(updated);\n // reset inputs\n this.newKey.set('');\n this.newTitle.set('');\n this.newTypeId.set('');\n this.newValue.set(undefined);\n // clear draft from context\n const ctx = { ...this.internalContext() };\n const draftExtra = { ...(ctx['extra'] ?? {}) };\n const dk = this.draftKey();\n if (Object.prototype.hasOwnProperty.call(draftExtra, dk)) {\n delete draftExtra[dk];\n this.internalContext.set({ ...ctx, extra: draftExtra });\n }\n }\n handleRemoveItem(key) {\n const updated = this.items().filter((i) => i.key !== key);\n this.itemsChange.emit(updated);\n // prune context\n const ctx = { ...this.internalContext() };\n if (ctx['extra']) {\n const { [key]: _, ...rest } = ctx['extra'];\n this.internalContext.set({ ...ctx, ['extra']: rest });\n }\n }\n handleDrop(event) {\n const arr = [...this.items()];\n moveItemInArray(arr, event.previousIndex, event.currentIndex);\n this.itemsChange.emit(arr);\n }\n selectPreset(id) {\n this.newTypeId.set(id);\n }\n getNode(item) {\n const key = item.key;\n let node = this.nodeCache[key];\n if (!node) {\n node = {\n type: item.type,\n path: `extra.${item.key}`,\n options: item.options ?? {},\n defaultValue: item.value,\n };\n this.nodeCache[key] = node;\n }\n else {\n // Keep reference stable; update nested fields if essential changes happen\n node.type = item.type;\n node.options = item.options ?? node.options;\n // Do not overwrite defaultValue during editing to avoid resets\n }\n return node;\n }\n draftNode() {\n const typeId = this.newTypeId();\n const type = this.typeOptions().find((t) => t.id === typeId);\n let node = this.draftNodeCache;\n const resolvedType = typeId;\n if (!node || node.type !== resolvedType) {\n node = {\n type: resolvedType,\n path: `extra.${this.draftKey()}`,\n options: cloneDeep(type?.defaultOptions ?? {}),\n defaultValue: this.newValue(),\n };\n this.draftNodeCache = node;\n }\n else {\n node.options = cloneDeep(type?.defaultOptions ?? {});\n }\n return node;\n }\n //#region ---- Utility Helpers ----\n newTypeChanged(val) {\n this.newTypeId.set(val);\n // force draft widget re-render on type change\n this.draftNodeCache = undefined;\n // clear draft value from both signal and context to avoid type mismatch\n const prevDraftKey = this.draftKey();\n this.newValue.set(undefined);\n const ctx = { ...this.internalContext() };\n const draftExtra = { ...(ctx['extra'] ?? {}) };\n if (Object.prototype.hasOwnProperty.call(draftExtra, prevDraftKey)) {\n delete draftExtra[prevDraftKey];\n this.internalContext.set({ ...ctx, extra: draftExtra });\n }\n // bump draft version so new draft path is isolated from old widget emissions\n this.draftVersion.set(this.draftVersion() + 1);\n const t = this.typeOptions().find((x) => x.id === val);\n if (t) {\n const autoTitle = t.title ?? val;\n const autoKey = this.sanitizeKey(autoTitle);\n // Only auto-fill when empty\n if (!this.newTitle()?.trim())\n this.newTitle.set(autoTitle);\n // always derive key from title\n this.newKey.set(autoKey);\n }\n }\n ngOnInit() {\n // auto-select first item of type list\n const types = this.typeOptions();\n if (!this.newTypeId() && types && types.length > 0) {\n this.newTypeChanged(types[0].id);\n }\n }\n handleTitleChange(val) {\n this.newTitle.set(val);\n this.newKey.set(this.sanitizeKey(val));\n }\n sanitizeKey(input) {\n if (!input)\n return '';\n // Convert to camelCase, remove invalid chars, ensure starts with letter/_\n let k = camelCase(String(input));\n k = k.replace(/[^a-zA-Z0-9_]/g, '');\n if (!/^[a-zA-Z_]/.test(k))\n k = `_${k}`;\n // enforce uniqueness by suffixing if needed\n const exists = (candidate) => this.items().some((i) => i.key === candidate);\n if (!exists(k))\n return k;\n let i = 1;\n while (exists(`${k}${i}`))\n i++;\n return `${k}${i}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExtraPropertiesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPExtraPropertiesComponent, isStandalone: true, selector: \"axp-extra-properties\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemsChange: \"itemsChange\" }, host: { classAttribute: \"ax-block ax-flex-1\" }, ngImport: i0, template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <axp-widgets-container [context]=\"internalContext()\" (onContextChanged)=\"onContextChanged($event)\">\n <div cdkDropList (cdkDropListDropped)=\"handleDrop($event)\" class=\"ax-col-span-12 ax-flex ax-flex-col ax-gap-3\">\n @for(item of items(); track item.key){\n @if(mode()==='edit'){\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4 ax-items-center\" cdkDrag [cdkDragDisabled]=\"false\">\n <div class=\"ax-col-span-12 md:ax-col-span-3 ax-flex ax-items-center ax-gap-3\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move ax-text-neutral-500\" cdkDragHandle></ax-icon>\n <div>\n <div class=\"ax-font-semibold\">{{item.title}}</div>\n </div>\n <!-- Small-screen delete aligned with title -->\n <ax-button class=\"ax-ml-auto md:ax-hidden\" look=\"blank\" color=\"danger\" (onClick)=\"handleRemoveItem(item.key)\">\n <ax-prefix><ax-icon class=\"fa-light fa-trash-can\"></ax-icon></ax-prefix>\n </ax-button>\n </div>\n <div class=\"ax-col-span-12 md:ax-col-span-8\">\n <ng-container\n axp-widget-renderer\n [node]=\"getNode(item)\"\n [mode]=\"'edit'\"\n ></ng-container>\n </div>\n <div class=\"ax-hidden md:ax-block md:ax-col-span-1 md:ax-justify-self-end\">\n <ax-button look=\"blank\" color=\"danger\" (onClick)=\"handleRemoveItem(item.key)\">\n <ax-prefix><ax-icon class=\"fa-light fa-trash-can\"></ax-icon></ax-prefix>\n </ax-button>\n </div>\n </div>\n } @else {\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-1\">\n <div class=\"ax-font-semibold\">{{item.title}}</div>\n <div class=\"ax-col-span-12 ax-text-muted\">\n <ng-container\n axp-widget-renderer\n [node]=\"getNode(item)\"\n [mode]=\"'view'\"\n ></ng-container>\n </div>\n </div>\n }\n } @empty {\n <div class=\"ax-col-span-12 ax-text-sm ax-text-gray-400\">\n {{ 'extra-properties:messages.no-extra-properties' | translate | async }}\n </div>\n }\n @if(mode()==='edit'){\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4 ax-items-end ax-mt-4 ax-border-t ax-border-dashed ax-pt-4\">\n <!-- Type -->\n <ax-form-field class=\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-3\">\n <ax-label>{{ 'extra-properties:labels.type' | translate | async }}</ax-label>\n <ax-select-box\n [value]=\"newTypeId()\"\n [dataSource]=\"typeOptions()\"\n valueField=\"id\"\n textField=\"title\"\n (onValueChanged)=\"newTypeChanged($event.value)\"\n ></ax-select-box>\n </ax-form-field>\n <!-- Title -->\n <ax-form-field class=\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-5\">\n <ax-label>{{ 'extra-properties:labels.title' | translate | async }}</ax-label>\n <ax-text-box [ngModel]=\"newTitle()\" (onValueChanged)=\"handleTitleChange($event.value)\"></ax-text-box>\n </ax-form-field>\n <!-- Value -->\n @if(newTypeId()){\n <ax-form-field class=\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-4\">\n <ax-label>{{ 'extra-properties:labels.value' | translate | async }}</ax-label>\n <div (keydown.enter)=\"handleAddItem()\">\n <ng-container\n axp-widget-renderer\n [node]=\"draftNode()\"\n [mode]=\"'edit'\"\n ></ng-container>\n </div>\n </ax-form-field>\n }\n <!-- Add moved to bottom (same as before) -->\n <div class=\"ax-col-span-12 ax-flex ax-justify-end\">\n <ax-button look=\"solid\" (onClick)=\"handleAddItem()\" [disabled]=\"!canAdd()\" text=\"{{ 'extra-properties:actions.add-field' | translate | async }}\">\n <ax-prefix><ax-icon class=\"fa-solid fa-add\"></ax-icon></ax-prefix>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </div>\n \n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i2.AXFormFieldComponent, selector: \"ax-form-field\", inputs: [\"labelMode\"] }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i3.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i4.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i5.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\", \"onItemSelected\", \"onItemClick\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i6.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i7.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i7.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i8.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i8.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: DragDropModule }, { kind: \"directive\", type: i9.CdkDropList, selector: \"[cdkDropList], cdk-drop-list\", inputs: [\"cdkDropListConnectedTo\", \"cdkDropListData\", \"cdkDropListOrientation\", \"id\", \"cdkDropListLockAxis\", \"cdkDropListDisabled\", \"cdkDropListSortingDisabled\", \"cdkDropListEnterPredicate\", \"cdkDropListSortPredicate\", \"cdkDropListAutoScrollDisabled\", \"cdkDropListAutoScrollStep\", \"cdkDropListElementContainer\", \"cdkDropListHasAnchor\"], outputs: [\"cdkDropListDropped\", \"cdkDropListEntered\", \"cdkDropListExited\", \"cdkDropListSorted\"], exportAs: [\"cdkDropList\"] }, { kind: \"directive\", type: i9.CdkDrag, selector: \"[cdkDrag]\", inputs: [\"cdkDragData\", \"cdkDragLockAxis\", \"cdkDragRootElement\", \"cdkDragBoundary\", \"cdkDragStartDelay\", \"cdkDragFreeDragPosition\", \"cdkDragDisabled\", \"cdkDragConstrainPosition\", \"cdkDragPreviewClass\", \"cdkDragPreviewContainer\", \"cdkDragScale\"], outputs: [\"cdkDragStarted\", \"cdkDragReleased\", \"cdkDragEnded\", \"cdkDragEntered\", \"cdkDragExited\", \"cdkDragDropped\", \"cdkDragMoved\"], exportAs: [\"cdkDrag\"] }, { kind: \"directive\", type: i9.CdkDragHandle, selector: \"[cdkDragHandle]\", inputs: [\"cdkDragHandleDisabled\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i10.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i11.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExtraPropertiesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-extra-properties',\n template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <axp-widgets-container [context]=\"internalContext()\" (onContextChanged)=\"onContextChanged($event)\">\n <div cdkDropList (cdkDropListDropped)=\"handleDrop($event)\" class=\"ax-col-span-12 ax-flex ax-flex-col ax-gap-3\">\n @for(item of items(); track item.key){\n @if(mode()==='edit'){\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4 ax-items-center\" cdkDrag [cdkDragDisabled]=\"false\">\n <div class=\"ax-col-span-12 md:ax-col-span-3 ax-flex ax-items-center ax-gap-3\">\n <ax-icon class=\"fa-solid fa-grip-dots-vertical ax-cursor-move ax-text-neutral-500\" cdkDragHandle></ax-icon>\n <div>\n <div class=\"ax-font-semibold\">{{item.title}}</div>\n </div>\n <!-- Small-screen delete aligned with title -->\n <ax-button class=\"ax-ml-auto md:ax-hidden\" look=\"blank\" color=\"danger\" (onClick)=\"handleRemoveItem(item.key)\">\n <ax-prefix><ax-icon class=\"fa-light fa-trash-can\"></ax-icon></ax-prefix>\n </ax-button>\n </div>\n <div class=\"ax-col-span-12 md:ax-col-span-8\">\n <ng-container\n axp-widget-renderer\n [node]=\"getNode(item)\"\n [mode]=\"'edit'\"\n ></ng-container>\n </div>\n <div class=\"ax-hidden md:ax-block md:ax-col-span-1 md:ax-justify-self-end\">\n <ax-button look=\"blank\" color=\"danger\" (onClick)=\"handleRemoveItem(item.key)\">\n <ax-prefix><ax-icon class=\"fa-light fa-trash-can\"></ax-icon></ax-prefix>\n </ax-button>\n </div>\n </div>\n } @else {\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-1\">\n <div class=\"ax-font-semibold\">{{item.title}}</div>\n <div class=\"ax-col-span-12 ax-text-muted\">\n <ng-container\n axp-widget-renderer\n [node]=\"getNode(item)\"\n [mode]=\"'view'\"\n ></ng-container>\n </div>\n </div>\n }\n } @empty {\n <div class=\"ax-col-span-12 ax-text-sm ax-text-gray-400\">\n {{ 'extra-properties:messages.no-extra-properties' | translate | async }}\n </div>\n }\n @if(mode()==='edit'){\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4 ax-items-end ax-mt-4 ax-border-t ax-border-dashed ax-pt-4\">\n <!-- Type -->\n <ax-form-field class=\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-3\">\n <ax-label>{{ 'extra-properties:labels.type' | translate | async }}</ax-label>\n <ax-select-box\n [value]=\"newTypeId()\"\n [dataSource]=\"typeOptions()\"\n valueField=\"id\"\n textField=\"title\"\n (onValueChanged)=\"newTypeChanged($event.value)\"\n ></ax-select-box>\n </ax-form-field>\n <!-- Title -->\n <ax-form-field class=\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-5\">\n <ax-label>{{ 'extra-properties:labels.title' | translate | async }}</ax-label>\n <ax-text-box [ngModel]=\"newTitle()\" (onValueChanged)=\"handleTitleChange($event.value)\"></ax-text-box>\n </ax-form-field>\n <!-- Value -->\n @if(newTypeId()){\n <ax-form-field class=\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-4\">\n <ax-label>{{ 'extra-properties:labels.value' | translate | async }}</ax-label>\n <div (keydown.enter)=\"handleAddItem()\">\n <ng-container\n axp-widget-renderer\n [node]=\"draftNode()\"\n [mode]=\"'edit'\"\n ></ng-container>\n </div>\n </ax-form-field>\n }\n <!-- Add moved to bottom (same as before) -->\n <div class=\"ax-col-span-12 ax-flex ax-justify-end\">\n <ax-button look=\"solid\" (onClick)=\"handleAddItem()\" [disabled]=\"!canAdd()\" text=\"{{ 'extra-properties:actions.add-field' | translate | async }}\">\n <ax-prefix><ax-icon class=\"fa-solid fa-add\"></ax-icon></ax-prefix>\n </ax-button>\n </div>\n </div>\n }\n </div>\n </axp-widgets-container>\n </div>\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXLabelModule,\n AXTextBoxModule,\n AXSelectBoxModule,\n AXButtonModule,\n AXDecoratorModule,\n AXPLayoutBuilderModule,\n DragDropModule,\n AXTranslationModule,\n //AXPGridLayoutDirective,\n ],\n standalone: true,\n host: {\n class: 'ax-block ax-flex-1',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtcHJvcGVydGllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvZXh0cmEtcHJvcGVydGllcy9leHRyYS1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUE4QyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JILE9BQU8sRUFBRSxjQUFjLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUE4QyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxt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QVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0EwRlA7b0JBQ0gsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIseUJBQXlCO3FCQUMxQjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhMYWJlbE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sYWJlbCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLCBBWFBMYXlvdXRDb250ZXh0Q2hhbmdlRXZlbnQsIEFYUFdpZGdldE5vZGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlLCBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgV3JpdGFibGVTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2FtZWxDYXNlLCBjbG9uZURlZXAsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQX0VYVFJBX1BST1BFUlRZX1RZUEVTLCBBWFBFeHRyYVByb3BlcnR5SXRlbSwgQVhQRXh0cmFQcm9wZXJ0eVR5cGUgfSBmcm9tICcuL2V4dHJhLXByb3BlcnRpZXMudHlwZXMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZXh0cmEtcHJvcGVydGllcycsXG4gIHRlbXBsYXRlOiBgXG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTRcIj5cbiAgICAgICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJpbnRlcm5hbENvbnRleHQoKVwiIChvbkNvbnRleHRDaGFuZ2VkKT1cIm9uQ29udGV4dENoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIiBjbGFzcz1cImF4LWNvbC1zcGFuLTEyIGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTNcIj5cbiAgICAgICAgICAgIEBmb3IoaXRlbSBvZiBpdGVtcygpOyB0cmFjayBpdGVtLmtleSl7XG4gICAgICAgICAgICAgIEBpZihtb2RlKCk9PT0nZWRpdCcpe1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy0xMiBheC1nYXAtNCBheC1pdGVtcy1jZW50ZXJcIiBjZGtEcmFnIFtjZGtEcmFnRGlzYWJsZWRdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBtZDpheC1jb2wtc3Bhbi0zIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZ3JpcC1kb3RzLXZlcnRpY2FsIGF4LWN1cnNvci1tb3ZlIGF4LXRleHQtbmV1dHJhbC01MDBcIiBjZGtEcmFnSGFuZGxlPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7aXRlbS50aXRsZX19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8IS0tIFNtYWxsLXNjcmVlbiBkZWxldGUgYWxpZ25lZCB3aXRoIHRpdGxlIC0tPlxuICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtbWwtYXV0byBtZDpheC1oaWRkZW5cIiBsb29rPVwiYmxhbmtcIiBjb2xvcj1cImRhbmdlclwiIChvbkNsaWNrKT1cImhhbmRsZVJlbW92ZUl0ZW0oaXRlbS5rZXkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD48YXgtaWNvbiBjbGFzcz1cImZhLWxpZ2h0IGZhLXRyYXNoLWNhblwiPjwvYXgtaWNvbj48L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBtZDpheC1jb2wtc3Bhbi04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICBheHAtd2lkZ2V0LXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwiZ2V0Tm9kZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwiJ2VkaXQnXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtaGlkZGVuIG1kOmF4LWJsb2NrIG1kOmF4LWNvbC1zcGFuLTEgbWQ6YXgtanVzdGlmeS1zZWxmLWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIGNvbG9yPVwiZGFuZ2VyXCIgKG9uQ2xpY2spPVwiaGFuZGxlUmVtb3ZlSXRlbShpdGVtLmtleSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YXgtcHJlZml4PjxheC1pY29uIGNsYXNzPVwiZmEtbGlnaHQgZmEtdHJhc2gtY2FuXCI+PC9heC1pY29uPjwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mb250LXNlbWlib2xkXCI+e3tpdGVtLnRpdGxlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBheC10ZXh0LW11dGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICBheHAtd2lkZ2V0LXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwiZ2V0Tm9kZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwiJ3ZpZXcnXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gQGVtcHR5IHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbC1zcGFuLTEyIGF4LXRleHQtc20gYXgtdGV4dC1ncmF5LTQwMFwiPlxuICAgICAgICAgICAgICAgIHt7ICdleHRyYS1wcm9wZXJ0aWVzOm1lc3NhZ2VzLm5vLWV4dHJhLXByb3BlcnRpZXMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYobW9kZSgpPT09J2VkaXQnKXtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00IGF4LWl0ZW1zLWVuZCBheC1tdC00ICBheC1ib3JkZXItdCBheC1ib3JkZXItZGFzaGVkIGF4LXB0LTRcIj5cbiAgICAgICAgICAgICAgICA8IS0tIFR5cGUgLS0+XG4gICAgICAgICAgICAgICAgPGF4LWZvcm0tZmllbGQgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBtZDpheC1jb2wtc3Bhbi02IGxnOmF4LWNvbC1zcGFuLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57eyAnZXh0cmEtcHJvcGVydGllczpsYWJlbHMudHlwZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwibmV3VHlwZUlkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJ0eXBlT3B0aW9ucygpXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZD1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkPVwidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwibmV3VHlwZUNoYW5nZWQoJGV2ZW50LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICA+PC9heC1zZWxlY3QtYm94PlxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8IS0tIFRpdGxlIC0tPlxuICAgICAgICAgICAgICAgIDxheC1mb3JtLWZpZWxkIGNsYXNzPVwiYXgtY29sLXNwYW4tMTIgbWQ6YXgtY29sLXNwYW4tNiBsZzpheC1jb2wtc3Bhbi01XCI+XG4gICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3sgJ2V4dHJhLXByb3BlcnRpZXM6bGFiZWxzLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCBbbmdNb2RlbF09XCJuZXdUaXRsZSgpXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVRpdGxlQ2hhbmdlKCRldmVudC52YWx1ZSlcIj48L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgIDwvYXgtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8IS0tIFZhbHVlIC0tPlxuICAgICAgICAgICAgICAgIEBpZihuZXdUeXBlSWQoKSl7XG4gICAgICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZCBjbGFzcz1cImF4LWNvbC1zcGFuLTEyIG1kOmF4LWNvbC1zcGFuLTYgbGc6YXgtY29sLXNwYW4tNFwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3sgJ2V4dHJhLXByb3BlcnRpZXM6bGFiZWxzLnZhbHVlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAoa2V5ZG93bi5lbnRlcik9XCJoYW5kbGVBZGRJdGVtKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBheHAtd2lkZ2V0LXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbm9kZV09XCJkcmFmdE5vZGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCInZWRpdCdcIlxuICAgICAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwhLS0gQWRkIG1vdmVkIHRvIGJvdHRvbSAoc2FtZSBhcyBiZWZvcmUpIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBheC1mbGV4IGF4LWp1c3RpZnktZW5kXCI+XG4gICAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIChvbkNsaWNrKT1cImhhbmRsZUFkZEl0ZW0oKVwiIFtkaXNhYmxlZF09XCIhY2FuQWRkKClcIiB0ZXh0PVwie3sgJ2V4dHJhLXByb3BlcnRpZXM6YWN0aW9ucy5hZGQtZmllbGQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD48YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj48L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgXG4gICAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYTGFiZWxNb2R1bGUsXG4gICAgQVhUZXh0Qm94TW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICAvL0FYUEdyaWRMYXlvdXREaXJlY3RpdmUsXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2F4LWJsb2NrIGF4LWZsZXgtMScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEV4dHJhUHJvcGVydGllc0NvbXBvbmVudCB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgSW5wdXRzICAgLS0tLVxuXG4gIGl0ZW1zID0gaW5wdXQ8QVhQRXh0cmFQcm9wZXJ0eUl0ZW1bXT4oW10pO1xuICBtb2RlID0gaW5wdXQ8J2VkaXQnIHwgJ3ZpZXcnPignZWRpdCcpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgRXZlbnQgSGFuZGxlcnMgICAtLS0tXG5cbiAgcHJvdGVjdGVkIG9uQ29udGV4dENoYW5nZWQoZXZlbnQ6IEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCkge1xuICAgIC8vIElnbm9yZSBpbml0aWFsIGJvb3RzdHJhcHBpbmcgdG8gcHJldmVudCBjeWNsZXNcbiAgICBpZiAoKGV2ZW50IGFzIGFueSkuc3RhdGUgPT09ICdpbml0aWF0ZWQnKSByZXR1cm47XG4gICAgY29uc3QgZGF0YSA9IChldmVudC5kYXRhID8/IHt9KSBhcyBhbnk7XG4gICAgY29uc3QgZXh0cmEgPSBkYXRhWydleHRyYSddID8/IHt9O1xuICAgIC8vIHN5bmMgZHJhZnQgdmFsdWVcbiAgICBjb25zdCBkayA9IHRoaXMuZHJhZnRLZXkoKTtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4dHJhLCBkaykpIHtcbiAgICAgIHRoaXMubmV3VmFsdWUuc2V0KGV4dHJhW2RrXSk7XG4gICAgfVxuICAgIGNvbnN0IG5leHRJdGVtcyA9IHRoaXMuaXRlbXMoKS5tYXAoKGl0KSA9PiAoeyAuLi5pdCwgdmFsdWU6IGV4dHJhW2l0LmtleV0gfSkpO1xuICAgIGlmICghaXNFcXVhbChuZXh0SXRlbXMsIHRoaXMuaXRlbXMoKSkpIHtcbiAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdChuZXh0SXRlbXMpO1xuICAgIH1cbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgT3V0cHV0cyAgIC0tLS1cblxuICBpdGVtc0NoYW5nZSA9IG91dHB1dDxBWFBFeHRyYVByb3BlcnR5SXRlbVtdPigpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlZFR5cGVzID0gaW5qZWN0KEFYUF9FWFRSQV9QUk9QRVJUWV9UWVBFUywgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQ2xhc3MgUHJvcGVydGllcyAgIC0tLS1cblxuICBwcm90ZWN0ZWQgbmV3S2V5OiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+ID0gc2lnbmFsKCcnKTtcbiAgcHJvdGVjdGVkIG5ld1RpdGxlOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+ID0gc2lnbmFsKCcnKTtcbiAgcHJvdGVjdGVkIG5ld1R5cGVJZDogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCBuZXdWYWx1ZTogV3JpdGFibGVTaWduYWw8YW55PiA9IHNpZ25hbCh1bmRlZmluZWQpO1xuXG4gIC8qKiBMb2NhbCwgZXBoZW1lcmFsIGNvbnRleHQgZm9yIHdpZGdldCByZW5kZXJpbmcgKi9cbiAgcHJvdGVjdGVkIGludGVybmFsQ29udGV4dCA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih7fSk7XG5cbiAgcHJpdmF0ZSBsYXN0VHlwZUJ5S2V5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIHByb3RlY3RlZCBkcmFmdFZlcnNpb246IFdyaXRhYmxlU2lnbmFsPG51bWJlcj4gPSBzaWduYWwoMCk7XG4gIHByb3RlY3RlZCBkcmFmdEtleSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gYF9fZHJhZnRfX3Yke3RoaXMuZHJhZnRWZXJzaW9uKCl9YCk7XG5cbiAgcHJvdGVjdGVkIHR5cGVPcHRpb25zID0gY29tcHV0ZWQ8QVhQRXh0cmFQcm9wZXJ0eVR5cGVbXT4oKCkgPT4gdGhpcy5wcm92aWRlZFR5cGVzKTtcbiAgcHJvdGVjdGVkIHByZXNldFR5cGVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm92aWRlZFR5cGVzLnNsaWNlKDAsIDUpKTtcbiAgcHJvdGVjdGVkIGNhbkFkZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLm5ld0tleSgpPy50cmltKCk7XG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLm5ld1RpdGxlKCk/LnRyaW0oKTtcbiAgICBjb25zdCB0eXBlSWQgPSB0aGlzLm5ld1R5cGVJZCgpO1xuICAgIGNvbnN0IHZhbCA9IHRoaXMubmV3VmFsdWUoKTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9IHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCAmJiAodHlwZW9mIHZhbCAhPT0gJ3N0cmluZycgfHwgdmFsLnRyaW0oKSAhPT0gJycpO1xuICAgIGlmICgha2V5IHx8ICF0aXRsZSB8fCAhdHlwZUlkIHx8ICFoYXNWYWx1ZSkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiAhdGhpcy5pdGVtcygpLnNvbWUoKGkpID0+IGkua2V5ID09PSBrZXkpO1xuICB9KTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEVmZmVjdHMgICAtLS0tXG5cbiAgLyoqIFN5bmMgaW5jb21pbmcgaXRlbXMnIHZhbHVlcyBpbnRvIGludGVybmFsIGNvbnRleHQgZm9yIHJlbmRlcmluZyAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHN5bmNDb250ZXh0RnJvbUl0ZW1zID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXMoKTtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5pbnRlcm5hbENvbnRleHQoKTtcbiAgICBjb25zdCBjdXJyZW50RXh0cmEgPSAoY3VycmVudCBhcyBhbnkpWydleHRyYSddID8/IHt9O1xuICAgIGNvbnN0IGV4dHJhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0geyAuLi5jdXJyZW50RXh0cmEgfTtcbiAgICBmb3IgKGNvbnN0IGl0IG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoaXQudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBpdC52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICBleHRyYVtpdC5rZXldID0gaXQudmFsdWU7XG4gICAgICB9IGVsc2UgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHRyYSwgaXQua2V5KSkge1xuICAgICAgICBkZWxldGUgZXh0cmFbaXQua2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgbmV4dENvbnRleHQgPSB7IC4uLmN1cnJlbnQsIGV4dHJhIH07XG4gICAgaWYgKCFpc0VxdWFsKG5leHRDb250ZXh0LCBjdXJyZW50KSkge1xuICAgICAgdGhpcy5pbnRlcm5hbENvbnRleHQuc2V0KG5leHRDb250ZXh0KTtcbiAgICB9XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBDbGVhciBpdGVtIHZhbHVlcyB3aGVuIHRoZWlyIHdpZGdldCB0eXBlIGNoYW5nZXMgdG8gYXZvaWQgaW5jb21wYXRpYmxlIHN0YWxlIHZhbHVlc1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjbGVhclZhbHVlT25UeXBlQ2hhbmdlID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuaXRlbXMoKTtcbiAgICBjb25zdCBjaGFuZ2VkS2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGZvciAoY29uc3QgaXQgb2YgaXRlbXMpIHtcbiAgICAgIGNvbnN0IHByZXZUeXBlID0gdGhpcy5sYXN0VHlwZUJ5S2V5W2l0LmtleV07XG4gICAgICBpZiAocHJldlR5cGUgJiYgcHJldlR5cGUgIT09IGl0LnR5cGUpIHtcbiAgICAgICAgY2hhbmdlZEtleXMuYWRkKGl0LmtleSk7XG4gICAgICB9XG4gICAgICB0aGlzLmxhc3RUeXBlQnlLZXlbaXQua2V5XSA9IGl0LnR5cGU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRLZXlzLnNpemUgPiAwKSB7XG4gICAgICBjb25zdCB1cGRhdGVkID0gaXRlbXMubWFwKChpdCkgPT4gKGNoYW5nZWRLZXlzLmhhcyhpdC5rZXkpID8geyAuLi5pdCwgdmFsdWU6IHVuZGVmaW5lZCB9IDogaXQpKTtcblxuICAgICAgLy8gUmVzZXQgY2FjaGVkIGRlZmF1bHQgdmFsdWVzIGZvciBhZmZlY3RlZCBub2Rlc1xuICAgICAgY2hhbmdlZEtleXMuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlQ2FjaGVba107XG4gICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgKG5vZGUgYXMgYW55KS5kZWZhdWx0VmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodXBkYXRlZCk7XG4gICAgfVxuICB9KTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFV0aWxpdHkgTWV0aG9kcyAgIC0tLS1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQWRkSXRlbSgpIHtcbiAgICBpZiAoIXRoaXMuY2FuQWRkKCkpIHJldHVybjtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlT3B0aW9ucygpLmZpbmQoKHQpID0+IHQuaWQgPT09IHRoaXMubmV3VHlwZUlkKCkpO1xuICAgIGNvbnN0IG5leHQ6IEFYUEV4dHJhUHJvcGVydHlJdGVtID0ge1xuICAgICAga2V5OiB0aGlzLm5ld0tleSgpLnRyaW0oKSxcbiAgICAgIHRpdGxlOiB0aGlzLm5ld1RpdGxlKCkudHJpbSgpLFxuICAgICAgdHlwZTogdGhpcy5uZXdUeXBlSWQoKSxcbiAgICAgIHZhbHVlOiB0aGlzLm5ld1ZhbHVlKCksXG4gICAgICBvcHRpb25zOiBjbG9uZURlZXAodHlwZT8uZGVmYXVsdE9wdGlvbnMgPz8ge30pLFxuICAgIH07XG4gICAgY29uc3QgdXBkYXRlZCA9IFsuLi50aGlzLml0ZW1zKCksIG5leHRdO1xuICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh1cGRhdGVkKTtcbiAgICAvLyByZXNldCBpbnB1dHNcbiAgICB0aGlzLm5ld0tleS5zZXQoJycpO1xuICAgIHRoaXMubmV3VGl0bGUuc2V0KCcnKTtcbiAgICB0aGlzLm5ld1R5cGVJZC5zZXQoJycpO1xuICAgIHRoaXMubmV3VmFsdWUuc2V0KHVuZGVmaW5lZCk7XG4gICAgLy8gY2xlYXIgZHJhZnQgZnJvbSBjb250ZXh0XG4gICAgY29uc3QgY3R4OiBhbnkgPSB7IC4uLnRoaXMuaW50ZXJuYWxDb250ZXh0KCkgfTtcbiAgICBjb25zdCBkcmFmdEV4dHJhID0geyAuLi4oY3R4WydleHRyYSddID8/IHt9KSB9O1xuICAgIGNvbnN0IGRrID0gdGhpcy5kcmFmdEtleSgpO1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZHJhZnRFeHRyYSwgZGspKSB7XG4gICAgICBkZWxldGUgZHJhZnRFeHRyYVtka107XG4gICAgICB0aGlzLmludGVybmFsQ29udGV4dC5zZXQoeyAuLi5jdHgsIGV4dHJhOiBkcmFmdEV4dHJhIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSZW1vdmVJdGVtKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgdXBkYXRlZCA9IHRoaXMuaXRlbXMoKS5maWx0ZXIoKGkpID0+IGkua2V5ICE9PSBrZXkpO1xuICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh1cGRhdGVkKTtcbiAgICAvLyBwcnVuZSBjb250ZXh0XG4gICAgY29uc3QgY3R4OiBhbnkgPSB7IC4uLnRoaXMuaW50ZXJuYWxDb250ZXh0KCkgfTtcbiAgICBpZiAoY3R4WydleHRyYSddKSB7XG4gICAgICBjb25zdCB7IFtrZXldOiBfLCAuLi5yZXN0IH0gPSBjdHhbJ2V4dHJhJ107XG4gICAgICB0aGlzLmludGVybmFsQ29udGV4dC5zZXQoeyAuLi5jdHgsIFsnZXh0cmEnXTogcmVzdCB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlRHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8QVhQRXh0cmFQcm9wZXJ0eUl0ZW1bXT4pIHtcbiAgICBjb25zdCBhcnIgPSBbLi4udGhpcy5pdGVtcygpXTtcbiAgICBtb3ZlSXRlbUluQXJyYXkoYXJyLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdChhcnIpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdFByZXNldChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5uZXdUeXBlSWQuc2V0KGlkKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9kZUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBBWFBXaWRnZXROb2RlPiA9IHt9O1xuICBwcml2YXRlIGRyYWZ0Tm9kZUNhY2hlPzogQVhQV2lkZ2V0Tm9kZTtcblxuICBwcm90ZWN0ZWQgZ2V0Tm9kZShpdGVtOiBBWFBFeHRyYVByb3BlcnR5SXRlbSk6IEFYUFdpZGdldE5vZGUge1xuICAgIGNvbnN0IGtleSA9IGl0ZW0ua2V5O1xuICAgIGxldCBub2RlID0gdGhpcy5ub2RlQ2FjaGVba2V5XTtcbiAgICBpZiAoIW5vZGUpIHtcbiAgICAgIG5vZGUgPSB7XG4gICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcbiAgICAgICAgcGF0aDogYGV4dHJhLiR7aXRlbS5rZXl9YCxcbiAgICAgICAgb3B0aW9uczogaXRlbS5vcHRpb25zID8/IHt9LFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICB9IGFzIEFYUFdpZGdldE5vZGU7XG4gICAgICB0aGlzLm5vZGVDYWNoZVtrZXldID0gbm9kZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gS2VlcCByZWZlcmVuY2Ugc3RhYmxlOyB1cGRhdGUgbmVzdGVkIGZpZWxkcyBpZiBlc3NlbnRpYWwgY2hhbmdlcyBoYXBwZW5cbiAgICAgIG5vZGUudHlwZSA9IGl0ZW0udHlwZTtcbiAgICAgIG5vZGUub3B0aW9ucyA9IGl0ZW0ub3B0aW9ucyA/PyBub2RlLm9wdGlvbnM7XG4gICAgICAvLyBEbyBub3Qgb3ZlcndyaXRlIGRlZmF1bHRWYWx1ZSBkdXJpbmcgZWRpdGluZyB0byBhdm9pZCByZXNldHNcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICBwcm90ZWN0ZWQgZHJhZnROb2RlKCk6IEFYUFdpZGdldE5vZGUge1xuICAgIGNvbnN0IHR5cGVJZCA9IHRoaXMubmV3VHlwZUlkKCk7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMudHlwZU9wdGlvbnMoKS5maW5kKCh0KSA9PiB0LmlkID09PSB0eXBlSWQpO1xuICAgIGxldCBub2RlID0gdGhpcy5kcmFmdE5vZGVDYWNoZTtcbiAgICBjb25zdCByZXNvbHZlZFR5cGUgPSB0eXBlSWQ7XG4gICAgaWYgKCFub2RlIHx8IG5vZGUudHlwZSAhPT0gcmVzb2x2ZWRUeXBlKSB7XG4gICAgICBub2RlID0ge1xuICAgICAgICB0eXBlOiByZXNvbHZlZFR5cGUsXG4gICAgICAgIHBhdGg6IGBleHRyYS4ke3RoaXMuZHJhZnRLZXkoKX1gLFxuICAgICAgICBvcHRpb25zOiBjbG9uZURlZXAodHlwZT8uZGVmYXVsdE9wdGlvbnMgPz8ge30pLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMubmV3VmFsdWUoKSxcbiAgICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgICAgIHRoaXMuZHJhZnROb2RlQ2FjaGUgPSBub2RlO1xuICAgIH0gZWxzZSB7XG4gICAgICBub2RlLm9wdGlvbnMgPSBjbG9uZURlZXAodHlwZT8uZGVmYXVsdE9wdGlvbnMgPz8ge30pO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgVXRpbGl0eSBIZWxwZXJzICAgLS0tLVxuXG4gIHByb3RlY3RlZCBuZXdUeXBlQ2hhbmdlZCh2YWw6IHN0cmluZykge1xuICAgIHRoaXMubmV3VHlwZUlkLnNldCh2YWwpO1xuICAgIC8vIGZvcmNlIGRyYWZ0IHdpZGdldCByZS1yZW5kZXIgb24gdHlwZSBjaGFuZ2VcbiAgICB0aGlzLmRyYWZ0Tm9kZUNhY2hlID0gdW5kZWZpbmVkO1xuICAgIC8vIGNsZWFyIGRyYWZ0IHZhbHVlIGZyb20gYm90aCBzaWduYWwgYW5kIGNvbnRleHQgdG8gYXZvaWQgdHlwZSBtaXNtYXRjaFxuICAgIGNvbnN0IHByZXZEcmFmdEtleSA9IHRoaXMuZHJhZnRLZXkoKTtcbiAgICB0aGlzLm5ld1ZhbHVlLnNldCh1bmRlZmluZWQpO1xuICAgIGNvbnN0IGN0eDogYW55ID0geyAuLi50aGlzLmludGVybmFsQ29udGV4dCgpIH07XG4gICAgY29uc3QgZHJhZnRFeHRyYSA9IHsgLi4uKGN0eFsnZXh0cmEnXSA/PyB7fSkgfTtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRyYWZ0RXh0cmEsIHByZXZEcmFmdEtleSkpIHtcbiAgICAgIGRlbGV0ZSBkcmFmdEV4dHJhW3ByZXZEcmFmdEtleV07XG4gICAgICB0aGlzLmludGVybmFsQ29udGV4dC5zZXQoeyAuLi5jdHgsIGV4dHJhOiBkcmFmdEV4dHJhIH0pO1xuICAgIH1cbiAgICAvLyBidW1wIGRyYWZ0IHZlcnNpb24gc28gbmV3IGRyYWZ0IHBhdGggaXMgaXNvbGF0ZWQgZnJvbSBvbGQgd2lkZ2V0IGVtaXNzaW9uc1xuICAgIHRoaXMuZHJhZnRWZXJzaW9uLnNldCh0aGlzLmRyYWZ0VmVyc2lvbigpICsgMSk7XG4gICAgY29uc3QgdCA9IHRoaXMudHlwZU9wdGlvbnMoKS5maW5kKCh4KSA9PiB4LmlkID09PSB2YWwpO1xuICAgIGlmICh0KSB7XG4gICAgICBjb25zdCBhdXRvVGl0bGUgPSB0LnRpdGxlID8/IHZhbDtcbiAgICAgIGNvbnN0IGF1dG9LZXkgPSB0aGlzLnNhbml0aXplS2V5KGF1dG9UaXRsZSk7XG4gICAgICAvLyBPbmx5IGF1dG8tZmlsbCB3aGVuIGVtcHR5XG4gICAgICBpZiAoIXRoaXMubmV3VGl0bGUoKT8udHJpbSgpKSB0aGlzLm5ld1RpdGxlLnNldChhdXRvVGl0bGUpO1xuICAgICAgLy8gYWx3YXlzIGRlcml2ZSBrZXkgZnJvbSB0aXRsZVxuICAgICAgdGhpcy5uZXdLZXkuc2V0KGF1dG9LZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBuZ09uSW5pdCgpIHtcbiAgICAvLyBhdXRvLXNlbGVjdCBmaXJzdCBpdGVtIG9mIHR5cGUgbGlzdFxuICAgIGNvbnN0IHR5cGVzID0gdGhpcy50eXBlT3B0aW9ucygpO1xuICAgIGlmICghdGhpcy5uZXdUeXBlSWQoKSAmJiB0eXBlcyAmJiB0eXBlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm5ld1R5cGVDaGFuZ2VkKHR5cGVzWzBdLmlkKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVGl0bGVDaGFuZ2UodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5ld1RpdGxlLnNldCh2YWwpO1xuICAgIHRoaXMubmV3S2V5LnNldCh0aGlzLnNhbml0aXplS2V5KHZhbCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNhbml0aXplS2V5KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaW5wdXQpIHJldHVybiAnJztcbiAgICAvLyBDb252ZXJ0IHRvIGNhbWVsQ2FzZSwgcmVtb3ZlIGludmFsaWQgY2hhcnMsIGVuc3VyZSBzdGFydHMgd2l0aCBsZXR0ZXIvX1xuICAgIGxldCBrID0gY2FtZWxDYXNlKFN0cmluZyhpbnB1dCkpO1xuICAgIGsgPSBrLnJlcGxhY2UoL1teYS16QS1aMC05X10vZywgJycpO1xuICAgIGlmICghL15bYS16QS1aX10vLnRlc3QoaykpIGsgPSBgXyR7a31gO1xuICAgIC8vIGVuZm9yY2UgdW5pcXVlbmVzcyBieSBzdWZmaXhpbmcgaWYgbmVlZGVkXG4gICAgY29uc3QgZXhpc3RzID0gKGNhbmRpZGF0ZTogc3RyaW5nKSA9PiB0aGlzLml0ZW1zKCkuc29tZSgoaSkgPT4gaS5rZXkgPT09IGNhbmRpZGF0ZSk7XG4gICAgaWYgKCFleGlzdHMoaykpIHJldHVybiBrO1xuICAgIGxldCBpID0gMTtcbiAgICB3aGlsZSAoZXhpc3RzKGAke2t9JHtpfWApKSBpKys7XG4gICAgcmV0dXJuIGAke2t9JHtpfWA7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNlbmRyZWdpb25cbn1cblxuXG4iXX0=","import { AXCollapseModule } from '@acorex/components/collapse';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXPLayoutBuilderModule, AXPWidgetRegistryService, } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, EventEmitter, inject, input, Output, signal, untracked, } from '@angular/core';\nimport { capitalize, cloneDeep, isArray, isEmpty, isNil, merge, set, sortBy, unionBy } from 'lodash-es';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/collapse\";\nimport * as i2 from \"@acorex/components/tabs\";\nimport * as i3 from \"@acorex/platform/layout/builder\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"@acorex/core/translation\";\nexport class AXPWidgetPropertyViewerComponent {\n constructor() {\n this.widget = input.required(...(ngDevMode ? [{ debugName: \"widget\" }] : []));\n this.mode = input('simple', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.widgetRegistryService = inject(AXPWidgetRegistryService);\n // Designer connector removed to avoid cross-entry circular dependency\n this.currentTabIndex = signal(0, ...(ngDevMode ? [{ debugName: \"currentTabIndex\" }] : []));\n this.config = signal(null, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.allPoperties = [];\n this.tabs = signal([], ...(ngDevMode ? [{ debugName: \"tabs\" }] : []));\n this.groups = computed(() => {\n return this.tabs().length ? this.tabs()[this.currentTabIndex()].groups : [];\n }, ...(ngDevMode ? [{ debugName: \"groups\" }] : []));\n this.groupCollapsedStates = new Map();\n this.onChanged = new EventEmitter();\n this.context = signal({}, ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n this.initialContext = {};\n effect(() => {\n if (!this.widget())\n return;\n const config = this.widgetRegistryService.resolve(this.widget()?.type);\n if (config) {\n this.initialContext = {};\n this.config.set(config);\n this.fillTabs();\n }\n else {\n console.error(`Invalid widget name: ${this.widget()}`);\n }\n });\n }\n update(values) {\n this.context.set(merge(cloneDeep(this.context()), values));\n }\n fillTabs() {\n const tabs = [\n {\n name: 'general',\n title: 'General',\n groups: [],\n },\n ];\n Object.entries(this.config()?.components ?? {}).forEach((c) => {\n if (c[1].component != null && c[1].properties?.length) {\n tabs.push({ name: c[0], title: capitalize(c[0]), groups: [] });\n }\n });\n ///\n this.allPoperties = [];\n ///\n tabs.forEach((tab) => {\n const props = tab.name == 'general'\n ? (this.config()?.properties ?? [])\n : ((this.config()?.components)[tab.name]?.properties ?? []);\n //\n const visibleProps = props.filter((c) => c.visible != false);\n this.allPoperties.push(...props);\n tab.groups = unionBy(sortBy(visibleProps.map((pg) => ({\n isCollapsed: !!this.groupCollapsedStates.get(pg.group.name),\n name: pg.group.name,\n title: pg.group.title,\n props: sortBy(visibleProps.filter((p) => p.group.name == pg.group.name && pg.visible), ['order', 'title']),\n })), ['order', 'title']), 'name').filter((c) => c.props.length);\n });\n this.tabs.set(tabs.filter((c) => c.groups.length));\n //\n this.initialContext = this.allPoperties\n .filter((c) => (!isArray(c.schema.defaultValue) && !isNil(c.schema.defaultValue)) ||\n (isArray(c.schema.defaultValue) && !isEmpty(c.schema.defaultValue)))\n .reduce((acc, c) => {\n set(acc, c.schema.interface.path, c.schema.defaultValue);\n return acc;\n }, {});\n //\n untracked(() => {\n this.context.set(merge(cloneDeep(this.initialContext), this.widget()));\n this.onChanged.emit({ values: this.context(), mode: 'init' });\n });\n }\n handleContextChange(e) {\n untracked(() => {\n this.context.set(e.data);\n this.onChanged.emit({ values: this.context(), mode: e.state == 'initiated' ? 'init' : 'update' });\n });\n }\n handleTabChange(event) {\n const indx = event.index;\n if (this.currentTabIndex() != indx) {\n this.currentTabIndex.set(indx);\n }\n }\n handleCollapsedChange(group, collapsed) {\n this.groupCollapsedStates.set(group, collapsed);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetPropertyViewerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPWidgetPropertyViewerComponent, isStandalone: true, selector: \"axp-widget-property-viewer\", inputs: { widget: { classPropertyName: \"widget\", publicName: \"widget\", isSignal: true, isRequired: true, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChanged: \"onChanged\" }, ngImport: i0, template: \"<axp-widgets-container [context]=\\\"context()\\\" (onContextChanged)=\\\"handleContextChange($event)\\\">\\n @if (mode() == 'advanced') {\\n <div class=\\\"ax-flex ax-flex-col\\\">\\n @if (tabs().length > 1) {\\n <div class=\\\"ax-pb-2\\\">\\n <ax-tabs look=\\\"default\\\" (onActiveTabChanged)=\\\"handleTabChange($event)\\\" [look]=\\\"'with-line'\\\">\\n @for (tab of tabs(); track $index) {\\n <ax-tab-item [text]=\\\"tab.title\\\" [key]=\\\"$index.toString()\\\" [active]=\\\"currentTabIndex() === $index\\\">\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </div>\\n }\\n <div class=\\\"ax-flex-1 ax-overflow-auto\\\">\\n <ax-collapse-group class=\\\"ax-h-fit\\\" [look]=\\\"'flat'\\\">\\n @for (group of groups(); track $index) {\\n <ax-collapse\\n class=\\\"!ax-mb-0\\\"\\n [caption]=\\\"group.title\\\"\\n [(isCollapsed)]=\\\"group.isCollapsed\\\"\\n (isCollapsedChange)=\\\"handleCollapsedChange(group.name, $event)\\\"\\n >\\n <div class=\\\"ax-flex ax-flex-col\\\">\\n @for (p of group.props; track $index) {\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1 ax-py-2\\\">\\n <span class=\\\"ax-font-semibold\\\">{{ p.title }}</span>\\n @if (p.schema.interface) {\\n <ng-container axp-widget-renderer [node]=\\\"p.schema.interface\\\" [mode]=\\\"'edit'\\\"> </ng-container>\\n }\\n </div>\\n }\\n </div>\\n </ax-collapse>\\n }\\n </ax-collapse-group>\\n </div>\\n </div>\\n }\\n <!-- Simple-->\\n @else {\\n <div class=\\\"ax-flex ax-flex-col ax-p-4 ax-gap-4\\\">\\n <!-- groups -->\\n @for (group of groups(); track $index) {\\n <!-- props -->\\n @for (p of group.props; track $index) {\\n <div class=\\\"ax-flex ax-flex-col ax-gap-2\\\">\\n <span class=\\\"ax-font-semibold\\\">{{ p.title | translate | async }}</span>\\n @if (p.schema.interface) {\\n <ng-container axp-widget-renderer [node]=\\\"p.schema.interface\\\" [mode]=\\\"'edit'\\\"> </ng-container>\\n }\\n </div>\\n }\\n }\\n </div>\\n }\\n</axp-widgets-container>\\n\", styles: [\":host ax-collapse .ax-collapse-header{font-weight:600}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXCollapseModule }, { kind: \"component\", type: i1.AXCollapseComponent, selector: \"ax-collapse\", inputs: [\"disabled\", \"look\", \"isCollapsed\", \"showHeader\", \"caption\", \"icon\", \"isLoading\", \"headerTemplate\"], outputs: [\"onClick\", \"isCollapsedChange\"] }, { kind: \"component\", type: i1.AXCollapseGroupComponent, selector: \"ax-collapse-group\", inputs: [\"look\", \"accordion\", \"activeIndex\"], outputs: [\"accordionChange\", \"activeIndexChange\"] }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"component\", type: i2.AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: i2.AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i3.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i3.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i5.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetPropertyViewerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-widget-property-viewer', changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, AXCollapseModule, AXTabsModule, AXPLayoutBuilderModule, AXTranslationModule], template: \"<axp-widgets-container [context]=\\\"context()\\\" (onContextChanged)=\\\"handleContextChange($event)\\\">\\n @if (mode() == 'advanced') {\\n <div class=\\\"ax-flex ax-flex-col\\\">\\n @if (tabs().length > 1) {\\n <div class=\\\"ax-pb-2\\\">\\n <ax-tabs look=\\\"default\\\" (onActiveTabChanged)=\\\"handleTabChange($event)\\\" [look]=\\\"'with-line'\\\">\\n @for (tab of tabs(); track $index) {\\n <ax-tab-item [text]=\\\"tab.title\\\" [key]=\\\"$index.toString()\\\" [active]=\\\"currentTabIndex() === $index\\\">\\n </ax-tab-item>\\n }\\n </ax-tabs>\\n </div>\\n }\\n <div class=\\\"ax-flex-1 ax-overflow-auto\\\">\\n <ax-collapse-group class=\\\"ax-h-fit\\\" [look]=\\\"'flat'\\\">\\n @for (group of groups(); track $index) {\\n <ax-collapse\\n class=\\\"!ax-mb-0\\\"\\n [caption]=\\\"group.title\\\"\\n [(isCollapsed)]=\\\"group.isCollapsed\\\"\\n (isCollapsedChange)=\\\"handleCollapsedChange(group.name, $event)\\\"\\n >\\n <div class=\\\"ax-flex ax-flex-col\\\">\\n @for (p of group.props; track $index) {\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1 ax-py-2\\\">\\n <span class=\\\"ax-font-semibold\\\">{{ p.title }}</span>\\n @if (p.schema.interface) {\\n <ng-container axp-widget-renderer [node]=\\\"p.schema.interface\\\" [mode]=\\\"'edit'\\\"> </ng-container>\\n }\\n </div>\\n }\\n </div>\\n </ax-collapse>\\n }\\n </ax-collapse-group>\\n </div>\\n </div>\\n }\\n <!-- Simple-->\\n @else {\\n <div class=\\\"ax-flex ax-flex-col ax-p-4 ax-gap-4\\\">\\n <!-- groups -->\\n @for (group of groups(); track $index) {\\n <!-- props -->\\n @for (p of group.props; track $index) {\\n <div class=\\\"ax-flex ax-flex-col ax-gap-2\\\">\\n <span class=\\\"ax-font-semibold\\\">{{ p.title | translate | async }}</span>\\n @if (p.schema.interface) {\\n <ng-container axp-widget-renderer [node]=\\\"p.schema.interface\\\" [mode]=\\\"'edit'\\\"> </ng-container>\\n }\\n </div>\\n }\\n }\\n </div>\\n }\\n</axp-widgets-container>\\n\", styles: [\":host ax-collapse .ax-collapse-header{font-weight:600}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { onChanged: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXByb3BlcnR5LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvcHJvcGVydHktdmlld2VyL3dpZGdldC1wcm9wZXJ0eS12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL3Byb3BlcnR5LXZpZXdlci93aWRnZXQtcHJvcGVydHktdmlld2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQTBCLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUNMLHNCQUFzQixFQUt0Qix3QkFBd0IsR0FDekIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUF5Qi9ELE1BQU0sT0FBTyxnQ0FBZ0M7SUE2QjNDO1FBNUJBLFdBQU0sR0FBRyxLQUFLLENBQUMs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QUFNLFdBQ3RDLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsQ0FBQzt3REF5QnBHLFNBQVM7c0JBRFIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29sbGFwc2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29sbGFwc2UnO1xuaW1wb3J0IHsgQVhUYWJzTW9kdWxlLCBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHtcbiAgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSxcbiAgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50LFxuICBBWFBXaWRnZXRDb25maWcsXG4gIEFYUFdpZGdldE5vZGUsXG4gIEFYUFdpZGdldFByb3BlcnR5LFxuICBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBPdXRwdXQsXG4gIHNpZ25hbCxcbiAgdW50cmFja2VkLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXBpdGFsaXplLCBjbG9uZURlZXAsIGlzQXJyYXksIGlzRW1wdHksIGlzTmlsLCBtZXJnZSwgc2V0LCBzb3J0QnksIHVuaW9uQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0UHJvcGVydHlUYWIge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGdyb3Vwczoge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGlzQ29sbGFwc2VkOiBib29sZWFuO1xuICAgIHByb3BzOiBBWFBXaWRnZXRQcm9wZXJ0eVtdO1xuICB9W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV2lkZ2V0UHJvcGVydGllc0NoYW5nZWRFdmVudCB7XG4gIHZhbHVlczogYW55O1xuICBtb2RlOiAnaW5pdCcgfCAndXBkYXRlJztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXdpZGdldC1wcm9wZXJ0eS12aWV3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LXByb3BlcnR5LXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1wcm9wZXJ0eS12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYQ29sbGFwc2VNb2R1bGUsIEFYVGFic01vZHVsZSwgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhUcmFuc2xhdGlvbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFByb3BlcnR5Vmlld2VyQ29tcG9uZW50IHtcbiAgd2lkZ2V0ID0gaW5wdXQucmVxdWlyZWQ8QVhQV2lkZ2V0Tm9kZT4oKTtcblxuICBtb2RlID0gaW5wdXQ8J3NpbXBsZScgfCAnYWR2YW5jZWQnPignc2ltcGxlJyk7XG5cbiAgcHJpdmF0ZSB3aWRnZXRSZWdpc3RyeVNlcnZpY2UgPSBpbmplY3QoQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKTtcblxuICAvLyBEZXNpZ25lciBjb25uZWN0b3IgcmVtb3ZlZCB0byBhdm9pZCBjcm9zcy1lbnRyeSBjaXJjdWxhciBkZXBlbmRlbmN5XG5cbiAgcHJvdGVjdGVkIGN1cnJlbnRUYWJJbmRleDogV3JpdGFibGVTaWduYWw8bnVtYmVyPiA9IHNpZ25hbCgwKTtcblxuICBwcm90ZWN0ZWQgY29uZmlnID0gc2lnbmFsPEFYUFdpZGdldENvbmZpZyB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgYWxsUG9wZXJ0aWVzOiBBWFBXaWRnZXRQcm9wZXJ0eVtdID0gW107XG5cbiAgcHJvdGVjdGVkIHRhYnMgPSBzaWduYWw8QVhQV2lkZ2V0UHJvcGVydHlUYWJbXT4oW10pO1xuXG4gIHByb3RlY3RlZCBncm91cHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudGFicygpLmxlbmd0aCA/IHRoaXMudGFicygpW3RoaXMuY3VycmVudFRhYkluZGV4KCldLmdyb3VwcyA6IFtdO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgZ3JvdXBDb2xsYXBzZWRTdGF0ZXM6IE1hcDxzdHJpbmcsIGJvb2xlYW4+ID0gbmV3IE1hcCgpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFYUFdpZGdldFByb3BlcnRpZXNDaGFuZ2VkRXZlbnQ+KCk7XG5cbiAgcHJvdGVjdGVkIGNvbnRleHQgPSBzaWduYWw8YW55Pih7fSk7XG5cbiAgcHJvdGVjdGVkIGluaXRpYWxDb250ZXh0OiBhbnkgPSB7fTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLndpZGdldCgpKSByZXR1cm47XG4gICAgICBjb25zdCBjb25maWcgPSB0aGlzLndpZGdldFJlZ2lzdHJ5U2VydmljZS5yZXNvbHZlKHRoaXMud2lkZ2V0KCk/LnR5cGUpO1xuICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICB0aGlzLmluaXRpYWxDb250ZXh0ID0ge307XG4gICAgICAgIHRoaXMuY29uZmlnLnNldChjb25maWcpO1xuICAgICAgICB0aGlzLmZpbGxUYWJzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIHdpZGdldCBuYW1lOiAke3RoaXMud2lkZ2V0KCl9YCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlKHZhbHVlczogYW55KSB7XG4gICAgdGhpcy5jb250ZXh0LnNldChtZXJnZShjbG9uZURlZXAodGhpcy5jb250ZXh0KCkpLCB2YWx1ZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsbFRhYnMoKSB7XG4gICAgY29uc3QgdGFiczogQVhQV2lkZ2V0UHJvcGVydHlUYWJbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2dlbmVyYWwnLFxuICAgICAgICB0aXRsZTogJ0dlbmVyYWwnLFxuICAgICAgICBncm91cHM6IFtdLFxuICAgICAgfSxcbiAgICBdO1xuICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuY29uZmlnKCk/LmNvbXBvbmVudHMgPz8ge30pLmZvckVhY2goKGMpID0+IHtcbiAgICAgIGlmIChjWzFdLmNvbXBvbmVudCAhPSBudWxsICYmIGNbMV0ucHJvcGVydGllcz8ubGVuZ3RoKSB7XG4gICAgICAgIHRhYnMucHVzaCh7IG5hbWU6IGNbMF0sIHRpdGxlOiBjYXBpdGFsaXplKGNbMF0pLCBncm91cHM6IFtdIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vL1xuICAgIHRoaXMuYWxsUG9wZXJ0aWVzID0gW107XG4gICAgLy8vXG4gICAgdGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzID1cbiAgICAgICAgdGFiLm5hbWUgPT0gJ2dlbmVyYWwnXG4gICAgICAgICAgPyAodGhpcy5jb25maWcoKT8ucHJvcGVydGllcyA/PyBbXSlcbiAgICAgICAgICA6ICgoKHRoaXMuY29uZmlnKCk/LmNvbXBvbmVudHMgYXMgYW55KVt0YWIubmFtZV0/LnByb3BlcnRpZXMgYXMgQVhQV2lkZ2V0UHJvcGVydHlbXSkgPz8gW10pO1xuICAgICAgLy9cbiAgICAgIGNvbnN0IHZpc2libGVQcm9wcyA9IHByb3BzLmZpbHRlcigoYykgPT4gYy52aXNpYmxlICE9IGZhbHNlKTtcbiAgICAgIHRoaXMuYWxsUG9wZXJ0aWVzLnB1c2goLi4ucHJvcHMpO1xuICAgICAgdGFiLmdyb3VwcyA9IHVuaW9uQnkoXG4gICAgICAgIHNvcnRCeShcbiAgICAgICAgICB2aXNpYmxlUHJvcHMubWFwKChwZykgPT4gKHtcbiAgICAgICAgICAgIGlzQ29sbGFwc2VkOiAhIXRoaXMuZ3JvdXBDb2xsYXBzZWRTdGF0ZXMuZ2V0KHBnLmdyb3VwLm5hbWUpLFxuICAgICAgICAgICAgbmFtZTogcGcuZ3JvdXAubmFtZSxcbiAgICAgICAgICAgIHRpdGxlOiBwZy5ncm91cC50aXRsZSxcbiAgICAgICAgICAgIHByb3BzOiBzb3J0QnkoXG4gICAgICAgICAgICAgIHZpc2libGVQcm9wcy5maWx0ZXIoKHApID0+IHAuZ3JvdXAubmFtZSA9PSBwZy5ncm91cC5uYW1lICYmIHBnLnZpc2libGUpLFxuICAgICAgICAgICAgICBbJ29yZGVyJywgJ3RpdGxlJ10sXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgICBbJ29yZGVyJywgJ3RpdGxlJ10sXG4gICAgICAgICksXG4gICAgICAgICduYW1lJyxcbiAgICAgICkuZmlsdGVyKChjKSA9PiBjLnByb3BzLmxlbmd0aCk7XG4gICAgfSk7XG4gICAgdGhpcy50YWJzLnNldCh0YWJzLmZpbHRlcigoYykgPT4gYy5ncm91cHMubGVuZ3RoKSk7XG4gICAgLy9cbiAgICB0aGlzLmluaXRpYWxDb250ZXh0ID0gdGhpcy5hbGxQb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChjKSA9PlxuICAgICAgICAgICghaXNBcnJheShjLnNjaGVtYS5kZWZhdWx0VmFsdWUpICYmICFpc05pbChjLnNjaGVtYS5kZWZhdWx0VmFsdWUpKSB8fFxuICAgICAgICAgIChpc0FycmF5KGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSkgJiYgIWlzRW1wdHkoYy5zY2hlbWEuZGVmYXVsdFZhbHVlKSksXG4gICAgICApXG4gICAgICAucmVkdWNlKChhY2MsIGMpID0+IHtcbiAgICAgICAgc2V0KGFjYywgYy5zY2hlbWEuaW50ZXJmYWNlLnBhdGgsIGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSk7XG4gICAgLy9cbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LnNldChtZXJnZShjbG9uZURlZXAodGhpcy5pbml0aWFsQ29udGV4dCksIHRoaXMud2lkZ2V0KCkpKTtcbiAgICAgIHRoaXMub25DaGFuZ2VkLmVtaXQoeyB2YWx1ZXM6IHRoaXMuY29udGV4dCgpLCBtb2RlOiAnaW5pdCcgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dENoYW5nZShlOiBBWFBMYXlvdXRDb250ZXh0Q2hhbmdlRXZlbnQpIHtcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250ZXh0LnNldChlLmRhdGEpO1xuICAgICAgdGhpcy5vbkNoYW5nZWQuZW1pdCh7IHZhbHVlczogdGhpcy5jb250ZXh0KCksIG1vZGU6IGUuc3RhdGUgPT0gJ2luaXRpYXRlZCcgPyAnaW5pdCcgOiAndXBkYXRlJyB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVUYWJDaGFuZ2UoZXZlbnQ6IEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbmR4ID0gZXZlbnQuaW5kZXg7XG4gICAgaWYgKHRoaXMuY3VycmVudFRhYkluZGV4KCkgIT0gaW5keCkge1xuICAgICAgdGhpcy5jdXJyZW50VGFiSW5kZXguc2V0KGluZHgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb2xsYXBzZWRDaGFuZ2UoZ3JvdXA6IHN0cmluZywgY29sbGFwc2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5ncm91cENvbGxhcHNlZFN0YXRlcy5zZXQoZ3JvdXAsIGNvbGxhcHNlZCk7XG4gIH1cblxufVxuIiwiPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJjb250ZXh0KClcIiAob25Db250ZXh0Q2hhbmdlZCk9XCJoYW5kbGVDb250ZXh0Q2hhbmdlKCRldmVudClcIj5cbiAgQGlmIChtb2RlKCkgPT0gJ2FkdmFuY2VkJykge1xuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sXCI+XG4gICAgICBAaWYgKHRhYnMoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1wYi0yXCI+XG4gICAgICAgICAgPGF4LXRhYnMgbG9vaz1cImRlZmF1bHRcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cImhhbmRsZVRhYkNoYW5nZSgkZXZlbnQpXCIgW2xvb2tdPVwiJ3dpdGgtbGluZSdcIj5cbiAgICAgICAgICAgIEBmb3IgKHRhYiBvZiB0YWJzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8YXgtdGFiLWl0ZW0gW3RleHRdPVwidGFiLnRpdGxlXCIgW2tleV09XCIkaW5kZXgudG9TdHJpbmcoKVwiIFthY3RpdmVdPVwiY3VycmVudFRhYkluZGV4KCkgPT09ICRpbmRleFwiPlxuICAgICAgICAgICAgICA8L2F4LXRhYi1pdGVtPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYXgtdGFicz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleC0xIGF4LW92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgPGF4LWNvbGxhcHNlLWdyb3VwIGNsYXNzPVwiYXgtaC1maXRcIiBbbG9va109XCInZmxhdCdcIj5cbiAgICAgICAgICBAZm9yIChncm91cCBvZiBncm91cHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YXgtY29sbGFwc2VcbiAgICAgICAgICAgICAgY2xhc3M9XCIhYXgtbWItMFwiXG4gICAgICAgICAgICAgIFtjYXB0aW9uXT1cImdyb3VwLnRpdGxlXCJcbiAgICAgICAgICAgICAgWyhpc0NvbGxhcHNlZCldPVwiZ3JvdXAuaXNDb2xsYXBzZWRcIlxuICAgICAgICAgICAgICAoaXNDb2xsYXBzZWRDaGFuZ2UpPVwiaGFuZGxlQ29sbGFwc2VkQ2hhbmdlKGdyb3VwLm5hbWUsICRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHAgb2YgZ3JvdXAucHJvcHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTEgYXgtcHktMlwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57eyBwLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHAuc2NoZW1hLmludGVyZmFjZSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJwLnNjaGVtYS5pbnRlcmZhY2VcIiBbbW9kZV09XCInZWRpdCdcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2F4LWNvbGxhcHNlPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1jb2xsYXBzZS1ncm91cD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG4gIDwhLS0gU2ltcGxlLS0+XG4gIEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1wLTQgYXgtZ2FwLTRcIj5cbiAgICAgIDwhLS0gZ3JvdXBzIC0tPlxuICAgICAgQGZvciAoZ3JvdXAgb2YgZ3JvdXBzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8IS0tIHByb3BzIC0tPlxuICAgICAgICBAZm9yIChwIG9mIGdyb3VwLnByb3BzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1mb250LXNlbWlib2xkXCI+e3sgcC50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgQGlmIChwLnNjaGVtYS5pbnRlcmZhY2UpIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBheHAtd2lkZ2V0LXJlbmRlcmVyIFtub2RlXT1cInAuc2NoZW1hLmludGVyZmFjZVwiIFttb2RlXT1cIidlZGl0J1wiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2F4cC13aWRnZXRzLWNvbnRhaW5lcj5cbiJdfQ==","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { DragDropModule, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { camelCase, cloneDeep } from 'lodash-es';\nimport { AXP_EXTRA_PROPERTY_TYPES } from './extra-properties.types';\nimport { AXPWidgetPropertyViewerComponent } from '../property-viewer/widget-property-viewer.component';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/form\";\nimport * as i3 from \"@acorex/components/label\";\nimport * as i4 from \"@acorex/components/text-box\";\nimport * as i5 from \"@acorex/components/select-box\";\nimport * as i6 from \"@acorex/components/button\";\nimport * as i7 from \"@acorex/components/decorators\";\nimport * as i8 from \"@angular/cdk/drag-drop\";\nimport * as i9 from \"@angular/common\";\nimport * as i10 from \"@acorex/core/translation\";\nexport class AXPExtraPropertiesSchemaComponent {\n constructor() {\n //#region ---- Inputs ----\n this.schema = input([], ...(ngDevMode ? [{ debugName: \"schema\" }] : []));\n this.mode = input('edit', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n //#endregion\n //#region ---- Outputs ----\n this.schemaChange = output();\n //#endregion\n //#region ---- Services & Dependencies ----\n this.providedTypes = inject(AXP_EXTRA_PROPERTY_TYPES, { optional: true }) ?? [];\n this.translationService = inject(AXTranslationService);\n //#endregion\n //#region ---- Class Properties ----\n this.newTitle = signal('', ...(ngDevMode ? [{ debugName: \"newTitle\" }] : []));\n this.newTypeId = signal('', ...(ngDevMode ? [{ debugName: \"newTypeId\" }] : []));\n this.typeOptions = computed(() => this.providedTypes, ...(ngDevMode ? [{ debugName: \"typeOptions\" }] : []));\n this.canAdd = computed(() => {\n const title = this.newTitle()?.trim();\n const typeId = this.newTypeId();\n const key = this.deriveKey(title);\n if (!key || !title || !typeId)\n return false;\n return !this.schema().some((i) => i.key === key);\n }, ...(ngDevMode ? [{ debugName: \"canAdd\" }] : []));\n // Selection state for right panel editor\n this.selectedKey = signal(null, ...(ngDevMode ? [{ debugName: \"selectedKey\" }] : []));\n this.selectedItem = computed(() => this.schema().find((i) => i.key === this.selectedKey()) ?? null, ...(ngDevMode ? [{ debugName: \"selectedItem\" }] : []));\n // Auto-select first item when schema changes or current selection removed\n effect(() => {\n const items = this.schema();\n const current = this.selectedKey();\n if (!items.length) {\n if (current !== null)\n this.selectedKey.set(null);\n return;\n }\n if (!current || !items.some((i) => i.key === current)) {\n this.selectedKey.set(items[0].key);\n }\n });\n }\n //#endregion\n //#region ---- Utility Methods ----\n handleAdd() {\n if (!this.canAdd())\n return;\n const type = this.typeOptions().find((t) => t.id === this.newTypeId());\n const title = this.newTitle().trim();\n const key = this.deriveKey(title);\n const next = {\n key,\n title,\n type: this.newTypeId(),\n options: cloneDeep(type?.defaultOptions ?? {}),\n };\n const updated = [...this.schema(), next];\n this.schemaChange.emit(updated);\n this.newTitle.set('');\n this.newTypeId.set('');\n // select newly added item\n this.selectedKey.set(key);\n }\n handleRemove(key) {\n const updated = this.schema().filter((i) => i.key !== key);\n this.schemaChange.emit(updated);\n if (this.selectedKey() === key) {\n this.selectedKey.set(updated.length ? updated[0].key : null);\n }\n }\n handleDrop(event) {\n const arr = [...this.schema()];\n moveItemInArray(arr, event.previousIndex, event.currentIndex);\n this.schemaChange.emit(arr);\n }\n handleUpdateTitle(key, title) {\n const updated = this.schema().map((it) => (it.key === key ? { ...it, title } : it));\n this.schemaChange.emit(updated);\n }\n handleUpdateType(key, typeId) {\n const type = this.typeOptions().find((t) => t.id === typeId);\n const updated = this.schema().map((it) => it.key === key ? { ...it, type: typeId, options: cloneDeep(type?.defaultOptions ?? {}) } : it);\n this.schemaChange.emit(updated);\n }\n newTypeChanged(val) {\n this.newTypeId.set(val);\n const t = this.typeOptions().find((x) => x.id === val);\n if (t) {\n const autoTitle = t.title ?? val;\n if (!this.newTitle()?.trim())\n this.newTitle.set(autoTitle);\n }\n }\n handleTitleChange(val) {\n this.newTitle.set(val);\n }\n handleSelect(key) {\n this.selectedKey.set(key);\n }\n handleViewerChanged(e) {\n // Ignore initial emissions to prevent change detection loops\n if (e?.mode === 'init')\n return;\n const key = this.selectedKey();\n if (!key)\n return;\n const nextOptions = e?.values?.options ?? {};\n const updated = this.schema().map((it) => (it.key === key ? { ...it, options: cloneDeep(nextOptions) } : it));\n this.schemaChange.emit(updated);\n }\n deriveKey(input) {\n if (!input)\n return '';\n let k = camelCase(String(input));\n k = k.replace(/[^a-zA-Z0-9_]/g, '');\n if (!/^[a-zA-Z_]/.test(k))\n k = `_${k}`;\n const exists = (candidate) => this.schema().some((i) => i.key === candidate);\n if (!exists(k))\n return k;\n let i = 1;\n while (exists(`${k}${i}`))\n i++;\n return `${k}${i}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExtraPropertiesSchemaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPExtraPropertiesSchemaComponent, isStandalone: true, selector: \"axp-extra-properties-schema\", inputs: { schema: { classPropertyName: \"schema\", publicName: \"schema\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { schemaChange: \"schemaChange\" }, host: { classAttribute: \"ax-flex ax-flex-1 ax-h-full ax-gap-4 ax-p-4\" }, ngImport: i0, template: \"<!-- Left Panel: list/manage properties -->\\n<div class=\\\"ax-flex ax-flex-col ax-gap-3 ax-min-h-0 ax-h-full ax-w-2/3\\\">\\n <div class=\\\"ax-overflow-y-auto ax-min-h-0 ax-h-full ax-pe-2 -ax-me-2\\\">\\n <div cdkDropList (cdkDropListDropped)=\\\"handleDrop($event)\\\" class=\\\"ax-flex ax-flex-col ax-gap-3\\\">\\n @for (item of schema(); track item.key) {\\n @if (mode() === 'edit') {\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-4 ax-items-center ax-rounded ax-border ax-p-3 ax-cursor-pointer ax-lightest-surface \\\"\\n [class.!ax-lighter-surface]=\\\"item.key === selectedKey()\\\" (click)=\\\"handleSelect(item.key)\\\" cdkDrag\\n [cdkDragDisabled]=\\\"false\\\">\\n <div class=\\\"ax-col-span-12 md:ax-col-span-4 ax-flex ax-items-center ax-gap-3\\\">\\n <ax-icon class=\\\"fa-solid fa-grip-dots-vertical ax-cursor-move ax-text-neutral-500\\\"\\n cdkDragHandle></ax-icon>\\n <div>\\n <div class=\\\"ax-font-semibold\\\">{{ item.title }}</div>\\n </div>\\n </div>\\n <div class=\\\"ax-col-span-12 md:ax-col-span-7 ax-grid ax-grid-cols-12 ax-gap-4 ax-items-center\\\">\\n <ax-form-field class=\\\"ax-col-span-12 md:ax-col-span-6\\\">\\n <ax-select-box [value]=\\\"item.type\\\" [dataSource]=\\\"typeOptions()\\\" valueField=\\\"id\\\"\\n textField=\\\"title\\\"\\n (onValueChanged)=\\\"handleUpdateType(item.key, $event.value)\\\"></ax-select-box>\\n </ax-form-field>\\n <ax-form-field class=\\\"ax-col-span-12 md:ax-col-span-6\\\">\\n <ax-text-box [ngModel]=\\\"item.title\\\"\\n (onValueChanged)=\\\"handleUpdateTitle(item.key, $event.value)\\\"></ax-text-box>\\n </ax-form-field>\\n </div>\\n <div class=\\\"ax-hidden md:ax-block md:ax-col-span-1 md:ax-justify-self-end\\\">\\n <ax-button look=\\\"blank\\\" color=\\\"danger\\\" (onClick)=\\\"handleRemove(item.key)\\\">\\n <ax-prefix><ax-icon class=\\\"fa-light fa-trash-can\\\"></ax-icon></ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n } @else {\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-1 ax-rounded ax-border ax-p-3\\\">\\n <div class=\\\"ax-font-semibold\\\">{{ item.title }}</div>\\n <div class=\\\"ax-col-span-12 ax-text-xs ax-text-muted\\\">{{ item.key }}</div>\\n </div>\\n }\\n } @empty {\\n <div class=\\\"ax-text-sm ax-text-gray-400\\\">{{ '@extra-properties:messages.no-schema-fields' | translate |\\n async\\n }}</div>\\n }\\n\\n @if (mode() === 'edit') {\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-4 ax-items-end ax-mt-4 ax-border-t ax-border-dashed ax-pt-4\\\">\\n <!-- Type -->\\n <ax-form-field class=\\\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-6\\\">\\n <ax-label>{{ '@extra-properties:labels.type' | translate | async }}</ax-label>\\n <ax-select-box [ngModel]=\\\"newTypeId()\\\" [dataSource]=\\\"typeOptions()\\\" valueField=\\\"id\\\"\\n textField=\\\"title\\\" (onValueChanged)=\\\"newTypeChanged($event.value)\\\"></ax-select-box>\\n </ax-form-field>\\n <!-- Title -->\\n <ax-form-field class=\\\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-6\\\">\\n <ax-label>{{ '@extra-properties:labels.title' | translate | async }}</ax-label>\\n <ax-text-box [ngModel]=\\\"newTitle()\\\"\\n (onValueChanged)=\\\"handleTitleChange($event.value)\\\"></ax-text-box>\\n </ax-form-field>\\n <!-- Add -->\\n <div class=\\\"ax-col-span-12 ax-flex ax-justify-end\\\">\\n <ax-button look=\\\"solid\\\" (onClick)=\\\"handleAdd()\\\" [disabled]=\\\"!canAdd()\\\"\\n text=\\\"{{ '@extra-properties:actions.add-field' | translate | async }}\\\">\\n <ax-prefix><ax-icon class=\\\"fa-solid fa-add\\\"></ax-icon></ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n</div>\\n\\n<!-- Right Panel: widget property viewer for selected item -->\\n<div class=\\\"ax-w-1/3 ax-border ax-rounded ax-h-full ax-flex ax-flex-col ax-lightest-surface\\\">\\n @if (mode() === 'edit' && selectedItem()) {\\n <div class=\\\"ax-p-4 ax-font-semibold ax-border-b ax-lighter-surface\\\">\\n {{selectedItem()?.title}}\\n </div>\\n <div class=\\\"ax-overflow-y-auto ax-flex-1\\\">\\n <axp-widget-property-viewer [widget]=\\\"{ type: selectedItem()!.type, options: selectedItem()!.options }\\\"\\n [mode]=\\\"'advanced'\\\" (onChanged)=\\\"handleViewerChanged($event)\\\" />\\n </div>\\n }\\n @else {\\n <div class=\\\"ax-text-sm ax-text-muted ax-p-4 ax-text-center\\\">{{ '@extra-properties:messages.select-field-to-edit' |\\n translate | async }}</div>\\n }\\n</div>\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i2.AXFormFieldComponent, selector: \"ax-form-field\", inputs: [\"labelMode\"] }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i3.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i4.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i5.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\", \"onItemSelected\", \"onItemClick\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i6.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i7.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i7.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: DragDropModule }, { kind: \"directive\", type: i8.CdkDropList, selector: \"[cdkDropList], cdk-drop-list\", inputs: [\"cdkDropListConnectedTo\", \"cdkDropListData\", \"cdkDropListOrientation\", \"id\", \"cdkDropListLockAxis\", \"cdkDropListDisabled\", \"cdkDropListSortingDisabled\", \"cdkDropListEnterPredicate\", \"cdkDropListSortPredicate\", \"cdkDropListAutoScrollDisabled\", \"cdkDropListAutoScrollStep\", \"cdkDropListElementContainer\", \"cdkDropListHasAnchor\"], outputs: [\"cdkDropListDropped\", \"cdkDropListEntered\", \"cdkDropListExited\", \"cdkDropListSorted\"], exportAs: [\"cdkDropList\"] }, { kind: \"directive\", type: i8.CdkDrag, selector: \"[cdkDrag]\", inputs: [\"cdkDragData\", \"cdkDragLockAxis\", \"cdkDragRootElement\", \"cdkDragBoundary\", \"cdkDragStartDelay\", \"cdkDragFreeDragPosition\", \"cdkDragDisabled\", \"cdkDragConstrainPosition\", \"cdkDragPreviewClass\", \"cdkDragPreviewContainer\", \"cdkDragScale\"], outputs: [\"cdkDragStarted\", \"cdkDragReleased\", \"cdkDragEnded\", \"cdkDragEntered\", \"cdkDragExited\", \"cdkDragDropped\", \"cdkDragMoved\"], exportAs: [\"cdkDrag\"] }, { kind: \"directive\", type: i8.CdkDragHandle, selector: \"[cdkDragHandle]\", inputs: [\"cdkDragHandleDisabled\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"component\", type: AXPWidgetPropertyViewerComponent, selector: \"axp-widget-property-viewer\", inputs: [\"widget\", \"mode\"], outputs: [\"onChanged\"] }, { kind: \"pipe\", type: i9.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i10.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExtraPropertiesSchemaComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-extra-properties-schema', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n FormsModule,\n AXFormModule,\n AXLabelModule,\n AXTextBoxModule,\n AXSelectBoxModule,\n AXButtonModule,\n AXDecoratorModule,\n DragDropModule,\n AXTranslationModule,\n AXPWidgetPropertyViewerComponent,\n ], standalone: true, host: {\n class: 'ax-flex ax-flex-1 ax-h-full ax-gap-4 ax-p-4',\n }, template: \"<!-- Left Panel: list/manage properties -->\\n<div class=\\\"ax-flex ax-flex-col ax-gap-3 ax-min-h-0 ax-h-full ax-w-2/3\\\">\\n <div class=\\\"ax-overflow-y-auto ax-min-h-0 ax-h-full ax-pe-2 -ax-me-2\\\">\\n <div cdkDropList (cdkDropListDropped)=\\\"handleDrop($event)\\\" class=\\\"ax-flex ax-flex-col ax-gap-3\\\">\\n @for (item of schema(); track item.key) {\\n @if (mode() === 'edit') {\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-4 ax-items-center ax-rounded ax-border ax-p-3 ax-cursor-pointer ax-lightest-surface \\\"\\n [class.!ax-lighter-surface]=\\\"item.key === selectedKey()\\\" (click)=\\\"handleSelect(item.key)\\\" cdkDrag\\n [cdkDragDisabled]=\\\"false\\\">\\n <div class=\\\"ax-col-span-12 md:ax-col-span-4 ax-flex ax-items-center ax-gap-3\\\">\\n <ax-icon class=\\\"fa-solid fa-grip-dots-vertical ax-cursor-move ax-text-neutral-500\\\"\\n cdkDragHandle></ax-icon>\\n <div>\\n <div class=\\\"ax-font-semibold\\\">{{ item.title }}</div>\\n </div>\\n </div>\\n <div class=\\\"ax-col-span-12 md:ax-col-span-7 ax-grid ax-grid-cols-12 ax-gap-4 ax-items-center\\\">\\n <ax-form-field class=\\\"ax-col-span-12 md:ax-col-span-6\\\">\\n <ax-select-box [value]=\\\"item.type\\\" [dataSource]=\\\"typeOptions()\\\" valueField=\\\"id\\\"\\n textField=\\\"title\\\"\\n (onValueChanged)=\\\"handleUpdateType(item.key, $event.value)\\\"></ax-select-box>\\n </ax-form-field>\\n <ax-form-field class=\\\"ax-col-span-12 md:ax-col-span-6\\\">\\n <ax-text-box [ngModel]=\\\"item.title\\\"\\n (onValueChanged)=\\\"handleUpdateTitle(item.key, $event.value)\\\"></ax-text-box>\\n </ax-form-field>\\n </div>\\n <div class=\\\"ax-hidden md:ax-block md:ax-col-span-1 md:ax-justify-self-end\\\">\\n <ax-button look=\\\"blank\\\" color=\\\"danger\\\" (onClick)=\\\"handleRemove(item.key)\\\">\\n <ax-prefix><ax-icon class=\\\"fa-light fa-trash-can\\\"></ax-icon></ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n } @else {\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-1 ax-rounded ax-border ax-p-3\\\">\\n <div class=\\\"ax-font-semibold\\\">{{ item.title }}</div>\\n <div class=\\\"ax-col-span-12 ax-text-xs ax-text-muted\\\">{{ item.key }}</div>\\n </div>\\n }\\n } @empty {\\n <div class=\\\"ax-text-sm ax-text-gray-400\\\">{{ '@extra-properties:messages.no-schema-fields' | translate |\\n async\\n }}</div>\\n }\\n\\n @if (mode() === 'edit') {\\n <div class=\\\"ax-grid ax-grid-cols-12 ax-gap-4 ax-items-end ax-mt-4 ax-border-t ax-border-dashed ax-pt-4\\\">\\n <!-- Type -->\\n <ax-form-field class=\\\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-6\\\">\\n <ax-label>{{ '@extra-properties:labels.type' | translate | async }}</ax-label>\\n <ax-select-box [ngModel]=\\\"newTypeId()\\\" [dataSource]=\\\"typeOptions()\\\" valueField=\\\"id\\\"\\n textField=\\\"title\\\" (onValueChanged)=\\\"newTypeChanged($event.value)\\\"></ax-select-box>\\n </ax-form-field>\\n <!-- Title -->\\n <ax-form-field class=\\\"ax-col-span-12 md:ax-col-span-6 lg:ax-col-span-6\\\">\\n <ax-label>{{ '@extra-properties:labels.title' | translate | async }}</ax-label>\\n <ax-text-box [ngModel]=\\\"newTitle()\\\"\\n (onValueChanged)=\\\"handleTitleChange($event.value)\\\"></ax-text-box>\\n </ax-form-field>\\n <!-- Add -->\\n <div class=\\\"ax-col-span-12 ax-flex ax-justify-end\\\">\\n <ax-button look=\\\"solid\\\" (onClick)=\\\"handleAdd()\\\" [disabled]=\\\"!canAdd()\\\"\\n text=\\\"{{ '@extra-properties:actions.add-field' | translate | async }}\\\">\\n <ax-prefix><ax-icon class=\\\"fa-solid fa-add\\\"></ax-icon></ax-prefix>\\n </ax-button>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n</div>\\n\\n<!-- Right Panel: widget property viewer for selected item -->\\n<div class=\\\"ax-w-1/3 ax-border ax-rounded ax-h-full ax-flex ax-flex-col ax-lightest-surface\\\">\\n @if (mode() === 'edit' && selectedItem()) {\\n <div class=\\\"ax-p-4 ax-font-semibold ax-border-b ax-lighter-surface\\\">\\n {{selectedItem()?.title}}\\n </div>\\n <div class=\\\"ax-overflow-y-auto ax-flex-1\\\">\\n <axp-widget-property-viewer [widget]=\\\"{ type: selectedItem()!.type, options: selectedItem()!.options }\\\"\\n [mode]=\\\"'advanced'\\\" (onChanged)=\\\"handleViewerChanged($event)\\\" />\\n </div>\\n }\\n @else {\\n <div class=\\\"ax-text-sm ax-text-muted ax-p-4 ax-text-center\\\">{{ '@extra-properties:messages.select-field-to-edit' |\\n translate | async }}</div>\\n }\\n</div>\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtcHJvcGVydGllcy1zY2hlbWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2V4dHJhLXByb3BlcnRpZXMvZXh0cmEtcHJvcGVydGllcy1zY2hlbWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2V4dHJhLXByb3BlcnRpZXMvZXh0cmEtcHJvcGVydGllcy1zY2hlbWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFB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RixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQUUsQ0FBQyxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNwQixDQUFDOzhHQWpKVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyx1Y0MvQzlDLHdrS0F1Rk0sMkNEekRGLFlBQVksOEJBQ1osV0FBVyw4VkFDWCxZQUFZLHNJQUNaLGFBQWEsZ0tBQ2IsZUFBZSxxYkFDZixpQkFBaUIsK3JCQUNqQixjQUFjLDZYQUNkLGlCQUFpQixzVkFDakIsY0FBYyxtb0NBQ2QsbUJBQW1CLCtCQUNuQixnQ0FBZ0M7OzJGQU92QixpQ0FBaUM7a0JBdEI3QyxTQUFTOytCQUNFLDZCQUE2QixtQkFFdEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGdDQUFnQztxQkFDakMsY0FDVyxJQUFJLFFBQ1Y7d0JBQ0osS0FBSyxFQUFFLDZDQUE2QztxQkFDckQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlLCBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgV3JpdGFibGVTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2FtZWxDYXNlLCBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQX0VYVFJBX1BST1BFUlRZX1RZUEVTLCBBWFBFeHRyYVByb3BlcnR5U2NoZW1hSXRlbSwgQVhQRXh0cmFQcm9wZXJ0eVR5cGUgfSBmcm9tICcuL2V4dHJhLXByb3BlcnRpZXMudHlwZXMnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wcm9wZXJ0eS12aWV3ZXIvd2lkZ2V0LXByb3BlcnR5LXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtZXh0cmEtcHJvcGVydGllcy1zY2hlbWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXh0cmEtcHJvcGVydGllcy1zY2hlbWEuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhMYWJlbE1vZHVsZSxcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudCxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYXgtZmxleCBheC1mbGV4LTEgYXgtaC1mdWxsIGF4LWdhcC00IGF4LXAtNCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEV4dHJhUHJvcGVydGllc1NjaGVtYUNvbXBvbmVudCB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgSW5wdXRzICAgLS0tLVxuXG4gIHNjaGVtYSA9IGlucHV0PEFYUEV4dHJhUHJvcGVydHlTY2hlbWFJdGVtW10+KFtdKTtcbiAgbW9kZSA9IGlucHV0PCdlZGl0JyB8ICd2aWV3Jz4oJ2VkaXQnKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIE91dHB1dHMgICAtLS0tXG5cbiAgc2NoZW1hQ2hhbmdlID0gb3V0cHV0PEFYUEV4dHJhUHJvcGVydHlTY2hlbWFJdGVtW10+KCk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVkVHlwZXMgPSBpbmplY3QoQVhQX0VYVFJBX1BST1BFUlRZX1RZUEVTLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDbGFzcyBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gIHByb3RlY3RlZCBuZXdUaXRsZTogV3JpdGFibGVTaWduYWw8c3RyaW5nPiA9IHNpZ25hbCgnJyk7XG4gIHByb3RlY3RlZCBuZXdUeXBlSWQ6IFdyaXRhYmxlU2lnbmFsPHN0cmluZz4gPSBzaWduYWwoJycpO1xuXG4gIHByb3RlY3RlZCB0eXBlT3B0aW9ucyA9IGNvbXB1dGVkPEFYUEV4dHJhUHJvcGVydHlUeXBlW10+KCgpID0+IHRoaXMucHJvdmlkZWRUeXBlcyk7XG5cblxuICBwcm90ZWN0ZWQgY2FuQWRkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIGNvbnN0IHRpdGxlID0gdGhpcy5uZXdUaXRsZSgpPy50cmltKCk7XG4gICAgY29uc3QgdHlwZUlkID0gdGhpcy5uZXdUeXBlSWQoKTtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmRlcml2ZUtleSh0aXRsZSk7XG4gICAgaWYgKCFrZXkgfHwgIXRpdGxlIHx8ICF0eXBlSWQpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIXRoaXMuc2NoZW1hKCkuc29tZSgoaSkgPT4gaS5rZXkgPT09IGtleSk7XG4gIH0pO1xuXG4gIC8vIFNlbGVjdGlvbiBzdGF0ZSBmb3IgcmlnaHQgcGFuZWwgZWRpdG9yXG4gIHByb3RlY3RlZCBzZWxlY3RlZEtleSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbSA9IGNvbXB1dGVkPEFYUEV4dHJhUHJvcGVydHlTY2hlbWFJdGVtIHwgbnVsbD4oKCkgPT5cbiAgICB0aGlzLnNjaGVtYSgpLmZpbmQoKGkpID0+IGkua2V5ID09PSB0aGlzLnNlbGVjdGVkS2V5KCkpID8/IG51bGwsXG4gICk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gQXV0by1zZWxlY3QgZmlyc3QgaXRlbSB3aGVuIHNjaGVtYSBjaGFuZ2VzIG9yIGN1cnJlbnQgc2VsZWN0aW9uIHJlbW92ZWRcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnNjaGVtYSgpO1xuICAgICAgY29uc3QgY3VycmVudCA9IHRoaXMuc2VsZWN0ZWRLZXkoKTtcbiAgICAgIGlmICghaXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIGlmIChjdXJyZW50ICE9PSBudWxsKSB0aGlzLnNlbGVjdGVkS2V5LnNldChudWxsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKCFjdXJyZW50IHx8ICFpdGVtcy5zb21lKChpKSA9PiBpLmtleSA9PT0gY3VycmVudCkpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEtleS5zZXQoaXRlbXNbMF0ua2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgVXRpbGl0eSBNZXRob2RzICAgLS0tLVxuXG4gIHByb3RlY3RlZCBoYW5kbGVBZGQoKSB7XG4gICAgaWYgKCF0aGlzLmNhbkFkZCgpKSByZXR1cm47XG4gICAgY29uc3QgdHlwZSA9IHRoaXMudHlwZU9wdGlvbnMoKS5maW5kKCh0KSA9PiB0LmlkID09PSB0aGlzLm5ld1R5cGVJZCgpKTtcbiAgICBjb25zdCB0aXRsZSA9IHRoaXMubmV3VGl0bGUoKS50cmltKCk7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5kZXJpdmVLZXkodGl0bGUpO1xuICAgIGNvbnN0IG5leHQ6IEFYUEV4dHJhUHJvcGVydHlTY2hlbWFJdGVtID0ge1xuICAgICAga2V5LFxuICAgICAgdGl0bGUsXG4gICAgICB0eXBlOiB0aGlzLm5ld1R5cGVJZCgpLFxuICAgICAgb3B0aW9uczogY2xvbmVEZWVwKHR5cGU/LmRlZmF1bHRPcHRpb25zID8/IHt9KSxcbiAgICB9O1xuICAgIGNvbnN0IHVwZGF0ZWQgPSBbLi4udGhpcy5zY2hlbWEoKSwgbmV4dF07XG4gICAgdGhpcy5zY2hlbWFDaGFuZ2UuZW1pdCh1cGRhdGVkKTtcbiAgICB0aGlzLm5ld1RpdGxlLnNldCgnJyk7XG4gICAgdGhpcy5uZXdUeXBlSWQuc2V0KCcnKTtcbiAgICAvLyBzZWxlY3QgbmV3bHkgYWRkZWQgaXRlbVxuICAgIHRoaXMuc2VsZWN0ZWRLZXkuc2V0KGtleSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUmVtb3ZlKGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgdXBkYXRlZCA9IHRoaXMuc2NoZW1hKCkuZmlsdGVyKChpKSA9PiBpLmtleSAhPT0ga2V5KTtcbiAgICB0aGlzLnNjaGVtYUNoYW5nZS5lbWl0KHVwZGF0ZWQpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkS2V5KCkgPT09IGtleSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEtleS5zZXQodXBkYXRlZC5sZW5ndGggPyB1cGRhdGVkWzBdLmtleSA6IG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxBWFBFeHRyYVByb3BlcnR5U2NoZW1hSXRlbVtdPikge1xuICAgIGNvbnN0IGFyciA9IFsuLi50aGlzLnNjaGVtYSgpXTtcbiAgICBtb3ZlSXRlbUluQXJyYXkoYXJyLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuc2NoZW1hQ2hhbmdlLmVtaXQoYXJyKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVVcGRhdGVUaXRsZShrZXk6IHN0cmluZywgdGl0bGU6IHN0cmluZykge1xuICAgIGNvbnN0IHVwZGF0ZWQgPSB0aGlzLnNjaGVtYSgpLm1hcCgoaXQpID0+IChpdC5rZXkgPT09IGtleSA/IHsgLi4uaXQsIHRpdGxlIH0gOiBpdCkpO1xuICAgIHRoaXMuc2NoZW1hQ2hhbmdlLmVtaXQodXBkYXRlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVXBkYXRlVHlwZShrZXk6IHN0cmluZywgdHlwZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy50eXBlT3B0aW9ucygpLmZpbmQoKHQpID0+IHQuaWQgPT09IHR5cGVJZCk7XG4gICAgY29uc3QgdXBkYXRlZCA9IHRoaXMuc2NoZW1hKCkubWFwKChpdCkgPT5cbiAgICAgIGl0LmtleSA9PT0ga2V5ID8geyAuLi5pdCwgdHlwZTogdHlwZUlkLCBvcHRpb25zOiBjbG9uZURlZXAodHlwZT8uZGVmYXVsdE9wdGlvbnMgPz8ge30pIH0gOiBpdCxcbiAgICApO1xuICAgIHRoaXMuc2NoZW1hQ2hhbmdlLmVtaXQodXBkYXRlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV3VHlwZUNoYW5nZWQodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5ld1R5cGVJZC5zZXQodmFsKTtcbiAgICBjb25zdCB0ID0gdGhpcy50eXBlT3B0aW9ucygpLmZpbmQoKHgpID0+IHguaWQgPT09IHZhbCk7XG4gICAgaWYgKHQpIHtcbiAgICAgIGNvbnN0IGF1dG9UaXRsZSA9IHQudGl0bGUgPz8gdmFsO1xuICAgICAgaWYgKCF0aGlzLm5ld1RpdGxlKCk/LnRyaW0oKSkgdGhpcy5uZXdUaXRsZS5zZXQoYXV0b1RpdGxlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVGl0bGVDaGFuZ2UodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLm5ld1RpdGxlLnNldCh2YWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVNlbGVjdChrZXk6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRLZXkuc2V0KGtleSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVmlld2VyQ2hhbmdlZChlOiB7IHZhbHVlczogYW55OyBtb2RlOiAnaW5pdCcgfCAndXBkYXRlJyB9KSB7XG4gICAgLy8gSWdub3JlIGluaXRpYWwgZW1pc3Npb25zIHRvIHByZXZlbnQgY2hhbmdlIGRldGVjdGlvbiBsb29wc1xuICAgIGlmIChlPy5tb2RlID09PSAnaW5pdCcpIHJldHVybjtcbiAgICBjb25zdCBrZXkgPSB0aGlzLnNlbGVjdGVkS2V5KCk7XG4gICAgaWYgKCFrZXkpIHJldHVybjtcbiAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGU/LnZhbHVlcz8ub3B0aW9ucyA/PyB7fTtcbiAgICBjb25zdCB1cGRhdGVkID0gdGhpcy5zY2hlbWEoKS5tYXAoKGl0KSA9PiAoaXQua2V5ID09PSBrZXkgPyB7IC4uLml0LCBvcHRpb25zOiBjbG9uZURlZXAobmV4dE9wdGlvbnMpIH0gOiBpdCkpO1xuICAgIHRoaXMuc2NoZW1hQ2hhbmdlLmVtaXQodXBkYXRlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVyaXZlS2V5KGlucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghaW5wdXQpIHJldHVybiAnJztcbiAgICBsZXQgayA9IGNhbWVsQ2FzZShTdHJpbmcoaW5wdXQpKTtcbiAgICBrID0gay5yZXBsYWNlKC9bXmEtekEtWjAtOV9dL2csICcnKTtcbiAgICBpZiAoIS9eW2EtekEtWl9dLy50ZXN0KGspKSBrID0gYF8ke2t9YDtcbiAgICBjb25zdCBleGlzdHMgPSAoY2FuZGlkYXRlOiBzdHJpbmcpID0+IHRoaXMuc2NoZW1hKCkuc29tZSgoaSkgPT4gaS5rZXkgPT09IGNhbmRpZGF0ZSk7XG4gICAgaWYgKCFleGlzdHMoaykpIHJldHVybiBrO1xuICAgIGxldCBpID0gMTtcbiAgICB3aGlsZSAoZXhpc3RzKGAke2t9JHtpfWApKSBpKys7XG4gICAgcmV0dXJuIGAke2t9JHtpfWA7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cblxuXG4iLCI8IS0tIExlZnQgUGFuZWw6IGxpc3QvbWFuYWdlIHByb3BlcnRpZXMgLS0+XG48ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtMyBheC1taW4taC0wIGF4LWgtZnVsbCBheC13LTIvM1wiPlxuICAgIDxkaXYgY2xhc3M9XCJheC1vdmVyZmxvdy15LWF1dG8gYXgtbWluLWgtMCBheC1oLWZ1bGwgYXgtcGUtMiAtYXgtbWUtMlwiPlxuICAgICAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiaGFuZGxlRHJvcCgkZXZlbnQpXCIgY2xhc3M9XCJheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC0zXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIHNjaGVtYSgpOyB0cmFjayBpdGVtLmtleSkge1xuICAgICAgICAgICAgQGlmIChtb2RlKCkgPT09ICdlZGl0Jykge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00IGF4LWl0ZW1zLWNlbnRlciBheC1yb3VuZGVkIGF4LWJvcmRlciBheC1wLTMgYXgtY3Vyc29yLXBvaW50ZXIgYXgtbGlnaHRlc3Qtc3VyZmFjZSBcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy4hYXgtbGlnaHRlci1zdXJmYWNlXT1cIml0ZW0ua2V5ID09PSBzZWxlY3RlZEtleSgpXCIgKGNsaWNrKT1cImhhbmRsZVNlbGVjdChpdGVtLmtleSlcIiBjZGtEcmFnXG4gICAgICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBtZDpheC1jb2wtc3Bhbi00IGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZ3JpcC1kb3RzLXZlcnRpY2FsIGF4LWN1cnNvci1tb3ZlIGF4LXRleHQtbmV1dHJhbC01MDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZT48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7IGl0ZW0udGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbC1zcGFuLTEyIG1kOmF4LWNvbC1zcGFuLTcgYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTQgYXgtaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1mb3JtLWZpZWxkIGNsYXNzPVwiYXgtY29sLXNwYW4tMTIgbWQ6YXgtY29sLXNwYW4tNlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXNlbGVjdC1ib3ggW3ZhbHVlXT1cIml0ZW0udHlwZVwiIFtkYXRhU291cmNlXT1cInR5cGVPcHRpb25zKClcIiB2YWx1ZUZpZWxkPVwiaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZD1cInRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlVXBkYXRlVHlwZShpdGVtLmtleSwgJGV2ZW50LnZhbHVlKVwiPjwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZCBjbGFzcz1cImF4LWNvbC1zcGFuLTEyIG1kOmF4LWNvbC1zcGFuLTZcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCBbbmdNb2RlbF09XCJpdGVtLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlVXBkYXRlVGl0bGUoaXRlbS5rZXksICRldmVudC52YWx1ZSlcIj48L2F4LXRleHQtYm94PlxuICAgICAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWhpZGRlbiBtZDpheC1ibG9jayBtZDpheC1jb2wtc3Bhbi0xIG1kOmF4LWp1c3RpZnktc2VsZi1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjb2xvcj1cImRhbmdlclwiIChvbkNsaWNrKT1cImhhbmRsZVJlbW92ZShpdGVtLmtleSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+PGF4LWljb24gY2xhc3M9XCJmYS1saWdodCBmYS10cmFzaC1jYW5cIj48L2F4LWljb24+PC9heC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1ncmlkIGF4LWdyaWQtY29scy0xMiBheC1nYXAtMSBheC1yb3VuZGVkIGF4LWJvcmRlciBheC1wLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZFwiPnt7IGl0ZW0udGl0bGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29sLXNwYW4tMTIgYXgtdGV4dC14cyBheC10ZXh0LW11dGVkXCI+e3sgaXRlbS5rZXkgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBAZW1wdHkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1ncmF5LTQwMFwiPnt7ICdAZXh0cmEtcHJvcGVydGllczptZXNzYWdlcy5uby1zY2hlbWEtZmllbGRzJyB8IHRyYW5zbGF0ZSB8XG4gICAgICAgICAgICAgICAgYXN5bmNcbiAgICAgICAgICAgICAgICB9fTwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKG1vZGUoKSA9PT0gJ2VkaXQnKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTQgYXgtaXRlbXMtZW5kIGF4LW10LTQgYXgtYm9yZGVyLXQgYXgtYm9yZGVyLWRhc2hlZCBheC1wdC00XCI+XG4gICAgICAgICAgICAgICAgPCEtLSBUeXBlIC0tPlxuICAgICAgICAgICAgICAgIDxheC1mb3JtLWZpZWxkIGNsYXNzPVwiYXgtY29sLXNwYW4tMTIgbWQ6YXgtY29sLXNwYW4tNiBsZzpheC1jb2wtc3Bhbi02XCI+XG4gICAgICAgICAgICAgICAgICAgIDxheC1sYWJlbD57eyAnQGV4dHJhLXByb3BlcnRpZXM6bGFiZWxzLnR5cGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8YXgtc2VsZWN0LWJveCBbbmdNb2RlbF09XCJuZXdUeXBlSWQoKVwiIFtkYXRhU291cmNlXT1cInR5cGVPcHRpb25zKClcIiB2YWx1ZUZpZWxkPVwiaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkPVwidGl0bGVcIiAob25WYWx1ZUNoYW5nZWQpPVwibmV3VHlwZUNoYW5nZWQoJGV2ZW50LnZhbHVlKVwiPjwvYXgtc2VsZWN0LWJveD5cbiAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPCEtLSBUaXRsZSAtLT5cbiAgICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZCBjbGFzcz1cImF4LWNvbC1zcGFuLTEyIG1kOmF4LWNvbC1zcGFuLTYgbGc6YXgtY29sLXNwYW4tNlwiPlxuICAgICAgICAgICAgICAgICAgICA8YXgtbGFiZWw+e3sgJ0BleHRyYS1wcm9wZXJ0aWVzOmxhYmVscy50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxheC10ZXh0LWJveCBbbmdNb2RlbF09XCJuZXdUaXRsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVUaXRsZUNoYW5nZSgkZXZlbnQudmFsdWUpXCI+PC9heC10ZXh0LWJveD5cbiAgICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPCEtLSBBZGQgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbC1zcGFuLTEyIGF4LWZsZXggYXgtanVzdGlmeS1lbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwic29saWRcIiAob25DbGljayk9XCJoYW5kbGVBZGQoKVwiIFtkaXNhYmxlZF09XCIhY2FuQWRkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD1cInt7ICdAZXh0cmEtcHJvcGVydGllczphY3Rpb25zLmFkZC1maWVsZCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGF4LXByZWZpeD48YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj48L2F4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBSaWdodCBQYW5lbDogd2lkZ2V0IHByb3BlcnR5IHZpZXdlciBmb3Igc2VsZWN0ZWQgaXRlbSAtLT5cbjxkaXYgY2xhc3M9XCJheC13LTEvMyBheC1ib3JkZXIgYXgtcm91bmRlZCAgYXgtaC1mdWxsIGF4LWZsZXggYXgtZmxleC1jb2wgYXgtbGlnaHRlc3Qtc3VyZmFjZVwiPlxuICAgIEBpZiAobW9kZSgpID09PSAnZWRpdCcgJiYgc2VsZWN0ZWRJdGVtKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LWZvbnQtc2VtaWJvbGQgYXgtYm9yZGVyLWIgYXgtbGlnaHRlci1zdXJmYWNlXCI+XG4gICAgICAgIHt7c2VsZWN0ZWRJdGVtKCk/LnRpdGxlfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtb3ZlcmZsb3cteS1hdXRvICBheC1mbGV4LTFcIj5cbiAgICAgICAgPGF4cC13aWRnZXQtcHJvcGVydHktdmlld2VyIFt3aWRnZXRdPVwieyB0eXBlOiBzZWxlY3RlZEl0ZW0oKSEudHlwZSwgb3B0aW9uczogc2VsZWN0ZWRJdGVtKCkhLm9wdGlvbnMgfVwiXG4gICAgICAgICAgICBbbW9kZV09XCInYWR2YW5jZWQnXCIgKG9uQ2hhbmdlZCk9XCJoYW5kbGVWaWV3ZXJDaGFuZ2VkKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LXRleHQtc20gYXgtdGV4dC1tdXRlZCBheC1wLTQgYXgtdGV4dC1jZW50ZXJcIj57eyAnQGV4dHJhLXByb3BlcnRpZXM6bWVzc2FnZXMuc2VsZWN0LWZpZWxkLXRvLWVkaXQnIHxcbiAgICAgICAgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2Rpdj5cbiAgICB9XG48L2Rpdj4iXX0=","import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, input, output, signal, } from '@angular/core';\nimport { isEqual } from 'lodash-es';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLabelModule } from '@acorex/components/label';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/builder\";\nimport * as i2 from \"@acorex/components/form\";\nimport * as i3 from \"@acorex/components/label\";\nexport class AXPExtraPropertiesValuesComponent {\n constructor() {\n //#region ---- Inputs ----\n this.schema = input([], ...(ngDevMode ? [{ debugName: \"schema\" }] : []));\n this.values = input({}, ...(ngDevMode ? [{ debugName: \"values\" }] : []));\n this.mode = input('edit', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n //#endregion\n //#region ---- Outputs ----\n this.valuesChange = output();\n //#endregion\n //#region ---- Outputs ----\n this.isRequired = (item) => {\n return item.options?.['validations']?.['required'] ?? false;\n };\n //#endregion\n //#region ---- Class Properties ----\n this.internalContext = signal({}, ...(ngDevMode ? [{ debugName: \"internalContext\" }] : []));\n this.nodeCache = {};\n this.lastTypeByKey = {};\n //#endregion\n //#region ---- Effects ----\n this.syncContextFromInputs = effect(() => {\n const schema = this.schema();\n const vals = this.values();\n const current = this.internalContext();\n const currentExtra = current['extra'] ?? {};\n const extra = {};\n for (const s of schema) {\n const v = vals[s.key];\n if (v !== undefined && v !== null)\n extra[s.key] = v;\n }\n const nextContext = { ...current, extra };\n if (!isEqual(nextContext, current)) {\n this.internalContext.set(nextContext);\n }\n }, ...(ngDevMode ? [{ debugName: \"syncContextFromInputs\" }] : []));\n this.clearOnSchemaTypeChange = effect(() => {\n const schema = this.schema();\n const changedKeys = new Set();\n for (const s of schema) {\n const prev = this.lastTypeByKey[s.key];\n if (prev && prev !== s.type)\n changedKeys.add(s.key);\n this.lastTypeByKey[s.key] = s.type;\n }\n if (changedKeys.size > 0) {\n const next = { ...this.values() };\n changedKeys.forEach((k) => delete next[k]);\n // reset cached node defaults\n changedKeys.forEach((k) => {\n const node = this.nodeCache[k];\n if (node)\n node.defaultValue = undefined;\n });\n this.valuesChange.emit(next);\n }\n }, ...(ngDevMode ? [{ debugName: \"clearOnSchemaTypeChange\" }] : []));\n }\n //#endregion\n //#region ---- Event Handlers ----\n onContextChanged(event) {\n if (event.state === 'initiated')\n return;\n const data = (event.data ?? {});\n const extra = data['extra'] ?? {};\n const nextValues = {};\n for (const s of this.schema()) {\n if (Object.prototype.hasOwnProperty.call(extra, s.key)) {\n nextValues[s.key] = extra[s.key];\n }\n }\n const currentValues = this.values();\n if (!isEqual(currentValues, nextValues)) {\n this.valuesChange.emit(nextValues);\n }\n }\n //#endregion\n //#region ---- Utility Methods ----\n getNode(item) {\n const key = item.key;\n let node = this.nodeCache[key];\n if (!node) {\n node = {\n type: item.type,\n path: `extra.${item.key}`,\n options: item.options ?? {},\n defaultValue: this.values()[item.key],\n };\n this.nodeCache[key] = node;\n }\n else {\n // Keep reference stable; update nested fields if essential changes happen\n node.type = item.type;\n node.options = item.options ?? node.options;\n // Do not overwrite defaultValue during editing to avoid resets\n }\n return node;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExtraPropertiesValuesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPExtraPropertiesValuesComponent, isStandalone: true, selector: \"axp-extra-properties-values\", inputs: { schema: { classPropertyName: \"schema\", publicName: \"schema\", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: \"values\", publicName: \"values\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valuesChange: \"valuesChange\" }, host: { classAttribute: \"ax-block ax-flex-1\" }, ngImport: i0, template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <axp-widgets-container [context]=\"internalContext()\" (onContextChanged)=\"onContextChanged($event)\">\n <div class=\"ax-col-span-12 ax-flex ax-flex-col ax-gap-3\">\n @for(item of schema(); track item.key){\n @if(mode()==='edit'){\n <ax-form-field>\n <ax-label [required]=\"isRequired(item)\">{{item.title}}</ax-label>\n <ng-container\n axp-widget-renderer\n [node]=\"getNode(item)\"\n [mode]=\"'edit'\"\n ></ng-container>\n </ax-form-field>\n } @else {\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-1\">\n <div class=\"ax-font-semibold\">{{item.title}}</div>\n <div class=\"ax-col-span-12 ax-text-muted\">\n <ng-container\n axp-widget-renderer\n [node]=\"getNode(item)\"\n [mode]=\"'view'\"\n ></ng-container>\n </div>\n </div>\n }\n }\n </div>\n </axp-widgets-container>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i1.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i1.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i2.AXFormFieldComponent, selector: \"ax-form-field\", inputs: [\"labelMode\"] }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i3.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPExtraPropertiesValuesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-extra-properties-values',\n template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <axp-widgets-container [context]=\"internalContext()\" (onContextChanged)=\"onContextChanged($event)\">\n <div class=\"ax-col-span-12 ax-flex ax-flex-col ax-gap-3\">\n @for(item of schema(); track item.key){\n @if(mode()==='edit'){\n <ax-form-field>\n <ax-label [required]=\"isRequired(item)\">{{item.title}}</ax-label>\n <ng-container\n axp-widget-renderer\n [node]=\"getNode(item)\"\n [mode]=\"'edit'\"\n ></ng-container>\n </ax-form-field>\n } @else {\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-1\">\n <div class=\"ax-font-semibold\">{{item.title}}</div>\n <div class=\"ax-col-span-12 ax-text-muted\">\n <ng-container\n axp-widget-renderer\n [node]=\"getNode(item)\"\n [mode]=\"'view'\"\n ></ng-container>\n </div>\n </div>\n }\n }\n </div>\n </axp-widgets-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, AXPLayoutBuilderModule, AXFormModule, AXLabelModule],\n standalone: true,\n host: {\n class: 'ax-block ax-flex-1',\n },\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtcHJvcGVydGllcy12YWx1ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2V4dHJhLXByb3BlcnRpZXMvZXh0cmEtcHJvcGVydGllcy12YWx1ZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBOEMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNySCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUEwQ3pELE1BQU0sT0FBTyxpQ0FBaUM7SUF4QzlDO1FBeUNFLDhCQUE4QjtRQUU5QixXQUFNLEdBQUcsS0FBSyxDQUErQixFQUFFLGtEQUFDLENBQUM7UUFDakQsV0FBTSxHQUFHLEtBQUssQ0FBc0IsRUFBRSxrREFBQyxDQUFDO1FBQ3hDLFNBQUksR0FBRyxLQUFLLENBQWtCLE1BQU0sZ0RBQUMsQ0FBQztRQUV0QyxZQUFZO1FBRVosK0JBQStCO1FBRS9CLGlCQUFZLEdBQUcsTUFBTSxFQUF1QixDQUFDO1FBRTdDLFlBQVk7UUFFWiwrQkFBK0I7UUFFL0IsZUFBVSxHQUFHLENBQUMsSUFBZ0MsRUFBRSxFQUFFO1lBQ2hELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElB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WSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ3JCLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTiwwRUFBMEU7WUFDMUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzVDLCtEQUErRDtRQUNqRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzhHQWhIVSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyx5aUJBdENsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJULDJEQUVTLFlBQVksOEJBQUUsc0JBQXNCLDhaQUFFLFlBQVksc0lBQUUsYUFBYTs7MkZBTWhFLGlDQUFpQztrQkF4QzdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDO29CQUM1RSxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50LCBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBFeHRyYVByb3BlcnR5U2NoZW1hSXRlbSB9IGZyb20gJy4vZXh0cmEtcHJvcGVydGllcy50eXBlcyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLWV4dHJhLXByb3BlcnRpZXMtdmFsdWVzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZ3JpZCBheC1ncmlkLWNvbHMtMTIgYXgtZ2FwLTRcIj5cbiAgICAgIDxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwiaW50ZXJuYWxDb250ZXh0KClcIiAob25Db250ZXh0Q2hhbmdlZCk9XCJvbkNvbnRleHRDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbC1zcGFuLTEyIGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTNcIj5cbiAgICAgICAgICBAZm9yKGl0ZW0gb2Ygc2NoZW1hKCk7IHRyYWNrIGl0ZW0ua2V5KXtcbiAgICAgICAgICAgIEBpZihtb2RlKCk9PT0nZWRpdCcpe1xuICAgICAgICAgICAgICA8YXgtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8YXgtbGFiZWwgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWQoaXRlbSlcIj57e2l0ZW0udGl0bGV9fTwvYXgtbGFiZWw+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBheHAtd2lkZ2V0LXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgIFtub2RlXT1cImdldE5vZGUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCInZWRpdCdcIlxuICAgICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2F4LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC0xXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj57e2l0ZW0udGl0bGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb2wtc3Bhbi0xMiBheC10ZXh0LW11dGVkXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIGF4cC13aWRnZXQtcmVuZGVyZXJcbiAgICAgICAgICAgICAgICAgICAgW25vZGVdPVwiZ2V0Tm9kZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIid2aWV3J1wiXG4gICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2F4cC13aWRnZXRzLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsIEFYRm9ybU1vZHVsZSwgQVhMYWJlbE1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2F4LWJsb2NrIGF4LWZsZXgtMScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEV4dHJhUHJvcGVydGllc1ZhbHVlc0NvbXBvbmVudCB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgSW5wdXRzICAgLS0tLVxuXG4gIHNjaGVtYSA9IGlucHV0PEFYUEV4dHJhUHJvcGVydHlTY2hlbWFJdGVtW10+KFtdKTtcbiAgdmFsdWVzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4oe30pO1xuICBtb2RlID0gaW5wdXQ8J2VkaXQnIHwgJ3ZpZXcnPignZWRpdCcpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgT3V0cHV0cyAgIC0tLS1cblxuICB2YWx1ZXNDaGFuZ2UgPSBvdXRwdXQ8UmVjb3JkPHN0cmluZywgYW55Pj4oKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIE91dHB1dHMgICAtLS0tXG5cbiAgaXNSZXF1aXJlZCA9IChpdGVtOiBBWFBFeHRyYVByb3BlcnR5U2NoZW1hSXRlbSkgPT4ge1xuICAgIHJldHVybiBpdGVtLm9wdGlvbnM/LlsndmFsaWRhdGlvbnMnXT8uWydyZXF1aXJlZCddID8/IGZhbHNlO1xuICB9O1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQ2xhc3MgUHJvcGVydGllcyAgIC0tLS1cblxuICBwcm90ZWN0ZWQgaW50ZXJuYWxDb250ZXh0ID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIGFueT4+KHt9KTtcblxuICBwcml2YXRlIG5vZGVDYWNoZTogUmVjb3JkPHN0cmluZywgQVhQV2lkZ2V0Tm9kZT4gPSB7fTtcbiAgcHJpdmF0ZSBsYXN0VHlwZUJ5S2V5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBFdmVudCBIYW5kbGVycyAgIC0tLS1cblxuICBwcm90ZWN0ZWQgb25Db250ZXh0Q2hhbmdlZChldmVudDogQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50KSB7XG4gICAgaWYgKChldmVudCBhcyBhbnkpLnN0YXRlID09PSAnaW5pdGlhdGVkJykgcmV0dXJuO1xuICAgIGNvbnN0IGRhdGEgPSAoZXZlbnQuZGF0YSA/PyB7fSkgYXMgYW55O1xuICAgIGNvbnN0IGV4dHJhID0gZGF0YVsnZXh0cmEnXSA/PyB7fTtcbiAgICBjb25zdCBuZXh0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBzIG9mIHRoaXMuc2NoZW1hKCkpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXh0cmEsIHMua2V5KSkge1xuICAgICAgICBuZXh0VmFsdWVzW3Mua2V5XSA9IGV4dHJhW3Mua2V5XTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgY3VycmVudFZhbHVlcyA9IHRoaXMudmFsdWVzKCk7XG4gICAgaWYgKCFpc0VxdWFsKGN1cnJlbnRWYWx1ZXMsIG5leHRWYWx1ZXMpKSB7XG4gICAgICB0aGlzLnZhbHVlc0NoYW5nZS5lbWl0KG5leHRWYWx1ZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgRWZmZWN0cyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IHN5bmNDb250ZXh0RnJvbUlucHV0cyA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5zY2hlbWEoKTtcbiAgICBjb25zdCB2YWxzID0gdGhpcy52YWx1ZXMoKTtcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5pbnRlcm5hbENvbnRleHQoKTtcbiAgICBjb25zdCBjdXJyZW50RXh0cmEgPSAoY3VycmVudCBhcyBhbnkpWydleHRyYSddID8/IHt9O1xuICAgIGNvbnN0IGV4dHJhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBzIG9mIHNjaGVtYSkge1xuICAgICAgY29uc3QgdiA9IHZhbHNbcy5rZXldO1xuICAgICAgaWYgKHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsKSBleHRyYVtzLmtleV0gPSB2O1xuICAgIH1cbiAgICBjb25zdCBuZXh0Q29udGV4dCA9IHsgLi4uY3VycmVudCwgZXh0cmEgfTtcbiAgICBpZiAoIWlzRXF1YWwobmV4dENvbnRleHQsIGN1cnJlbnQpKSB7XG4gICAgICB0aGlzLmludGVybmFsQ29udGV4dC5zZXQobmV4dENvbnRleHQpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjbGVhck9uU2NoZW1hVHlwZUNoYW5nZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5zY2hlbWEoKTtcbiAgICBjb25zdCBjaGFuZ2VkS2V5cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGZvciAoY29uc3QgcyBvZiBzY2hlbWEpIHtcbiAgICAgIGNvbnN0IHByZXYgPSB0aGlzLmxhc3RUeXBlQnlLZXlbcy5rZXldO1xuICAgICAgaWYgKHByZXYgJiYgcHJldiAhPT0gcy50eXBlKSBjaGFuZ2VkS2V5cy5hZGQocy5rZXkpO1xuICAgICAgdGhpcy5sYXN0VHlwZUJ5S2V5W3Mua2V5XSA9IHMudHlwZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRLZXlzLnNpemUgPiAwKSB7XG4gICAgICBjb25zdCBuZXh0ID0geyAuLi50aGlzLnZhbHVlcygpIH07XG4gICAgICBjaGFuZ2VkS2V5cy5mb3JFYWNoKChrKSA9PiBkZWxldGUgbmV4dFtrXSk7XG4gICAgICAvLyByZXNldCBjYWNoZWQgbm9kZSBkZWZhdWx0c1xuICAgICAgY2hhbmdlZEtleXMuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5ub2RlQ2FjaGVba107XG4gICAgICAgIGlmIChub2RlKSAobm9kZSBhcyBhbnkpLmRlZmF1bHRWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy52YWx1ZXNDaGFuZ2UuZW1pdChuZXh0KTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgVXRpbGl0eSBNZXRob2RzICAgLS0tLVxuXG4gIHByb3RlY3RlZCBnZXROb2RlKGl0ZW06IEFYUEV4dHJhUHJvcGVydHlTY2hlbWFJdGVtKTogQVhQV2lkZ2V0Tm9kZSB7XG4gICAgY29uc3Qga2V5ID0gaXRlbS5rZXk7XG4gICAgbGV0IG5vZGUgPSB0aGlzLm5vZGVDYWNoZVtrZXldO1xuICAgIGlmICghbm9kZSkge1xuICAgICAgbm9kZSA9IHtcbiAgICAgICAgdHlwZTogaXRlbS50eXBlLFxuICAgICAgICBwYXRoOiBgZXh0cmEuJHtpdGVtLmtleX1gLFxuICAgICAgICBvcHRpb25zOiBpdGVtLm9wdGlvbnMgPz8ge30sXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy52YWx1ZXMoKVtpdGVtLmtleV0sXG4gICAgICB9IGFzIEFYUFdpZGdldE5vZGU7XG4gICAgICB0aGlzLm5vZGVDYWNoZVtrZXldID0gbm9kZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gS2VlcCByZWZlcmVuY2Ugc3RhYmxlOyB1cGRhdGUgbmVzdGVkIGZpZWxkcyBpZiBlc3NlbnRpYWwgY2hhbmdlcyBoYXBwZW5cbiAgICAgIG5vZGUudHlwZSA9IGl0ZW0udHlwZTtcbiAgICAgIG5vZGUub3B0aW9ucyA9IGl0ZW0ub3B0aW9ucyA/PyBub2RlLm9wdGlvbnM7XG4gICAgICAvLyBEbyBub3Qgb3ZlcndyaXRlIGRlZmF1bHRWYWx1ZSBkdXJpbmcgZWRpdGluZyB0byBhdm9pZCByZXNldHNcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cblxuXG4iXX0=","import { AXListNavigationModule } from '@acorex/cdk/list-navigation';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXCalendarService } from '@acorex/core/date-time';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { ALL_DEFAULT_OPERATORS, AXPFilterOperatorMiddlewareService } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, input, linkedSignal, output, QueryList, signal, untracked, viewChild, ViewChildren, ViewEncapsulation, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { isEqual } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/popover\";\nimport * as i5 from \"@acorex/components/tag-box\";\nimport * as i6 from \"@acorex/platform/layout/builder\";\nimport * as i7 from \"@acorex/cdk/list-navigation\";\nimport * as i8 from \"@acorex/components/badge\";\nimport * as i9 from \"@angular/common\";\nimport * as i10 from \"@acorex/core/translation\";\nexport class AXPQueryFiltersComponent {\n constructor() {\n this.translate = inject(AXTranslationService);\n this.calendarService = inject(AXCalendarService);\n this.filterOperatorMiddleware = inject(AXPFilterOperatorMiddlewareService);\n this.filtersDefinitions = input([], ...(ngDevMode ? [{ debugName: \"filtersDefinitions\" }] : []));\n this.initialFilters = input([], ...(ngDevMode ? [{ debugName: \"initialFilters\" }] : []));\n this.onFiltersChanged = output();\n this.tagBox = viewChild('tagBox', ...(ngDevMode ? [{ debugName: \"tagBox\" }] : []));\n this.selectedField = signal(null, ...(ngDevMode ? [{ debugName: \"selectedField\" }] : []));\n this.selectedFilters = linkedSignal(() => this.convertQueriesToDefinitions(this.initialFilters()), {\n equal: isEqual,\n });\n this.context = linkedSignal(() => this.convertQueriesToContext(this.initialFilters()));\n this.activeFilter = signal(null, ...(ngDevMode ? [{ debugName: \"activeFilter\" }] : []));\n this.asyncTags = signal([], ...(ngDevMode ? [{ debugName: \"asyncTags\" }] : []));\n this.popover = viewChild('popover', ...(ngDevMode ? [{ debugName: \"popover\" }] : []));\n this.inputValue = signal('', ...(ngDevMode ? [{ debugName: \"inputValue\" }] : []));\n this.inlineFilters = () => {\n return this.filtersDefinitions().filter((f) => f.filterType.inline &&\n !this.filterOperatorMiddleware\n .transformFilters(this.selectedFilters())\n .some((sf) => sf.field === f.field &&\n sf.operator?.type === (this.context()[sf.field]?.operation?.type || f.operator?.type)));\n };\n this.getDisplayValue = async (filter, val) => {\n if (filter.widget?.type === 'select-editor' || filter.widget?.type === 'select-filter') {\n const dataSource = filter.widget.options?.['dataSource'];\n const textField = filter.widget.options?.['textField'];\n const valueField = filter.widget.options?.['valueField'];\n if (dataSource?.config?.byKey) {\n if (Array.isArray(val)) {\n const results = await Promise.all(val.map((v) => dataSource.config.byKey(v)));\n return results.map((data) => data[textField]).join(', ');\n }\n else {\n const data = (await dataSource.config.byKey(val));\n return data?.[textField] || val;\n }\n }\n else if (Array.isArray(dataSource)) {\n if (Array.isArray(val)) {\n return dataSource.map((data) => data[textField]).join(', ');\n }\n else {\n const record = dataSource.find((d) => d[valueField] === val);\n return record ? record[textField] : '';\n }\n }\n }\n return typeof val === 'object' && !Array.isArray(val)\n ? `${this.convertIfISOStringDate(val.from)} and ${this.convertIfISOStringDate(val.to)}`\n : this.convertIfISOStringDate(val);\n };\n this.convertIfISOStringDate = (val) => {\n const isISOStringDate = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$/.test(val);\n if (isISOStringDate) {\n return this.calendarService.convert(val).date.toLocaleDateString();\n }\n return val;\n };\n this.filterFields = () => {\n return this.filtersDefinitions().filter((f) => {\n return (f.filterType.advance &&\n !this.selectedFilters().some((sf) => {\n return sf.field === f.field;\n }));\n });\n };\n this.#effect = effect(() => {\n const context = untracked(() => this.context());\n const selectedFilters = this.selectedFilters();\n untracked(() => {\n const convertedFilters = selectedFilters.map((f) => ({\n field: f.field,\n operator: context[f.field]?.operation,\n value: context[f.field]?.value,\n hidden: f.hidden,\n }));\n const newContext = {};\n convertedFilters.forEach((cf) => {\n newContext[cf.field] = {\n value: cf.value,\n operation: typeof cf.operator === 'string' ? { type: cf.operator } : cf.operator,\n };\n });\n this.context.set(newContext);\n this.deactivateAllListItems();\n this.onFiltersChanged.emit(convertedFilters);\n });\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n this.#effect2 = effect(() => {\n const filters = this.selectedFilters();\n const context = this.context();\n Promise.all(filters.map(async (filter) => {\n const val = context[filter.field]?.value;\n const displayValue = await this.getDisplayValue(filter, val);\n return {\n ...filter,\n query: `${this.translate.translateSync(filter.title)} ${this.getActiveOperator(filter)} '${displayValue}'`,\n };\n })).then((results) => {\n this.asyncTags.set(results.filter((r) => !r.hidden));\n });\n }, ...(ngDevMode ? [{ debugName: \"#effect2\" }] : []));\n }\n convertQueriesToDefinitions(queries) {\n const definitions = this.filtersDefinitions();\n return queries.map((q) => {\n const definition = definitions.find((p) => p.field === q.field);\n return {\n field: q.field,\n operator: q.operator,\n value: q.value,\n title: definition?.title || '',\n widget: definition?.widget,\n filterType: definition?.filterType,\n hidden: q.hidden,\n };\n });\n }\n convertQueriesToContext(queries) {\n return queries.reduce((acc, q) => {\n acc[q.field] = { value: q.value, operation: q.operator };\n return acc;\n }, {});\n }\n ngOnInit() {\n this.tagBoxInput = this.tagBox()?.getHostElement().querySelector('input');\n }\n handleSelectField(field) {\n console.log(field);\n this.activeFilter.set(field);\n // this.inputValue.set('');\n this.tagBox()?.inputValue.set('');\n }\n handleFieldKeyDown(e, field) {\n if (e.key === 'Enter') {\n this.handleSelectField(field);\n }\n }\n onContextChanged(e) {\n this.context.set(e.data);\n }\n handleApplyFilter() {\n if (this.activeFilter()) {\n this.selectedFilters.update((prev) => [...prev, this.activeFilter()]);\n this.activeFilter.set(null);\n this.popover()?.close();\n }\n }\n handleButtonKeyDown(e) {\n if (this.popover()?.isOpen && !this.activeFilter()) {\n // Find first list item and focus it\n const firstItem = document.querySelector('[axListNavigationItem]');\n if (firstItem) {\n firstItem.focus();\n e?.preventDefault();\n }\n }\n }\n handleKeyDown(e) {\n if (e.nativeEvent?.key === 'ArrowDown') {\n if (this.popover()?.isOpen && !this.activeFilter()) {\n // Find first list item and focus it\n const firstItem = document.querySelector('[axListNavigationItem]');\n if (firstItem) {\n firstItem.focus();\n e.nativeEvent?.preventDefault();\n }\n }\n }\n else {\n this.popover()?.open();\n }\n }\n #effect;\n handleSelectFilters(e) {\n if (e.value?.length < this.selectedFilters().length) {\n const hiddenFilters = this.selectedFilters().filter((f) => f.hidden);\n this.selectedFilters.update((prev) => {\n return hiddenFilters.concat(e.value);\n });\n }\n }\n getActiveOperator(filter) {\n if (!filter) {\n return undefined;\n }\n const contextOperation = this.context()?.[filter.field]?.operation?.type;\n const operatorType = contextOperation || filter.operator?.type;\n return ALL_DEFAULT_OPERATORS.find((o) => o.name === operatorType)?.title;\n }\n handleSelectInlineFilter(filter) {\n this.context.update((prev) => ({\n ...prev,\n [filter.field]: {\n value: this.tagBox()?.inputValue(),\n operation: { type: 'contains' },\n },\n }));\n this.tagBox()?.inputValue.set('');\n this.selectedFilters.update((prev) => [...prev, filter]);\n this.popover()?.close();\n }\n handleInlineFilterKeyDown(e, filter) {\n if (e.key === 'Enter') {\n this.handleSelectInlineFilter(filter);\n }\n }\n handlePopoverClosed(e) {\n this.activeFilter.set(null);\n }\n onPopoverOpened(e) {\n if (this.filtersDefinitions().length === 0) {\n this.popover()?.close();\n }\n }\n deactivateAllListItems() {\n if (this.listItems) {\n this.listItems.forEach((item) => {\n if (item.isActive()) {\n item.isActive.set(false);\n }\n });\n }\n }\n #effect2;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPQueryFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPQueryFiltersComponent, isStandalone: true, selector: \"axp-query-filters\", inputs: { filtersDefinitions: { classPropertyName: \"filtersDefinitions\", publicName: \"filtersDefinitions\", isSignal: true, isRequired: false, transformFunction: null }, initialFilters: { classPropertyName: \"initialFilters\", publicName: \"initialFilters\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onFiltersChanged: \"onFiltersChanged\" }, viewQueries: [{ propertyName: \"tagBox\", first: true, predicate: [\"tagBox\"], descendants: true, isSignal: true }, { propertyName: \"popover\", first: true, predicate: [\"popover\"], descendants: true, isSignal: true }, { propertyName: \"listItems\", predicate: [\"caseItem\"], descendants: true }], ngImport: i0, template: \"<div class=\\\"ax-flex ax-items-center ax-gap-2 ax-p-2\\\">\\n <ax-button (keydown)=\\\"handleButtonKeyDown($event)\\\" (onClick)=\\\"popover.open()\\\" #filterButton [look]=\\\"'blank'\\\">\\n <ax-icon class=\\\"far fa-bars-filter ax-cursor-pointer\\\"> </ax-icon>\\n </ax-button>\\n <ax-tag-box\\n [ngModel]=\\\"asyncTags()\\\"\\n (onValueChanged)=\\\"handleSelectFilters($event)\\\"\\n [textField]=\\\"'query'\\\"\\n [valueField]=\\\"'id'\\\"\\n [readonly]=\\\"filtersDefinitions().length === 0\\\"\\n [look]=\\\"'none'\\\"\\n [readonlyField]=\\\"'readOnly'\\\"\\n (onKeyDown)=\\\"handleKeyDown($event)\\\"\\n [addOnEnter]=\\\"false\\\"\\n [placeholder]=\\\"\\n (filtersDefinitions().length === 0\\n ? '@general:terms.interface.filter.no-filter-definitions'\\n : '@general:terms.interface.filter.placeholder'\\n )\\n | translate\\n | async\\n \\\"\\n #tagBox\\n ></ax-tag-box>\\n</div>\\n\\n<ax-popover\\n [offsetY]=\\\"activeFilter() ? -30 : 0\\\"\\n [target]=\\\"tagBoxInput\\\"\\n [openOn]=\\\"'toggle'\\\"\\n (onOpened)=\\\"onPopoverOpened($event)\\\"\\n [closeOn]=\\\"'clickOut'\\\"\\n (onClosed)=\\\"handlePopoverClosed($event)\\\"\\n [adaptivityEnabled]=\\\"true\\\"\\n #popover\\n>\\n <div class=\\\"md:ax-min-w-72 ax-border ax-surface ax-w-full ax-rounded-md md:ax-max-h-96 md:ax-overflow-auto\\\">\\n <axp-widgets-container [context]=\\\"context()\\\" (onContextChanged)=\\\"onContextChanged($event)\\\">\\n @if (activeFilter()) {\\n <div class=\\\"ax-flex ax-flex-col ax-lightest-surface ax-shadow-md\\\">\\n <ax-header class=\\\"ax-border-b ax-border-light ax-px-4 ax-py-2\\\">{{\\n activeFilter()?.title! | translate | async\\n }}</ax-header>\\n <ax-content class=\\\"ax-p-4\\\">\\n <div class=\\\"ax-mb-2\\\">\\n <ax-badge [text]=\\\"getActiveOperator(activeFilter())!\\\"></ax-badge>\\n </div>\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"{\\n type: activeFilter()?.widget?.type || 'text-editor',\\n path: activeFilter()?.field,\\n options: activeFilter()?.widget?.options,\\n }\\\"\\n [mode]=\\\"'edit'\\\"\\n >\\n </ng-container>\\n </ax-content>\\n <ax-footer class=\\\"ax-border-t ax-flex ax-justify-end ax-border-light ax-w-full ax-px-4 ax-py-2\\\">\\n <ax-button\\n class=\\\"ax-xs\\\"\\n [text]=\\\"'@general:actions.apply.title' | translate | async\\\"\\n (onClick)=\\\"handleApplyFilter()\\\"\\n ></ax-button>\\n </ax-footer>\\n </div>\\n } @else {\\n <div axListNavigation #list=\\\"axListNavigation\\\" class=\\\"axp-list-items\\\">\\n @if (tagBox.inputValue()) {\\n @for (inlineFilter of inlineFilters(); track inlineFilter.field) {\\n <div\\n axListNavigationItem\\n #caseItem=\\\"axListNavigationItem\\\"\\n [class.axp-state-focused]=\\\"caseItem.isActive()\\\"\\n tabindex=\\\"0\\\"\\n (click)=\\\"handleSelectInlineFilter(inlineFilter)\\\"\\n (keydown)=\\\"handleInlineFilterKeyDown($event, inlineFilter)\\\"\\n >\\n {{ inlineFilter.title | translate | async }} {{ getActiveOperator(inlineFilter) }} '{{\\n tagBox.inputValue()\\n }}'\\n </div>\\n }\\n <span class=\\\"ax-w-full ax-border-t ax-border-light ax-my-1\\\"></span>\\n }\\n @for (field of filterFields(); track field.field) {\\n <div\\n axListNavigationItem\\n #caseItem=\\\"axListNavigationItem\\\"\\n [class.axp-state-focused]=\\\"caseItem.isActive()\\\"\\n (click)=\\\"handleSelectField(field)\\\"\\n (keydown)=\\\"handleFieldKeyDown($event, field)\\\"\\n tabindex=\\\"0\\\"\\n >\\n <div class=\\\"ax-flex ax-items-end ax-gap-2\\\">\\n <ax-icon class=\\\"ax-w-5\\\" [class]=\\\"'fa-light ' + field.icon\\\"> </ax-icon>\\n {{ field.title | translate | async }}\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </axp-widgets-container>\\n </div>\\n</ax-popover>\\n\", styles: [\"axp-query-filters{width:100%}.axp-list-items{display:flex;min-width:10rem;flex-direction:column;border-radius:.375rem;border-width:1px;padding-top:1rem;padding-bottom:1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-list-items>div{min-width:7rem;cursor:pointer;padding:.5rem 1rem;text-align:start}.axp-list-items>div:focus{outline:none}.axp-list-items>div.axp-state-focused,.axp-list-items>div:hover{background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXPopoverModule }, { kind: \"component\", type: i4.AXPopoverComponent, selector: \"ax-popover\", inputs: [\"width\", \"disabled\", \"offsetX\", \"offsetY\", \"target\", \"placement\", \"content\", \"openOn\", \"closeOn\", \"hasBackdrop\", \"openAfter\", \"closeAfter\", \"backdropClass\", \"panelClass\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXSelectionListModule }, { kind: \"ngmodule\", type: AXTagBoxModule }, { kind: \"component\", type: i5.AXTagBoxComponent, selector: \"ax-tag-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"allowNull\", \"type\", \"look\", \"addOnComma\", \"addOnEnter\", \"valueField\", \"textField\", \"readonlyField\", \"allowDuplicateValues\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i6.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i6.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: AXListNavigationModule }, { kind: \"directive\", type: i7.AXListNavigationDirective, selector: \"[axListNavigation]\", inputs: [\"orientation\"], outputs: [\"onNavigationChanged\", \"onPressEnterOrSpace\"], exportAs: [\"axListNavigation\"] }, { kind: \"directive\", type: i7.AXListNavigationItemDirective, selector: \"[axListNavigationItem]\", exportAs: [\"axListNavigationItem\"] }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i8.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }, { kind: \"pipe\", type: i9.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i10.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPQueryFiltersComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-query-filters', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXPopoverModule,\n AXSelectionListModule,\n AXTagBoxModule,\n AXPLayoutBuilderModule,\n AXListNavigationModule,\n AXBadgeModule,\n ], template: \"<div class=\\\"ax-flex ax-items-center ax-gap-2 ax-p-2\\\">\\n <ax-button (keydown)=\\\"handleButtonKeyDown($event)\\\" (onClick)=\\\"popover.open()\\\" #filterButton [look]=\\\"'blank'\\\">\\n <ax-icon class=\\\"far fa-bars-filter ax-cursor-pointer\\\"> </ax-icon>\\n </ax-button>\\n <ax-tag-box\\n [ngModel]=\\\"asyncTags()\\\"\\n (onValueChanged)=\\\"handleSelectFilters($event)\\\"\\n [textField]=\\\"'query'\\\"\\n [valueField]=\\\"'id'\\\"\\n [readonly]=\\\"filtersDefinitions().length === 0\\\"\\n [look]=\\\"'none'\\\"\\n [readonlyField]=\\\"'readOnly'\\\"\\n (onKeyDown)=\\\"handleKeyDown($event)\\\"\\n [addOnEnter]=\\\"false\\\"\\n [placeholder]=\\\"\\n (filtersDefinitions().length === 0\\n ? '@general:terms.interface.filter.no-filter-definitions'\\n : '@general:terms.interface.filter.placeholder'\\n )\\n | translate\\n | async\\n \\\"\\n #tagBox\\n ></ax-tag-box>\\n</div>\\n\\n<ax-popover\\n [offsetY]=\\\"activeFilter() ? -30 : 0\\\"\\n [target]=\\\"tagBoxInput\\\"\\n [openOn]=\\\"'toggle'\\\"\\n (onOpened)=\\\"onPopoverOpened($event)\\\"\\n [closeOn]=\\\"'clickOut'\\\"\\n (onClosed)=\\\"handlePopoverClosed($event)\\\"\\n [adaptivityEnabled]=\\\"true\\\"\\n #popover\\n>\\n <div class=\\\"md:ax-min-w-72 ax-border ax-surface ax-w-full ax-rounded-md md:ax-max-h-96 md:ax-overflow-auto\\\">\\n <axp-widgets-container [context]=\\\"context()\\\" (onContextChanged)=\\\"onContextChanged($event)\\\">\\n @if (activeFilter()) {\\n <div class=\\\"ax-flex ax-flex-col ax-lightest-surface ax-shadow-md\\\">\\n <ax-header class=\\\"ax-border-b ax-border-light ax-px-4 ax-py-2\\\">{{\\n activeFilter()?.title! | translate | async\\n }}</ax-header>\\n <ax-content class=\\\"ax-p-4\\\">\\n <div class=\\\"ax-mb-2\\\">\\n <ax-badge [text]=\\\"getActiveOperator(activeFilter())!\\\"></ax-badge>\\n </div>\\n <ng-container\\n axp-widget-renderer\\n [node]=\\\"{\\n type: activeFilter()?.widget?.type || 'text-editor',\\n path: activeFilter()?.field,\\n options: activeFilter()?.widget?.options,\\n }\\\"\\n [mode]=\\\"'edit'\\\"\\n >\\n </ng-container>\\n </ax-content>\\n <ax-footer class=\\\"ax-border-t ax-flex ax-justify-end ax-border-light ax-w-full ax-px-4 ax-py-2\\\">\\n <ax-button\\n class=\\\"ax-xs\\\"\\n [text]=\\\"'@general:actions.apply.title' | translate | async\\\"\\n (onClick)=\\\"handleApplyFilter()\\\"\\n ></ax-button>\\n </ax-footer>\\n </div>\\n } @else {\\n <div axListNavigation #list=\\\"axListNavigation\\\" class=\\\"axp-list-items\\\">\\n @if (tagBox.inputValue()) {\\n @for (inlineFilter of inlineFilters(); track inlineFilter.field) {\\n <div\\n axListNavigationItem\\n #caseItem=\\\"axListNavigationItem\\\"\\n [class.axp-state-focused]=\\\"caseItem.isActive()\\\"\\n tabindex=\\\"0\\\"\\n (click)=\\\"handleSelectInlineFilter(inlineFilter)\\\"\\n (keydown)=\\\"handleInlineFilterKeyDown($event, inlineFilter)\\\"\\n >\\n {{ inlineFilter.title | translate | async }} {{ getActiveOperator(inlineFilter) }} '{{\\n tagBox.inputValue()\\n }}'\\n </div>\\n }\\n <span class=\\\"ax-w-full ax-border-t ax-border-light ax-my-1\\\"></span>\\n }\\n @for (field of filterFields(); track field.field) {\\n <div\\n axListNavigationItem\\n #caseItem=\\\"axListNavigationItem\\\"\\n [class.axp-state-focused]=\\\"caseItem.isActive()\\\"\\n (click)=\\\"handleSelectField(field)\\\"\\n (keydown)=\\\"handleFieldKeyDown($event, field)\\\"\\n tabindex=\\\"0\\\"\\n >\\n <div class=\\\"ax-flex ax-items-end ax-gap-2\\\">\\n <ax-icon class=\\\"ax-w-5\\\" [class]=\\\"'fa-light ' + field.icon\\\"> </ax-icon>\\n {{ field.title | translate | async }}\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </axp-widgets-container>\\n </div>\\n</ax-popover>\\n\", styles: [\"axp-query-filters{width:100%}.axp-list-items{display:flex;min-width:10rem;flex-direction:column;border-radius:.375rem;border-width:1px;padding-top:1rem;padding-bottom:1rem;--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.axp-list-items>div{min-width:7rem;cursor:pointer;padding:.5rem 1rem;text-align:start}.axp-list-items>div:focus{outline:none}.axp-list-items>div.axp-state-focused,.axp-list-items>div:hover{background-color:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));border-color:rgb(var(--ax-sys-color-border-surface))}\\n\"] }]\n }], propDecorators: { listItems: [{\n type: ViewChildren,\n args: ['caseItem']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvZmlsdGVycy9xdWVyeS1maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9maWx0ZXJzL3F1ZXJ5LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBcUIsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEcsT0FBTyxFQUFFLHNCQUFzQixFQUErQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxN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QkFDZCxzQkFBc0I7d0JBQ3RCLHNCQUFzQjt3QkFDdEIsYUFBYTtxQkFDZDs4QkFjeUIsU0FBUztzQkFBbEMsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWEV2ZW50LCBBWEh0bWxFdmVudCwgQVhWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWExpc3ROYXZpZ2F0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvbGlzdC1uYXZpZ2F0aW9uJztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQb3BvdmVyQ29tcG9uZW50LCBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFNlbGVjdGlvbkxpc3RNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0aW9uLWxpc3QnO1xuaW1wb3J0IHsgQVhUYWdCb3hDb21wb25lbnQsIEFYVGFnQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhZy1ib3gnO1xuaW1wb3J0IHsgQVhDYWxlbmRhclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZGF0ZS10aW1lJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUsIEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFMTF9ERUZBVUxUX09QRVJBVE9SUywgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEZpbHRlckRlZmluaXRpb24sIEFYUEZpbHRlclF1ZXJ5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUsIEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBvdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgc2lnbmFsLFxuICB1bnRyYWNrZWQsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXF1ZXJ5LWZpbHRlcnMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LWZpbHRlcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xdWVyeS1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhTZWxlY3Rpb25MaXN0TW9kdWxlLFxuICAgIEFYVGFnQm94TW9kdWxlLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgQVhMaXN0TmF2aWdhdGlvbk1vZHVsZSxcbiAgICBBWEJhZGdlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBRdWVyeUZpbHRlcnNDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgdHJhbnNsYXRlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGNhbGVuZGFyU2VydmljZSA9IGluamVjdChBWENhbGVuZGFyU2VydmljZSk7XG4gIHByaXZhdGUgZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlID0gaW5qZWN0KEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2UpO1xuXG4gIGZpbHRlcnNEZWZpbml0aW9ucyA9IGlucHV0PEFYUEZpbHRlckRlZmluaXRpb25bXT4oW10pO1xuICBpbml0aWFsRmlsdGVycyA9IGlucHV0PEFYUEZpbHRlclF1ZXJ5W10+KFtdKTtcbiAgb25GaWx0ZXJzQ2hhbmdlZCA9IG91dHB1dDxBWFBGaWx0ZXJRdWVyeVtdPigpO1xuXG4gIHByb3RlY3RlZCB0YWdCb3ggPSB2aWV3Q2hpbGQ8QVhUYWdCb3hDb21wb25lbnQ+KCd0YWdCb3gnKTtcbiAgdGFnQm94SW5wdXQhOiBhbnk7XG5cbiAgQFZpZXdDaGlsZHJlbignY2FzZUl0ZW0nKSBsaXN0SXRlbXMhOiBRdWVyeUxpc3Q8YW55PjtcblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRGaWVsZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkRmlsdGVycyA9IGxpbmtlZFNpZ25hbDxBWFBGaWx0ZXJEZWZpbml0aW9uW10+KFxuICAgICgpID0+IHRoaXMuY29udmVydFF1ZXJpZXNUb0RlZmluaXRpb25zKHRoaXMuaW5pdGlhbEZpbHRlcnMoKSksXG4gICAge1xuICAgICAgZXF1YWw6IGlzRXF1YWwsXG4gICAgfSxcbiAgKTtcblxuICBjb250ZXh0ID0gbGlua2VkU2lnbmFsPGFueT4oKCkgPT4gdGhpcy5jb252ZXJ0UXVlcmllc1RvQ29udGV4dCh0aGlzLmluaXRpYWxGaWx0ZXJzKCkpKTtcblxuICBwcm90ZWN0ZWQgYWN0aXZlRmlsdGVyID0gc2lnbmFsPEFYUEZpbHRlckRlZmluaXRpb24gfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgYXN5bmNUYWdzID0gc2lnbmFsPGFueVtdPihbXSk7XG5cbiAgcHJvdGVjdGVkIHBvcG92ZXIgPSB2aWV3Q2hpbGQ8QVhQb3BvdmVyQ29tcG9uZW50PigncG9wb3ZlcicpO1xuXG4gIGlucHV0VmFsdWUgPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgaW5saW5lRmlsdGVycyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMoKS5maWx0ZXIoXG4gICAgICAoZikgPT5cbiAgICAgICAgZi5maWx0ZXJUeXBlLmlubGluZSAmJlxuICAgICAgICAhdGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVcbiAgICAgICAgICAudHJhbnNmb3JtRmlsdGVycyh0aGlzLnNlbGVjdGVkRmlsdGVycygpKVxuICAgICAgICAgIC5zb21lKFxuICAgICAgICAgICAgKHNmKSA9PlxuICAgICAgICAgICAgICBzZi5maWVsZCA9PT0gZi5maWVsZCAmJlxuICAgICAgICAgICAgICBzZi5vcGVyYXRvcj8udHlwZSA9PT0gKHRoaXMuY29udGV4dCgpW3NmLmZpZWxkXT8ub3BlcmF0aW9uPy50eXBlIHx8IGYub3BlcmF0b3I/LnR5cGUpLFxuICAgICAgICAgICksXG4gICAgKTtcbiAgfTtcblxuICBwcm90ZWN0ZWQgZ2V0RGlzcGxheVZhbHVlID0gYXN5bmMgKGZpbHRlcjogQVhQRmlsdGVyRGVmaW5pdGlvbiwgdmFsOiBhbnkpID0+IHtcbiAgICBpZiAoZmlsdGVyLndpZGdldD8udHlwZSA9PT0gJ3NlbGVjdC1lZGl0b3InIHx8IGZpbHRlci53aWRnZXQ/LnR5cGUgPT09ICdzZWxlY3QtZmlsdGVyJykge1xuICAgICAgY29uc3QgZGF0YVNvdXJjZTogQVhEYXRhU291cmNlID0gZmlsdGVyLndpZGdldC5vcHRpb25zPy5bJ2RhdGFTb3VyY2UnXTtcbiAgICAgIGNvbnN0IHRleHRGaWVsZCA9IGZpbHRlci53aWRnZXQub3B0aW9ucz8uWyd0ZXh0RmllbGQnXTtcbiAgICAgIGNvbnN0IHZhbHVlRmllbGQgPSBmaWx0ZXIud2lkZ2V0Lm9wdGlvbnM/LlsndmFsdWVGaWVsZCddO1xuICAgICAgaWYgKGRhdGFTb3VyY2U/LmNvbmZpZz8uYnlLZXkpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdHM6IHVua25vd25bXSA9IGF3YWl0IFByb21pc2UuYWxsKHZhbC5tYXAoKHYpID0+IGRhdGFTb3VyY2UuY29uZmlnLmJ5S2V5ISh2KSkpO1xuICAgICAgICAgIHJldHVybiByZXN1bHRzLm1hcCgoZGF0YSkgPT4gKGRhdGEgYXMgUmVjb3JkPHN0cmluZywgYW55PilbdGV4dEZpZWxkXSkuam9pbignLCAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gKGF3YWl0IGRhdGFTb3VyY2UuY29uZmlnLmJ5S2V5KHZhbCkpIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICAgICAgcmV0dXJuIGRhdGE/Llt0ZXh0RmllbGRdIHx8IHZhbDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGRhdGFTb3VyY2UpKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YVNvdXJjZS5tYXAoKGRhdGEpID0+IChkYXRhIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW3RleHRGaWVsZF0pLmpvaW4oJywgJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcmVjb3JkOiBhbnkgPSBkYXRhU291cmNlLmZpbmQoKGQ6IGFueSkgPT4gZFt2YWx1ZUZpZWxkXSA9PT0gdmFsKTtcbiAgICAgICAgICByZXR1cm4gcmVjb3JkID8gcmVjb3JkW3RleHRGaWVsZF0gOiAnJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsKVxuICAgICAgPyBgJHt0aGlzLmNvbnZlcnRJZklTT1N0cmluZ0RhdGUodmFsLmZyb20pfSBhbmQgJHt0aGlzLmNvbnZlcnRJZklTT1N0cmluZ0RhdGUodmFsLnRvKX1gXG4gICAgICA6IHRoaXMuY29udmVydElmSVNPU3RyaW5nRGF0ZSh2YWwpO1xuICB9O1xuXG4gIHByb3RlY3RlZCBjb252ZXJ0SWZJU09TdHJpbmdEYXRlID0gKHZhbDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgaXNJU09TdHJpbmdEYXRlID0gL15cXGR7NH0tXFxkezJ9LVxcZHsyfVRcXGR7Mn06XFxkezJ9OlxcZHsyfVxcLlxcZHszfVokLy50ZXN0KHZhbCk7XG4gICAgaWYgKGlzSVNPU3RyaW5nRGF0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodmFsKS5kYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xuICB9O1xuXG4gIGNvbnZlcnRRdWVyaWVzVG9EZWZpbml0aW9ucyhxdWVyaWVzOiBBWFBGaWx0ZXJRdWVyeVtdKTogQVhQRmlsdGVyRGVmaW5pdGlvbltdIHtcbiAgICBjb25zdCBkZWZpbml0aW9ucyA9IHRoaXMuZmlsdGVyc0RlZmluaXRpb25zKCk7XG5cbiAgICByZXR1cm4gcXVlcmllcy5tYXAoKHEpID0+IHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBkZWZpbml0aW9ucy5maW5kKChwKSA9PiBwLmZpZWxkID09PSBxLmZpZWxkKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmllbGQ6IHEuZmllbGQsXG4gICAgICAgIG9wZXJhdG9yOiBxLm9wZXJhdG9yLFxuICAgICAgICB2YWx1ZTogcS52YWx1ZSxcbiAgICAgICAgdGl0bGU6IGRlZmluaXRpb24/LnRpdGxlIHx8ICcnLFxuICAgICAgICB3aWRnZXQ6IGRlZmluaXRpb24/LndpZGdldCEsXG4gICAgICAgIGZpbHRlclR5cGU6IGRlZmluaXRpb24/LmZpbHRlclR5cGUhLFxuICAgICAgICBoaWRkZW46IHEuaGlkZGVuLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnZlcnRRdWVyaWVzVG9Db250ZXh0KHF1ZXJpZXM6IEFYUEZpbHRlclF1ZXJ5W10pOiBhbnkge1xuICAgIHJldHVybiBxdWVyaWVzLnJlZHVjZSgoYWNjLCBxKSA9PiB7XG4gICAgICBhY2NbcS5maWVsZF0gPSB7IHZhbHVlOiBxLnZhbHVlLCBvcGVyYXRpb246IHEub3BlcmF0b3IgfTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgYW55KTtcbiAgfVxuXG4gIGZpbHRlckZpZWxkcyA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMoKS5maWx0ZXIoKGYpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGYuZmlsdGVyVHlwZS5hZHZhbmNlICYmXG4gICAgICAgICF0aGlzLnNlbGVjdGVkRmlsdGVycygpLnNvbWUoKHNmKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNmLmZpZWxkID09PSBmLmZpZWxkO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhZ0JveElucHV0ID0gdGhpcy50YWdCb3goKT8uZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0RmllbGQoZmllbGQ6IEFYUEZpbHRlckRlZmluaXRpb24pIHtcbiAgICBjb25zb2xlLmxvZyhmaWVsZCk7XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXIuc2V0KGZpZWxkKTtcbiAgICAvLyB0aGlzLmlucHV0VmFsdWUuc2V0KCcnKTtcbiAgICB0aGlzLnRhZ0JveCgpPy5pbnB1dFZhbHVlLnNldCgnJyk7XG4gIH1cbiAgaGFuZGxlRmllbGRLZXlEb3duKGU6IEtleWJvYXJkRXZlbnQsIGZpZWxkOiBBWFBGaWx0ZXJEZWZpbml0aW9uKSB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLmhhbmRsZVNlbGVjdEZpZWxkKGZpZWxkKTtcbiAgICB9XG4gIH1cblxuICBvbkNvbnRleHRDaGFuZ2VkKGU6IEFYUExheW91dENvbnRleHRDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMuY29udGV4dC5zZXQoZS5kYXRhKTtcbiAgfVxuXG4gIGhhbmRsZUFwcGx5RmlsdGVyKCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZUZpbHRlcigpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy51cGRhdGUoKHByZXYpID0+IFsuLi5wcmV2LCB0aGlzLmFjdGl2ZUZpbHRlcigpIV0pO1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIuc2V0KG51bGwpO1xuICAgICAgdGhpcy5wb3BvdmVyKCk/LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQnV0dG9uS2V5RG93bihlOiBFdmVudCkge1xuICAgIGlmICh0aGlzLnBvcG92ZXIoKT8uaXNPcGVuICYmICF0aGlzLmFjdGl2ZUZpbHRlcigpKSB7XG4gICAgICAvLyBGaW5kIGZpcnN0IGxpc3QgaXRlbSBhbmQgZm9jdXMgaXRcbiAgICAgIGNvbnN0IGZpcnN0SXRlbSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1theExpc3ROYXZpZ2F0aW9uSXRlbV0nKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmIChmaXJzdEl0ZW0pIHtcbiAgICAgICAgZmlyc3RJdGVtLmZvY3VzKCk7XG4gICAgICAgIGU/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5RG93bihlOiBBWEh0bWxFdmVudDxLZXlib2FyZEV2ZW50Pikge1xuICAgIGlmIChlLm5hdGl2ZUV2ZW50Py5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICBpZiAodGhpcy5wb3BvdmVyKCk/LmlzT3BlbiAmJiAhdGhpcy5hY3RpdmVGaWx0ZXIoKSkge1xuICAgICAgICAvLyBGaW5kIGZpcnN0IGxpc3QgaXRlbSBhbmQgZm9jdXMgaXRcbiAgICAgICAgY29uc3QgZmlyc3RJdGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2F4TGlzdE5hdmlnYXRpb25JdGVtXScpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBpZiAoZmlyc3RJdGVtKSB7XG4gICAgICAgICAgZmlyc3RJdGVtLmZvY3VzKCk7XG4gICAgICAgICAgZS5uYXRpdmVFdmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBvcG92ZXIoKT8ub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gICNlZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGNvbnRleHQgPSB1bnRyYWNrZWQoKCkgPT4gdGhpcy5jb250ZXh0KCkpO1xuICAgIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKCk7XG4gICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbnZlcnRlZEZpbHRlcnM6IEFYUEZpbHRlclF1ZXJ5W10gPSBzZWxlY3RlZEZpbHRlcnMubWFwKChmKSA9PiAoe1xuICAgICAgICBmaWVsZDogZi5maWVsZCxcbiAgICAgICAgb3BlcmF0b3I6IGNvbnRleHRbZi5maWVsZF0/Lm9wZXJhdGlvbixcbiAgICAgICAgdmFsdWU6IGNvbnRleHRbZi5maWVsZF0/LnZhbHVlLFxuICAgICAgICBoaWRkZW46IGYuaGlkZGVuLFxuICAgICAgfSkpO1xuICAgICAgY29uc3QgbmV3Q29udGV4dDogYW55ID0ge307XG4gICAgICBjb252ZXJ0ZWRGaWx0ZXJzLmZvckVhY2goKGNmKSA9PiB7XG4gICAgICAgIG5ld0NvbnRleHRbY2YuZmllbGRdID0ge1xuICAgICAgICAgIHZhbHVlOiBjZi52YWx1ZSxcbiAgICAgICAgICBvcGVyYXRpb246IHR5cGVvZiBjZi5vcGVyYXRvciA9PT0gJ3N0cmluZycgPyB7IHR5cGU6IGNmLm9wZXJhdG9yIH0gOiBjZi5vcGVyYXRvcixcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmNvbnRleHQuc2V0KG5ld0NvbnRleHQpO1xuICAgICAgdGhpcy5kZWFjdGl2YXRlQWxsTGlzdEl0ZW1zKCk7XG4gICAgICB0aGlzLm9uRmlsdGVyc0NoYW5nZWQuZW1pdChjb252ZXJ0ZWRGaWx0ZXJzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgaGFuZGxlU2VsZWN0RmlsdGVycyhlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGUudmFsdWU/Lmxlbmd0aCA8IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKCkubGVuZ3RoKSB7XG4gICAgICBjb25zdCBoaWRkZW5GaWx0ZXJzID0gdGhpcy5zZWxlY3RlZEZpbHRlcnMoKS5maWx0ZXIoKGYpID0+IGYuaGlkZGVuKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnVwZGF0ZSgocHJldikgPT4ge1xuICAgICAgICByZXR1cm4gaGlkZGVuRmlsdGVycy5jb25jYXQoZS52YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0QWN0aXZlT3BlcmF0b3IoZmlsdGVyOiBBWFBGaWx0ZXJEZWZpbml0aW9uIHwgbnVsbCkge1xuICAgIGlmICghZmlsdGVyKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHRPcGVyYXRpb24gPSB0aGlzLmNvbnRleHQoKT8uW2ZpbHRlci5maWVsZF0/Lm9wZXJhdGlvbj8udHlwZTtcbiAgICBjb25zdCBvcGVyYXRvclR5cGUgPSBjb250ZXh0T3BlcmF0aW9uIHx8IGZpbHRlci5vcGVyYXRvcj8udHlwZTtcblxuICAgIHJldHVybiBBTExfREVGQVVMVF9PUEVSQVRPUlMuZmluZCgobykgPT4gby5uYW1lID09PSBvcGVyYXRvclR5cGUpPy50aXRsZTtcbiAgfVxuXG4gIGhhbmRsZVNlbGVjdElubGluZUZpbHRlcihmaWx0ZXI6IEFYUEZpbHRlckRlZmluaXRpb24pIHtcbiAgICB0aGlzLmNvbnRleHQudXBkYXRlKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtmaWx0ZXIuZmllbGRdOiB7XG4gICAgICAgIHZhbHVlOiB0aGlzLnRhZ0JveCgpPy5pbnB1dFZhbHVlKCksXG4gICAgICAgIG9wZXJhdGlvbjogeyB0eXBlOiAnY29udGFpbnMnIH0sXG4gICAgICB9LFxuICAgIH0pKTtcbiAgICB0aGlzLnRhZ0JveCgpPy5pbnB1dFZhbHVlLnNldCgnJyk7XG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgZmlsdGVyXSk7XG4gICAgdGhpcy5wb3BvdmVyKCk/LmNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVJbmxpbmVGaWx0ZXJLZXlEb3duKGU6IEtleWJvYXJkRXZlbnQsIGZpbHRlcjogQVhQRmlsdGVyRGVmaW5pdGlvbikge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oYW5kbGVTZWxlY3RJbmxpbmVGaWx0ZXIoZmlsdGVyKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVQb3BvdmVyQ2xvc2VkKGU6IEFYRXZlbnQpIHtcbiAgICB0aGlzLmFjdGl2ZUZpbHRlci5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Qb3BvdmVyT3BlbmVkKGU6IEFYRXZlbnQpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucG9wb3ZlcigpPy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBkZWFjdGl2YXRlQWxsTGlzdEl0ZW1zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpc3RJdGVtcykge1xuICAgICAgdGhpcy5saXN0SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgaXRlbS5pc0FjdGl2ZS5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjZWZmZWN0MiA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgZmlsdGVycyA9IHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKCk7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dCgpO1xuXG4gICAgUHJvbWlzZS5hbGwoXG4gICAgICBmaWx0ZXJzLm1hcChhc3luYyAoZmlsdGVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbCA9IGNvbnRleHRbZmlsdGVyLmZpZWxkXT8udmFsdWU7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IGF3YWl0IHRoaXMuZ2V0RGlzcGxheVZhbHVlKGZpbHRlciwgdmFsKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgcXVlcnk6IGAke3RoaXMudHJhbnNsYXRlLnRyYW5zbGF0ZVN5bmMoZmlsdGVyLnRpdGxlKX0gJHt0aGlzLmdldEFjdGl2ZU9wZXJhdG9yKGZpbHRlcil9ICcke2Rpc3BsYXlWYWx1ZX0nYCxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgICkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgdGhpcy5hc3luY1RhZ3Muc2V0KHJlc3VsdHMuZmlsdGVyKChyKSA9PiAhci5oaWRkZW4pKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtZ2FwLTIgYXgtcC0yXCI+XG4gIDxheC1idXR0b24gKGtleWRvd24pPVwiaGFuZGxlQnV0dG9uS2V5RG93bigkZXZlbnQpXCIgKG9uQ2xpY2spPVwicG9wb3Zlci5vcGVuKClcIiAjZmlsdGVyQnV0dG9uIFtsb29rXT1cIidibGFuaydcIj5cbiAgICA8YXgtaWNvbiBjbGFzcz1cImZhciBmYS1iYXJzLWZpbHRlciBheC1jdXJzb3ItcG9pbnRlclwiPiA8L2F4LWljb24+XG4gIDwvYXgtYnV0dG9uPlxuICA8YXgtdGFnLWJveFxuICAgIFtuZ01vZGVsXT1cImFzeW5jVGFncygpXCJcbiAgICAob25WYWx1ZUNoYW5nZWQpPVwiaGFuZGxlU2VsZWN0RmlsdGVycygkZXZlbnQpXCJcbiAgICBbdGV4dEZpZWxkXT1cIidxdWVyeSdcIlxuICAgIFt2YWx1ZUZpZWxkXT1cIidpZCdcIlxuICAgIFtyZWFkb25seV09XCJmaWx0ZXJzRGVmaW5pdGlvbnMoKS5sZW5ndGggPT09IDBcIlxuICAgIFtsb29rXT1cIidub25lJ1wiXG4gICAgW3JlYWRvbmx5RmllbGRdPVwiJ3JlYWRPbmx5J1wiXG4gICAgKG9uS2V5RG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAgIFthZGRPbkVudGVyXT1cImZhbHNlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAoZmlsdGVyc0RlZmluaXRpb25zKCkubGVuZ3RoID09PSAwXG4gICAgICAgID8gJ0BnZW5lcmFsOnRlcm1zLmludGVyZmFjZS5maWx0ZXIubm8tZmlsdGVyLWRlZmluaXRpb25zJ1xuICAgICAgICA6ICdAZ2VuZXJhbDp0ZXJtcy5pbnRlcmZhY2UuZmlsdGVyLnBsYWNlaG9sZGVyJ1xuICAgICAgKVxuICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICB8IGFzeW5jXG4gICAgXCJcbiAgICAjdGFnQm94XG4gID48L2F4LXRhZy1ib3g+XG48L2Rpdj5cblxuPGF4LXBvcG92ZXJcbiAgW29mZnNldFldPVwiYWN0aXZlRmlsdGVyKCkgPyAtMzAgOiAwXCJcbiAgW3RhcmdldF09XCJ0YWdCb3hJbnB1dFwiXG4gIFtvcGVuT25dPVwiJ3RvZ2dsZSdcIlxuICAob25PcGVuZWQpPVwib25Qb3BvdmVyT3BlbmVkKCRldmVudClcIlxuICBbY2xvc2VPbl09XCInY2xpY2tPdXQnXCJcbiAgKG9uQ2xvc2VkKT1cImhhbmRsZVBvcG92ZXJDbG9zZWQoJGV2ZW50KVwiXG4gIFthZGFwdGl2aXR5RW5hYmxlZF09XCJ0cnVlXCJcbiAgI3BvcG92ZXJcbj5cbiAgPGRpdiBjbGFzcz1cIm1kOmF4LW1pbi13LTcyIGF4LWJvcmRlciBheC1zdXJmYWNlIGF4LXctZnVsbCBheC1yb3VuZGVkLW1kIG1kOmF4LW1heC1oLTk2IG1kOmF4LW92ZXJmbG93LWF1dG9cIj5cbiAgICA8YXhwLXdpZGdldHMtY29udGFpbmVyIFtjb250ZXh0XT1cImNvbnRleHQoKVwiIChvbkNvbnRleHRDaGFuZ2VkKT1cIm9uQ29udGV4dENoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgQGlmIChhY3RpdmVGaWx0ZXIoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1saWdodGVzdC1zdXJmYWNlIGF4LXNoYWRvdy1tZFwiPlxuICAgICAgICAgIDxheC1oZWFkZXIgY2xhc3M9XCJheC1ib3JkZXItYiBheC1ib3JkZXItbGlnaHQgYXgtcHgtNCBheC1weS0yXCI+e3tcbiAgICAgICAgICAgIGFjdGl2ZUZpbHRlcigpPy50aXRsZSEgfCB0cmFuc2xhdGUgfCBhc3luY1xuICAgICAgICAgIH19PC9heC1oZWFkZXI+XG4gICAgICAgICAgPGF4LWNvbnRlbnQgY2xhc3M9XCJheC1wLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tYi0yXCI+XG4gICAgICAgICAgICAgIDxheC1iYWRnZSBbdGV4dF09XCJnZXRBY3RpdmVPcGVyYXRvcihhY3RpdmVGaWx0ZXIoKSkhXCI+PC9heC1iYWRnZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBheHAtd2lkZ2V0LXJlbmRlcmVyXG4gICAgICAgICAgICAgIFtub2RlXT1cIntcbiAgICAgICAgICAgICAgICB0eXBlOiBhY3RpdmVGaWx0ZXIoKT8ud2lkZ2V0Py50eXBlIHx8ICd0ZXh0LWVkaXRvcicsXG4gICAgICAgICAgICAgICAgcGF0aDogYWN0aXZlRmlsdGVyKCk/LmZpZWxkLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IGFjdGl2ZUZpbHRlcigpPy53aWRnZXQ/Lm9wdGlvbnMsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICBbbW9kZV09XCInZWRpdCdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9heC1jb250ZW50PlxuICAgICAgICAgIDxheC1mb290ZXIgY2xhc3M9XCJheC1ib3JkZXItdCBheC1mbGV4IGF4LWp1c3RpZnktZW5kIGF4LWJvcmRlci1saWdodCBheC13LWZ1bGwgYXgtcHgtNCBheC1weS0yXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXgteHNcIlxuICAgICAgICAgICAgICBbdGV4dF09XCInQGdlbmVyYWw6YWN0aW9ucy5hcHBseS50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUFwcGx5RmlsdGVyKClcIlxuICAgICAgICAgICAgPjwvYXgtYnV0dG9uPlxuICAgICAgICAgIDwvYXgtZm9vdGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGF4TGlzdE5hdmlnYXRpb24gI2xpc3Q9XCJheExpc3ROYXZpZ2F0aW9uXCIgY2xhc3M9XCJheHAtbGlzdC1pdGVtc1wiPlxuICAgICAgICAgIEBpZiAodGFnQm94LmlucHV0VmFsdWUoKSkge1xuICAgICAgICAgICAgQGZvciAoaW5saW5lRmlsdGVyIG9mIGlubGluZUZpbHRlcnMoKTsgdHJhY2sgaW5saW5lRmlsdGVyLmZpZWxkKSB7XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBheExpc3ROYXZpZ2F0aW9uSXRlbVxuICAgICAgICAgICAgICAgICNjYXNlSXRlbT1cImF4TGlzdE5hdmlnYXRpb25JdGVtXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYXhwLXN0YXRlLWZvY3VzZWRdPVwiY2FzZUl0ZW0uaXNBY3RpdmUoKVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2VsZWN0SW5saW5lRmlsdGVyKGlubGluZUZpbHRlcilcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUlubGluZUZpbHRlcktleURvd24oJGV2ZW50LCBpbmxpbmVGaWx0ZXIpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGlubGluZUZpbHRlci50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19IHt7IGdldEFjdGl2ZU9wZXJhdG9yKGlubGluZUZpbHRlcikgfX0gJ3t7XG4gICAgICAgICAgICAgICAgICB0YWdCb3guaW5wdXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgfX0nXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC13LWZ1bGwgYXgtYm9yZGVyLXQgYXgtYm9yZGVyLWxpZ2h0IGF4LW15LTFcIj48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpbHRlckZpZWxkcygpOyB0cmFjayBmaWVsZC5maWVsZCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBheExpc3ROYXZpZ2F0aW9uSXRlbVxuICAgICAgICAgICAgICAjY2FzZUl0ZW09XCJheExpc3ROYXZpZ2F0aW9uSXRlbVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5heHAtc3RhdGUtZm9jdXNlZF09XCJjYXNlSXRlbS5pc0FjdGl2ZSgpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlbGVjdEZpZWxkKGZpZWxkKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUZpZWxkS2V5RG93bigkZXZlbnQsIGZpZWxkKVwiXG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWVuZCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtdy01XCIgW2NsYXNzXT1cIidmYS1saWdodCAnICsgZmllbGQuaWNvblwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICAgICAge3sgZmllbGQudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPlxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CdkDrag, CdkDragHandle, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, input, model, output, signal, ViewEncapsulation, } from '@angular/core';\nimport { isEqual } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/decorators\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/core/translation\";\nimport * as i4 from \"@angular/common\";\nexport class AXPQuerySortsComponent {\n constructor() {\n this.sortDefinitions = model([], ...(ngDevMode ? [{ debugName: \"sortDefinitions\" }] : []));\n this.sortQueries = signal([], ...(ngDevMode ? [{ debugName: \"sortQueries\", equal: isEqual }] : [{\n equal: isEqual,\n }]));\n this.initialSortQueries = input([], ...(ngDevMode ? [{ debugName: \"initialSortQueries\" }] : []));\n this.sortQueriesChange = output();\n // Recompute merged sort queries whenever inputs change\n effect(() => {\n const initialQueries = this.initialSortQueries();\n const definitions = this.sortDefinitions();\n const existingQueriesMap = new Map(initialQueries.map((q) => [q.name, q]));\n const mergedQueries = definitions.map((def) => {\n const existingQuery = existingQueriesMap.get(def.name);\n return existingQuery ? { ...def, dir: existingQuery.dir } : { ...def };\n });\n this.sortQueries.set(mergedQueries);\n });\n effect(() => {\n this.sortQueriesChange.emit(this.sortQueries());\n });\n }\n drop(event) {\n const sd = this.sortDefinitions();\n moveItemInArray(sd, event.previousIndex, event.currentIndex);\n this.sortDefinitions.set([...sd]);\n // Reorder sortQueries based on new sortDefinitions order\n const sq = this.sortQueries();\n moveItemInArray(sq, event.previousIndex, event.currentIndex);\n this.sortQueries.set([...sq]);\n }\n getSortDirection(item) {\n return this.sortQueries().find((i) => i.name === item.name)?.dir;\n }\n changeItemSort(item) {\n const itemDirection = this.getSortDirection(item);\n const newDirection = itemDirection === 'asc' ? 'desc' : itemDirection === 'desc' ? undefined : 'asc';\n this.sortQueries.update((prev) => {\n return prev.map((field) => {\n if (field.name === item.name) {\n return { ...field, dir: newDirection };\n }\n return field;\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPQuerySortsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPQuerySortsComponent, isStandalone: true, selector: \"axp-query-sorts\", inputs: { sortDefinitions: { classPropertyName: \"sortDefinitions\", publicName: \"sortDefinitions\", isSignal: true, isRequired: false, transformFunction: null }, initialSortQueries: { classPropertyName: \"initialSortQueries\", publicName: \"initialSortQueries\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortDefinitions: \"sortDefinitionsChange\", sortQueriesChange: \"sortQueriesChange\" }, ngImport: i0, template: \"<div class=\\\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-select-none\\\" cdkDropList (cdkDropListDropped)=\\\"drop($event)\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\\\">\\n @for (item of sortDefinitions(); track item.name) {\\n <div class=\\\"ax-flex ax-py-1 ax-items-center ax-justify-between\\\" cdkDrag cdkDragBoundary=\\\".ax-sorted-list\\\">\\n <div class=\\\"ax-flex ax-items-center ax-gap-3\\\" cdkDragHandle>\\n <ax-icon class=\\\"fa-solid fa-grip-dots-vertical ax-cursor-move\\\"></ax-icon>\\n <p class=\\\"ax-font-medium ax-text-sm\\\">{{ item.title | translate | async }}</p>\\n </div>\\n <ax-button [color]=\\\"'blank'\\\" class=\\\"ax-sm\\\" (click)=\\\"changeItemSort(item)\\\">\\n <ax-icon\\n [class.ax-text-primary]=\\\"getSortDirection(item) === 'asc'\\\"\\n class=\\\"fa-solid fa-arrow-up-long ax-text-neutral-400\\\"\\n ></ax-icon>\\n <ax-icon\\n [class.ax-text-primary]=\\\"getSortDirection(item) === 'desc'\\\"\\n class=\\\"fa-solid fa-arrow-down-long ax-text-neutral-400\\\"\\n ></ax-icon>\\n </ax-button>\\n </div>\\n }\\n </div>\\n </div>\\n</div>\\n\", dependencies: [{ kind: \"directive\", type: CdkDropList, selector: \"[cdkDropList], cdk-drop-list\", inputs: [\"cdkDropListConnectedTo\", \"cdkDropListData\", \"cdkDropListOrientation\", \"id\", \"cdkDropListLockAxis\", \"cdkDropListDisabled\", \"cdkDropListSortingDisabled\", \"cdkDropListEnterPredicate\", \"cdkDropListSortPredicate\", \"cdkDropListAutoScrollDisabled\", \"cdkDropListAutoScrollStep\", \"cdkDropListElementContainer\", \"cdkDropListHasAnchor\"], outputs: [\"cdkDropListDropped\", \"cdkDropListEntered\", \"cdkDropListExited\", \"cdkDropListSorted\"], exportAs: [\"cdkDropList\"] }, { kind: \"directive\", type: CdkDrag, selector: \"[cdkDrag]\", inputs: [\"cdkDragData\", \"cdkDragLockAxis\", \"cdkDragRootElement\", \"cdkDragBoundary\", \"cdkDragStartDelay\", \"cdkDragFreeDragPosition\", \"cdkDragDisabled\", \"cdkDragConstrainPosition\", \"cdkDragPreviewClass\", \"cdkDragPreviewContainer\", \"cdkDragScale\"], outputs: [\"cdkDragStarted\", \"cdkDragReleased\", \"cdkDragEnded\", \"cdkDragEntered\", \"cdkDragExited\", \"cdkDragDropped\", \"cdkDragMoved\"], exportAs: [\"cdkDrag\"] }, { kind: \"directive\", type: CdkDragHandle, selector: \"[cdkDragHandle]\", inputs: [\"cdkDragHandleDisabled\"] }, { kind: \"ngmodule\", type: AXTabsModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i1.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"pipe\", type: i3.AXTranslatorPipe, name: \"translate\" }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPQuerySortsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-query-sorts', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n CdkDropList,\n CdkDrag,\n CdkDragHandle,\n AXTabsModule,\n AXTranslationModule,\n CommonModule,\n AXDecoratorModule,\n AXButtonModule,\n ], template: \"<div class=\\\"ax-flex ax-flex-col ax-justify-center ax-gap-4 ax-select-none\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-gap-4 ax-select-none\\\" cdkDropList (cdkDropListDropped)=\\\"drop($event)\\\">\\n <div class=\\\"ax-flex ax-flex-col ax-gap-3 ax-w-full ax-sorted-list ax-max-h-[calc(100vh-280px)] ax-overflow-auto\\\">\\n @for (item of sortDefinitions(); track item.name) {\\n <div class=\\\"ax-flex ax-py-1 ax-items-center ax-justify-between\\\" cdkDrag cdkDragBoundary=\\\".ax-sorted-list\\\">\\n <div class=\\\"ax-flex ax-items-center ax-gap-3\\\" cdkDragHandle>\\n <ax-icon class=\\\"fa-solid fa-grip-dots-vertical ax-cursor-move\\\"></ax-icon>\\n <p class=\\\"ax-font-medium ax-text-sm\\\">{{ item.title | translate | async }}</p>\\n </div>\\n <ax-button [color]=\\\"'blank'\\\" class=\\\"ax-sm\\\" (click)=\\\"changeItemSort(item)\\\">\\n <ax-icon\\n [class.ax-text-primary]=\\\"getSortDirection(item) === 'asc'\\\"\\n class=\\\"fa-solid fa-arrow-up-long ax-text-neutral-400\\\"\\n ></ax-icon>\\n <ax-icon\\n [class.ax-text-primary]=\\\"getSortDirection(item) === 'desc'\\\"\\n class=\\\"fa-solid fa-arrow-down-long ax-text-neutral-400\\\"\\n ></ax-icon>\\n </ax-button>\\n </div>\\n }\\n </div>\\n </div>\\n</div>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc29ydHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL3NvcnRzL3F1ZXJ5LXNvcnRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9zb3J0cy9xdWVyeS1zb3J0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxPQUFPLEVBQWUsYUFBYSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBbUJwQyxNQUFNLE9BQU8sc0JBQXNCO0lBU2pDO1FBUkEsb0JBQWUsR0FBRyxLQUFLLENBQXNCLEVBQUUsMkRBQUMsQ0FBQztRQUNqRCxnQkFBVyxHQUFHLE1BQU0sQ0FBaUIsRUFBRSwrQ0FDckMsS0FBSyxFQUFFLE9BQU8sT0FEeUI7Z0JBQ3ZDLEtBQUssRUFBRSxP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LEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDO2dCQUN6QyxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBeERVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJlQ3BDbkMsa3pDQXdCQSw0Q0RFSSxXQUFXLHNoQkFDWCxPQUFPLHdjQUNQLGFBQWEsOEZBQ2IsWUFBWSw4QkFDWixtQkFBbUIsOEJBQ25CLFlBQVksOEJBQ1osaUJBQWlCLCtIQUNqQixjQUFjOzsyRkFHTCxzQkFBc0I7a0JBakJsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFFaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxXQUFXO3dCQUNYLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGNBQWM7cUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFNvcnREZWZpbml0aW9uLCBBWFBTb3J0UXVlcnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AsIENka0RyYWdIYW5kbGUsIENka0Ryb3BMaXN0LCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBlZmZlY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtcXVlcnktc29ydHMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXJ5LXNvcnRzLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIENka0Ryb3BMaXN0LFxuICAgIENka0RyYWcsXG4gICAgQ2RrRHJhZ0hhbmRsZSxcbiAgICBBWFRhYnNNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFF1ZXJ5U29ydHNDb21wb25lbnQge1xuICBzb3J0RGVmaW5pdGlvbnMgPSBtb2RlbDxBWFBTb3J0RGVmaW5pdGlvbltdPihbXSk7XG4gIHNvcnRRdWVyaWVzID0gc2lnbmFsPEFYUFNvcnRRdWVyeVtdPihbXSwge1xuICAgIGVxdWFsOiBpc0VxdWFsLFxuICB9KTtcblxuICBpbml0aWFsU29ydFF1ZXJpZXMgPSBpbnB1dDxBWFBTb3J0UXVlcnlbXT4oW10pO1xuICBzb3J0UXVlcmllc0NoYW5nZSA9IG91dHB1dDxBWFBTb3J0UXVlcnlbXT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBSZWNvbXB1dGUgbWVyZ2VkIHNvcnQgcXVlcmllcyB3aGVuZXZlciBpbnB1dHMgY2hhbmdlXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxRdWVyaWVzID0gdGhpcy5pbml0aWFsU29ydFF1ZXJpZXMoKTtcbiAgICAgIGNvbnN0IGRlZmluaXRpb25zID0gdGhpcy5zb3J0RGVmaW5pdGlvbnMoKTtcblxuICAgICAgY29uc3QgZXhpc3RpbmdRdWVyaWVzTWFwID0gbmV3IE1hcChpbml0aWFsUXVlcmllcy5tYXAoKHEpID0+IFtxLm5hbWUsIHFdKSk7XG5cbiAgICAgIGNvbnN0IG1lcmdlZFF1ZXJpZXMgPSBkZWZpbml0aW9ucy5tYXAoKGRlZikgPT4ge1xuICAgICAgICBjb25zdCBleGlzdGluZ1F1ZXJ5ID0gZXhpc3RpbmdRdWVyaWVzTWFwLmdldChkZWYubmFtZSk7XG4gICAgICAgIHJldHVybiBleGlzdGluZ1F1ZXJ5ID8geyAuLi5kZWYsIGRpcjogZXhpc3RpbmdRdWVyeS5kaXIgfSA6IHsgLi4uZGVmIH07XG4gICAgICB9KTtcbiAgICAgIHRoaXMuc29ydFF1ZXJpZXMuc2V0KG1lcmdlZFF1ZXJpZXMpO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuc29ydFF1ZXJpZXNDaGFuZ2UuZW1pdCh0aGlzLnNvcnRRdWVyaWVzKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHVua25vd25bXT4pIHtcbiAgICBjb25zdCBzZCA9IHRoaXMuc29ydERlZmluaXRpb25zKCk7XG4gICAgbW92ZUl0ZW1JbkFycmF5KHNkLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuc29ydERlZmluaXRpb25zLnNldChbLi4uc2RdKTtcblxuICAgIC8vIFJlb3JkZXIgc29ydFF1ZXJpZXMgYmFzZWQgb24gbmV3IHNvcnREZWZpbml0aW9ucyBvcmRlclxuICAgIGNvbnN0IHNxID0gdGhpcy5zb3J0UXVlcmllcygpO1xuICAgIG1vdmVJdGVtSW5BcnJheShzcSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLnNvcnRRdWVyaWVzLnNldChbLi4uc3FdKTtcbiAgfVxuXG4gIGdldFNvcnREaXJlY3Rpb24oaXRlbTogQVhQU29ydERlZmluaXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0UXVlcmllcygpLmZpbmQoKGkpID0+IGkubmFtZSA9PT0gaXRlbS5uYW1lKT8uZGlyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNoYW5nZUl0ZW1Tb3J0KGl0ZW06IEFYUFNvcnREZWZpbml0aW9uKSB7XG4gICAgY29uc3QgaXRlbURpcmVjdGlvbiA9IHRoaXMuZ2V0U29ydERpcmVjdGlvbihpdGVtKTtcbiAgICBjb25zdCBuZXdEaXJlY3Rpb24gPSBpdGVtRGlyZWN0aW9uID09PSAnYXNjJyA/ICdkZXNjJyA6IGl0ZW1EaXJlY3Rpb24gPT09ICdkZXNjJyA/IHVuZGVmaW5lZCA6ICdhc2MnO1xuXG4gICAgdGhpcy5zb3J0UXVlcmllcy51cGRhdGUoKHByZXYpID0+IHtcbiAgICAgIHJldHVybiBwcmV2Lm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09IGl0ZW0ubmFtZSkge1xuICAgICAgICAgIHJldHVybiB7IC4uLmZpZWxkLCBkaXI6IG5ld0RpcmVjdGlvbiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1qdXN0aWZ5LWNlbnRlciBheC1nYXAtNCBheC1zZWxlY3Qtbm9uZVwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1mbGV4LWNvbCBheC1nYXAtNCBheC1zZWxlY3Qtbm9uZVwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTMgYXgtdy1mdWxsIGF4LXNvcnRlZC1saXN0IGF4LW1heC1oLVtjYWxjKDEwMHZoLTI4MHB4KV0gYXgtb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgQGZvciAoaXRlbSBvZiBzb3J0RGVmaW5pdGlvbnMoKTsgdHJhY2sgaXRlbS5uYW1lKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LXB5LTEgYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktYmV0d2VlblwiIGNka0RyYWcgY2RrRHJhZ0JvdW5kYXJ5PVwiLmF4LXNvcnRlZC1saXN0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0zXCIgY2RrRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtZ3JpcC1kb3RzLXZlcnRpY2FsIGF4LWN1cnNvci1tb3ZlXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJheC1mb250LW1lZGl1bSBheC10ZXh0LXNtXCI+e3sgaXRlbS50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxheC1idXR0b24gW2NvbG9yXT1cIidibGFuaydcIiBjbGFzcz1cImF4LXNtXCIgKGNsaWNrKT1cImNoYW5nZUl0ZW1Tb3J0KGl0ZW0pXCI+XG4gICAgICAgICAgICA8YXgtaWNvblxuICAgICAgICAgICAgICBbY2xhc3MuYXgtdGV4dC1wcmltYXJ5XT1cImdldFNvcnREaXJlY3Rpb24oaXRlbSkgPT09ICdhc2MnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmYS1zb2xpZCBmYS1hcnJvdy11cC1sb25nIGF4LXRleHQtbmV1dHJhbC00MDBcIlxuICAgICAgICAgICAgPjwvYXgtaWNvbj5cbiAgICAgICAgICAgIDxheC1pY29uXG4gICAgICAgICAgICAgIFtjbGFzcy5heC10ZXh0LXByaW1hcnldPVwiZ2V0U29ydERpcmVjdGlvbihpdGVtKSA9PT0gJ2Rlc2MnXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmYS1zb2xpZCBmYS1hcnJvdy1kb3duLWxvbmcgYXgtdGV4dC1uZXV0cmFsLTQwMFwiXG4gICAgICAgICAgICA+PC9heC1pY29uPlxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==","import { AXPLayoutBuilderModule, AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, signal, ViewEncapsulation, Input } from '@angular/core';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/layout/builder\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/form\";\nimport * as i5 from \"@angular/common\";\nimport * as i6 from \"@acorex/core/translation\";\nexport class AXPTemplateViewerComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n //#endregion\n //#region ---- Component State ----\n this.context = {};\n this.document = signal({ type: AXPWidgetsCatalog.document }, ...(ngDevMode ? [{ debugName: \"document\" }] : []));\n this.currentPageIndex = signal(0, ...(ngDevMode ? [{ debugName: \"currentPageIndex\" }] : []));\n this._config = signal(undefined, ...(ngDevMode ? [{ debugName: \"_config\" }] : []));\n this.currentPage = computed(() => {\n return (this.document().children?.[this.currentPageIndex()] ?? { type: AXPWidgetsCatalog.pageLayout });\n }, ...(ngDevMode ? [{ debugName: \"currentPage\" }] : []));\n }\n //#region ---- Input Properties ----\n set config(value) {\n this._config.set(value);\n }\n get config() {\n return this._config();\n }\n //#endregion\n //#region ---- Lifecycle Methods ----\n async ngOnInit() {\n super.ngOnInit();\n await this.loadTemplate();\n }\n //#endregion\n //#region ---- Template Loading ----\n async loadTemplate() {\n const config = this.config;\n if (!config)\n return;\n let templateData;\n if (typeof config.template === 'string') {\n try {\n templateData = JSON.parse(config.template);\n }\n catch (error) {\n console.error('Failed to parse template JSON:', error);\n return;\n }\n }\n else {\n templateData = config.template;\n }\n this.document.set(templateData);\n // Set initial context if provided\n if (config.context) {\n this.context = { ...config.context };\n }\n }\n //#endregion\n //#region ---- Event Handlers ----\n handleContextChanged(e) {\n this.context = e.data;\n }\n async handleSubmit(form) {\n const formResult = await form.validate();\n if (formResult.result) {\n this.close({\n context: this.context,\n cancelled: false,\n metadata: this.config?.metadata\n });\n }\n }\n handleCancel() {\n this.close({\n context: this.context,\n cancelled: true,\n metadata: this.config?.metadata\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTemplateViewerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPTemplateViewerComponent, isStandalone: true, selector: \"axp-template-viewer\", inputs: { config: \"config\" }, usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-p-4 ax-min-h-64\">\n <ax-form #form>\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChanged($event)\" >\n <ng-container axp-widget-renderer [node]=\"currentPage()\" [mode]=\"config?.readOnly ? 'view' : 'edit'\"></ng-container>\n </axp-widgets-container>\n </ax-form>\n </div>\n \n @if (config?.showActions !== false) {\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'@general:actions.cancel.title' | translate | async\" (onClick)=\"handleCancel()\"></ax-button>\n @if (!config?.readOnly) {\n <ax-button color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\" (onClick)=\"handleSubmit(form)\"></ax-button>\n }\n </ax-suffix>\n </ax-footer>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i1.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i1.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i3.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"component\", type: i4.AXFormComponent, selector: \"ax-form\", inputs: [\"labelMode\", \"look\", \"messageStyle\", \"updateOn\"], outputs: [\"onValidate\", \"updateOnChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i5.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i6.AXTranslatorPipe, name: \"translate\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTemplateViewerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-template-viewer',\n template: `\n <div class=\"ax-p-4 ax-min-h-64\">\n <ax-form #form>\n <axp-widgets-container [context]=\"context\" (onContextChanged)=\"handleContextChanged($event)\" >\n <ng-container axp-widget-renderer [node]=\"currentPage()\" [mode]=\"config?.readOnly ? 'view' : 'edit'\"></ng-container>\n </axp-widgets-container>\n </ax-form>\n </div>\n \n @if (config?.showActions !== false) {\n <ax-footer>\n <ax-suffix>\n <ax-button [text]=\"'@general:actions.cancel.title' | translate | async\" (onClick)=\"handleCancel()\"></ax-button>\n @if (!config?.readOnly) {\n <ax-button color=\"primary\" [text]=\"'@general:actions.submit.title' | translate | async\" (onClick)=\"handleSubmit(form)\"></ax-button>\n }\n </ax-suffix>\n </ax-footer>\n }\n `,\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, AXPLayoutBuilderModule, AXDecoratorModule, AXButtonModule, AXFormModule, AXTranslationModule]\n }]\n }], propDecorators: { config: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdmlld2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi90ZW1wbGF0ZS12aWV3ZXIvdGVtcGxhdGUtdmlld2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQThDLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBbUIsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBNEIvRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsbUJBQW1CO0lBekJuRTs7UUFvQ0ksWUFBWTtRQUVaLHVDQUF1QztRQUU3QixZQUFPLEdBQVEsRUFBRSxDQUFDO1FBQ1QsYUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQW1CLG9EQUFDLENBQUM7UUFDekUscUJBQWdCLEdBQUcsTUFBTSxDQUFDLENBQUMsNERBQUMsQ0FBQztRQUM3QixZQUFPLEdBQUcsTUFBTSxDQUFzQyxTQUFTLG1EQUFDLENBQUM7UUFFakUsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNDLE9BQU8sQ0FDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSyxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQW9CLENBQ25ILENBQUM7UUFDTixDQUFDLHVEQUFDLENBQUM7S0FvRU47SUExRkcsd0NBQXdDO0lBRXhDLElBQWEsTUFBTSxDQUFDLEtBQTBDO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBaUJELFlBQVk7SUFFWix5Q0FBeUM7SUFFdEIsS0FBSyxDQUFDLFFBQVE7UUFDN0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO0lBRVosd0NBQXdDO0lBRWhDLEtBQUssQ0FBQyxZQUFZO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBRXBCLElBQUksWUFBMkIsQ0FBQztRQUVoQyxJQUFJLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUM7Z0JBQ0QsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZELE9BQU87WUFDWCxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixZQUFZLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEMsa0NBQWtDO1FBQ2xDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7SUFFWixzQ0FBc0M7SUFFNUIsb0JBQW9CLENBQUMsQ0FBOEI7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFUyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQXFCO1FBQzlDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pDLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ1AsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixTQUFTLEVBQUUsS0FBSztnQkFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUTthQUNsQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVTLFlBQVk7UUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNQLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixTQUFTLEVBQUUsSUFBSTtZQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVE7U0FDbEMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F6RlEsMEJBQTBCO2tHQUExQiwwQkFBMEIsb0lBdkJ6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CWCwyREFFVyxZQUFZLDhCQUFFLHNCQUFzQiw4WkFBRSxpQkFBaUIscVBBQUUsY0FBYyw2WEFBRSxZQUFZLDBNQUFFLG1CQUFtQjs7MkZBRTNHLDBCQUEwQjtrQkF6QnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJYO29CQUNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztpQkFDeEg7OEJBS2dCLE1BQU07c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLCBBWFBMYXlvdXRDb250ZXh0Q2hhbmdlRXZlbnQsIEFYUFdpZGdldE5vZGUsIEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwsIFZpZXdFbmNhcHN1bGF0aW9uLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRm9ybUNvbXBvbmVudCwgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBUZW1wbGF0ZVZpZXdlckNvbmZpZyB9IGZyb20gJy4vdGVtcGxhdGUtdmlld2VyLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtdGVtcGxhdGUtdmlld2VyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJheC1wLTQgYXgtbWluLWgtNjRcIj5cbiAgICAgICAgPGF4LWZvcm0gI2Zvcm0+XG4gICAgICAgICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJjb250ZXh0XCIgKG9uQ29udGV4dENoYW5nZWQpPVwiaGFuZGxlQ29udGV4dENoYW5nZWQoJGV2ZW50KVwiID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgYXhwLXdpZGdldC1yZW5kZXJlciBbbm9kZV09XCJjdXJyZW50UGFnZSgpXCIgW21vZGVdPVwiY29uZmlnPy5yZWFkT25seSA/ICd2aWV3JyA6ICdlZGl0J1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICAgICAgICA8L2F4LWZvcm0+XG4gICAgPC9kaXY+XG4gICAgXG4gICAgQGlmIChjb25maWc/LnNob3dBY3Rpb25zICE9PSBmYWxzZSkge1xuICAgICAgPGF4LWZvb3Rlcj5cbiAgICAgICAgPGF4LXN1ZmZpeD5cbiAgICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cIidAZ2VuZXJhbDphY3Rpb25zLmNhbmNlbC50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiIChvbkNsaWNrKT1cImhhbmRsZUNhbmNlbCgpXCI+PC9heC1idXR0b24+XG4gICAgICAgICAgQGlmICghY29uZmlnPy5yZWFkT25seSkge1xuICAgICAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbdGV4dF09XCInQGdlbmVyYWw6YWN0aW9ucy5zdWJtaXQudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIiAob25DbGljayk9XCJoYW5kbGVTdWJtaXQoZm9ybSlcIj48L2F4LWJ1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtc3VmZml4PlxuICAgICAgPC9heC1mb290ZXI+XG4gICAgfVxuICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYQnV0dG9uTW9kdWxlLCBBWEZvcm1Nb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRlbXBsYXRlVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIElucHV0IFByb3BlcnRpZXMgICAtLS0tXG5cbiAgICBASW5wdXQoKSBzZXQgY29uZmlnKHZhbHVlOiBBWFBUZW1wbGF0ZVZpZXdlckNvbmZpZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9jb25maWcuc2V0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGNvbmZpZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZygpO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDb21wb25lbnQgU3RhdGUgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgY29udGV4dDogYW55ID0ge307XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRvY3VtZW50ID0gc2lnbmFsKHsgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuZG9jdW1lbnQgfSBhcyBBWFBXaWRnZXROb2RlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBhZ2VJbmRleCA9IHNpZ25hbCgwKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvbmZpZyA9IHNpZ25hbDxBWFBUZW1wbGF0ZVZpZXdlckNvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW50UGFnZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQoKS5jaGlsZHJlbj8uW3RoaXMuY3VycmVudFBhZ2VJbmRleCgpXSA/PyAoeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5wYWdlTGF5b3V0IH0gYXMgQVhQV2lkZ2V0Tm9kZSlcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBMaWZlY3ljbGUgTWV0aG9kcyAgIC0tLS1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkVGVtcGxhdGUoKTtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgVGVtcGxhdGUgTG9hZGluZyAgIC0tLS1cblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZFRlbXBsYXRlKCkge1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgaWYgKCFjb25maWcpIHJldHVybjtcblxuICAgICAgICBsZXQgdGVtcGxhdGVEYXRhOiBBWFBXaWRnZXROb2RlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgY29uZmlnLnRlbXBsYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZURhdGEgPSBKU09OLnBhcnNlKGNvbmZpZy50ZW1wbGF0ZSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSB0ZW1wbGF0ZSBKU09OOicsIGVycm9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0ZW1wbGF0ZURhdGEgPSBjb25maWcudGVtcGxhdGU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRvY3VtZW50LnNldCh0ZW1wbGF0ZURhdGEpO1xuXG4gICAgICAgIC8vIFNldCBpbml0aWFsIGNvbnRleHQgaWYgcHJvdmlkZWRcbiAgICAgICAgaWYgKGNvbmZpZy5jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSB7IC4uLmNvbmZpZy5jb250ZXh0IH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgRXZlbnQgSGFuZGxlcnMgICAtLS0tXG5cbiAgICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dENoYW5nZWQoZTogQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50KSB7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IGUuZGF0YTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlU3VibWl0KGZvcm06IEFYRm9ybUNvbXBvbmVudCkge1xuICAgICAgICBjb25zdCBmb3JtUmVzdWx0ID0gYXdhaXQgZm9ybS52YWxpZGF0ZSgpO1xuICAgICAgICBpZiAoZm9ybVJlc3VsdC5yZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2Uoe1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dCxcbiAgICAgICAgICAgICAgICBjYW5jZWxsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiB0aGlzLmNvbmZpZz8ubWV0YWRhdGFcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGhhbmRsZUNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy5jbG9zZSh7XG4gICAgICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHQsXG4gICAgICAgICAgICBjYW5jZWxsZWQ6IHRydWUsXG4gICAgICAgICAgICBtZXRhZGF0YTogdGhpcy5jb25maWc/Lm1ldGFkYXRhXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { AXPopupService } from '@acorex/components/popup';\nimport * as i0 from \"@angular/core\";\nexport class AXPTemplateViewerService {\n constructor() {\n this.popupService = inject(AXPopupService);\n }\n /**\n * Show a template viewer dialog with the given configuration\n * @param config Template viewer configuration including template, title, and UI options\n * @returns Promise resolving to viewer result with form values and cancellation status\n */\n async showTemplate(config) {\n const component = await import('./template-viewer.component').then(c => c.AXPTemplateViewerComponent);\n const result = await this.popupService.open(component, {\n title: config.title || 'Template Viewer',\n size: config.size || 'lg',\n closeButton: false,\n closeOnBackdropClick: false,\n draggable: false,\n data: { config }\n });\n return result?.data || { context: config.context, cancelled: true, metadata: config.metadata };\n }\n /**\n * Show a template viewer in read-only mode\n * @param config Template viewer configuration\n * @returns Promise resolving to viewer result\n */\n async showTemplateReadOnly(config) {\n return this.showTemplate({\n ...config,\n readOnly: true,\n showActions: false\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTemplateViewerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTemplateViewerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPTemplateViewerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdmlld2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvdGVtcGxhdGUtdmlld2VyL3RlbXBsYXRlLXZpZXdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNMUQsTUFBTSxPQUFPLHdCQUF3QjtJQUhyQztRQUlxQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQWlDMUQ7SUEvQkc7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBK0I7UUFDOUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN0RyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuRCxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSxpQkFBaUI7WUFDeEMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSTtZQUN6QixXQUFXLEVBQUUsS0FBSztZQUNsQixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRTtTQUNuQixDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sRUFBRSxJQUFJLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkcsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsb0JBQW9CLENBQUMsTUFBaUU7UUFDeEYsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3JCLEdBQUcsTUFBTTtZQUNULFFBQVEsRUFBRSxJQUFJO1lBQ2QsV0FBVyxFQUFFLEtBQUs7U0FDckIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FqQ1Esd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGckIsTUFBTTs7MkZBRVQsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhQVGVtcGxhdGVWaWV3ZXJDb25maWcsIEFYUFRlbXBsYXRlVmlld2VyUmVzdWx0IH0gZnJvbSAnLi90ZW1wbGF0ZS12aWV3ZXIudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRlbXBsYXRlVmlld2VyU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyBhIHRlbXBsYXRlIHZpZXdlciBkaWFsb2cgd2l0aCB0aGUgZ2l2ZW4gY29uZmlndXJhdGlvblxuICAgICAqIEBwYXJhbSBjb25maWcgVGVtcGxhdGUgdmlld2VyIGNvbmZpZ3VyYXRpb24gaW5jbHVkaW5nIHRlbXBsYXRlLCB0aXRsZSwgYW5kIFVJIG9wdGlvbnNcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB0byB2aWV3ZXIgcmVzdWx0IHdpdGggZm9ybSB2YWx1ZXMgYW5kIGNhbmNlbGxhdGlvbiBzdGF0dXNcbiAgICAgKi9cbiAgICBhc3luYyBzaG93VGVtcGxhdGUoY29uZmlnOiBBWFBUZW1wbGF0ZVZpZXdlckNvbmZpZyk6IFByb21pc2U8QVhQVGVtcGxhdGVWaWV3ZXJSZXN1bHQ+IHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gYXdhaXQgaW1wb3J0KCcuL3RlbXBsYXRlLXZpZXdlci5jb21wb25lbnQnKS50aGVuKGMgPT4gYy5BWFBUZW1wbGF0ZVZpZXdlckNvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucG9wdXBTZXJ2aWNlLm9wZW4oY29tcG9uZW50LCB7XG4gICAgICAgICAgICB0aXRsZTogY29uZmlnLnRpdGxlIHx8ICdUZW1wbGF0ZSBWaWV3ZXInLFxuICAgICAgICAgICAgc2l6ZTogY29uZmlnLnNpemUgfHwgJ2xnJyxcbiAgICAgICAgICAgIGNsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgIGNsb3NlT25CYWNrZHJvcENsaWNrOiBmYWxzZSxcbiAgICAgICAgICAgIGRyYWdnYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkYXRhOiB7IGNvbmZpZyB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiByZXN1bHQ/LmRhdGEgfHwgeyBjb250ZXh0OiBjb25maWcuY29udGV4dCwgY2FuY2VsbGVkOiB0cnVlLCBtZXRhZGF0YTogY29uZmlnLm1ldGFkYXRhIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyBhIHRlbXBsYXRlIHZpZXdlciBpbiByZWFkLW9ubHkgbW9kZVxuICAgICAqIEBwYXJhbSBjb25maWcgVGVtcGxhdGUgdmlld2VyIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB0byB2aWV3ZXIgcmVzdWx0XG4gICAgICovXG4gICAgYXN5bmMgc2hvd1RlbXBsYXRlUmVhZE9ubHkoY29uZmlnOiBPbWl0PEFYUFRlbXBsYXRlVmlld2VyQ29uZmlnLCAncmVhZE9ubHknIHwgJ3Nob3dBY3Rpb25zJz4pOiBQcm9taXNlPEFYUFRlbXBsYXRlVmlld2VyUmVzdWx0PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dUZW1wbGF0ZSh7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgICAgIHNob3dBY3Rpb25zOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=","import { InjectionToken } from \"@angular/core\";\nexport const AXP_USER_AVATAR_PROVIDER = new InjectionToken('AXP_USER_AVATAR_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return new AXPUserAvatarProviderDefault();\n }\n});\nclass AXPUserAvatarProviderDefault {\n provide(userId) {\n return Promise.resolve({\n id: userId,\n username: 'johndoe',\n firstName: 'John',\n lastName: 'Doe',\n status: 'online',\n avatarUrl: 'https://via.placeholder.com/150',\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvdXNlci1hdmF0YXIvdXNlci1hdmF0YXIucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQsMEJBQTBCLEVBQzFCO0lBQ0ksVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE9BQU8sSUFBSSw0QkFBNEIsRUFBRSxDQUFDO0lBQzlDLENBQUM7Q0FDSixDQUNKLENBQUM7QUFHRixNQUFNLDRCQUE0QjtJQUM5QixPQUFPLENBQUMsTUFBYztRQUNsQixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDbkIsRUFBRSxFQUFFLE1BQU07WUFDVixRQUFRLEVBQUUsU0FBUztZQUNuQixTQUFTLEVBQUUsTUFBTTtZQUNqQixRQUFRLEVBQUUsS0FBSztZQUNmLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFNBQVMsRUFBRSxpQ0FBaUM7U0FDL0MsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhckRhdGEsIEFYUFVzZXJBdmF0YXJQcm92aWRlciB9IGZyb20gXCIuL3VzZXItYXZhdGFyLnR5cGVzXCI7XG5cbmV4cG9ydCBjb25zdCBBWFBfVVNFUl9BVkFUQVJfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQVXNlckF2YXRhclByb3ZpZGVyPihcbiAgICAnQVhQX1VTRVJfQVZBVEFSX1BST1ZJREVSJyxcbiAgICB7XG4gICAgICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBWFBVc2VyQXZhdGFyUHJvdmlkZXJEZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG4pO1xuXG5cbmNsYXNzIEFYUFVzZXJBdmF0YXJQcm92aWRlckRlZmF1bHQgaW1wbGVtZW50cyBBWFBVc2VyQXZhdGFyUHJvdmlkZXIge1xuICAgIHByb3ZpZGUodXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPEFYUFVzZXJBdmF0YXJEYXRhPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICAgICAgaWQ6IHVzZXJJZCxcbiAgICAgICAgICAgIHVzZXJuYW1lOiAnam9obmRvZScsXG4gICAgICAgICAgICBmaXJzdE5hbWU6ICdKb2huJyxcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnRG9lJyxcbiAgICAgICAgICAgIHN0YXR1czogJ29ubGluZScsXG4gICAgICAgICAgICBhdmF0YXJVcmw6ICdodHRwczovL3ZpYS5wbGFjZWhvbGRlci5jb20vMTUwJyxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","import { inject, Injectable } from \"@angular/core\";\nimport { AXP_USER_AVATAR_PROVIDER } from \"./user-avatar.provider\";\nimport { BehaviorSubject, timer } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class AXPUserAvatarService {\n constructor() {\n this.provider = inject(AXP_USER_AVATAR_PROVIDER);\n // Cache configuration\n this.cacheExpiryTime = 5 * 60 * 1000; // 5 minutes in milliseconds\n this.refreshInterval = 3 * 60 * 1000; // 3 minutes in milliseconds\n // Cache storage\n this.cache = new Map();\n }\n /**\n * Gets user information with caching and auto-refresh\n * @param userId The username to fetch information for\n * @returns Observable that emits user avatar data\n */\n getUserInfo$(userId) {\n // Check if we have a cached entry\n if (!this.cache.has(userId) || this.isExpired(userId)) {\n // Create a new cache entry with default values\n const defaultData = {\n id: userId,\n status: 'offline',\n username: '',\n firstName: '',\n lastName: ''\n };\n const subject = new BehaviorSubject(defaultData);\n this.cache.set(userId, {\n data: defaultData,\n timestamp: Date.now(),\n subject\n });\n // Fetch fresh data immediately\n this.fetchAndUpdateCache(userId);\n // Set up auto refresh\n timer(this.refreshInterval, this.refreshInterval)\n .pipe(tap(() => this.fetchAndUpdateCache(userId)))\n .subscribe();\n }\n return this.cache.get(userId).subject.asObservable();\n }\n /**\n * Gets user information (Promise-based for backward compatibility)\n * @param userId The username to fetch information for\n * @returns Promise that resolves to user avatar data\n */\n async getUserInfo(userId) {\n // Check if we have an unexpired cached entry\n if (this.cache.has(userId) && !this.isExpired(userId)) {\n return this.cache.get(userId).data;\n }\n // Fetch fresh data and cache it\n return this.fetchAndUpdateCache(userId);\n }\n /**\n * Clears the entire cache or a specific user's cache\n * @param userId Optional username to clear specific cache\n */\n clearCache(userId) {\n if (userId) {\n this.cache.delete(userId);\n }\n else {\n this.cache.clear();\n }\n }\n /**\n * Force refresh data for a specific username\n * @param userId The username to refresh\n * @returns Promise that resolves to the refreshed data\n */\n async refreshUserInfo(userId) {\n return this.fetchAndUpdateCache(userId);\n }\n /**\n * Checks if a cache entry is expired\n */\n isExpired(userId) {\n const entry = this.cache.get(userId);\n if (!entry)\n return true;\n return (Date.now() - entry.timestamp) > this.cacheExpiryTime;\n }\n /**\n * Fetches data from provider and updates the cache\n */\n async fetchAndUpdateCache(userId) {\n try {\n const data = await this.provider.provide(userId);\n if (!data) {\n throw new Error(`User info not found for ${userId}`);\n }\n const entry = this.cache.get(userId);\n // Update the cache entry\n if (entry) {\n entry.data = data;\n entry.timestamp = Date.now();\n entry.subject.next(data);\n }\n else {\n // Create a new cache entry if needed\n const subject = new BehaviorSubject(data);\n this.cache.set(userId, {\n data,\n timestamp: Date.now(),\n subject\n });\n }\n return data;\n }\n catch (error) {\n console.error(`Error fetching user info for ${userId}:`, error);\n throw error;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPUserAvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPUserAvatarService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPUserAvatarService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi91c2VyLWF2YXRhci91c2VyLWF2YXRhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQWMsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBK0IsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBV2xFLE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJWSxhQUFRLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFcEQsc0JBQXNCO1FBQ0wsb0JBQWUsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLDRCQUE0QjtRQUM3RCxvQkFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsNEJBQTRCO1FBRTlFLGdCQUFnQjtRQUNSLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztLQXFIakQ7SUFuSEc7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxNQUFjO1FBQ3ZCLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3BELCtDQUErQztZQUMvQyxNQUFNLFdBQVcsR0FBc0I7Z0JBQ25DLEVBQUUsRUFBRSxNQUFNO2dCQUNWLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixRQUFRLEVBQUUsRUFBRTtnQkFDWixT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QUUsQ0FBQztnQkFDN0IsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLHFDQUFxQztnQkFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQW9CLElBQUksQ0FBQyxDQUFDO2dCQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUU7b0JBQ25CLElBQUk7b0JBQ0osU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ3JCLE9BQU87aUJBQ1YsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsTUFBTSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDaEUsTUFBTSxLQUFLLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7OEdBNUhRLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRmpCLE1BQU07OzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhckRhdGEgfSBmcm9tIFwiLi91c2VyLWF2YXRhci50eXBlc1wiO1xuaW1wb3J0IHsgQVhQX1VTRVJfQVZBVEFSX1BST1ZJREVSIH0gZnJvbSBcIi4vdXNlci1hdmF0YXIucHJvdmlkZXJcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbnRlcmZhY2UgQ2FjaGVFbnRyeSB7XG4gICAgZGF0YTogQVhQVXNlckF2YXRhckRhdGE7XG4gICAgdGltZXN0YW1wOiBudW1iZXI7XG4gICAgc3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PEFYUFVzZXJBdmF0YXJEYXRhPjtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVXNlckF2YXRhclNlcnZpY2Uge1xuICAgIHByaXZhdGUgcHJvdmlkZXIgPSBpbmplY3QoQVhQX1VTRVJfQVZBVEFSX1BST1ZJREVSKTtcblxuICAgIC8vIENhY2hlIGNvbmZpZ3VyYXRpb25cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlRXhwaXJ5VGltZSA9IDUgKiA2MCAqIDEwMDA7IC8vIDUgbWludXRlcyBpbiBtaWxsaXNlY29uZHNcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hJbnRlcnZhbCA9IDMgKiA2MCAqIDEwMDA7IC8vIDMgbWludXRlcyBpbiBtaWxsaXNlY29uZHNcblxuICAgIC8vIENhY2hlIHN0b3JhZ2VcbiAgICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIENhY2hlRW50cnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHVzZXIgaW5mb3JtYXRpb24gd2l0aCBjYWNoaW5nIGFuZCBhdXRvLXJlZnJlc2hcbiAgICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1c2VybmFtZSB0byBmZXRjaCBpbmZvcm1hdGlvbiBmb3JcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdXNlciBhdmF0YXIgZGF0YVxuICAgICAqL1xuICAgIGdldFVzZXJJbmZvJCh1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QVhQVXNlckF2YXRhckRhdGE+IHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhIGNhY2hlZCBlbnRyeVxuICAgICAgICBpZiAoIXRoaXMuY2FjaGUuaGFzKHVzZXJJZCkgfHwgdGhpcy5pc0V4cGlyZWQodXNlcklkKSkge1xuICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbmV3IGNhY2hlIGVudHJ5IHdpdGggZGVmYXVsdCB2YWx1ZXNcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHREYXRhOiBBWFBVc2VyQXZhdGFyRGF0YSA9IHtcbiAgICAgICAgICAgICAgICBpZDogdXNlcklkLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ29mZmxpbmUnLFxuICAgICAgICAgICAgICAgIHVzZXJuYW1lOiAnJyxcbiAgICAgICAgICAgICAgICBmaXJzdE5hbWU6ICcnLFxuICAgICAgICAgICAgICAgIGxhc3ROYW1lOiAnJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFYUFVzZXJBdmF0YXJEYXRhPihkZWZhdWx0RGF0YSk7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnNldCh1c2VySWQsIHtcbiAgICAgICAgICAgICAgICBkYXRhOiBkZWZhdWx0RGF0YSxcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgICAgICAgc3ViamVjdFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIEZldGNoIGZyZXNoIGRhdGEgaW1tZWRpYXRlbHlcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hBbmRVcGRhdGVDYWNoZSh1c2VySWQpO1xuXG4gICAgICAgICAgICAvLyBTZXQgdXAgYXV0byByZWZyZXNoXG4gICAgICAgICAgICB0aW1lcih0aGlzLnJlZnJlc2hJbnRlcnZhbCwgdGhpcy5yZWZyZXNoSW50ZXJ2YWwpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmZldGNoQW5kVXBkYXRlQ2FjaGUodXNlcklkKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHVzZXJJZCkhLnN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB1c2VyIGluZm9ybWF0aW9uIChQcm9taXNlLWJhc2VkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxuICAgICAqIEBwYXJhbSB1c2VySWQgVGhlIHVzZXJuYW1lIHRvIGZldGNoIGluZm9ybWF0aW9uIGZvclxuICAgICAqIEByZXR1cm5zIFByb21pc2UgdGhhdCByZXNvbHZlcyB0byB1c2VyIGF2YXRhciBkYXRhXG4gICAgICovXG4gICAgYXN5bmMgZ2V0VXNlckluZm8odXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPEFYUFVzZXJBdmF0YXJEYXRhPiB7XG4gICAgICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgYW4gdW5leHBpcmVkIGNhY2hlZCBlbnRyeVxuICAgICAgICBpZiAodGhpcy5jYWNoZS5oYXModXNlcklkKSAmJiAhdGhpcy5pc0V4cGlyZWQodXNlcklkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHVzZXJJZCkhLmRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGZXRjaCBmcmVzaCBkYXRhIGFuZCBjYWNoZSBpdFxuICAgICAgICByZXR1cm4gdGhpcy5mZXRjaEFuZFVwZGF0ZUNhY2hlKHVzZXJJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBlbnRpcmUgY2FjaGUgb3IgYSBzcGVjaWZpYyB1c2VyJ3MgY2FjaGVcbiAgICAgKiBAcGFyYW0gdXNlcklkIE9wdGlvbmFsIHVzZXJuYW1lIHRvIGNsZWFyIHNwZWNpZmljIGNhY2hlXG4gICAgICovXG4gICAgY2xlYXJDYWNoZSh1c2VySWQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHVzZXJJZCkge1xuICAgICAgICAgICAgdGhpcy5jYWNoZS5kZWxldGUodXNlcklkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvcmNlIHJlZnJlc2ggZGF0YSBmb3IgYSBzcGVjaWZpYyB1c2VybmFtZVxuICAgICAqIEBwYXJhbSB1c2VySWQgVGhlIHVzZXJuYW1lIHRvIHJlZnJlc2hcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHJlZnJlc2hlZCBkYXRhXG4gICAgICovXG4gICAgYXN5bmMgcmVmcmVzaFVzZXJJbmZvKHVzZXJJZDogc3RyaW5nKTogUHJvbWlzZTxBWFBVc2VyQXZhdGFyRGF0YT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mZXRjaEFuZFVwZGF0ZUNhY2hlKHVzZXJJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgY2FjaGUgZW50cnkgaXMgZXhwaXJlZFxuICAgICAqL1xuICAgIHByaXZhdGUgaXNFeHBpcmVkKHVzZXJJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gdGhpcy5jYWNoZS5nZXQodXNlcklkKTtcbiAgICAgICAgaWYgKCFlbnRyeSkgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgcmV0dXJuIChEYXRlLm5vdygpIC0gZW50cnkudGltZXN0YW1wKSA+IHRoaXMuY2FjaGVFeHBpcnlUaW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZldGNoZXMgZGF0YSBmcm9tIHByb3ZpZGVyIGFuZCB1cGRhdGVzIHRoZSBjYWNoZVxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgZmV0Y2hBbmRVcGRhdGVDYWNoZSh1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8QVhQVXNlckF2YXRhckRhdGE+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLnByb3ZpZGVyLnByb3ZpZGUodXNlcklkKTtcbiAgICAgICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVXNlciBpbmZvIG5vdCBmb3VuZCBmb3IgJHt1c2VySWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuY2FjaGUuZ2V0KHVzZXJJZCk7XG5cbiAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGUgZW50cnlcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGVudHJ5LmRhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICAgIGVudHJ5LnRpbWVzdGFtcCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgZW50cnkuc3ViamVjdC5uZXh0KGRhdGEpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBuZXcgY2FjaGUgZW50cnkgaWYgbmVlZGVkXG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QVhQVXNlckF2YXRhckRhdGE+KGRhdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FjaGUuc2V0KHVzZXJJZCwge1xuICAgICAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgICAgICAgICAgICAgIHN1YmplY3RcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBmZXRjaGluZyB1c2VyIGluZm8gZm9yICR7dXNlcklkfTpgLCBlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0=","import { Component, ViewEncapsulation, computed, inject, input, signal } from '@angular/core';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPUserAvatarService } from './user-avatar.service';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/avatar\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/components/image\";\nexport class AXPUserAvatarComponent {\n constructor() {\n this.userAvatarService = inject(AXPUserAvatarService);\n this.destroy$ = new Subject();\n this.userInfo = signal(null, ...(ngDevMode ? [{ debugName: \"userInfo\" }] : []));\n this.size = input(40, ...(ngDevMode ? [{ debugName: \"size\" }] : []));\n this.userId = input('', ...(ngDevMode ? [{ debugName: \"userId\" }] : []));\n this.src = signal('', ...(ngDevMode ? [{ debugName: \"src\" }] : []));\n this.userName = computed(() => this.userInfo()?.username || '', ...(ngDevMode ? [{ debugName: \"userName\" }] : []));\n this.firstName = computed(() => this.userInfo()?.firstName || 'Root', ...(ngDevMode ? [{ debugName: \"firstName\" }] : []));\n this.lastName = computed(() => this.userInfo()?.lastName || 'User', ...(ngDevMode ? [{ debugName: \"lastName\" }] : []));\n this.title = computed(() => `${this.firstName()} ${this.lastName()}`, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.isOnline = computed(() => this.userInfo()?.status === 'online', ...(ngDevMode ? [{ debugName: \"isOnline\" }] : []));\n this.avatarText = computed(() => this.getInitials(), ...(ngDevMode ? [{ debugName: \"avatarText\" }] : []));\n this.avatarColor = computed(() => this.pickColor(this.avatarText()), ...(ngDevMode ? [{ debugName: \"avatarColor\" }] : []));\n this.hasPicture = signal(false, ...(ngDevMode ? [{ debugName: \"hasPicture\" }] : []));\n }\n onImageError(event) {\n this.hasPicture.set(false);\n }\n onImageLoad(event) {\n this.hasPicture.set(true);\n }\n ngOnInit() {\n this.loadUserData();\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n loadUserData() {\n // Skip if no username provided\n if (!this.userId()) {\n return;\n }\n // Subscribe to the user info observable to get real-time updates\n this.userAvatarService\n .getUserInfo$(this.userId())\n .pipe(takeUntil(this.destroy$))\n .subscribe((userData) => {\n this.userInfo.set(userData);\n // This is a placeholder - replace with your actual avatar URL logic\n this.generateAvatarSrc();\n });\n }\n /**\n * Generate avatar image source\n * This is a placeholder - implement based on your actual requirements\n */\n generateAvatarSrc() {\n // Example: Check if the user has a custom avatar URL\n // If not, generate a placeholder using initials\n if (this.userInfo()?.avatarUrl) {\n this.src.set(this.userInfo()?.avatarUrl);\n }\n else {\n // Generate a placeholder - you could use an external service like UI Avatars\n // or implement your own logic\n const initials = this.getInitials();\n this.src.set(`https://avatar.iran.liara.run/username?username=${encodeURIComponent(initials)}`);\n }\n }\n /**\n * Get initials from first and last name\n */\n getInitials() {\n const firstInitial = this.firstName().charAt(0).toUpperCase();\n const lastInitial = this.lastName().charAt(0).toUpperCase();\n return firstInitial + lastInitial;\n }\n hashString(str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = (hash << 5) - hash + str.charCodeAt(i);\n hash |= 0;\n }\n return Math.abs(hash);\n }\n pickColor(initials) {\n const colors = ['primary', 'secondary', 'danger', 'warning', 'success', 'accent1', 'accent2', 'accent3'];\n const idx = this.hashString(initials) % colors.length;\n return colors[idx];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPUserAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPUserAvatarComponent, isStandalone: true, selector: \"axp-user-avatar\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, userId: { classPropertyName: \"userId\", publicName: \"userId\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [], ngImport: i0, template: \"<ax-avatar #avatar [size]=\\\"size()\\\" class=\\\"ax-cursor-pointer\\\">\\n @if(hasPicture()){\\n <ax-image (onError)=\\\"onImageError($event)\\\" (onLoad)=\\\"onImageLoad($event)\\\" [src]=\\\"src()\\\"></ax-image>\\n }@else{\\n <ax-text class=\\\"ax-{{ avatarColor() }}-lightest \\\">\\n <small class=\\\"ax-text-xs ax-font-semibold\\\">{{ avatarText() }}</small>\\n </ax-text>\\n }\\n</ax-avatar>\\n\\n<!--\\n\\nax-primary-lightest\\nax-warning-lightest\\nax-success-lightest\\nax-danger-lightest\\nax-secondary-lightest\\nax-accent1-lightest\\nax-accent2-lightest\\nax-accent3-lightest\\n\\n-->\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AXAvatarModule }, { kind: \"component\", type: i1.AXAvatarComponent, selector: \"ax-avatar\", inputs: [\"color\", \"size\", \"shape\", \"look\"], outputs: [\"sizeChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXImageModule }, { kind: \"component\", type: i3.AXImageComponent, selector: \"ax-image\", inputs: [\"width\", \"height\", \"overlayMode\", \"src\", \"alt\", \"priority\", \"lazy\"], outputs: [\"onLoad\", \"onError\"] }, { kind: \"ngmodule\", type: AXBadgeModule }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPUserAvatarComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-user-avatar', imports: [\n AXAvatarModule,\n AXDecoratorModule,\n AXImageModule,\n AXBadgeModule\n ], encapsulation: ViewEncapsulation.None, providers: [], template: \"<ax-avatar #avatar [size]=\\\"size()\\\" class=\\\"ax-cursor-pointer\\\">\\n @if(hasPicture()){\\n <ax-image (onError)=\\\"onImageError($event)\\\" (onLoad)=\\\"onImageLoad($event)\\\" [src]=\\\"src()\\\"></ax-image>\\n }@else{\\n <ax-text class=\\\"ax-{{ avatarColor() }}-lightest \\\">\\n <small class=\\\"ax-text-xs ax-font-semibold\\\">{{ avatarText() }}</small>\\n </ax-text>\\n }\\n</ax-avatar>\\n\\n<!--\\n\\nax-primary-lightest\\nax-warning-lightest\\nax-success-lightest\\nax-danger-lightest\\nax-secondary-lightest\\nax-accent1-lightest\\nax-accent2-lightest\\nax-accent3-lightest\\n\\n-->\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUczRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBZXpELE1BQU0sT0FBTyxzQkFBc0I7SUFibkM7UUFjbUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdEMsYUFBUSxHQUFHLE1BQU0sQ0FBMkIsSUFBSSxvREFBQyxDQUFDO1FBRTVELFNBQUksR0FBRyxLQUFLLENBQVMsRUFBRSxnREFBQyxDQUFDO1FBQ3pCLFdBQU0sR0FBRyxLQUFLLENBQVMsRUFBRSxr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QUFpQixxUEFDakIsYUFBYSxvTkFDYixhQUFhOzsyRkFLSixzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ0UsaUJBQWlCLFdBR2xCO3dCQUNQLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGFBQWE7cUJBQ2hCLGlCQUNnQixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhclNlcnZpY2UgfSBmcm9tICcuL3VzZXItYXZhdGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWEF2YXRhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdmF0YXInO1xuaW1wb3J0IHsgQVhIdG1sRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhckRhdGEgfSBmcm9tICcuL3VzZXItYXZhdGFyLnR5cGVzJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhJbWFnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9pbWFnZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC11c2VyLWF2YXRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWF2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi91c2VyLWF2YXRhci5jb21wb25lbnQuc2NzcycsXG4gIGltcG9ydHM6IFtcbiAgICBBWEF2YXRhck1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEltYWdlTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGVcbl0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFVzZXJBdmF0YXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckF2YXRhclNlcnZpY2UgPSBpbmplY3QoQVhQVXNlckF2YXRhclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgdXNlckluZm8gPSBzaWduYWw8QVhQVXNlckF2YXRhckRhdGEgfCBudWxsPihudWxsKTtcblxuICBzaXplID0gaW5wdXQ8bnVtYmVyPig0MCk7XG4gIHVzZXJJZCA9IGlucHV0PHN0cmluZz4oJycpO1xuXG4gIHNyYyA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgdXNlck5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVzZXJJbmZvKCk/LnVzZXJuYW1lIHx8ICcnKTtcbiAgZmlyc3ROYW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51c2VySW5mbygpPy5maXJzdE5hbWUgfHwgJ1Jvb3QnKTtcbiAgbGFzdE5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVzZXJJbmZvKCk/Lmxhc3ROYW1lIHx8ICdVc2VyJyk7XG4gIHRpdGxlID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5maXJzdE5hbWUoKX0gJHt0aGlzLmxhc3ROYW1lKCl9YCk7XG4gIGlzT25saW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51c2VySW5mbygpPy5zdGF0dXMgPT09ICdvbmxpbmUnKTtcblxuICBhdmF0YXJUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nZXRJbml0aWFscygpKTtcbiAgYXZhdGFyQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBpY2tDb2xvcih0aGlzLmF2YXRhclRleHQoKSkpO1xuXG4gIHByb3RlY3RlZCBoYXNQaWN0dXJlID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgb25JbWFnZUVycm9yKGV2ZW50OiBBWEh0bWxFdmVudDxFcnJvckV2ZW50Pikge1xuICAgIHRoaXMuaGFzUGljdHVyZS5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW1hZ2VMb2FkKGV2ZW50OiBBWEh0bWxFdmVudDxFdmVudD4pIHtcbiAgICB0aGlzLmhhc1BpY3R1cmUuc2V0KHRydWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkVXNlckRhdGEoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFVzZXJEYXRhKCk6IHZvaWQge1xuICAgIC8vIFNraXAgaWYgbm8gdXNlcm5hbWUgcHJvdmlkZWRcbiAgICBpZiAoIXRoaXMudXNlcklkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIHVzZXIgaW5mbyBvYnNlcnZhYmxlIHRvIGdldCByZWFsLXRpbWUgdXBkYXRlc1xuICAgIHRoaXMudXNlckF2YXRhclNlcnZpY2VcbiAgICAgIC5nZXRVc2VySW5mbyQodGhpcy51c2VySWQoKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHVzZXJEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMudXNlckluZm8uc2V0KHVzZXJEYXRhKTtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHBsYWNlaG9sZGVyIC0gcmVwbGFjZSB3aXRoIHlvdXIgYWN0dWFsIGF2YXRhciBVUkwgbG9naWNcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUF2YXRhclNyYygpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYXZhdGFyIGltYWdlIHNvdXJjZVxuICAgKiBUaGlzIGlzIGEgcGxhY2Vob2xkZXIgLSBpbXBsZW1lbnQgYmFzZWQgb24geW91ciBhY3R1YWwgcmVxdWlyZW1lbnRzXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlQXZhdGFyU3JjKCk6IHZvaWQge1xuICAgIC8vIEV4YW1wbGU6IENoZWNrIGlmIHRoZSB1c2VyIGhhcyBhIGN1c3RvbSBhdmF0YXIgVVJMXG4gICAgLy8gSWYgbm90LCBnZW5lcmF0ZSBhIHBsYWNlaG9sZGVyIHVzaW5nIGluaXRpYWxzXG4gICAgaWYgKHRoaXMudXNlckluZm8oKT8uYXZhdGFyVXJsKSB7XG4gICAgICB0aGlzLnNyYy5zZXQodGhpcy51c2VySW5mbygpPy5hdmF0YXJVcmwhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gR2VuZXJhdGUgYSBwbGFjZWhvbGRlciAtIHlvdSBjb3VsZCB1c2UgYW4gZXh0ZXJuYWwgc2VydmljZSBsaWtlIFVJIEF2YXRhcnNcbiAgICAgIC8vIG9yIGltcGxlbWVudCB5b3VyIG93biBsb2dpY1xuICAgICAgY29uc3QgaW5pdGlhbHMgPSB0aGlzLmdldEluaXRpYWxzKCk7XG4gICAgICB0aGlzLnNyYy5zZXQoYGh0dHBzOi8vYXZhdGFyLmlyYW4ubGlhcmEucnVuL3VzZXJuYW1lP3VzZXJuYW1lPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGluaXRpYWxzKX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGluaXRpYWxzIGZyb20gZmlyc3QgYW5kIGxhc3QgbmFtZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRJbml0aWFscygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpcnN0SW5pdGlhbCA9IHRoaXMuZmlyc3ROYW1lKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgbGFzdEluaXRpYWwgPSB0aGlzLmxhc3ROYW1lKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIGZpcnN0SW5pdGlhbCArIGxhc3RJbml0aWFsO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNoU3RyaW5nKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSAtIGhhc2ggKyBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgIGhhc2ggfD0gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGguYWJzKGhhc2gpO1xuICB9XG5cbiAgcHJpdmF0ZSBwaWNrQ29sb3IoaW5pdGlhbHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3JzID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICdkYW5nZXInLCAnd2FybmluZycsICdzdWNjZXNzJywgJ2FjY2VudDEnLCAnYWNjZW50MicsICdhY2NlbnQzJ107XG4gICAgY29uc3QgaWR4ID0gdGhpcy5oYXNoU3RyaW5nKGluaXRpYWxzKSAlIGNvbG9ycy5sZW5ndGg7XG4gICAgcmV0dXJuIGNvbG9yc1tpZHhdO1xuICB9XG59XG4iLCI8YXgtYXZhdGFyICNhdmF0YXIgW3NpemVdPVwic2l6ZSgpXCIgY2xhc3M9XCJheC1jdXJzb3ItcG9pbnRlclwiPlxuICBAaWYoaGFzUGljdHVyZSgpKXtcbiAgPGF4LWltYWdlIChvbkVycm9yKT1cIm9uSW1hZ2VFcnJvcigkZXZlbnQpXCIgKG9uTG9hZCk9XCJvbkltYWdlTG9hZCgkZXZlbnQpXCIgW3NyY109XCJzcmMoKVwiPjwvYXgtaW1hZ2U+XG4gIH1AZWxzZXtcbiAgPGF4LXRleHQgY2xhc3M9XCJheC17eyBhdmF0YXJDb2xvcigpIH19LWxpZ2h0ZXN0IFwiPlxuICAgIDxzbWFsbCBjbGFzcz1cImF4LXRleHQteHMgYXgtZm9udC1zZW1pYm9sZFwiPnt7IGF2YXRhclRleHQoKSB9fTwvc21hbGw+XG4gIDwvYXgtdGV4dD5cbiAgfVxuPC9heC1hdmF0YXI+XG5cbjwhLS1cblxuYXgtcHJpbWFyeS1saWdodGVzdFxuYXgtd2FybmluZy1saWdodGVzdFxuYXgtc3VjY2Vzcy1saWdodGVzdFxuYXgtZGFuZ2VyLWxpZ2h0ZXN0XG5heC1zZWNvbmRhcnktbGlnaHRlc3RcbmF4LWFjY2VudDEtbGlnaHRlc3RcbmF4LWFjY2VudDItbGlnaHRlc3RcbmF4LWFjY2VudDMtbGlnaHRlc3RcblxuLS0+XG4iXX0=","import { AXPopupService } from '@acorex/components/popup';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, model, signal, untracked, viewChild, ViewEncapsulation, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/tabs\";\nimport * as i2 from \"@acorex/core/translation\";\nimport * as i3 from \"@angular/common\";\nexport class AXPQueryViewsComponent {\n constructor() {\n this.popupService = inject(AXPopupService);\n this.translate = inject(AXTranslationService);\n this.tabs = viewChild('tabs', ...(ngDevMode ? [{ debugName: \"tabs\" }] : []));\n this.views = model([], ...(ngDevMode ? [{ debugName: \"views\" }] : []));\n this.selectedView = model.required(...(ngDevMode ? [{ debugName: \"selectedView\" }] : []));\n this.isMounted = signal(false, ...(ngDevMode ? [{ debugName: \"isMounted\" }] : []));\n this.#effect = effect(() => {\n if (!this.isMounted())\n return;\n const views = untracked(() => this.views());\n if (!views)\n return;\n const selectedTab = views.findIndex((v) => v.name == this.selectedView().name);\n untracked(() => {\n if (selectedTab != -1) {\n this.tabs()?.select(selectedTab);\n }\n });\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n ngAfterViewInit() {\n this.isMounted.set(true);\n }\n #effect;\n setView(view) {\n this.selectedView.set(view);\n }\n handleActiveChange(e) {\n console.log(e);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPQueryViewsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPQueryViewsComponent, isStandalone: true, selector: \"axp-query-views\", inputs: { views: { classPropertyName: \"views\", publicName: \"views\", isSignal: true, isRequired: false, transformFunction: null }, selectedView: { classPropertyName: \"selectedView\", publicName: \"selectedView\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { views: \"viewsChange\", selectedView: \"selectedViewChange\" }, viewQueries: [{ propertyName: \"tabs\", first: true, predicate: [\"tabs\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<ax-tabs #tabs [look]=\\\"'with-line'\\\" class=\\\"ax-font-semibold\\\">\\n @for (item of views(); track item.name) {\\n <ax-tab-item (onClick)=\\\"setView(item)\\\" [key]=\\\"item.name\\\" [text]=\\\"(item.title | translate | async) || 'item.title'\\\">\\n </ax-tab-item>\\n }\\n <!-- <ax-tab-item\\n (onClick)=\\\"createNew()\\\"\\n [key]=\\\"'create-new'\\\"\\n [text]=\\\"('@general:actions.create.title' | translate | async) || 'Create New'\\\"\\n >\\n </ax-tab-item> -->\\n</ax-tabs>\\n\", dependencies: [{ kind: \"ngmodule\", type: AXTabsModule }, { kind: \"component\", type: i1.AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: i1.AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }, { kind: \"pipe\", type: i3.AsyncPipe, name: \"async\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPQueryViewsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-query-views', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTabsModule, AXTranslationModule, CommonModule], template: \"<ax-tabs #tabs [look]=\\\"'with-line'\\\" class=\\\"ax-font-semibold\\\">\\n @for (item of views(); track item.name) {\\n <ax-tab-item (onClick)=\\\"setView(item)\\\" [key]=\\\"item.name\\\" [text]=\\\"(item.title | translate | async) || 'item.title'\\\">\\n </ax-tab-item>\\n }\\n <!-- <ax-tab-item\\n (onClick)=\\\"createNew()\\\"\\n [key]=\\\"'create-new'\\\"\\n [text]=\\\"('@general:actions.create.title' | translate | async) || 'Create New'\\\"\\n >\\n </ax-tab-item> -->\\n</ax-tabs>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktdmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL3ZpZXdzL3F1ZXJ5LXZpZXdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi92aWV3cy9xdWVyeS12aWV3cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFtQixZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7OztBQVV2QixNQUFNLE9BQU8sc0JBQXNCO0lBUm5DO1FBU1ksaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pDLFNBQUksR0FBRyxTQUFTLENBQWtCLE1BQU0sZ0RBQUMsQ0FBQztRQUVwRCxVQUFLLEdBQUcsS0FBSyxDQUFpQixFQUFFLGlEQUFDLENBQUM7UUFDbEMsaUJBQVksR0FBRyxLQUFLLENBQUMsUUFBUSx1REFBZ0IsQ0FBQztRQUVwQyxjQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUsscURBQUMsQ0FBQztRQU1wQyxZQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFBRSxPQUFPO1lBQzlCLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPO1lBQ25CLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9FLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxXQUFXLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDbkMsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxtREFBQyxDQUFDO0tBU0o7SUF2QkMsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPLENBVUo7SUFFSCxPQUFPLENBQUMsSUFBa0I7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGtCQUFrQixDQUFDLENBQU07UUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDOzhHQWhDVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixnaEJDekJuQyxpZUFZQSwyQ0RXWSxZQUFZLGthQUFFLG1CQUFtQiw4QkFBRSxZQUFZOzsyRkFFOUMsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFFaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFRhYnNDb21wb25lbnQsIEFYVGFic01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWJzJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUsIEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFZpZXdRdWVyeSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIG1vZGVsLFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1xdWVyeS12aWV3cycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlcnktdmlld3MuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQVhUYWJzTW9kdWxlLCBBWFRyYW5zbGF0aW9uTW9kdWxlLCBDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBRdWVyeVZpZXdzQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByb3RlY3RlZCB0cmFuc2xhdGUgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgdGFicyA9IHZpZXdDaGlsZDxBWFRhYnNDb21wb25lbnQ+KCd0YWJzJyk7XG5cbiAgdmlld3MgPSBtb2RlbDxBWFBWaWV3UXVlcnlbXT4oW10pO1xuICBzZWxlY3RlZFZpZXcgPSBtb2RlbC5yZXF1aXJlZDxBWFBWaWV3UXVlcnk+KCk7XG5cbiAgcHJvdGVjdGVkIGlzTW91bnRlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaXNNb3VudGVkLnNldCh0cnVlKTtcbiAgfVxuXG4gICNlZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdGhpcy5pc01vdW50ZWQoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHZpZXdzID0gdW50cmFja2VkKCgpID0+IHRoaXMudmlld3MoKSk7XG4gICAgaWYgKCF2aWV3cykgcmV0dXJuO1xuICAgIGNvbnN0IHNlbGVjdGVkVGFiID0gdmlld3MuZmluZEluZGV4KCh2KSA9PiB2Lm5hbWUgPT0gdGhpcy5zZWxlY3RlZFZpZXcoKS5uYW1lKTtcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkVGFiICE9IC0xKSB7XG4gICAgICAgIHRoaXMudGFicygpPy5zZWxlY3Qoc2VsZWN0ZWRUYWIpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICBzZXRWaWV3KHZpZXc6IEFYUFZpZXdRdWVyeSkge1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3LnNldCh2aWV3KTtcbiAgfVxuXG4gIGhhbmRsZUFjdGl2ZUNoYW5nZShlOiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZyhlKTtcbiAgfVxufVxuIiwiPGF4LXRhYnMgI3RhYnMgW2xvb2tdPVwiJ3dpdGgtbGluZSdcIiBjbGFzcz1cImF4LWZvbnQtc2VtaWJvbGRcIj5cbiAgQGZvciAoaXRlbSBvZiB2aWV3cygpOyB0cmFjayBpdGVtLm5hbWUpIHtcbiAgICA8YXgtdGFiLWl0ZW0gKG9uQ2xpY2spPVwic2V0VmlldyhpdGVtKVwiIFtrZXldPVwiaXRlbS5uYW1lXCIgW3RleHRdPVwiKGl0ZW0udGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYykgfHwgJ2l0ZW0udGl0bGUnXCI+XG4gICAgPC9heC10YWItaXRlbT5cbiAgfVxuICA8IS0tIDxheC10YWItaXRlbVxuICAgICAgKG9uQ2xpY2spPVwiY3JlYXRlTmV3KClcIlxuICAgICAgW2tleV09XCInY3JlYXRlLW5ldydcIlxuICAgICAgW3RleHRdPVwiKCdAZ2VuZXJhbDphY3Rpb25zLmNyZWF0ZS50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYykgfHwgJ0NyZWF0ZSBOZXcnXCJcbiAgICA+XG4gICAgPC9heC10YWItaXRlbT4gLS0+XG48L2F4LXRhYnM+XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, input, output, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\n/**\n * Generic widget item component for displaying selectable widgets with icons, titles, and descriptions.\n * Can be used across different modules for consistent widget display and interaction.\n */\nexport class AXPWidgetItemComponent {\n constructor() {\n // Inputs\n /** The widget data to display */\n this.widget = input.required(...(ngDevMode ? [{ debugName: \"widget\" }] : []));\n /** Whether this widget is currently selected */\n this.isSelected = input(false, ...(ngDevMode ? [{ debugName: \"isSelected\" }] : []));\n /** Whether to show the pin button */\n this.showPinButton = input(true, ...(ngDevMode ? [{ debugName: \"showPinButton\" }] : []));\n /** Custom CSS classes to apply to the widget item */\n this.customClasses = input('', ...(ngDevMode ? [{ debugName: \"customClasses\" }] : []));\n // Outputs\n /** Emitted when the widget item is clicked */\n this.onWidgetClick = output();\n /** Emitted when the pin button is clicked */\n this.onPinClick = output();\n }\n /**\n * Handle widget item click event\n */\n handleClick(event) {\n this.onWidgetClick.emit({\n event,\n widget: this.widget()\n });\n }\n /**\n * Handle pin button click event\n */\n handlePinClick(event) {\n event.stopPropagation(); // Prevent widget click event\n this.onPinClick.emit({\n event,\n widget: this.widget()\n });\n }\n /**\n * Get the effective icon to display\n */\n getIconClass() {\n return this.widget().icon || 'fa-light fa-document';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXPWidgetItemComponent, isStandalone: true, selector: \"axp-widget-item\", inputs: { widget: { classPropertyName: \"widget\", publicName: \"widget\", isSignal: true, isRequired: true, transformFunction: null }, isSelected: { classPropertyName: \"isSelected\", publicName: \"isSelected\", isSignal: true, isRequired: false, transformFunction: null }, showPinButton: { classPropertyName: \"showPinButton\", publicName: \"showPinButton\", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: \"customClasses\", publicName: \"customClasses\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onWidgetClick: \"onWidgetClick\", onPinClick: \"onPinClick\" }, ngImport: i0, template: \"<div (click)=\\\"handleClick($event)\\\"\\n class=\\\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-lightest/65 hover:ax-text-primary-on-lightest ax-cursor-pointer ax-w-full\\\"\\n [class.ax-bg-primary-lightest]=\\\"isSelected()\\\" [class.ax-text-primary-on-lightest]=\\\"isSelected()\\\"\\n [class.ax-border-primary-lightest]=\\\"isSelected()\\\" [class]=\\\"customClasses()\\\">\\n\\n <!-- Widget Icon -->\\n <div class=\\\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border group-hover:ax-bg-primary-lighter group-hover:ax-text-primary-on-lighter group-hover:ax-border-primary-lighter\\\"\\n [class.ax-bg-primary-light]=\\\"isSelected()\\\" [class.ax-text-primary-on-light]=\\\"isSelected()\\\"\\n [class.ax-border-primary-light]=\\\"isSelected()\\\" [class.ax-surface]=\\\"!isSelected()\\\">\\n <i [ngClass]=\\\"getIconClass()\\\" class=\\\"ax-text-lg\\\"></i>\\n </div>\\n\\n <!-- Widget Content -->\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-w-[70%]\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-gap-2\\\">\\n <!-- Widget Title -->\\n <div class=\\\"ax-font-semibold ax-text-sm ax-truncate\\\" [title]=\\\"widget().title\\\">\\n {{ widget().title }}\\n </div>\\n\\n <!-- Pin Button -->\\n @if (showPinButton()) {\\n <div (click)=\\\"handlePinClick($event)\\\" class=\\\"ax-cursor-pointer\\\">\\n @if (widget().isPinned) {\\n <i class=\\\"fa-solid fa-thumbtack ax-text-sm ax-rotate-45\\\" title=\\\"Unpin\\\"></i>\\n } @else {\\n <i class=\\\"fa-light fa-thumbtack ax-text-sm ax-rotate-45 ax-invisible group-hover:ax-visible\\\"\\n title=\\\"Pin\\\"></i>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- Widget Description -->\\n @if (widget().description) {\\n <span class=\\\"ax-text-xs ax-truncate\\\" [title]=\\\"widget().description\\\">\\n {{ widget().description }}\\n </span>\\n }\\n </div>\\n</div>\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXPWidgetItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-widget-item', imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: \"<div (click)=\\\"handleClick($event)\\\"\\n class=\\\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-lightest/65 hover:ax-text-primary-on-lightest ax-cursor-pointer ax-w-full\\\"\\n [class.ax-bg-primary-lightest]=\\\"isSelected()\\\" [class.ax-text-primary-on-lightest]=\\\"isSelected()\\\"\\n [class.ax-border-primary-lightest]=\\\"isSelected()\\\" [class]=\\\"customClasses()\\\">\\n\\n <!-- Widget Icon -->\\n <div class=\\\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border group-hover:ax-bg-primary-lighter group-hover:ax-text-primary-on-lighter group-hover:ax-border-primary-lighter\\\"\\n [class.ax-bg-primary-light]=\\\"isSelected()\\\" [class.ax-text-primary-on-light]=\\\"isSelected()\\\"\\n [class.ax-border-primary-light]=\\\"isSelected()\\\" [class.ax-surface]=\\\"!isSelected()\\\">\\n <i [ngClass]=\\\"getIconClass()\\\" class=\\\"ax-text-lg\\\"></i>\\n </div>\\n\\n <!-- Widget Content -->\\n <div class=\\\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-w-[70%]\\\">\\n <div class=\\\"ax-flex ax-items-center ax-justify-between ax-gap-2\\\">\\n <!-- Widget Title -->\\n <div class=\\\"ax-font-semibold ax-text-sm ax-truncate\\\" [title]=\\\"widget().title\\\">\\n {{ widget().title }}\\n </div>\\n\\n <!-- Pin Button -->\\n @if (showPinButton()) {\\n <div (click)=\\\"handlePinClick($event)\\\" class=\\\"ax-cursor-pointer\\\">\\n @if (widget().isPinned) {\\n <i class=\\\"fa-solid fa-thumbtack ax-text-sm ax-rotate-45\\\" title=\\\"Unpin\\\"></i>\\n } @else {\\n <i class=\\\"fa-light fa-thumbtack ax-text-sm ax-rotate-45 ax-invisible group-hover:ax-visible\\\"\\n title=\\\"Pin\\\"></i>\\n }\\n </div>\\n }\\n </div>\\n\\n <!-- Widget Description -->\\n @if (widget().description) {\\n <span class=\\\"ax-text-xs ax-truncate\\\" [title]=\\\"widget().description\\\">\\n {{ widget().description }}\\n </span>\\n }\\n </div>\\n</div>\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL3dpZGdldC1pdGVtL3dpZGdldC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi93aWRnZXQtaXRlbS93aWRnZXQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHNUU7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHNCQUFzQjtJQU5uQztRQU9JLFNBQVM7UUFDVCxpQ0FBaUM7UUFDakMsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLGlEQUFxQixDQUFDO1FBRTdDLGdEQUFnRDtRQUNoRCxlQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssc0RBQUMsQ0FBQztRQUVuQyxxQ0FBcUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLENBQVUsSUFBSSx5REFBQyxDQUFDO1FBRXJDLHFEQUFxRDtRQUNyRCxrQkFBYSxHQUFHLEtBQUssQ0FBUyxFQUFFLHlEQUFDLENBQUM7UUFFbEMsVUFBVTtRQUNWLDhDQUE4QztRQUM5QyxrQkFBYSxHQUFHLE1BQU0sRUFBMkIsQ0FBQztRQUVsRCw2Q0FBNkM7UUFDN0MsZUFBVSxHQUFHLE1BQU0sRUFBMkIsQ0FBQztLQTZCbEQ7SUEzQkc7O09BRUc7SUFDSCxXQUFXLENBQUMsS0FBaUI7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDcEIsS0FBSztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxLQUFpQjtRQUM1QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyw2QkFBNkI7UUFDdEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDakIsS0FBSztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1NBQ3hCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLElBQUksc0JBQXNCLENBQUM7SUFDeEQsQ0FBQzs4R0EvQ1Esc0JBQXNCO2tHQUF0QixzQkFBc0IsK3JCQ2RuQyw2aUVBd0NNLDJDRDlCUSxZQUFZOzsyRkFJYixzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0ksaUJBQWlCLFdBQ2xCLENBQUMsWUFBWSxDQUFDLGlCQUVSLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0SXRlbURhdGEsIEFYUFdpZGdldEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnLi93aWRnZXQtaXRlbS50eXBlcyc7XG5cbi8qKlxuICogR2VuZXJpYyB3aWRnZXQgaXRlbSBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgc2VsZWN0YWJsZSB3aWRnZXRzIHdpdGggaWNvbnMsIHRpdGxlcywgYW5kIGRlc2NyaXB0aW9ucy5cbiAqIENhbiBiZSB1c2VkIGFjcm9zcyBkaWZmZXJlbnQgbW9kdWxlcyBmb3IgY29uc2lzdGVudCB3aWRnZXQgZGlzcGxheSBhbmQgaW50ZXJhY3Rpb24uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLXdpZGdldC1pdGVtJyxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldEl0ZW1Db21wb25lbnQge1xuICAgIC8vIElucHV0c1xuICAgIC8qKiBUaGUgd2lkZ2V0IGRhdGEgdG8gZGlzcGxheSAqL1xuICAgIHdpZGdldCA9IGlucHV0LnJlcXVpcmVkPEFYUFdpZGdldEl0ZW1EYXRhPigpO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhpcyB3aWRnZXQgaXMgY3VycmVudGx5IHNlbGVjdGVkICovXG4gICAgaXNTZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIHBpbiBidXR0b24gKi9cbiAgICBzaG93UGluQnV0dG9uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvKiogQ3VzdG9tIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSB3aWRnZXQgaXRlbSAqL1xuICAgIGN1c3RvbUNsYXNzZXMgPSBpbnB1dDxzdHJpbmc+KCcnKTtcblxuICAgIC8vIE91dHB1dHNcbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB3aWRnZXQgaXRlbSBpcyBjbGlja2VkICovXG4gICAgb25XaWRnZXRDbGljayA9IG91dHB1dDxBWFBXaWRnZXRJdGVtQ2xpY2tFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHBpbiBidXR0b24gaXMgY2xpY2tlZCAqL1xuICAgIG9uUGluQ2xpY2sgPSBvdXRwdXQ8QVhQV2lkZ2V0SXRlbUNsaWNrRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgd2lkZ2V0IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICAgKi9cbiAgICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uV2lkZ2V0Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHdpZGdldDogdGhpcy53aWRnZXQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgcGluIGJ1dHRvbiBjbGljayBldmVudFxuICAgICAqL1xuICAgIGhhbmRsZVBpbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyBQcmV2ZW50IHdpZGdldCBjbGljayBldmVudFxuICAgICAgICB0aGlzLm9uUGluQ2xpY2suZW1pdCh7XG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHdpZGdldDogdGhpcy53aWRnZXQoKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXQgdGhlIGVmZmVjdGl2ZSBpY29uIHRvIGRpc3BsYXlcbiAgICAgKi9cbiAgICBnZXRJY29uQ2xhc3MoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0KCkuaWNvbiB8fCAnZmEtbGlnaHQgZmEtZG9jdW1lbnQnO1xuICAgIH1cbn0iLCI8ZGl2IChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCJcbiAgICBjbGFzcz1cImF4LXB5LTIgYXgtcHgtMyBheC1yb3VuZGVkLW1kIGF4LWZsZXggYXgtZ2FwLTMgYXgtaXRlbXMtY2VudGVyIGF4LWdyb3VwIGhvdmVyOmF4LWJnLXByaW1hcnktbGlnaHRlc3QvNjUgaG92ZXI6YXgtdGV4dC1wcmltYXJ5LW9uLWxpZ2h0ZXN0IGF4LWN1cnNvci1wb2ludGVyIGF4LXctZnVsbFwiXG4gICAgW2NsYXNzLmF4LWJnLXByaW1hcnktbGlnaHRlc3RdPVwiaXNTZWxlY3RlZCgpXCIgW2NsYXNzLmF4LXRleHQtcHJpbWFyeS1vbi1saWdodGVzdF09XCJpc1NlbGVjdGVkKClcIlxuICAgIFtjbGFzcy5heC1ib3JkZXItcHJpbWFyeS1saWdodGVzdF09XCJpc1NlbGVjdGVkKClcIiBbY2xhc3NdPVwiY3VzdG9tQ2xhc3NlcygpXCI+XG5cbiAgICA8IS0tIFdpZGdldCBJY29uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJheC1taW4tdy0xMCBheC1oLTEwIGF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXJvdW5kZWQtbWQgYXgtYm9yZGVyIGdyb3VwLWhvdmVyOmF4LWJnLXByaW1hcnktbGlnaHRlciBncm91cC1ob3ZlcjpheC10ZXh0LXByaW1hcnktb24tbGlnaHRlciBncm91cC1ob3ZlcjpheC1ib3JkZXItcHJpbWFyeS1saWdodGVyXCJcbiAgICAgICAgW2NsYXNzLmF4LWJnLXByaW1hcnktbGlnaHRdPVwiaXNTZWxlY3RlZCgpXCIgW2NsYXNzLmF4LXRleHQtcHJpbWFyeS1vbi1saWdodF09XCJpc1NlbGVjdGVkKClcIlxuICAgICAgICBbY2xhc3MuYXgtYm9yZGVyLXByaW1hcnktbGlnaHRdPVwiaXNTZWxlY3RlZCgpXCIgW2NsYXNzLmF4LXN1cmZhY2VdPVwiIWlzU2VsZWN0ZWQoKVwiPlxuICAgICAgICA8aSBbbmdDbGFzc109XCJnZXRJY29uQ2xhc3MoKVwiIGNsYXNzPVwiYXgtdGV4dC1sZ1wiPjwvaT5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gV2lkZ2V0IENvbnRlbnQgLS0+XG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTEgYXgtZmxleC0xIGF4LXctWzcwJV1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktYmV0d2VlbiBheC1nYXAtMlwiPlxuICAgICAgICAgICAgPCEtLSBXaWRnZXQgVGl0bGUgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZm9udC1zZW1pYm9sZCBheC10ZXh0LXNtIGF4LXRydW5jYXRlXCIgW3RpdGxlXT1cIndpZGdldCgpLnRpdGxlXCI+XG4gICAgICAgICAgICAgICAge3sgd2lkZ2V0KCkudGl0bGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8IS0tIFBpbiBCdXR0b24gLS0+XG4gICAgICAgICAgICBAaWYgKHNob3dQaW5CdXR0b24oKSkge1xuICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiaGFuZGxlUGluQ2xpY2soJGV2ZW50KVwiIGNsYXNzPVwiYXgtY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHdpZGdldCgpLmlzUGlubmVkKSB7XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1zb2xpZCBmYS10aHVtYnRhY2sgYXgtdGV4dC1zbSBheC1yb3RhdGUtNDVcIiB0aXRsZT1cIlVucGluXCI+PC9pPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGh1bWJ0YWNrIGF4LXRleHQtc20gYXgtcm90YXRlLTQ1IGF4LWludmlzaWJsZSBncm91cC1ob3ZlcjpheC12aXNpYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJQaW5cIj48L2k+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gV2lkZ2V0IERlc2NyaXB0aW9uIC0tPlxuICAgICAgICBAaWYgKHdpZGdldCgpLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC14cyBheC10cnVuY2F0ZVwiIFt0aXRsZV09XCJ3aWRnZXQoKS5kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAge3sgd2lkZ2V0KCkuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvYWNvcmV4LXBsYXRmb3JtLWxheW91dC1jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2","i1","i3","i4","i5","i7","i8","i6","i10","i11","i9"],"mappings":"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"}
|