@acorex/platform 20.0.4 → 20.0.5

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.
@@ -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/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/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 \"@angular/common\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/core/translation\";\nimport * as i4 from \"@acorex/components/skeleton\";\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([]);\n /**\n * Whether the component is in loading state\n */\n this.loading = input(false);\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());\n /**\n * Flag to track if component has been initialized\n */\n this.isInitialized = signal(false);\n /**\n * Set of items that have been manually toggled (for animation control)\n */\n this.manuallyToggledItems = signal(new Set());\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.0.4\", ngImport: i0, type: AXPActivityLogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i3.AXTranslatorPipe, name: \"translate\" }, { kind: \"directive\", type: i3.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i4.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"pipe\", type: i5.AXFormatPipe, name: \"format\" }, { kind: \"ngmodule\", type: AXTagModule }, { kind: \"ngmodule\", type: AXAccordionCdkModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBeUQsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFZLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7O0FBSXJELDRDQUE0QztBQXFCNUMsTUFBTSxPQUFPLHVCQUF1QjtJQTZDaEMsWUFBWTtJQUVaLCtDQUErQztJQUUvQztRQS9DQSxZQUFZO1FBRVosK0NBQStDO1FBRTlCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hELG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFOUQsWUFBWTtRQUVaLHdDQUF3QztRQUV4Qzs7V0FFRztRQUNILGVBQVUsR0FBRyxLQUFLLENBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBRXpDOztXQUVHO1FBQ0gsWUFBTyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVoQyxZQUFZO1FBRVosNENBQTRDO1FBRXpCLGNBQVMsR0FBRyxjQUFjLENBQUM7UUFDM0IsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUVuQzs7V0FFRztRQUNLLGtCQUFhLEdBQUcsTUFBTSxDQUFjLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV2RDs7V0FFRztRQUNLLGtCQUFhLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRS9DOztXQUVHO1FBQ0sseUJBQW9CLEdBQUcsTUFBTSxDQUFjLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQU8xRCxpREFBaUQ7UUFDakQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBRXpDLDJEQUEyRDtZQUMzRCxJQUFJLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3RFLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQXdCLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdEYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFlBQVk7SUFFWix1Q0FBdUM7SUFFdkM7O09BRUc7SUFDTyxnQkFBZ0IsQ0FBQyxVQUErQjtRQUN0RCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxPQUFPO1lBQ0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sTUFBTSxDQUFDLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxrQkFBa0I7WUFDMUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlO1lBQ2pFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1NBQzVELENBQUM7SUFDTixDQUFDO0lBRUQ7O0dBRUQ7SUFDVyxVQUFVLENBQUMsVUFBa0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7R0FFRDtJQUNXLGNBQWMsQ0FBQyxVQUFrQjtRQUN2QyxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUN0RCxNQUFNLHNCQUFzQixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFFcEUsNERBQTREO1FBQzVELHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFdEQsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDbEMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNKLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNPLGFBQWEsQ0FBQyxVQUFrQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxvQkFBb0IsQ0FBQyxRQUF3QjtRQUNuRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxZQUFZO0lBRVosdUNBQXVDO0lBRXZDOztPQUVHO0lBQ08sS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUF3QixFQUFFLEtBQVk7UUFDaEUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMscURBQXFEO1FBRTlFLDJDQUEyQztRQUMzQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUUsSUFBSSxZQUFZLElBQUksQ0FBQztZQUFFLE9BQU8sQ0FBQyx1Q0FBdUM7UUFFdEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sR0FBRyxHQUFHO1lBQ1IsZ0JBQWdCLENBQUMsRUFBRTtZQUNuQixRQUFRLENBQUMsRUFBRTtTQUNkLENBQUM7UUFFRiwrQkFBK0I7UUFDL0IsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsRUFBRTtZQUN0RSxNQUFNLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJO1lBQy9CLElBQUksRUFBRTtnQkFDRixLQUFLLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM1QixPQUFPLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJO2dCQUNoQyxHQUFHLEVBQUUsR0FBRzthQUNYO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOztPQUVHO0lBQ08sVUFBVSxDQUFDLFFBQXdCO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RSxPQUFPLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyx3Q0FBd0M7SUFDckUsQ0FBQzs4R0EvSlEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsNlZDcENwQyxpdExBK0hJLHVxUUR4R0ksWUFBWSxtRkFDWixjQUFjLDhCQUNkLGNBQWMsOEJBQ2QsaUJBQWlCLCtIQUNqQixtQkFBbUIsOEtBQ25CLGdCQUFnQixrSUFDaEIsY0FBYyx1RkFDZCxXQUFXLDhCQUNYLG9CQUFvQjs7MkZBS2YsdUJBQXVCO2tCQW5CbkMsU0FBUzsrQkFDSSxrQkFBa0IsY0FHaEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxvQkFBb0I7cUJBQ3ZCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9za2VsZXRvbic7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhQQWN0aXZpdHlMb2csIEFYUFN5c3RlbUFjdGlvbnMsIEFYUFN5c3RlbUFjdGlvblR5cGUsIGdldFN5c3RlbUFjdGlvbnMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24sIGNvbXB1dGVkLCBzaWduYWwsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhBY2NvcmRpb25DZGtNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9hY2NvcmRpb24nO1xuaW1wb3J0IHsgQVhUYWdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFnJztcbmltcG9ydCB7IEFYUFVzZXJBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi91c2VyLWF2YXRhcic7XG5pbXBvcnQgeyBBWFBNZW51SXRlbUNvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50IERlZmluaXRpb24gICAtLS0tXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWFjdGl2aXR5LWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHktbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYQ29tbW9uTW9kdWxlLFxuICAgICAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICAgICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICAgICAgQVhTa2VsZXRvbk1vZHVsZSxcbiAgICAgICAgQVhGb3JtYXRNb2R1bGUsXG4gICAgICAgIEFYVGFnTW9kdWxlLFxuICAgICAgICBBWEFjY29yZGlvbkNka01vZHVsZSxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQVhQQWN0aXZpdHlMb2dDb21wb25lbnQge1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICYgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtmbG93U2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIElucHV0IFByb3BlcnRpZXMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBBcnJheSBvZiBhY3Rpdml0eSBsb2dzIHRvIGRpc3BsYXlcbiAgICAgKi9cbiAgICBhY3Rpdml0aWVzID0gaW5wdXQ8QVhQQWN0aXZpdHlMb2dbXT4oW10pO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGluIGxvYWRpbmcgc3RhdGVcbiAgICAgKi9cbiAgICBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXBvbmVudCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGkxOG5TY29wZSA9ICdhY3Rpdml0eS1sb2cnO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBPYmplY3QgPSBPYmplY3Q7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgb2YgZXhwYW5kZWQgYWN0aXZpdHkgSURzXG4gICAgICovXG4gICAgcHJpdmF0ZSBleHBhbmRlZEl0ZW1zID0gc2lnbmFsPFNldDxzdHJpbmc+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.0.4\", ngImport: i0, type: AXPTaskBadgeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTaskBadgeService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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);\n this.count = input(0, { 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 });\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 });\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.0.4\", ngImport: i0, type: AXPTaskBadgeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL2JhZGdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU81RCxNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS1ksaUJBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxTQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDdEUsZ0JBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRWpELGFBQVEsR0FBRyxLQUFLLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELFVBQUssR0FBRyxLQUFLLENBQVMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUVyQyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsRyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDNUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7S0FNTjtJQWJHLElBQUksQ0FPRDtJQUVLLHFCQUFxQixDQUFJLE1BQXNCLEVBQUUsS0FBUTtRQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFRLENBQUM7UUFDbkMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQXpCUSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnB1dCwgY29tcHV0ZWQsIGluamVjdCwgZWZmZWN0LCBEaXJlY3RpdmUsIElucHV0U2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFNJR05BTCwgc2lnbmFsU2V0Rm4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9wcmltaXRpdmVzL3NpZ25hbHNcIjtcbmltcG9ydCB7IEFYUFRhc2tCYWRnZVNlcnZpY2UgfSBmcm9tIFwiLi90YXNrLWJhZGdlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFYQmFkZ2VDb21wb25lbnQgfSBmcm9tIFwiQGFjb3JleC9jb21wb25lbnRzL2JhZGdlXCI7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLXRhc2stYmFkZ2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYXNrQmFkZ2VEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgYmFkZ2VTZXJ2aWNlID0gaW5qZWN0KEFYUFRhc2tCYWRnZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgaG9zdCA9IGluamVjdChBWEJhZGdlQ29tcG9uZW50KTsgLy8gYXNzdW1lcyBpdCdzIGFwcGxpZWQgb24gPGF4LWJhZGdlPlxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQgPSB0aGlzLmhvc3QuZ2V0SG9zdEVsZW1lbnQoKTtcblxuICAgIGJhZGdlS2V5ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIGNvdW50ID0gaW5wdXQ8bnVtYmVyPigwLCB7IGFsaWFzOiAnYXhwLXRhc2stYmFkZ2UnIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNwbGF5Q291bnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb3VudCgpIHx8ICh0aGlzLmJhZGdlS2V5KCkgJiYgdGhpcy5iYWRnZVNlcnZpY2UuZ2V0Q291bnQodGhpcy5iYWRnZUtleSgpISkoKSk7XG4gICAgICAgIHJldHVybiB2YWx1ZSA/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));\n this.cache.set(item, total);\n return total;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL2JhZGdlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWpELE1BQU0sT0FBTyxrQkFBa0I7YUFFZCxVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7SUFFbEUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFpQixFQUFFLFlBQWlDO1FBQ3ZFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUV2RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUN4QyxJQUFJLEVBQUUsQ0FBQztRQUVSLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDMUIsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDbEQsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IGNvbXB1dGVkLCBTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQTWVudUl0ZW0gfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcbmltcG9ydCB7IEFYUFRhc2tCYWRnZVNlcnZpY2UgfSBmcm9tIFwiLi90YXNrLWJhZGdlLnNlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEFYUE1lbnVCYWRnZUhlbHBlciB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2FjaGUgPSBuZXcgV2Vha01hcDxBWFBNZW51SXRlbSwgU2lnbmFsPG51bWJlcj4+KCk7XG5cbiAgc3RhdGljIGdldFRvdGFsQ291bnQoaXRlbTogQVhQTWVudUl0ZW0sIGJhZGdlU2VydmljZTogQVhQVGFza0JhZGdlU2VydmljZSk6IFNpZ25hbDxudW1iZXI+IHtcbiAgICBpZiAodGhpcy5jYWNoZS5oYXMoaXRlbSkpIHJldHVybiB0aGlzLmNhY2hlLmdldChpdGVtKSE7XG5cbiAgICBjb25zdCBvd24gPSBpdGVtLmJhZGdlS2V5ID8gYmFkZ2VTZXJ2aWNlLmdldENvdW50KGl0ZW0uYmFkZ2VLZXkpIDogKCkgPT4gMDtcbiAgICBjb25zdCBjaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW4/Lm1hcChjaGlsZCA9PlxuICAgICAgdGhpcy5nZXRUb3RhbENvdW50KGNoaWxkLCBiYWRnZVNlcnZpY2UpXG4gICAgKSA/PyBbXTtcblxuICAgIGNvbnN0IHRvdGFsID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgIG93bigpICsgY2hpbGRyZW4ucmVkdWNlKChzdW0sIHMpID0+IHN1bSArIHMoKSwgMClcbiAgICApO1xuXG4gICAgdGhpcy5jYWNoZS5zZXQoaXRlbSwgdG90YWwpO1xuICAgIHJldHVybiB0b3RhbDtcbiAgfVxufVxuIl19","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.0.4\", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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');\n this.primaryContent = contentChild(AXPThemeLayoutPagePrimaryActionsComponent);\n this.hasPrimary = computed(() => this.primaryContent() != null);\n this.secondaryTemplate = viewChild('secondary');\n this.secondaryContent = contentChild(AXPThemeLayoutPageSecondaryActionsComponent);\n this.hasSecondary = computed(() => this.secondaryContent() != null);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPThemeLayoutActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtYWN0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFlLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVdEksTUFBTSxPQUFPLHlDQUF5Qzs4R0FBekMseUNBQXlDO2tHQUF6Qyx5Q0FBeUMsc0ZBSnhDLGlFQUFpRTs7MkZBSWxFLHlDQUF5QztrQkFQckQsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFLGlFQUFpRTtvQkFDM0UsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7QUFXRCxNQUFNLE9BQU8sMkNBQTJDOzhHQUEzQywyQ0FBMkM7a0dBQTNDLDJDQUEyQyx3RkFKMUMsMkVBQTJFOzsyRkFJNUUsMkNBQTJDO2tCQVB2RCxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxRQUFRLEVBQUUsMkVBQTJFO29CQUNyRixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOztBQXdCRCxNQUFNLE9BQU8sOEJBQThCO0lBcEIzQztRQXNCb0Isb0JBQWUsR0FBRyxTQUFTLENBQW1CLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELG1CQUFjLEdBQUcsWUFBWSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDbkYsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUM7UUFFbEQsc0JBQWlCLEdBQUcsU0FBUyxDQUFtQixXQUFXLENBQUMsQ0FBQztRQUM1RCxxQkFBZ0IsR0FBRyxZQUFZLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUN2RixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztLQUV6RTs4R0FWWSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwwSEFHUSx5Q0FBeUMsbUdBSXZDLDJDQUEyQyw2U0F2QmxGOzs7Ozs7Ozs7OztLQVdUOzsyRkFLUSw4QkFBOEI7a0JBcEIxQyxTQUFTO21CQUFDO29CQUNQLE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0tBV1Q7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC1hY3Rpb25zLXByaW1hcnknLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtYnV0dG9uLGF4LWRyb3Bkb3duLWJ1dHRvblwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlUHJpbWFyeUFjdGlvbnNDb21wb25lbnQge1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC1hY3Rpb25zLXNlY29uZGFyeScsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudCBzZWxlY3Q9XCJheC1idXR0b24taXRlbSxheC1kaXZpZGVyLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlU2Vjb25kYXJ5QWN0aW9uc0NvbXBvbmVudCB7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlOiBgXG5cbiAgICA8bmctdGVtcGxhdGUgI3ByaW1hcnk+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.0.4\", ngImport: i0, type: AXPThemeLayoutBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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 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.0.4\", 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 select=\"axp-layout-suffix\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYXRGLE1BQU0sT0FBTyw2QkFBNkI7OEdBQTdCLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHFHQVA5Qjs7O0dBR1Q7OzJGQUlVLDZCQUE2QjtrQkFYekMsU0FBUzttQkFBQztvQkFDVCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDJDQUEyQztvQkFDckQsUUFBUSxFQUFFOzs7R0FHVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1mb290ZXIsIGF4cC1sYXlvdXQtcGFnZS1mb290ZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LXByZWZpeFwiPjwvbmctY29udGVudD5cbiAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1zdWZmaXhcIj48L25nLWNvbnRlbnQ+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUaGVtZUxheW91dEZvb3RlckNvbXBvbmVudCB7XG59XG5cblxuIl19","import { ChangeDetectionStrategy, Component, viewChild, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutPageHeaderComponent {\n constructor() {\n this.title = viewChild('title');\n this.description = viewChild('description');\n this.actions = viewChild('actions');\n this.navbar = viewChild('navbar');\n this.breadcrumbs = viewChild('breadcrumbs');\n this.navButton = viewChild('navButton');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQ3JILE1BQU0sT0FBTyxpQ0FBaUM7SUEvQjlDO1FBaUNrQixVQUFLLEdBQUcsU0FBUyxDQUFtQixPQUFPLENBQUMsQ0FBQztRQUM3QyxnQkFBVyxHQUFHLFNBQVMsQ0FBbUIsYUFBYSxDQUFDLENBQUM7UUFDekQsWUFBTyxHQUFHLFNBQVMsQ0FBbUIsU0FBUyxDQUFDLENBQUM7UUFDakQsV0FBTSxHQUFHLFNBQVMsQ0FBbUIsUUFBUSxDQUFDLENBQUM7UUFDL0MsZ0JBQVcsR0FBRyxTQUFTLENBQW1CLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELGNBQVMsR0FBRyxTQUFTLENBQW1CLFdBQVcsQ0FBQyxDQUFDO0tBQ3RFOzhHQVJZLGlDQUFpQztrR0FBakMsaUNBQWlDLDZzQkEzQmxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDs7MkZBSVUsaUNBQWlDO2tCQS9CN0MsU0FBUzttQkFBQztvQkFDVCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOztBQXlCRCxNQUFNLE9BQU8sNkJBQTZCOzhHQUE3Qiw2QkFBNkI7a0dBQTdCLDZCQUE2Qiw2RUFSOUI7Ozs7R0FJVDs7MkZBSVUsNkJBQTZCO2tCQVp6QyxTQUFTO21CQUFDO29CQUNULE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtcGFnZS1oZWFkZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjYnJlYWRjcnVtYnM+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.0.4\", ngImport: i0, type: AXPThemeLayoutListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutStartSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutEndSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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);\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.0.4\", ngImport: i0, type: AXPThemeLayoutContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVksVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBU3BJLE1BQU0sT0FBTyxnQ0FBZ0M7SUFQN0M7UUFVdUIsZUFBVSxHQUErQixNQUFNLENBQUMsQ0FBQSxVQUEwQixDQUFBLENBQUMsQ0FBQztRQUMvRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBR3BELG1CQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RCxZQUFPLEdBQW9CLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7S0FxQi9FO0lBakJHLFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDeEMsQ0FBQzs4R0F6QlEsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsZ0ZBSi9CLDJCQUEyQjs7MkZBSTVCLGdDQUFnQztrQkFQNUMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBpbmplY3QsIHNpZ25hbCwgU2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiBgYXhwLWxheW91dC1jb250YWluZXJgLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRDb250YWluZXJDb21wb25lbnQge1xuXG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pO1xuICAgIHB1YmxpYyByZWFkb25seSBob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG5cbiAgICBwcml2YXRlIF9pc0VtcHR5U2lnbmFsID0gc2lnbmFsKHRoaXMuaG9zdEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNFbXB0eTogU2lnbmFsPGJvb2xlYW4+ID0gdGhpcy5faXNFbXB0eVNpZ25hbC5hc1JlYWRvbmx5KCk7XG5cbiAgICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXI/OiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2lzRW1wdHlTaWduYWwuc2V0KHRoaXMuaG9zdEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5ob3N0RWxlbWVudCwge1xuICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIH1cblxuXG5cbn1cbiJdfQ==","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 \"@angular/common\";\nimport * as i2 from \"@acorex/components/label\";\nimport * as i3 from \"@acorex/components/check-box\";\nimport * as i4 from \"@acorex/core/translation\";\nimport * as i5 from \"@acorex/platform/layout/builder\";\nexport class AXPCompareViewComponent {\n constructor() {\n //#region ---- Component Properties ----\n this.inputs = input();\n this.showOnlyChanges = signal(false);\n this.mode = input('compare');\n this.removedObjects = signal([]);\n this.isChangesMode = computed(() => this.mode() === 'changes');\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 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 });\n this.remainingObjects = computed(() => {\n const objects = this.inputs()?.objects ?? [];\n return objects.filter(obj => !this.removedObjects().includes(obj.id));\n });\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.0.4\", ngImport: i0, type: AXPCompareViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: \n // ACoreX\n AXFormModule }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i2.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXCheckBoxModule }, { kind: \"component\", type: i3.AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"checked\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }, { kind: \"ngmodule\", type: \n // Platform\n AXPLayoutBuilderModule }, { kind: \"component\", type: i5.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i5.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jb21wYXJlLXZpZXcvY29tcGFyZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jb21wYXJlLXZpZXcvY29tcGFyZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGlCQUFpQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFpQixNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBOEN4RixNQUFNLE9BQU8sdUJBQXVCO0lBdEJwQztRQXdCSSw0Q0FBNEM7UUFFNUMsV0FBTSxHQUFHLEtBQUssRUFBd0IsQ0FBQztRQUN2QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxTQUFJLEdBQUcsS0FBSyxDQUFxQixTQUFT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O1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCO1FBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsUUFBZ0I7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFlBQVk7SUFFWix5Q0FBeUM7SUFFekMsUUFBUTtJQUNSLENBQUM7SUFFRCxXQUFXO0lBRVgsQ0FBQzs4R0F0SVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMlRBSnJCLEVBRVYsMEJDdERMLGk0RkF1RUc7Z0JEaENLLFVBQVU7Z0JBQ1YsWUFBWTtnQkFDWixTQUFTO2dCQUNULFlBQVksOEJBQ1osZUFBZSw4QkFDZixjQUFjLDhCQUNkLGFBQWEsZ0tBQ2IsZ0JBQWdCLHdSQUNoQixtQkFBbUI7Z0JBQ25CLFdBQVc7Z0JBQ1gsc0JBQXNCOzsyRkFPakIsdUJBQXVCO2tCQXRCbkMsU0FBUzsrQkFDSSxrQkFBa0IsV0FHbkI7d0JBQ0wsVUFBVTt3QkFDVixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxzQkFBc0I7cUJBQ3pCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksYUFDMUIsRUFFViIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWENoZWNrQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NoZWNrLWJveCc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuXG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLCBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBDb250ZXh0RGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ29tcGFyZVZpZXdGaWVsZCB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbXBhcmVWaWV3T2JqZWN0IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgY29udGV4dDogQVhQQ29udGV4dERhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ29tcGFyZVZpZXdJbnB1dHMge1xuICAgIGZpZWxkczogQVhQQ29tcGFyZVZpZXdGaWVsZFtdO1xuICAgIG9iamVjdHM6IEFYUENvbXBhcmVWaWV3T2JqZWN0W107XG59XG5cbmV4cG9ydCB0eXBlIEFYUENvbXBhcmVWaWV3TW9kZSA9ICdjb21wYXJlJyB8ICdjaGFuZ2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtY29tcGFyZS12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tcGFyZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY29tcGFyZS12aWV3LmNvbXBvbmVudC5zY3NzJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIEFuZ3VsYXJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICAvLyBBQ29yZVhcbiAgICAgICAgQVhGb3JtTW9kdWxlLFxuICAgICAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgICAgICBBWExhYmVsTW9kdWxlLFxuICAgICAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgICAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgICAgICAvLyBQbGF0Zm9ybVxuICAgICAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tcGFyZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXBvbmVudCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgaW5wdXRzID0gaW5wdXQ8QVhQQ29tcGFyZVZpZXdJbnB1dHM+KCk7XG4gICAgc2hvd09ubHlDaGFuZ2VzID0gc2lnbmFsKGZhbHNlKTtcbiAgICBtb2RlID0gaW5wdXQ8QVhQQ29tcGFyZVZpZXdNb2RlPignY29tcGFyZScpO1xuXG4gICAgcHJpdmF0ZSByZW1vdmVkT2JqZWN0cyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgcHJvdGVjdGVkIGlzQ2hhbmdlc01vZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1vZGUoKSA9PT0gJ2NoYW5nZXMnKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDb21wdXRlZCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogRmlsdGVyZWQgZmllbGRzIGJhc2VkIG9uIHNob3dPbmx5Q2hhbmdlcyB0b2dnbGVcbiAgICAgKi9cbiAgICBmaWx0ZXJlZEZpZWxkcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5pbnB1dHMoKT8uZmllbGRzID8/IFtdO1xuXG4gICAgICAgIGlmICghdGhpcy5zaG93T25seUNoYW5nZXMoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpbHRlciB0byBzaG93IG9ubHkgZmllbGRzIHdoZXJlIHZhbHVlcyBkaWZmZXIgYWNyb3NzIG9iamVjdHNcbiAgICAgICAgcmV0dXJuIGZpZWxkcy5maWx0ZXIoZmllbGQgPT4gdGhpcy5oYXNVbmVxdWFsVmFsdWVzKGZpZWxkLnBhdGgpKTtcbiAgICB9KTtcblxuICAgIHJlbWFpbmluZ09iamVjdHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSB0aGlzLmlucHV0cygpPy5vYmplY3RzID8/IFtdO1xuICAgICAgICByZXR1cm4gb2JqZWN0cy5maWx0ZXIob2JqID0+ICF0aGlzLnJlbW92ZWRPYmplY3RzKCkuaW5jbHVkZXMob2JqLmlkKSk7XG4gICAgfSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgVXRpbGl0eSBNZXRob2RzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBmaWVsZCB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgbmV4dCBvYmplY3QgKHRvIHNob3cgYXJyb3cgaW4gY3VycmVudCBjZWxsKVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYXNWYWx1ZUNoYW5naW5nVG9OZXh0KGZpZWxkUGF0aDogc3RyaW5nLCBjdXJyZW50T2JqZWN0SW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvYmplY3RzID0gdGhpcy5yZW1haW5pbmdPYmplY3RzKCk7XG4gICAgICAgIGlmIChjdXJyZW50T2JqZWN0SW5kZXggPj0gb2JqZWN0cy5sZW5ndGggLSAxKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gb2JqZWN0c1tjdXJyZW50T2JqZWN0SW5kZXhdPy5jb250ZXh0W2ZpZWxkUGF0aF07XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IG9iamVjdHNbY3VycmVudE9iamVjdEluZGV4ICsgMV0/LmNvbnRleHRbZmllbGRQYXRoXTtcblxuICAgICAgICByZXR1cm4gIXRoaXMuYXJlVmFsdWVzRXF1YWwoY3VycmVudFZhbHVlLCBuZXh0VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgZmllbGQgdmFsdWUgaGFzIGNoYW5nZWQgY29tcGFyZWQgdG8gdGhlIHByZXZpb3VzIG9iamVjdFxuICAgICAqL1xuICAgIGhhc1ZhbHVlQ2hhbmdlZEZyb21QcmV2aW91cyhmaWVsZFBhdGg6IHN0cmluZywgY3VycmVudE9iamVjdEluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0cyA9IHRoaXMucmVtYWluaW5nT2JqZWN0cygpO1xuICAgICAgICBpZiAoY3VycmVudE9iamVjdEluZGV4ID09PSAwIHx8IG9iamVjdHMubGVuZ3RoIDw9IDEpIHJldHVybiBmYWxzZTtcblxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBvYmplY3RzW2N1cnJlbnRPYmplY3RJbmRleF0/LmNvbnRleHRbZmllbGRQYXRoXTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IG9iamVjdHNbY3VycmVudE9iamVjdEluZGV4IC0gMV0/LmNvbnRleHRbZmllbGRQYXRoXTtcblxuICAgICAgICByZXR1cm4gIXRoaXMuYXJlVmFsdWVzRXF1YWwoY3VycmVudFZhbHVlLCBwcmV2aW91c1ZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIGZpZWxkIGhhcyB1bmVxdWFsIHZhbHVlcyBhY3Jvc3Mgb2JqZWN0c1xuICAgICAqL1xuICAgIGhhc1VuZXF1YWxWYWx1ZXMoZmllbGRQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0cyA9IHRoaXMucmVtYWluaW5nT2JqZWN0cygpO1xuICAgICAgICBpZiAob2JqZWN0cy5sZW5ndGggPD0gMSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9iamVjdHMubWFwKG9iaiA9PiBvYmouY29udGV4dFtmaWVsZFBhdGhdKTtcbiAgICAgICAgY29uc3QgZmlyc3RWYWx1ZSA9IHZhbHVlc1swXTtcblxuICAgICAgICByZXR1cm4gdmFsdWVzLnNvbWUodmFsdWUgPT4gIXRoaXMuYXJlVmFsdWVzRXF1YWwodmFsdWUsIGZpcnN0VmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIGZpZWxkIGhhcyBlcXVhbCB2YWx1ZXMgYWNyb3NzIG9iamVjdHNcbiAgICAgKi9cbiAgICBoYXNFcXVhbFZhbHVlcyhmaWVsZFBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvYmplY3RzID0gdGhpcy5yZW1haW5pbmdPYmplY3RzKCk7XG4gICAgICAgIGlmIChvYmplY3RzLmxlbmd0aCA8PSAxKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdmFsdWVzID0gb2JqZWN0cy5tYXAob2JqID0+IG9iai5jb250ZXh0W2ZpZWxkUGF0aF0pO1xuICAgICAgICBjb25zdCBmaXJzdFZhbHVlID0gdmFsdWVzWzBdO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZXMuZXZlcnkodmFsdWUgPT4gdGhpcy5hcmVWYWx1ZXNFcXVhbCh2YWx1ZSwgZmlyc3RWYWx1ZSkpO1xuICAgIH1cblxuXG5cblxuICAgIC8qKlxuICAgICAqIENvbXBhcmUgdHdvIHZhbHVlcyBmb3IgZXF1YWxpdHkgKGRlZXAgY29tcGFyaXNvbiBmb3Igb2JqZWN0cy9hcnJheXMpXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcmVWYWx1ZXNFcXVhbCh2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHZhbHVlMSA9PT0gdmFsdWUyKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBpZiAodmFsdWUxID09IG51bGwgfHwgdmFsdWUyID09IG51bGwpIHJldHVybiB2YWx1ZTEgPT09IHZhbHVlMjtcblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlMSAhPT0gdHlwZW9mIHZhbHVlMikgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUxID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlMSkgPT09IEpTT04uc3RyaW5naWZ5KHZhbHVlMik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIHRoZSBzaG93IG9ubHkgY2hhbmdlcyBmaWx0ZXJcbiAgICAgKi9cbiAgICB0b2dnbGVTaG93T25seUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd09ubHlDaGFuZ2VzLnVwZGF0ZSh2YWx1ZSA9PiAhdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhbiBvYmplY3QgZnJvbSB0aGUgY29tcGFyaXNvblxuICAgICAqL1xuICAgIHJlbW92ZU9iamVjdChvYmplY3RJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlZE9iamVjdHMudXBkYXRlKG9iamVjdHMgPT4gWy4uLm9iamVjdHMsIG9iamVjdElkXSk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIExpZmVjeWNsZSBNZXRob2RzICAgLS0tLVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn1cbiIsIjwhLS1cbiAgI3JlZ2lvbiAtLS0tICAgQ29tcGFyZSBWaWV3IFRhYmxlIExheW91dCAgIC0tLS1cbi0tPlxuPGRpdiBjbGFzcz1cImF4cC1jb21wYXJlLXZpZXdcIj5cbiAgPGRpdiBjbGFzcz1cIl9fdGFibGUtY29udGFpbmVyXCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiX190YWJsZVwiPlxuICAgICAgPHRoZWFkIGNsYXNzPVwiX190aGVhZFwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJfX2hlYWRlci1yb3dcIj5cbiAgICAgICAgICA8dGggY2xhc3M9XCJfX2ZpZWxkLWhlYWRlclwiPlxuICAgICAgICAgICAgPGF4LWNoZWNrLWJveCBbdmFsdWVdPVwic2hvd09ubHlDaGFuZ2VzKClcIiAodmFsdWVDaGFuZ2UpPVwidG9nZ2xlU2hvd09ubHlDaGFuZ2VzKClcIlxuICAgICAgICAgICAgICBjbGFzcz1cIl9fc2hvdy1jaGFuZ2VzLXRvZ2dsZVwiPlxuICAgICAgICAgICAgICA8YXgtbGFiZWw+XG4gICAgICAgICAgICAgICAge3sgJ2NvbXBhcmUtdmlldy5zaG93LW9ubHktZGlmZmVyZW5jZXMnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPC9heC1sYWJlbD5cbiAgICAgICAgICAgIDwvYXgtY2hlY2stYm94PlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgQGZvciAob2JqIG9mIHJlbWFpbmluZ09iamVjdHMoKTsgdHJhY2sgb2JqLmlkKSB7XG4gICAgICAgICAgPHRoIGNsYXNzPVwiX19vYmplY3QtaGVhZGVyXCIgW2F0dHIuZGF0YS1pZF09XCJvYmouaWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX29iamVjdC10aXRsZVwiIFt0aXRsZV09XCJvYmouZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgb2JqLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAocmVtYWluaW5nT2JqZWN0cygpLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJfX3JlbW92ZS1vYmplY3QtYnV0dG9uXCIgKGNsaWNrKT1cInJlbW92ZU9iamVjdChvYmouaWQpXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJfX3Rib2R5XCI+XG4gICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpbHRlcmVkRmllbGRzKCk7IHRyYWNrIGZpZWxkLnBhdGg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDx0ciBjbGFzcz1cIl9fcm93XCIgW2NsYXNzLl9fcm93LS1vZGRdPVwiaSAlIDIgPT09IDFcIiBbY2xhc3MuX19yb3ctLWhhcy1kaWZmZXJlbmNlc109XCJoYXNVbmVxdWFsVmFsdWVzKGZpZWxkLnBhdGgpXCJcbiAgICAgICAgICBbY2xhc3MuX19yb3ctLWhhcy1lcXVhbC12YWx1ZXNdPVwiaGFzRXF1YWxWYWx1ZXMoZmllbGQucGF0aClcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJfX2ZpZWxkLWNlbGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2ZpZWxkLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fZmllbGQtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7eyBmaWVsZC50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBAaWYgKGZpZWxkLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2ZpZWxkLWRlc2NyaXB0aW9uXCI+e3sgZmllbGQuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICBAZm9yIChvYmogb2YgcmVtYWluaW5nT2JqZWN0cygpOyB0cmFjayBvYmouaWQ7IGxldCBvYmpJbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgIDx0ZCBjbGFzcz1cIl9fb2JqZWN0LWNlbGxcIiBbYXR0ci5kYXRhLWlkXT1cIm9iai5pZFwiXG4gICAgICAgICAgICBbY2xhc3MuX19jZWxsLS1jaGFuZ2VkXT1cImhhc1ZhbHVlQ2hhbmdlZEZyb21QcmV2aW91cyhmaWVsZC5wYXRoLCBvYmpJbmRleCkgJiYgaXNDaGFuZ2VzTW9kZSgpXCI+XG4gICAgICAgICAgICBAaWYgKG9iai5jb250ZXh0W2ZpZWxkLnBhdGhdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX29iamVjdC1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwib2JqLmNvbnRleHRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGF4cC13aWRnZXQtcmVuZGVyZXIgW25vZGVdPVwiZmllbGQud2lkZ2V0XCIgW21vZGVdPVwiJ3ZpZXcnXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX29iamVjdC1wbGFjZWhvbGRlclwiPi0tLTwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChoYXNWYWx1ZUNoYW5naW5nVG9OZXh0KGZpZWxkLnBhdGgsIG9iakluZGV4KSAmJiBpc0NoYW5nZXNNb2RlKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2NoYW5nZS1pbmRpY2F0b3JcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1hcnJvdy1yaWdodFwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgICB9XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9kaXY+XG48IS0tXG4gICNlbmRyZWdpb25cbi0tPiJdfQ==","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.0.4\", ngImport: i0, type: AXPComponentSlot, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.4\", type: AXPComponentSlot, isStandalone: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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.0.4\", ngImport: i0, type: AXPComponentSlotRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPComponentSlotRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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, 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();\n this.host = input();\n this.context = input();\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);\n // Create a signal to store the count of children\n this._viewCount = signal(0);\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 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 (this.evaluator.isExpression(config.options)) {\n options = await this.evaluator.evaluate(config.options, {});\n }\n else if (config.options) {\n options = config.options;\n }\n // apply options and host\n const componentRef = this.viewContainerRef.createComponent(component);\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.0.4\", ngImport: i0, type: AXPComponentSlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.4\", 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.0.4\", ngImport: i0, type: AXPComponentSlotDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'axp-component-slot',\n standalone: false,\n exportAs: 'slot',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudC1zbG90L2NvbXBvbmVudC1zbG90LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLGVBQWUsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZHLE9BQU8sRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxxQkFBcUIsRUFDckIsTUFBTSxFQUVOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQU9yRixNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTUUsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNoQyxTQUFJLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFDcEIsWUFBTyxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRWYsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQzFELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25ELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXZDLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFF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LENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5RCxDQUFDO2lCQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMxQixPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUMzQixDQUFDO1lBQ0QseUJBQXlCO1lBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsU0FBVSxDQUFDLENBQUM7WUFDdkUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO2dCQUNuQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3ZCLEdBQUcsT0FBTzthQUNYLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDLFNBQThFO1FBQzVHLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzQyxtQ0FBbUM7SUFDckMsQ0FBQzs4R0EvRVUseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBTHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLFFBQVEsRUFBRSxNQUFNO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUENvbnRleHREYXRhLCBBWFBDb250ZXh0U3RvcmUsIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIGNvbXB1dGVkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGlucHV0LFxuICBPbkluaXQsXG4gIHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbiAgc2lnbmFsLFxuICBUeXBlLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBDb21wb25lbnRTbG90UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnQtc2xvdC1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2F4cC1jb21wb25lbnQtc2xvdCcsXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxuICBleHBvcnRBczogJ3Nsb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBDb21wb25lbnRTbG90RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgbmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgaG9zdCA9IGlucHV0PGFueT4oKTtcbiAgY29udGV4dCA9IGlucHV0PGFueT4oKTtcblxuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHByaXZhdGUgcmVnaXN0cnlTZXJ2aWNlID0gaW5qZWN0KEFYUENvbXBvbmVudFNsb3RSZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSBldmFsdWF0b3IgPSBpbmplY3QoQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UpO1xuICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcHVibGljIGNvbnRleHRTdG9yZSA9IGluamVjdChBWFBDb250ZXh0U3RvcmUpO1xuXG4gIHB1YmxpYyBpc0VtcHR5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fdmlld0NvdW50KCkgPT09IDApO1xuXG4gIC8vIENyZWF0ZSBhIHNpZ25hbCB0byBzdG9yZSB0aGUgY291bnQgb2YgY2hpbGRyZW5cbiAgcHJpdmF0ZSBfdmlld0NvdW50ID0gc2lnbmFsKDApO1xuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGF3YWl0IHRoaXMubG9hZENvbXBvbmVudHMoKTtcbiAgICAvLyBVcGRhdGUgdGhlIHNpZ25hbCBhZnRlciBsb2FkaW5nXG4gICAgdGhpcy5fdmlld0NvdW50LnNldCh0aGlzLnZpZXdDb250YWluZXJSZWYubGVuZ3RoKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRDb21wb25lbnRzKCkge1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBzb3J0QnkodGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0KHRoaXMubmFtZSgpKSwgKGMpID0+IGMucHJpb3JpdHkgPz8gMCk7XG4gICAgaWYgKCFjb25maWdzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBObyBjb21wb25lbnQgZm91bmQgZm9yIHNsb3QgJHt0aGlzLm5hbWUoKX1gKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY29uZmlncy5tYXAoYXN5bmMgKGMpID0+ICh7XG4gICAgICAgIGNvbmZpZzogYyxcbiAgICAgICAgdmlzaWJsZTogYy5jb25kaXRpb24gPyBhd2FpdCB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKGMuY29uZGl0aW9uKSA6IHRydWUsXG4gICAgICB9KSksXG4gICAgKTtcbiAgICBjb25zdCBzbG90cyA9IHJlc3VsdHMuZmlsdGVyKChyKSA9PiByLnZpc2libGUpLm1hcCgocikgPT4gci5jb25maWcpO1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgc2xvdHMubWFwKGFzeW5jIChjb25maWcpID0+IHtcbiAgICAgICAgbGV0IGNvbXBvbmVudCE6IFR5cGU8YW55PiB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBvcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSA9IHt9O1xuICAgICAgICAvLyBsb2FkIGNvbXBvbmVudFxuICAgICAgICBpZiAodHlwZW9mIGNvbmZpZy5sb2FkQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYXdhaXQgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbXBvbmVudCA9IGF3YWl0IGNvbmZpZy5sb2FkQ29tcG9uZW50Py4oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChjb25maWcuY29tcG9uZW50KSB7XG4gICAgICAgICAgY29tcG9uZW50ID0gY29uZmlnLmNvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICAvLyBsb2FkIG9wdGlvbnNcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWcub3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmdW4gPSBjb25maWcub3B0aW9ucyBhcyBGdW5jdGlvbjtcbiAgICAgICAgICAgIG9wdGlvbnMgPSBmdW4oKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmV2YWx1YXRvci5pc0V4cHJlc3Npb24oY29uZmlnLm9wdGlvbnMpKSB7XG4gICAgICAgICAgb3B0aW9ucyA9IGF3YWl0IHRoaXMuZXZhbHVhdG9yLmV2YWx1YXRlKGNvbmZpZy5vcHRpb25zLCB7fSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLm9wdGlvbnMpIHtcbiAgICAgICAgICBvcHRpb25zID0gY29uZmlnLm9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYXBwbHkgb3B0aW9ucyBhbmQgaG9zdFxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCEpO1xuICAgICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xuICAgICAgICAgIGhvc3Q6IHRoaXMuaG9zdCgpLFxuICAgICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dCgpLFxuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVDb25kaXRpb24oY29uZGl0aW9uOiBzdHJpbmcgfCAoKGNvbnRleHQ/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.0.4\", 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.0.4\", ngImport: i0, type: AXPComponentSlotModule, declarations: [AXPComponentSlotDirective], exports: [AXPComponentSlotDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPComponentSlotModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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 { 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/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/core/translation\";\nimport * as i6 from \"@acorex/components/popover\";\nimport * as i7 from \"@acorex/components/tag-box\";\nimport * as i8 from \"@acorex/platform/layout/builder\";\nimport * as i9 from \"@acorex/cdk/list-navigation\";\nimport * as i10 from \"@acorex/components/badge\";\nexport class AXPLayoutFiltersComponent {\n constructor() {\n this.translate = inject(AXTranslationService);\n this.calendarService = inject(AXCalendarService);\n this.filterOperatorMiddleware = inject(AXPFilterOperatorMiddlewareService);\n this.filtersDefinitions = input([]);\n this.initialFilters = input([]);\n this.onFiltersChanged = output();\n this.tagBox = viewChild('tagBox');\n this.selectedField = signal(null);\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);\n this.asyncTags = signal([]);\n this.popover = viewChild('popover');\n this.inputValue = signal('');\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 });\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 });\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.0.4\", ngImport: i0, type: AXPLayoutFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { 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: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i5.AXTranslatorPipe, name: \"translate\" }, { kind: \"ngmodule\", type: AXPopoverModule }, { kind: \"component\", type: i6.AXPopoverComponent, selector: \"ax-popover\", inputs: [\"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: i7.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: 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: AXListNavigationModule }, { kind: \"directive\", type: i9.AXListNavigationDirective, selector: \"[axListNavigation]\", inputs: [\"orientation\"], outputs: [\"onNavigationChanged\", \"onPressEnterOrSpace\"], exportAs: [\"axListNavigation\"] }, { kind: \"directive\", type: i9.AXListNavigationItemDirective, selector: \"[axListNavigationItem]\", exportAs: [\"axListNavigationItem\"] }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i10.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"text\", \"look\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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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U0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQWdCTDs4R0F2UVEseUJBQXlCO2tHQUF6Qix5QkFBeUIsaXVCQ25EdEMsazVIQThGQSx5RkR4REksWUFBWSxtRkFDWixXQUFXLDhWQUNYLGNBQWMsNlhBQ2QsaUJBQWlCLHNWQUNqQixtQkFBbUIsOEZBQ25CLGVBQWUsa1VBQ2YscUJBQXFCLDhCQUNyQixjQUFjLDZkQUNkLHNCQUFzQiw4WkFDdEIsc0JBQXNCLGtYQUN0QixhQUFhOzsyRkFHSix5QkFBeUI7a0JBckJyQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBR2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUI7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixhQUFhO3FCQUNkOzhCQWN5QixTQUFTO3NCQUFsQyxZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYRXZlbnQsIEFYSHRtbEV2ZW50LCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYTGlzdE5hdmlnYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9saXN0LW5hdmlnYXRpb24nO1xuaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJDb21wb25lbnQsIEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYU2VsZWN0aW9uTGlzdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3Rpb24tbGlzdCc7XG5pbXBvcnQgeyBBWFRhZ0JveENvbXBvbmVudCwgQVhUYWdCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFnLWJveCc7XG5pbXBvcnQgeyBBWENhbGVuZGFyU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQUxMX0RFRkFVTFRfT1BFUkFUT1JTLCBBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRmlsdGVyRGVmaW5pdGlvbiwgQVhQRmlsdGVyUXVlcnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG4gIG91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbiAgdmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1maWx0ZXJzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheW91dC1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhTZWxlY3Rpb25MaXN0TW9kdWxlLFxuICAgIEFYVGFnQm94TW9kdWxlLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgQVhMaXN0TmF2aWdhdGlvbk1vZHVsZSxcbiAgICBBWEJhZGdlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMYXlvdXRGaWx0ZXJzQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByb3RlY3RlZCBjYWxlbmRhclNlcnZpY2UgPSBpbmplY3QoQVhDYWxlbmRhclNlcnZpY2UpO1xuICBwcml2YXRlIGZpbHRlck9wZXJhdG9yTWlkZGxld2FyZSA9IGluamVjdChBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlKTtcblxuICBmaWx0ZXJzRGVmaW5pdGlvbnMgPSBpbnB1dDxBWFBGaWx0ZXJEZWZpbml0aW9uW10+KFtdKTtcbiAgaW5pdGlhbEZpbHRlcnMgPSBpbnB1dDxBWFBGaWx0ZXJRdWVyeVtdPihbXSk7XG4gIG9uRmlsdGVyc0NoYW5nZWQgPSBvdXRwdXQ8QVhQRmlsdGVyUXVlcnlbXT4oKTtcblxuICBwcm90ZWN0ZWQgdGFnQm94ID0gdmlld0NoaWxkPEFYVGFnQm94Q29tcG9uZW50PigndGFnQm94Jyk7XG4gIHRhZ0JveElucHV0ITogYW55O1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2Nhc2VJdGVtJykgbGlzdEl0ZW1zITogUXVlcnlMaXN0PGFueT47XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkRmllbGQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZEZpbHRlcnMgPSBsaW5rZWRTaWduYWw8QVhQRmlsdGVyRGVmaW5pdGlvbltdPigoKSA9PlxuICAgIHRoaXMuY29udmVydFF1ZXJpZXNUb0RlZmluaXRpb25zKHRoaXMuaW5pdGlhbEZpbHRlcnMoKSkubWFwKChpKSA9PiAoeyAuLi5pLCByZWFkT25seTogdHJ1ZSB9KSksXG4gICk7XG5cbiAgY29udGV4dCA9IGxpbmtlZFNpZ25hbDxhbnk+KCgpID0+IHRoaXMuY29udmVydFF1ZXJpZXNUb0NvbnRleHQodGhpcy5pbml0aWFsRmlsdGVycygpKSk7XG5cbiAgcHJvdGVjdGVkIGFjdGl2ZUZpbHRlciA9IHNpZ25hbDxBWFBGaWx0ZXJEZWZpbml0aW9uIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIGFzeW5jVGFncyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHByb3RlY3RlZCBwb3BvdmVyID0gdmlld0NoaWxkPEFYUG9wb3ZlckNvbXBvbmVudD4oJ3BvcG92ZXInKTtcblxuICBpbnB1dFZhbHVlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIGlubGluZUZpbHRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyc0RlZmluaXRpb25zKCkuZmlsdGVyKFxuICAgICAgKGYpID0+XG4gICAgICAgIGYuZmlsdGVyVHlwZS5pbmxpbmUgJiZcbiAgICAgICAgIXRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlXG4gICAgICAgICAgLnRyYW5zZm9ybUZpbHRlcnModGhpcy5zZWxlY3RlZEZpbHRlcnMoKSlcbiAgICAgICAgICAuc29tZShcbiAgICAgICAgICAgIChzZikgPT5cbiAgICAgICAgICAgICAgc2YuZmllbGQgPT09IGYuZmllbGQgJiZcbiAgICAgICAgICAgICAgc2Yub3BlcmF0b3I/LnR5cGUgPT09ICh0aGlzLmNvbnRleHQoKVtzZi5maWVsZF0/Lm9wZXJhdGlvbj8udHlwZSB8fCBmLm9wZXJhdG9yPy50eXBlKSxcbiAgICAgICAgICApLFxuICAgICk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldERpc3BsYXlWYWx1ZSA9IGFzeW5jIChmaWx0ZXI6IEFYUEZpbHRlckRlZmluaXRpb24sIHZhbDogYW55KSA9PiB7XG4gICAgaWYgKGZpbHRlci53aWRnZXQudHlwZSA9PT0gJ3NlbGVjdC1lZGl0b3InIHx8IGZpbHRlci53aWRnZXQudHlwZSA9PT0gJ3NlbGVjdC1maWx0ZXInKSB7XG4gICAgICBjb25zdCBkYXRhU291cmNlOiBBWERhdGFTb3VyY2UgPSBmaWx0ZXIud2lkZ2V0Lm9wdGlvbnM/LlsnZGF0YVNvdXJjZSddO1xuICAgICAgY29uc3QgdGV4dEZpZWxkID0gZmlsdGVyLndpZGdldC5vcHRpb25zPy5bJ3RleHRGaWVsZCddO1xuICAgICAgY29uc3QgdmFsdWVGaWVsZCA9IGZpbHRlci53aWRnZXQub3B0aW9ucz8uWyd2YWx1ZUZpZWxkJ107XG4gICAgICBpZiAoZGF0YVNvdXJjZT8uY29uZmlnPy5ieUtleSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0czogdW5rbm93bltdID0gYXdhaXQgUHJvbWlzZS5hbGwodmFsLm1hcCgodikgPT4gZGF0YVNvdXJjZS5jb25maWcuYnlLZXkhKHYpKSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdHMubWFwKChkYXRhKSA9PiAoZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVt0ZXh0RmllbGRdKS5qb2luKCcsICcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSAoYXdhaXQgZGF0YVNvdXJjZS5jb25maWcuYnlLZXkodmFsKSkgYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgICAgICByZXR1cm4gZGF0YT8uW3RleHRGaWVsZF0gfHwgdmFsO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgIHJldHVybiBkYXRhU291cmNlLm1hcCgoZGF0YSkgPT4gKGRhdGEgYXMgUmVjb3JkPHN0cmluZywgYW55PilbdGV4dEZpZWxkXSkuam9pbignLCAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCByZWNvcmQ6IGFueSA9IGRhdGFTb3VyY2UuZmluZCgoZDogYW55KSA9PiBkW3ZhbHVlRmllbGRdID09PSB2YWwpO1xuICAgICAgICAgIHJldHVybiByZWNvcmQgPyByZWNvcmRbdGV4dEZpZWxkXSA6ICcnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWwpXG4gICAgICA/IGAke3RoaXMuY29udmVydElmSVNPU3RyaW5nRGF0ZSh2YWwuZnJvbSl9IGFuZCAke3RoaXMuY29udmVydElmSVNPU3RyaW5nRGF0ZSh2YWwudG8pfWBcbiAgICAgIDogdGhpcy5jb252ZXJ0SWZJU09TdHJpbmdEYXRlKHZhbCk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGNvbnZlcnRJZklTT1N0cmluZ0RhdGUgPSAodmFsOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBpc0lTT1N0cmluZ0RhdGUgPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9XFwuXFxkezN9WiQvLnRlc3QodmFsKTtcbiAgICBpZiAoaXNJU09TdHJpbmdEYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh2YWwpLmRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG4gIH07XG5cbiAgY29udmVydFF1ZXJpZXNUb0RlZmluaXRpb25zKHF1ZXJpZXM6IEFYUEZpbHRlclF1ZXJ5W10pOiBBWFBGaWx0ZXJEZWZpbml0aW9uW10ge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gdGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMoKTtcblxuICAgIHJldHVybiBxdWVyaWVzLm1hcCgocSkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IGRlZmluaXRpb25zLmZpbmQoKHApID0+IHAuZmllbGQgPT09IHEuZmllbGQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZDogcS5maWVsZCxcbiAgICAgICAgb3BlcmF0b3I6IHEub3BlcmF0b3IsXG4gICAgICAgIHZhbHVlOiBxLnZhbHVlLFxuICAgICAgICB0aXRsZTogZGVmaW5pdGlvbj8udGl0bGUgfHwgJycsXG4gICAgICAgIHdpZGdldDogZGVmaW5pdGlvbj8ud2lkZ2V0ISxcbiAgICAgICAgZmlsdGVyVHlwZTogZGVmaW5pdGlvbj8uZmlsdGVyVHlwZSEsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgY29udmVydFF1ZXJpZXNUb0NvbnRleHQocXVlcmllczogQVhQRmlsdGVyUXVlcnlbXSk6IGFueSB7XG4gICAgcmV0dXJuIHF1ZXJpZXMucmVkdWNlKChhY2MsIHEpID0+IHtcbiAgICAgIGFjY1txLmZpZWxkXSA9IHsgdmFsdWU6IHEudmFsdWUsIG9wZXJhdGlvbjogcS5vcGVyYXRvciB9O1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBhbnkpO1xuICB9XG5cbiAgZmlsdGVyRmllbGRzID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnNEZWZpbml0aW9ucygpLmZpbHRlcigoZikgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZi5maWx0ZXJUeXBlLmFkdmFuY2UgJiZcbiAgICAgICAgIXRoaXMuc2VsZWN0ZWRGaWx0ZXJzKCkuc29tZSgoc2YpID0+IHtcbiAgICAgICAgICByZXR1cm4gc2YuZmllbGQgPT09IGYuZmllbGQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFnQm94SW5wdXQgPSB0aGlzLnRhZ0JveCgpPy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gIH1cblxuICBoYW5kbGVTZWxlY3RGaWVsZChmaWVsZDogQVhQRmlsdGVyRGVmaW5pdGlvbikge1xuICAgIHRoaXMuYWN0aXZlRmlsdGVyLnNldChmaWVsZCk7XG4gICAgLy8gdGhpcy5pbnB1dFZhbHVlLnNldCgnJyk7XG4gICAgdGhpcy50YWdCb3goKT8uaW5wdXRWYWx1ZS5zZXQoJycpO1xuICB9XG4gIGhhbmRsZUZpZWxkS2V5RG93bihlOiBLZXlib2FyZEV2ZW50LCBmaWVsZDogQVhQRmlsdGVyRGVmaW5pdGlvbikge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oYW5kbGVTZWxlY3RGaWVsZChmaWVsZCk7XG4gICAgfVxuICB9XG5cbiAgb25Db250ZXh0Q2hhbmdlZChlOiBBWFBMYXlvdXRDb250ZXh0Q2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0KGUuZGF0YSk7XG4gIH1cblxuICBoYW5kbGVBcHBseUZpbHRlcigpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVGaWx0ZXIoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgdGhpcy5hY3RpdmVGaWx0ZXIoKSBhcyBBWFBGaWx0ZXJEZWZpbml0aW9uXSk7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlci5zZXQobnVsbCk7XG4gICAgICB0aGlzLnBvcG92ZXIoKT8uY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVCdXR0b25LZXlEb3duKGU6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucG9wb3ZlcigpPy5pc09wZW4gJiYgIXRoaXMuYWN0aXZlRmlsdGVyKCkpIHtcbiAgICAgIC8vIEZpbmQgZmlyc3QgbGlzdCBpdGVtIGFuZCBmb2N1cyBpdFxuICAgICAgY29uc3QgZmlyc3RJdGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2F4TGlzdE5hdmlnYXRpb25JdGVtXScpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKGZpcnN0SXRlbSkge1xuICAgICAgICBmaXJzdEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgZT8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGU6IEFYSHRtbEV2ZW50PEtleWJvYXJkRXZlbnQ+KSB7XG4gICAgaWYgKGUubmF0aXZlRXZlbnQ/LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGlmICh0aGlzLnBvcG92ZXIoKT8uaXNPcGVuICYmICF0aGlzLmFjdGl2ZUZpbHRlcigpKSB7XG4gICAgICAgIC8vIEZpbmQgZmlyc3QgbGlzdCBpdGVtIGFuZCBmb2N1cyBpdFxuICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbYXhMaXN0TmF2aWdhdGlvbkl0ZW1dJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmIChmaXJzdEl0ZW0pIHtcbiAgICAgICAgICBmaXJzdEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgICBlLm5hdGl2ZUV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucG9wb3ZlcigpPy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgI2VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVudHJhY2tlZCgoKSA9PiB0aGlzLmNvbnRleHQoKSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gdGhpcy5zZWxlY3RlZEZpbHRlcnMoKTtcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgY29uc3QgY29udmVydGVkRmlsdGVyczogQVhQRmlsdGVyUXVlcnlbXSA9IHNlbGVjdGVkRmlsdGVycy5tYXAoKGYpID0+ICh7XG4gICAgICAgIGZpZWxkOiBmLmZpZWxkLFxuICAgICAgICBvcGVyYXRvcjogY29udGV4dFtmLmZpZWxkXT8ub3BlcmF0aW9uLFxuICAgICAgICB2YWx1ZTogY29udGV4dFtmLmZpZWxkXT8udmFsdWUsXG4gICAgICB9KSk7XG4gICAgICBjb25zdCBuZXdDb250ZXh0OiBhbnkgPSB7fTtcbiAgICAgIGNvbnZlcnRlZEZpbHRlcnMuZm9yRWFjaCgoY2YpID0+IHtcbiAgICAgICAgbmV3Q29udGV4dFtjZi5maWVsZF0gPSB7XG4gICAgICAgICAgdmFsdWU6IGNmLnZhbHVlLFxuICAgICAgICAgIG9wZXJhdGlvbjogdHlwZW9mIGNmLm9wZXJhdG9yID09PSAnc3RyaW5nJyA/IHsgdHlwZTogY2Yub3BlcmF0b3IgfSA6IGNmLm9wZXJhdG9yLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY29udGV4dC5zZXQobmV3Q29udGV4dCk7XG4gICAgICB0aGlzLmRlYWN0aXZhdGVBbGxMaXN0SXRlbXMoKTtcbiAgICAgIHRoaXMub25GaWx0ZXJzQ2hhbmdlZC5lbWl0KGNvbnZlcnRlZEZpbHRlcnMpO1xuICAgIH0pO1xuICB9KTtcblxuICBoYW5kbGVTZWxlY3RGaWx0ZXJzKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS52YWx1ZT8ubGVuZ3RoIDwgdGhpcy5zZWxlY3RlZEZpbHRlcnMoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnVwZGF0ZSgocHJldikgPT4ge1xuICAgICAgICByZXR1cm4gZS52YWx1ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRBY3RpdmVPcGVyYXRvcihmaWx0ZXI6IEFYUEZpbHRlckRlZmluaXRpb24gfCBudWxsKSB7XG4gICAgaWYgKCFmaWx0ZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dE9wZXJhdGlvbiA9IHRoaXMuY29udGV4dCgpPy5bZmlsdGVyLmZpZWxkXT8ub3BlcmF0aW9uPy50eXBlO1xuICAgIGNvbnN0IG9wZXJhdG9yVHlwZSA9IGNvbnRleHRPcGVyYXRpb24gfHwgZmlsdGVyLm9wZXJhdG9yPy50eXBlO1xuXG4gICAgcmV0dXJuIEFMTF9ERUZBVUxUX09QRVJBVE9SUy5maW5kKChvKSA9PiBvLm5hbWUgPT09IG9wZXJhdG9yVHlwZSk/LnRpdGxlO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0SW5saW5lRmlsdGVyKGZpbHRlcjogQVhQRmlsdGVyRGVmaW5pdGlvbikge1xuICAgIHRoaXMuY29udGV4dC51cGRhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgW2ZpbHRlci5maWVsZF06IHtcbiAgICAgICAgdmFsdWU6IHRoaXMudGFnQm94KCk/LmlucHV0VmFsdWUoKSxcbiAgICAgICAgb3BlcmF0aW9uOiB7IHR5cGU6ICdjb250YWlucycgfSxcbiAgICAgIH0sXG4gICAgfSkpO1xuICAgIHRoaXMudGFnQm94KCk/LmlucHV0VmFsdWUuc2V0KCcnKTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy51cGRhdGUoKHByZXYpID0+IFsuLi5wcmV2LCBmaWx0ZXJdKTtcbiAgICB0aGlzLnBvcG92ZXIoKT8uY2xvc2UoKTtcbiAgfVxuXG4gIGhhbmRsZUlubGluZUZpbHRlcktleURvd24oZTogS2V5Ym9hcmRFdmVudCwgZmlsdGVyOiBBWFBGaWx0ZXJEZWZpbml0aW9uKSB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLmhhbmRsZVNlbGVjdElubGluZUZpbHRlcihmaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVBvcG92ZXJDbG9zZWQoZTogQVhFdmVudCkge1xuICAgIHRoaXMuYWN0aXZlRmlsdGVyLnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblBvcG92ZXJPcGVuZWQoZTogQVhFdmVudCkge1xuICAgIGlmICh0aGlzLmZpbHRlcnNEZWZpbml0aW9ucygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5wb3BvdmVyKCk/LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGRlYWN0aXZhdGVBbGxMaXN0SXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdEl0ZW1zKSB7XG4gICAgICB0aGlzLmxpc3RJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBpdGVtLmlzQWN0aXZlLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNlZmZlY3QyID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5zZWxlY3RlZEZpbHRlcnMoKTtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0KCk7XG5cbiAgICBQcm9taXNlLmFsbChcbiAgICAgIGZpbHRlcnMubWFwKGFzeW5jIChmaWx0ZXIpID0+IHtcbiAgICAgICAgY29uc3QgdmFsID0gY29udGV4dFtmaWx0ZXIuZmllbGRdPy52YWx1ZTtcbiAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlID0gYXdhaXQgdGhpcy5nZXREaXNwbGF5VmFsdWUoZmlsdGVyLCB2YWwpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICBxdWVyeTogYCR7dGhpcy50cmFuc2xhdGUudHJhbnNsYXRlU3luYyhmaWx0ZXIudGl0bGUpfSAke3RoaXMuZ2V0QWN0aXZlT3BlcmF0b3IoZmlsdGVyKX0gJyR7ZGlzcGxheVZhbHVlfSdgLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICB0aGlzLmFzeW5jVGFncy5zZXQocmVzdWx0cyk7XG4gICAgfSk7XG4gIH0pO1xufVxuIiwiPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0yIGF4LXAtMlwiPlxuICA8YXgtYnV0dG9uIChrZXlkb3duKT1cImhhbmRsZUJ1dHRvbktleURvd24oJGV2ZW50KVwiIChvbkNsaWNrKT1cInBvcG92ZXIub3BlbigpXCIgI2ZpbHRlckJ1dHRvbiBbbG9va109XCInYmxhbmsnXCI+XG4gICAgPGF4LWljb24gY2xhc3M9XCJmYXIgZmEtYmFycy1maWx0ZXIgYXgtY3Vyc29yLXBvaW50ZXJcIj4gPC9heC1pY29uPlxuICA8L2F4LWJ1dHRvbj5cbiAgPGF4LXRhZy1ib3hcbiAgICBbbmdNb2RlbF09XCJhc3luY1RhZ3MoKVwiXG4gICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVNlbGVjdEZpbHRlcnMoJGV2ZW50KVwiXG4gICAgW3RleHRGaWVsZF09XCIncXVlcnknXCJcbiAgICBbdmFsdWVGaWVsZF09XCInaWQnXCJcbiAgICBbcmVhZG9ubHldPVwiZmlsdGVyc0RlZmluaXRpb25zKCkubGVuZ3RoID09PSAwXCJcbiAgICBbbG9va109XCInbm9uZSdcIlxuICAgIFtyZWFkb25seUZpZWxkXT1cIidyZWFkT25seSdcIlxuICAgIChvbktleURvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICBbYWRkT25FbnRlcl09XCJmYWxzZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIihmaWx0ZXJzRGVmaW5pdGlvbnMoKS5sZW5ndGggPT09IDAgPyAnZmlsdGVyLm5vUmVjb3JkcycgOiAnZmlsdGVyLnRpdGxlJykgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgI3RhZ0JveFxuICA+PC9heC10YWctYm94PlxuPC9kaXY+XG5cbjxheC1wb3BvdmVyXG4gIFtvZmZzZXRZXT1cImFjdGl2ZUZpbHRlcigpID8gLTMwIDogMFwiXG4gIFt0YXJnZXRdPVwidGFnQm94SW5wdXRcIlxuICBbb3Blbk9uXT1cIid0b2dnbGUnXCJcbiAgKG9uT3BlbmVkKT1cIm9uUG9wb3Zlck9wZW5lZCgkZXZlbnQpXCJcbiAgW2Nsb3NlT25dPVwiJ2NsaWNrT3V0J1wiXG4gIChvbkNsb3NlZCk9XCJoYW5kbGVQb3BvdmVyQ2xvc2VkKCRldmVudClcIlxuICBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiXG4gICNwb3BvdmVyXG4+XG4gIDxkaXYgY2xhc3M9XCJtZDpheC1taW4tdy03MiBheC1ib3JkZXIgYXgtc3VyZmFjZSBheC13LWZ1bGwgYXgtcm91bmRlZC1tZCBtZDpheC1tYXgtaC05NiBtZDpheC1vdmVyZmxvdy1hdXRvXCI+XG4gICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJjb250ZXh0KClcIiAob25Db250ZXh0Q2hhbmdlZCk9XCJvbkNvbnRleHRDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgIEBpZiAoYWN0aXZlRmlsdGVyKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtbGlnaHRlc3Qtc3VyZmFjZSBheC1zaGFkb3ctbWRcIj5cbiAgICAgICAgICA8YXgtaGVhZGVyIGNsYXNzPVwiYXgtYm9yZGVyLWIgYXgtYm9yZGVyLWxpZ2h0IGF4LXB4LTQgYXgtcHktMlwiPnt7XG4gICAgICAgICAgICBhY3RpdmVGaWx0ZXIoKT8udGl0bGUhIHwgdHJhbnNsYXRlIHwgYXN5bmNcbiAgICAgICAgICB9fTwvYXgtaGVhZGVyPlxuICAgICAgICAgIDxheC1jb250ZW50IGNsYXNzPVwiYXgtcC00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWItMlwiPlxuICAgICAgICAgICAgICA8YXgtYmFkZ2UgW3RleHRdPVwiZ2V0QWN0aXZlT3BlcmF0b3IoYWN0aXZlRmlsdGVyKCkpIVwiPjwvYXgtYmFkZ2U+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgYXhwLXdpZGdldC1yZW5kZXJlclxuICAgICAgICAgICAgICBbbm9kZV09XCJ7XG4gICAgICAgICAgICAgICAgdHlwZTogYWN0aXZlRmlsdGVyKCk/LndpZGdldD8udHlwZSB8fCAndGV4dC1lZGl0b3InLFxuICAgICAgICAgICAgICAgIHBhdGg6IGFjdGl2ZUZpbHRlcigpPy5maWVsZCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBhY3RpdmVGaWx0ZXIoKT8ud2lkZ2V0Py5vcHRpb25zLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgW21vZGVdPVwiJ2VkaXQnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYXgtY29udGVudD5cbiAgICAgICAgICA8YXgtZm9vdGVyIGNsYXNzPVwiYXgtYm9yZGVyLXQgYXgtZmxleCBheC1qdXN0aWZ5LWVuZCBheC1ib3JkZXItbGlnaHQgYXgtdy1mdWxsIGF4LXB4LTQgYXgtcHktMlwiPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXhzXCIgW3RleHRdPVwiJ2FwcGx5JyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCIgKG9uQ2xpY2spPVwiaGFuZGxlQXBwbHlGaWx0ZXIoKVwiPjwvYXgtYnV0dG9uPlxuICAgICAgICAgIDwvYXgtZm9vdGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGF4TGlzdE5hdmlnYXRpb24gI2xpc3Q9XCJheExpc3ROYXZpZ2F0aW9uXCIgY2xhc3M9XCJheHAtbGlzdC1pdGVtc1wiPlxuICAgICAgICAgIEBpZiAodGFnQm94LmlucHV0VmFsdWUoKSkge1xuICAgICAgICAgICAgQGZvciAoaW5saW5lRmlsdGVyIG9mIGlubGluZUZpbHRlcnMoKTsgdHJhY2sgaW5saW5lRmlsdGVyLmZpZWxkKSB7XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBheExpc3ROYXZpZ2F0aW9uSXRlbVxuICAgICAgICAgICAgICAgICNjYXNlSXRlbT1cImF4TGlzdE5hdmlnYXRpb25JdGVtXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYXhwLXN0YXRlLWZvY3VzZWRdPVwiY2FzZUl0ZW0uaXNBY3RpdmUoKVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2VsZWN0SW5saW5lRmlsdGVyKGlubGluZUZpbHRlcilcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUlubGluZUZpbHRlcktleURvd24oJGV2ZW50LCBpbmxpbmVGaWx0ZXIpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGlubGluZUZpbHRlci50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19IHt7IGdldEFjdGl2ZU9wZXJhdG9yKGlubGluZUZpbHRlcikgfX0gJ3t7XG4gICAgICAgICAgICAgICAgICB0YWdCb3guaW5wdXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgfX0nXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC13LWZ1bGwgYXgtYm9yZGVyLXQgYXgtYm9yZGVyLWxpZ2h0IGF4LW15LTFcIj48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpbHRlckZpZWxkcygpOyB0cmFjayBmaWVsZC5maWVsZCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBheExpc3ROYXZpZ2F0aW9uSXRlbVxuICAgICAgICAgICAgICAjY2FzZUl0ZW09XCJheExpc3ROYXZpZ2F0aW9uSXRlbVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5heHAtc3RhdGUtZm9jdXNlZF09XCJjYXNlSXRlbS5pc0FjdGl2ZSgpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlbGVjdEZpZWxkKGZpZWxkKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUZpZWxkS2V5RG93bigkZXZlbnQsIGZpZWxkKVwiXG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWVuZCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtdy01XCIgW2NsYXNzXT1cIidmYS1saWdodCAnICsgZmllbGQuaWNvblwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICAgICAge3sgZmllbGQudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPlxuIl19","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.0.4\", ngImport: i0, type: AXPUserAvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPUserAvatarService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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);\n this.size = input(40);\n this.userId = input('');\n this.src = signal('');\n this.userName = computed(() => this.userInfo()?.username || '');\n this.firstName = computed(() => this.userInfo()?.firstName || 'Root');\n this.lastName = computed(() => this.userInfo()?.lastName || 'User');\n this.title = computed(() => `${this.firstName()} ${this.lastName()}`);\n this.isOnline = computed(() => this.userInfo()?.status === 'online');\n this.avatarText = computed(() => this.getInitials());\n this.avatarColor = computed(() => this.pickColor(this.avatarText()));\n this.hasPicture = signal(false);\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.0.4\", ngImport: i0, type: AXPUserAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUczRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBZXpELE1BQU0sT0FBTyxzQkFBc0I7SUFibkM7UUFjbUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdEMsYUFBUSxHQUFHLE1BQU0sQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFFNUQsU0FBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUN6QixXQUFNLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FB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YUFBYSxvTkFDYixhQUFhOzsyRkFLSixzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ0UsaUJBQWlCLFdBR2xCO3dCQUNQLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGFBQWE7cUJBQ2hCLGlCQUNnQixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhclNlcnZpY2UgfSBmcm9tICcuL3VzZXItYXZhdGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWEF2YXRhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdmF0YXInO1xuaW1wb3J0IHsgQVhIdG1sRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhckRhdGEgfSBmcm9tICcuL3VzZXItYXZhdGFyLnR5cGVzJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhJbWFnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9pbWFnZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC11c2VyLWF2YXRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWF2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi91c2VyLWF2YXRhci5jb21wb25lbnQuc2NzcycsXG4gIGltcG9ydHM6IFtcbiAgICBBWEF2YXRhck1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEltYWdlTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGVcbl0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFVzZXJBdmF0YXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckF2YXRhclNlcnZpY2UgPSBpbmplY3QoQVhQVXNlckF2YXRhclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgdXNlckluZm8gPSBzaWduYWw8QVhQVXNlckF2YXRhckRhdGEgfCBudWxsPihudWxsKTtcblxuICBzaXplID0gaW5wdXQ8bnVtYmVyPig0MCk7XG4gIHVzZXJJZCA9IGlucHV0PHN0cmluZz4oJycpO1xuXG4gIHNyYyA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgdXNlck5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVzZXJJbmZvKCk/LnVzZXJuYW1lIHx8ICcnKTtcbiAgZmlyc3ROYW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51c2VySW5mbygpPy5maXJzdE5hbWUgfHwgJ1Jvb3QnKTtcbiAgbGFzdE5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVzZXJJbmZvKCk/Lmxhc3ROYW1lIHx8ICdVc2VyJyk7XG4gIHRpdGxlID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5maXJzdE5hbWUoKX0gJHt0aGlzLmxhc3ROYW1lKCl9YCk7XG4gIGlzT25saW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51c2VySW5mbygpPy5zdGF0dXMgPT09ICdvbmxpbmUnKTtcblxuICBhdmF0YXJUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nZXRJbml0aWFscygpKTtcbiAgYXZhdGFyQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBpY2tDb2xvcih0aGlzLmF2YXRhclRleHQoKSkpO1xuXG4gIHByb3RlY3RlZCBoYXNQaWN0dXJlID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgb25JbWFnZUVycm9yKGV2ZW50OiBBWEh0bWxFdmVudDxFcnJvckV2ZW50Pikge1xuICAgIHRoaXMuaGFzUGljdHVyZS5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW1hZ2VMb2FkKGV2ZW50OiBBWEh0bWxFdmVudDxFdmVudD4pIHtcbiAgICB0aGlzLmhhc1BpY3R1cmUuc2V0KHRydWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkVXNlckRhdGEoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFVzZXJEYXRhKCk6IHZvaWQge1xuICAgIC8vIFNraXAgaWYgbm8gdXNlcm5hbWUgcHJvdmlkZWRcbiAgICBpZiAoIXRoaXMudXNlcklkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIHVzZXIgaW5mbyBvYnNlcnZhYmxlIHRvIGdldCByZWFsLXRpbWUgdXBkYXRlc1xuICAgIHRoaXMudXNlckF2YXRhclNlcnZpY2VcbiAgICAgIC5nZXRVc2VySW5mbyQodGhpcy51c2VySWQoKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHVzZXJEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMudXNlckluZm8uc2V0KHVzZXJEYXRhKTtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHBsYWNlaG9sZGVyIC0gcmVwbGFjZSB3aXRoIHlvdXIgYWN0dWFsIGF2YXRhciBVUkwgbG9naWNcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUF2YXRhclNyYygpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYXZhdGFyIGltYWdlIHNvdXJjZVxuICAgKiBUaGlzIGlzIGEgcGxhY2Vob2xkZXIgLSBpbXBsZW1lbnQgYmFzZWQgb24geW91ciBhY3R1YWwgcmVxdWlyZW1lbnRzXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlQXZhdGFyU3JjKCk6IHZvaWQge1xuICAgIC8vIEV4YW1wbGU6IENoZWNrIGlmIHRoZSB1c2VyIGhhcyBhIGN1c3RvbSBhdmF0YXIgVVJMXG4gICAgLy8gSWYgbm90LCBnZW5lcmF0ZSBhIHBsYWNlaG9sZGVyIHVzaW5nIGluaXRpYWxzXG4gICAgaWYgKHRoaXMudXNlckluZm8oKT8uYXZhdGFyVXJsKSB7XG4gICAgICB0aGlzLnNyYy5zZXQodGhpcy51c2VySW5mbygpPy5hdmF0YXJVcmwhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gR2VuZXJhdGUgYSBwbGFjZWhvbGRlciAtIHlvdSBjb3VsZCB1c2UgYW4gZXh0ZXJuYWwgc2VydmljZSBsaWtlIFVJIEF2YXRhcnNcbiAgICAgIC8vIG9yIGltcGxlbWVudCB5b3VyIG93biBsb2dpY1xuICAgICAgY29uc3QgaW5pdGlhbHMgPSB0aGlzLmdldEluaXRpYWxzKCk7XG4gICAgICB0aGlzLnNyYy5zZXQoYGh0dHBzOi8vYXZhdGFyLmlyYW4ubGlhcmEucnVuL3VzZXJuYW1lP3VzZXJuYW1lPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGluaXRpYWxzKX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGluaXRpYWxzIGZyb20gZmlyc3QgYW5kIGxhc3QgbmFtZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRJbml0aWFscygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpcnN0SW5pdGlhbCA9IHRoaXMuZmlyc3ROYW1lKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgbGFzdEluaXRpYWwgPSB0aGlzLmxhc3ROYW1lKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIGZpcnN0SW5pdGlhbCArIGxhc3RJbml0aWFsO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNoU3RyaW5nKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSAtIGhhc2ggKyBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgIGhhc2ggfD0gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGguYWJzKGhhc2gpO1xuICB9XG5cbiAgcHJpdmF0ZSBwaWNrQ29sb3IoaW5pdGlhbHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3JzID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICdkYW5nZXInLCAnd2FybmluZycsICdzdWNjZXNzJywgJ2FjY2VudDEnLCAnYWNjZW50MicsICdhY2NlbnQzJ107XG4gICAgY29uc3QgaWR4ID0gdGhpcy5oYXNoU3RyaW5nKGluaXRpYWxzKSAlIGNvbG9ycy5sZW5ndGg7XG4gICAgcmV0dXJuIGNvbG9yc1tpZHhdO1xuICB9XG59XG4iLCI8YXgtYXZhdGFyICNhdmF0YXIgW3NpemVdPVwic2l6ZSgpXCIgY2xhc3M9XCJheC1jdXJzb3ItcG9pbnRlclwiPlxuICBAaWYoaGFzUGljdHVyZSgpKXtcbiAgPGF4LWltYWdlIChvbkVycm9yKT1cIm9uSW1hZ2VFcnJvcigkZXZlbnQpXCIgKG9uTG9hZCk9XCJvbkltYWdlTG9hZCgkZXZlbnQpXCIgW3NyY109XCJzcmMoKVwiPjwvYXgtaW1hZ2U+XG4gIH1AZWxzZXtcbiAgPGF4LXRleHQgY2xhc3M9XCJheC17eyBhdmF0YXJDb2xvcigpIH19LWxpZ2h0ZXN0IFwiPlxuICAgIDxzbWFsbCBjbGFzcz1cImF4LXRleHQteHMgYXgtZm9udC1zZW1pYm9sZFwiPnt7IGF2YXRhclRleHQoKSB9fTwvc21hbGw+XG4gIDwvYXgtdGV4dD5cbiAgfVxuPC9heC1hdmF0YXI+XG5cbjwhLS1cblxuYXgtcHJpbWFyeS1saWdodGVzdFxuYXgtd2FybmluZy1saWdodGVzdFxuYXgtc3VjY2Vzcy1saWdodGVzdFxuYXgtZGFuZ2VyLWxpZ2h0ZXN0XG5heC1zZWNvbmRhcnktbGlnaHRlc3RcbmF4LWFjY2VudDEtbGlnaHRlc3RcbmF4LWFjY2VudDItbGlnaHRlc3RcbmF4LWFjY2VudDMtbGlnaHRlc3RcblxuLS0+XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvYWNvcmV4LXBsYXRmb3JtLWxheW91dC1jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2","i4","i3","i5","i8","i1"],"mappings":"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"}
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/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/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 \"@angular/common\";\nimport * as i2 from \"@acorex/components/decorators\";\nimport * as i3 from \"@acorex/core/translation\";\nimport * as i4 from \"@acorex/components/skeleton\";\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([]);\n /**\n * Whether the component is in loading state\n */\n this.loading = input(false);\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());\n /**\n * Flag to track if component has been initialized\n */\n this.isInitialized = signal(false);\n /**\n * Set of items that have been manually toggled (for animation control)\n */\n this.manuallyToggledItems = signal(new Set());\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.0.4\", ngImport: i0, type: AXPActivityLogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i3.AXTranslatorPipe, name: \"translate\" }, { kind: \"directive\", type: i3.AXTranslatorDirective, selector: \"[translate]\" }, { kind: \"ngmodule\", type: AXSkeletonModule }, { kind: \"component\", type: i4.AXSkeletonComponent, selector: \"ax-skeleton\", inputs: [\"animated\"] }, { kind: \"ngmodule\", type: AXFormatModule }, { kind: \"pipe\", type: i5.AXFormatPipe, name: \"format\" }, { kind: \"ngmodule\", type: AXTagModule }, { kind: \"ngmodule\", type: AXAccordionCdkModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBeUQsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFZLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFN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LGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxvQkFBb0I7cUJBQ3ZCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9za2VsZXRvbic7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhQQWN0aXZpdHlMb2csIEFYUFN5c3RlbUFjdGlvbnMsIEFYUFN5c3RlbUFjdGlvblR5cGUsIGdldFN5c3RlbUFjdGlvbnMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24sIGNvbXB1dGVkLCBzaWduYWwsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhBY2NvcmRpb25DZGtNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9hY2NvcmRpb24nO1xuaW1wb3J0IHsgQVhUYWdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFnJztcbmltcG9ydCB7IEFYUFVzZXJBdmF0YXJDb21wb25lbnQgfSBmcm9tICcuLi91c2VyLWF2YXRhcic7XG5pbXBvcnQgeyBBWFBNZW51SXRlbUNvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5cbi8vI3JlZ2lvbiAtLS0tICAgQ29tcG9uZW50IERlZmluaXRpb24gICAtLS0tXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXhwLWFjdGl2aXR5LWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYWN0aXZpdHktbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgICAgIEFYQ29tbW9uTW9kdWxlLFxuICAgICAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICAgICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICAgICAgQVhTa2VsZXRvbk1vZHVsZSxcbiAgICAgICAgQVhGb3JtYXRNb2R1bGUsXG4gICAgICAgIEFYVGFnTW9kdWxlLFxuICAgICAgICBBWEFjY29yZGlvbkNka01vZHVsZSxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQVhQQWN0aXZpdHlMb2dDb21wb25lbnQge1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICYgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdvcmtmbG93U2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIElucHV0IFByb3BlcnRpZXMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBBcnJheSBvZiBhY3Rpdml0eSBsb2dzIHRvIGRpc3BsYXlcbiAgICAgKi9cbiAgICBhY3Rpdml0aWVzID0gaW5wdXQ8QVhQQWN0aXZpdHlMb2dbXT4oW10pO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIGluIGxvYWRpbmcgc3RhdGVcbiAgICAgKi9cbiAgICBsb2FkaW5nID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXBvbmVudCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGkxOG5TY29wZSA9ICdhY3Rpdml0eS1sb2cnO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBPYmplY3QgPSBPYmplY3Q7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgb2YgZXhwYW5kZWQgYWN0aXZpdHkgSURzXG4gICAgICovXG4gICAgcHJpdmF0ZSBleHBhbmRlZEl0ZW1zID0gc2lnbmFsPFNldDxzdHJpbmc+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.0.4\", ngImport: i0, type: AXPTaskBadgeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPTaskBadgeService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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);\n this.count = input(0, { 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 });\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 });\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.0.4\", ngImport: i0, type: AXPTaskBadgeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL2JhZGdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU81RCxNQUFNLE9BQU8scUJBQXFCO0lBSmxDO1FBS1ksaUJBQVksR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzQyxTQUFJLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDdEUsZ0JBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRWpELGFBQVEsR0FBRyxLQUFLLENBQXFCLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELFVBQUssR0FBRyxLQUFLLENBQVMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUVyQyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsRyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDNUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7S0FNTjtJQWJHLElBQUksQ0FPRDtJQUVLLHFCQUFxQixDQUFJLE1BQXNCLEVBQUUsS0FBUTtRQUM3RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFRLENBQUM7UUFDbkMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQXpCUSxxQkFBcUI7a0dBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnB1dCwgY29tcHV0ZWQsIGluamVjdCwgZWZmZWN0LCBEaXJlY3RpdmUsIElucHV0U2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFNJR05BTCwgc2lnbmFsU2V0Rm4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9wcmltaXRpdmVzL3NpZ25hbHNcIjtcbmltcG9ydCB7IEFYUFRhc2tCYWRnZVNlcnZpY2UgfSBmcm9tIFwiLi90YXNrLWJhZGdlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFYQmFkZ2VDb21wb25lbnQgfSBmcm9tIFwiQGFjb3JleC9jb21wb25lbnRzL2JhZGdlXCI7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbYXhwLXRhc2stYmFkZ2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYXNrQmFkZ2VEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgYmFkZ2VTZXJ2aWNlID0gaW5qZWN0KEFYUFRhc2tCYWRnZVNlcnZpY2UpO1xuICAgIHByaXZhdGUgaG9zdCA9IGluamVjdChBWEJhZGdlQ29tcG9uZW50KTsgLy8gYXNzdW1lcyBpdCdzIGFwcGxpZWQgb24gPGF4LWJhZGdlPlxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQgPSB0aGlzLmhvc3QuZ2V0SG9zdEVsZW1lbnQoKTtcblxuICAgIGJhZGdlS2V5ID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIGNvdW50ID0gaW5wdXQ8bnVtYmVyPigwLCB7IGFsaWFzOiAnYXhwLXRhc2stYmFkZ2UnIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNwbGF5Q291bnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb3VudCgpIHx8ICh0aGlzLmJhZGdlS2V5KCkgJiYgdGhpcy5iYWRnZVNlcnZpY2UuZ2V0Q291bnQodGhpcy5iYWRnZUtleSgpISkoKSk7XG4gICAgICAgIHJldHVybiB2YWx1ZSA/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));\n this.cache.set(item, total);\n return total;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2JhZGdlL2JhZGdlLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWpELE1BQU0sT0FBTyxrQkFBa0I7YUFFZCxVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7SUFFbEUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFpQixFQUFFLFlBQWlDO1FBQ3ZFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUV2RCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUN4QyxJQUFJLEVBQUUsQ0FBQztRQUVSLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDMUIsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDbEQsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IGNvbXB1dGVkLCBTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQTWVudUl0ZW0gfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcbmltcG9ydCB7IEFYUFRhc2tCYWRnZVNlcnZpY2UgfSBmcm9tIFwiLi90YXNrLWJhZGdlLnNlcnZpY2VcIjtcblxuZXhwb3J0IGNsYXNzIEFYUE1lbnVCYWRnZUhlbHBlciB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2FjaGUgPSBuZXcgV2Vha01hcDxBWFBNZW51SXRlbSwgU2lnbmFsPG51bWJlcj4+KCk7XG5cbiAgc3RhdGljIGdldFRvdGFsQ291bnQoaXRlbTogQVhQTWVudUl0ZW0sIGJhZGdlU2VydmljZTogQVhQVGFza0JhZGdlU2VydmljZSk6IFNpZ25hbDxudW1iZXI+IHtcbiAgICBpZiAodGhpcy5jYWNoZS5oYXMoaXRlbSkpIHJldHVybiB0aGlzLmNhY2hlLmdldChpdGVtKSE7XG5cbiAgICBjb25zdCBvd24gPSBpdGVtLmJhZGdlS2V5ID8gYmFkZ2VTZXJ2aWNlLmdldENvdW50KGl0ZW0uYmFkZ2VLZXkpIDogKCkgPT4gMDtcbiAgICBjb25zdCBjaGlsZHJlbiA9IGl0ZW0uY2hpbGRyZW4/Lm1hcChjaGlsZCA9PlxuICAgICAgdGhpcy5nZXRUb3RhbENvdW50KGNoaWxkLCBiYWRnZVNlcnZpY2UpXG4gICAgKSA/PyBbXTtcblxuICAgIGNvbnN0IHRvdGFsID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgIG93bigpICsgY2hpbGRyZW4ucmVkdWNlKChzdW0sIHMpID0+IHN1bSArIHMoKSwgMClcbiAgICApO1xuXG4gICAgdGhpcy5jYWNoZS5zZXQoaXRlbSwgdG90YWwpO1xuICAgIHJldHVybiB0b3RhbDtcbiAgfVxufVxuIl19","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.0.4\", ngImport: i0, type: AXPThemeLayoutPagePrimaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutPageSecondaryActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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');\n this.primaryContent = contentChild(AXPThemeLayoutPagePrimaryActionsComponent);\n this.hasPrimary = computed(() => this.primaryContent() != null);\n this.secondaryTemplate = viewChild('secondary');\n this.secondaryContent = contentChild(AXPThemeLayoutPageSecondaryActionsComponent);\n this.hasSecondary = computed(() => this.secondaryContent() != null);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPThemeLayoutActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2Jsb2Nrcy9sYXlvdXQtYWN0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFlLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFVdEksTUFBTSxPQUFPLHlDQUF5Qzs4R0FBekMseUNBQXlDO2tHQUF6Qyx5Q0FBeUMsc0ZBSnhDLGlFQUFpRTs7MkZBSWxFLHlDQUF5QztrQkFQckQsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsUUFBUSxFQUFFLGlFQUFpRTtvQkFDM0UsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7QUFXRCxNQUFNLE9BQU8sMkNBQTJDOzhHQUEzQywyQ0FBMkM7a0dBQTNDLDJDQUEyQyx3RkFKMUMsMkVBQTJFOzsyRkFJNUUsMkNBQTJDO2tCQVB2RCxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxRQUFRLEVBQUUsMkVBQTJFO29CQUNyRixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOztBQXdCRCxNQUFNLE9BQU8sOEJBQThCO0lBcEIzQztRQXNCb0Isb0JBQWUsR0FBRyxTQUFTLENBQW1CLFNBQVMsQ0FBQyxDQUFDO1FBQ3hELG1CQUFjLEdBQUcsWUFBWSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDbkYsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUM7UUFFbEQsc0JBQWlCLEdBQUcsU0FBUyxDQUFtQixXQUFXLENBQUMsQ0FBQztRQUM1RCxxQkFBZ0IsR0FBRyxZQUFZLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUN2RixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQztLQUV6RTs4R0FWWSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwwSEFHUSx5Q0FBeUMsbUdBSXZDLDJDQUEyQyw2U0F2QmxGOzs7Ozs7Ozs7OztLQVdUOzsyRkFLUSw4QkFBOEI7a0JBcEIxQyxTQUFTO21CQUFDO29CQUNQLE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0tBV1Q7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC1hY3Rpb25zLXByaW1hcnknLFxuICAgIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtYnV0dG9uLGF4LWRyb3Bkb3duLWJ1dHRvblwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlUHJpbWFyeUFjdGlvbnNDb21wb25lbnQge1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYXhwLWxheW91dC1hY3Rpb25zLXNlY29uZGFyeScsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudCBzZWxlY3Q9XCJheC1idXR0b24taXRlbSxheC1kaXZpZGVyLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5gLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRQYWdlU2Vjb25kYXJ5QWN0aW9uc0NvbXBvbmVudCB7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIGltcG9ydHM6IFtdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdheHAtbGF5b3V0LWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlOiBgXG5cbiAgICA8bmctdGVtcGxhdGUgI3ByaW1hcnk+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.0.4\", ngImport: i0, type: AXPThemeLayoutBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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 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.0.4\", 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 select=\"axp-layout-suffix\"></ng-content>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWZvb3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1mb290ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYXRGLE1BQU0sT0FBTyw2QkFBNkI7OEdBQTdCLDZCQUE2QjtrR0FBN0IsNkJBQTZCLHFHQVA5Qjs7O0dBR1Q7OzJGQUlVLDZCQUE2QjtrQkFYekMsU0FBUzttQkFBQztvQkFDVCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDJDQUEyQztvQkFDckQsUUFBUSxFQUFFOzs7R0FHVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1mb290ZXIsIGF4cC1sYXlvdXQtcGFnZS1mb290ZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheHAtbGF5b3V0LXByZWZpeFwiPjwvbmctY29udGVudD5cbiAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXhwLWxheW91dC1zdWZmaXhcIj48L25nLWNvbnRlbnQ+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUaGVtZUxheW91dEZvb3RlckNvbXBvbmVudCB7XG59XG5cblxuIl19","import { ChangeDetectionStrategy, Component, viewChild, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPThemeLayoutPageHeaderComponent {\n constructor() {\n this.title = viewChild('title');\n this.description = viewChild('description');\n this.actions = viewChild('actions');\n this.navbar = viewChild('navbar');\n this.breadcrumbs = viewChild('breadcrumbs');\n this.navButton = viewChild('navButton');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPThemeLayoutPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQ3JILE1BQU0sT0FBTyxpQ0FBaUM7SUEvQjlDO1FBaUNrQixVQUFLLEdBQUcsU0FBUyxDQUFtQixPQUFPLENBQUMsQ0FBQztRQUM3QyxnQkFBVyxHQUFHLFNBQVMsQ0FBbUIsYUFBYSxDQUFDLENBQUM7UUFDekQsWUFBTyxHQUFHLFNBQVMsQ0FBbUIsU0FBUyxDQUFDLENBQUM7UUFDakQsV0FBTSxHQUFHLFNBQVMsQ0FBbUIsUUFBUSxDQUFDLENBQUM7UUFDL0MsZ0JBQVcsR0FBRyxTQUFTLENBQW1CLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELGNBQVMsR0FBRyxTQUFTLENBQW1CLFdBQVcsQ0FBQyxDQUFDO0tBQ3RFOzhHQVJZLGlDQUFpQztrR0FBakMsaUNBQWlDLDZzQkEzQmxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDs7MkZBSVUsaUNBQWlDO2tCQS9CN0MsU0FBUzttQkFBQztvQkFDVCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOztBQXlCRCxNQUFNLE9BQU8sNkJBQTZCOzhHQUE3Qiw2QkFBNkI7a0dBQTdCLDZCQUE2Qiw2RUFSOUI7Ozs7R0FJVDs7MkZBSVUsNkJBQTZCO2tCQVp6QyxTQUFTO21CQUFDO29CQUNULE9BQU8sRUFBRSxFQUFFO29CQUNYLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgVGVtcGxhdGVSZWYsIHZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2F4cC1sYXlvdXQtcGFnZS1oZWFkZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZSAjYnJlYWRjcnVtYnM+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.0.4\", ngImport: i0, type: AXPThemeLayoutListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutListItemsGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutStartSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutEndSideComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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.0.4\", ngImport: i0, type: AXPThemeLayoutToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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);\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.0.4\", ngImport: i0, type: AXPThemeLayoutContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9jb21wb25lbnRzL3NyYy9saWIvYmxvY2tzL2xheW91dC1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVksVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBU3BJLE1BQU0sT0FBTyxnQ0FBZ0M7SUFQN0M7UUFVdUIsZUFBVSxHQUErQixNQUFNLENBQUMsQ0FBQSxVQUEwQixDQUFBLENBQUMsQ0FBQztRQUMvRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBR3BELG1CQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RCxZQUFPLEdBQW9CLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7S0FxQi9FO0lBakJHLFFBQVE7UUFDSixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzVDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDeEMsQ0FBQzs4R0F6QlEsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsZ0ZBSi9CLDJCQUEyQjs7MkZBSTVCLGdDQUFnQztrQkFQNUMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBpbmplY3QsIHNpZ25hbCwgU2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiBgYXhwLWxheW91dC1jb250YWluZXJgLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGhlbWVMYXlvdXRDb250YWluZXJDb21wb25lbnQge1xuXG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4pO1xuICAgIHB1YmxpYyByZWFkb25seSBob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG5cbiAgICBwcml2YXRlIF9pc0VtcHR5U2lnbmFsID0gc2lnbmFsKHRoaXMuaG9zdEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNFbXB0eTogU2lnbmFsPGJvb2xlYW4+ID0gdGhpcy5faXNFbXB0eVNpZ25hbC5hc1JlYWRvbmx5KCk7XG5cbiAgICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXI/OiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2lzRW1wdHlTaWduYWwuc2V0KHRoaXMuaG9zdEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5ob3N0RWxlbWVudCwge1xuICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIH1cblxuXG5cbn1cbiJdfQ==","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 \"@angular/common\";\nimport * as i2 from \"@acorex/components/label\";\nimport * as i3 from \"@acorex/components/check-box\";\nimport * as i4 from \"@acorex/core/translation\";\nimport * as i5 from \"@acorex/platform/layout/builder\";\nexport class AXPCompareViewComponent {\n constructor() {\n //#region ---- Component Properties ----\n this.inputs = input();\n this.showOnlyChanges = signal(false);\n this.mode = input('compare');\n this.removedObjects = signal([]);\n this.isChangesMode = computed(() => this.mode() === 'changes');\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 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 });\n this.remainingObjects = computed(() => {\n const objects = this.inputs()?.objects ?? [];\n return objects.filter(obj => !this.removedObjects().includes(obj.id));\n });\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.0.4\", ngImport: i0, type: AXPCompareViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: \n // ACoreX\n AXFormModule }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"ngmodule\", type: AXLabelModule }, { kind: \"component\", type: i2.AXLabelComponent, selector: \"ax-label\", inputs: [\"required\", \"for\"], outputs: [\"requiredChange\"] }, { kind: \"ngmodule\", type: AXCheckBoxModule }, { kind: \"component\", type: i3.AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"checked\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }, { kind: \"ngmodule\", type: \n // Platform\n AXPLayoutBuilderModule }, { kind: \"component\", type: i5.AXPWidgetContainerComponent, selector: \"axp-widgets-container\", inputs: [\"context\", \"functions\"], outputs: [\"onContextChanged\"] }, { kind: \"directive\", type: i5.AXPWidgetRendererDirective, selector: \"[axp-widget-renderer]\", inputs: [\"parentNode\", \"index\", \"mode\", \"node\"], outputs: [\"onOptionsChanged\", \"onValueChanged\"], exportAs: [\"widgetRenderer\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jb21wYXJlLXZpZXcvY29tcGFyZS12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi9jb21wYXJlLXZpZXcvY29tcGFyZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGlCQUFpQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFpQixNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBOEN4RixNQUFNLE9BQU8sdUJBQXVCO0lBdEJwQztRQXdCSSw0Q0FBNEM7UUFFNUMsV0FBTSxHQUFHLEtBQUssRUFBd0IsQ0FBQztRQUN2QyxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxTQUFJLEdBQUcsS0FBSyxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUVwQyxtQkFBYyxHQUFHLE1BQU0sQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUVwQyxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUM7UUFFcEUsWUFBWTtRQUVaLDJDQUEyQztRQUUzQzs7V0FFRztRQUNILG1CQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMzQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUUzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7Z0JBQzFCLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUM7WUFFRCxnRUFBZ0U7WUFDaEUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO1FBRUgscUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUM3QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7S0F3R047SUF0R0csWUFBWTtJQUVaLHVDQUF1QztJQUV2Qzs7T0FFRztJQUNPLHNCQUFzQixDQUFDLFNBQWlCLEVBQUUsa0JBQTBCO1FBQzFFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hDLElBQUksa0JBQWtCLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFM0QsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEUsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNILDJCQUEyQixDQUFDLFNBQWlCLEVBQUUsa0JBQTBCO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hDLElBQUksa0JBQWtCLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRWxFLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxTQUFpQjtRQUM5QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRXRDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsU0FBaUI7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEMsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV0QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QixPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFLRDs7T0FFRztJQUNLLGNBQWMsQ0FBQyxNQUFXLEVBQUUsTUFBVztRQUMzQyxJQUFJLE1BQU0sS0FBSyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbkMsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJO1lBQUUsT0FBTyxNQUFNLEtBQUssTUFBTSxDQUFDO1FBRS9ELElBQUksT0FBTyxNQUFNLEtBQUssT0FBTyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFbEQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCO1FBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsUUFBZ0I7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFlBQVk7SUFFWix5Q0FBeUM7SUFFekMsUUFBUTtJQUNSLENBQUM7SUFFRCxXQUFXO0lBRVgsQ0FBQzs4R0F0SVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMlRBSnJCLEVBRVYsMEJDdERMLGk0RkF1RUc7Z0JEaENLLFVBQVU7Z0JBQ1YsWUFBWTtnQkFDWixTQUFTO2dCQUNULFlBQVksOEJBQ1osZUFBZSw4QkFDZixjQUFjLDhCQUNkLGFBQWEsZ0tBQ2IsZ0JBQWdCLHdSQUNoQixtQkFBbUI7Z0JBQ25CLFdBQVc7Z0JBQ1gsc0JBQXNCOzsyRkFPakIsdUJBQXVCO2tCQXRCbkMsU0FBUzsrQkFDSSxrQkFBa0IsV0FHbkI7d0JBQ0wsVUFBVTt3QkFDVixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxzQkFBc0I7cUJBQ3pCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksYUFDMUIsRUFFViIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbnB1dCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWENoZWNrQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NoZWNrLWJveCc7XG5pbXBvcnQgeyBBWExhYmVsTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xhYmVsJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuXG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLCBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBDb250ZXh0RGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ29tcGFyZVZpZXdGaWVsZCB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgd2lkZ2V0OiBBWFBXaWRnZXROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUENvbXBhcmVWaWV3T2JqZWN0IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgY29udGV4dDogQVhQQ29udGV4dERhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQ29tcGFyZVZpZXdJbnB1dHMge1xuICAgIGZpZWxkczogQVhQQ29tcGFyZVZpZXdGaWVsZFtdO1xuICAgIG9iamVjdHM6IEFYUENvbXBhcmVWaWV3T2JqZWN0W107XG59XG5cbmV4cG9ydCB0eXBlIEFYUENvbXBhcmVWaWV3TW9kZSA9ICdjb21wYXJlJyB8ICdjaGFuZ2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheHAtY29tcGFyZS12aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29tcGFyZS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY29tcGFyZS12aWV3LmNvbXBvbmVudC5zY3NzJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vIEFuZ3VsYXJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICAvLyBBQ29yZVhcbiAgICAgICAgQVhGb3JtTW9kdWxlLFxuICAgICAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgICAgICBBWExhYmVsTW9kdWxlLFxuICAgICAgICBBWENoZWNrQm94TW9kdWxlLFxuICAgICAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgICAgICAvLyBQbGF0Zm9ybVxuICAgICAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tcGFyZVZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIENvbXBvbmVudCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgaW5wdXRzID0gaW5wdXQ8QVhQQ29tcGFyZVZpZXdJbnB1dHM+KCk7XG4gICAgc2hvd09ubHlDaGFuZ2VzID0gc2lnbmFsKGZhbHNlKTtcbiAgICBtb2RlID0gaW5wdXQ8QVhQQ29tcGFyZVZpZXdNb2RlPignY29tcGFyZScpO1xuXG4gICAgcHJpdmF0ZSByZW1vdmVkT2JqZWN0cyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgcHJvdGVjdGVkIGlzQ2hhbmdlc01vZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1vZGUoKSA9PT0gJ2NoYW5nZXMnKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDb21wdXRlZCBQcm9wZXJ0aWVzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogRmlsdGVyZWQgZmllbGRzIGJhc2VkIG9uIHNob3dPbmx5Q2hhbmdlcyB0b2dnbGVcbiAgICAgKi9cbiAgICBmaWx0ZXJlZEZpZWxkcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5pbnB1dHMoKT8uZmllbGRzID8/IFtdO1xuXG4gICAgICAgIGlmICghdGhpcy5zaG93T25seUNoYW5nZXMoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpbHRlciB0byBzaG93IG9ubHkgZmllbGRzIHdoZXJlIHZhbHVlcyBkaWZmZXIgYWNyb3NzIG9iamVjdHNcbiAgICAgICAgcmV0dXJuIGZpZWxkcy5maWx0ZXIoZmllbGQgPT4gdGhpcy5oYXNVbmVxdWFsVmFsdWVzKGZpZWxkLnBhdGgpKTtcbiAgICB9KTtcblxuICAgIHJlbWFpbmluZ09iamVjdHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9iamVjdHMgPSB0aGlzLmlucHV0cygpPy5vYmplY3RzID8/IFtdO1xuICAgICAgICByZXR1cm4gb2JqZWN0cy5maWx0ZXIob2JqID0+ICF0aGlzLnJlbW92ZWRPYmplY3RzKCkuaW5jbHVkZXMob2JqLmlkKSk7XG4gICAgfSk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgVXRpbGl0eSBNZXRob2RzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgYSBmaWVsZCB2YWx1ZSB3aWxsIGNoYW5nZSBpbiB0aGUgbmV4dCBvYmplY3QgKHRvIHNob3cgYXJyb3cgaW4gY3VycmVudCBjZWxsKVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYXNWYWx1ZUNoYW5naW5nVG9OZXh0KGZpZWxkUGF0aDogc3RyaW5nLCBjdXJyZW50T2JqZWN0SW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvYmplY3RzID0gdGhpcy5yZW1haW5pbmdPYmplY3RzKCk7XG4gICAgICAgIGlmIChjdXJyZW50T2JqZWN0SW5kZXggPj0gb2JqZWN0cy5sZW5ndGggLSAxKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gb2JqZWN0c1tjdXJyZW50T2JqZWN0SW5kZXhdPy5jb250ZXh0W2ZpZWxkUGF0aF07XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IG9iamVjdHNbY3VycmVudE9iamVjdEluZGV4ICsgMV0/LmNvbnRleHRbZmllbGRQYXRoXTtcblxuICAgICAgICByZXR1cm4gIXRoaXMuYXJlVmFsdWVzRXF1YWwoY3VycmVudFZhbHVlLCBuZXh0VmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGEgZmllbGQgdmFsdWUgaGFzIGNoYW5nZWQgY29tcGFyZWQgdG8gdGhlIHByZXZpb3VzIG9iamVjdFxuICAgICAqL1xuICAgIGhhc1ZhbHVlQ2hhbmdlZEZyb21QcmV2aW91cyhmaWVsZFBhdGg6IHN0cmluZywgY3VycmVudE9iamVjdEluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0cyA9IHRoaXMucmVtYWluaW5nT2JqZWN0cygpO1xuICAgICAgICBpZiAoY3VycmVudE9iamVjdEluZGV4ID09PSAwIHx8IG9iamVjdHMubGVuZ3RoIDw9IDEpIHJldHVybiBmYWxzZTtcblxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBvYmplY3RzW2N1cnJlbnRPYmplY3RJbmRleF0/LmNvbnRleHRbZmllbGRQYXRoXTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IG9iamVjdHNbY3VycmVudE9iamVjdEluZGV4IC0gMV0/LmNvbnRleHRbZmllbGRQYXRoXTtcblxuICAgICAgICByZXR1cm4gIXRoaXMuYXJlVmFsdWVzRXF1YWwoY3VycmVudFZhbHVlLCBwcmV2aW91c1ZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIGZpZWxkIGhhcyB1bmVxdWFsIHZhbHVlcyBhY3Jvc3Mgb2JqZWN0c1xuICAgICAqL1xuICAgIGhhc1VuZXF1YWxWYWx1ZXMoZmllbGRQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0cyA9IHRoaXMucmVtYWluaW5nT2JqZWN0cygpO1xuICAgICAgICBpZiAob2JqZWN0cy5sZW5ndGggPD0gMSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IG9iamVjdHMubWFwKG9iaiA9PiBvYmouY29udGV4dFtmaWVsZFBhdGhdKTtcbiAgICAgICAgY29uc3QgZmlyc3RWYWx1ZSA9IHZhbHVlc1swXTtcblxuICAgICAgICByZXR1cm4gdmFsdWVzLnNvbWUodmFsdWUgPT4gIXRoaXMuYXJlVmFsdWVzRXF1YWwodmFsdWUsIGZpcnN0VmFsdWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiBhIGZpZWxkIGhhcyBlcXVhbCB2YWx1ZXMgYWNyb3NzIG9iamVjdHNcbiAgICAgKi9cbiAgICBoYXNFcXVhbFZhbHVlcyhmaWVsZFBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBvYmplY3RzID0gdGhpcy5yZW1haW5pbmdPYmplY3RzKCk7XG4gICAgICAgIGlmIChvYmplY3RzLmxlbmd0aCA8PSAxKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdmFsdWVzID0gb2JqZWN0cy5tYXAob2JqID0+IG9iai5jb250ZXh0W2ZpZWxkUGF0aF0pO1xuICAgICAgICBjb25zdCBmaXJzdFZhbHVlID0gdmFsdWVzWzBdO1xuXG4gICAgICAgIHJldHVybiB2YWx1ZXMuZXZlcnkodmFsdWUgPT4gdGhpcy5hcmVWYWx1ZXNFcXVhbCh2YWx1ZSwgZmlyc3RWYWx1ZSkpO1xuICAgIH1cblxuXG5cblxuICAgIC8qKlxuICAgICAqIENvbXBhcmUgdHdvIHZhbHVlcyBmb3IgZXF1YWxpdHkgKGRlZXAgY29tcGFyaXNvbiBmb3Igb2JqZWN0cy9hcnJheXMpXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcmVWYWx1ZXNFcXVhbCh2YWx1ZTE6IGFueSwgdmFsdWUyOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHZhbHVlMSA9PT0gdmFsdWUyKSByZXR1cm4gdHJ1ZTtcblxuICAgICAgICBpZiAodmFsdWUxID09IG51bGwgfHwgdmFsdWUyID09IG51bGwpIHJldHVybiB2YWx1ZTEgPT09IHZhbHVlMjtcblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlMSAhPT0gdHlwZW9mIHZhbHVlMikgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUxID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlMSkgPT09IEpTT04uc3RyaW5naWZ5KHZhbHVlMik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlIHRoZSBzaG93IG9ubHkgY2hhbmdlcyBmaWx0ZXJcbiAgICAgKi9cbiAgICB0b2dnbGVTaG93T25seUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd09ubHlDaGFuZ2VzLnVwZGF0ZSh2YWx1ZSA9PiAhdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhbiBvYmplY3QgZnJvbSB0aGUgY29tcGFyaXNvblxuICAgICAqL1xuICAgIHJlbW92ZU9iamVjdChvYmplY3RJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlZE9iamVjdHMudXBkYXRlKG9iamVjdHMgPT4gWy4uLm9iamVjdHMsIG9iamVjdElkXSk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIExpZmVjeWNsZSBNZXRob2RzICAgLS0tLVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn1cbiIsIjwhLS1cbiAgI3JlZ2lvbiAtLS0tICAgQ29tcGFyZSBWaWV3IFRhYmxlIExheW91dCAgIC0tLS1cbi0tPlxuPGRpdiBjbGFzcz1cImF4cC1jb21wYXJlLXZpZXdcIj5cbiAgPGRpdiBjbGFzcz1cIl9fdGFibGUtY29udGFpbmVyXCI+XG4gICAgPHRhYmxlIGNsYXNzPVwiX190YWJsZVwiPlxuICAgICAgPHRoZWFkIGNsYXNzPVwiX190aGVhZFwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJfX2hlYWRlci1yb3dcIj5cbiAgICAgICAgICA8dGggY2xhc3M9XCJfX2ZpZWxkLWhlYWRlclwiPlxuICAgICAgICAgICAgPGF4LWNoZWNrLWJveCBbdmFsdWVdPVwic2hvd09ubHlDaGFuZ2VzKClcIiAodmFsdWVDaGFuZ2UpPVwidG9nZ2xlU2hvd09ubHlDaGFuZ2VzKClcIlxuICAgICAgICAgICAgICBjbGFzcz1cIl9fc2hvdy1jaGFuZ2VzLXRvZ2dsZVwiPlxuICAgICAgICAgICAgICA8YXgtbGFiZWw+XG4gICAgICAgICAgICAgICAge3sgJ2NvbXBhcmUtdmlldy5zaG93LW9ubHktZGlmZmVyZW5jZXMnIHwgdHJhbnNsYXRlOiB7IHNjb3BlOiAnY29tbW9uJyB9IHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgPC9heC1sYWJlbD5cbiAgICAgICAgICAgIDwvYXgtY2hlY2stYm94PlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgQGZvciAob2JqIG9mIHJlbWFpbmluZ09iamVjdHMoKTsgdHJhY2sgb2JqLmlkKSB7XG4gICAgICAgICAgPHRoIGNsYXNzPVwiX19vYmplY3QtaGVhZGVyXCIgW2F0dHIuZGF0YS1pZF09XCJvYmouaWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX29iamVjdC10aXRsZVwiIFt0aXRsZV09XCJvYmouZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgb2JqLnRpdGxlIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAocmVtYWluaW5nT2JqZWN0cygpLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJfX3JlbW92ZS1vYmplY3QtYnV0dG9uXCIgKGNsaWNrKT1cInJlbW92ZU9iamVjdChvYmouaWQpXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJfX3Rib2R5XCI+XG4gICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpbHRlcmVkRmllbGRzKCk7IHRyYWNrIGZpZWxkLnBhdGg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDx0ciBjbGFzcz1cIl9fcm93XCIgW2NsYXNzLl9fcm93LS1vZGRdPVwiaSAlIDIgPT09IDFcIiBbY2xhc3MuX19yb3ctLWhhcy1kaWZmZXJlbmNlc109XCJoYXNVbmVxdWFsVmFsdWVzKGZpZWxkLnBhdGgpXCJcbiAgICAgICAgICBbY2xhc3MuX19yb3ctLWhhcy1lcXVhbC12YWx1ZXNdPVwiaGFzRXF1YWxWYWx1ZXMoZmllbGQucGF0aClcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJfX2ZpZWxkLWNlbGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2ZpZWxkLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIl9fZmllbGQtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7eyBmaWVsZC50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBAaWYgKGZpZWxkLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2ZpZWxkLWRlc2NyaXB0aW9uXCI+e3sgZmllbGQuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICBAZm9yIChvYmogb2YgcmVtYWluaW5nT2JqZWN0cygpOyB0cmFjayBvYmouaWQ7IGxldCBvYmpJbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgIDx0ZCBjbGFzcz1cIl9fb2JqZWN0LWNlbGxcIiBbYXR0ci5kYXRhLWlkXT1cIm9iai5pZFwiXG4gICAgICAgICAgICBbY2xhc3MuX19jZWxsLS1jaGFuZ2VkXT1cImhhc1ZhbHVlQ2hhbmdlZEZyb21QcmV2aW91cyhmaWVsZC5wYXRoLCBvYmpJbmRleCkgJiYgaXNDaGFuZ2VzTW9kZSgpXCI+XG4gICAgICAgICAgICBAaWYgKG9iai5jb250ZXh0W2ZpZWxkLnBhdGhdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX29iamVjdC1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxheHAtd2lkZ2V0cy1jb250YWluZXIgW2NvbnRleHRdPVwib2JqLmNvbnRleHRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGF4cC13aWRnZXQtcmVuZGVyZXIgW25vZGVdPVwiZmllbGQud2lkZ2V0XCIgW21vZGVdPVwiJ3ZpZXcnXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvYXhwLXdpZGdldHMtY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX29iamVjdC1wbGFjZWhvbGRlclwiPi0tLTwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChoYXNWYWx1ZUNoYW5naW5nVG9OZXh0KGZpZWxkLnBhdGgsIG9iakluZGV4KSAmJiBpc0NoYW5nZXNNb2RlKCkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJfX2NoYW5nZS1pbmRpY2F0b3JcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1hcnJvdy1yaWdodFwiPjwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L3RyPlxuICAgICAgICB9XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9kaXY+XG48IS0tXG4gICNlbmRyZWdpb25cbi0tPiJdfQ==","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.0.4\", ngImport: i0, type: AXPComponentSlot, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.4\", type: AXPComponentSlot, isStandalone: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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.0.4\", ngImport: i0, type: AXPComponentSlotRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPComponentSlotRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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, 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();\n this.host = input();\n this.context = input();\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);\n // Create a signal to store the count of children\n this._viewCount = signal(0);\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 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 debugger;\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 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.0.4\", ngImport: i0, type: AXPComponentSlotDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.4\", 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.0.4\", ngImport: i0, type: AXPComponentSlotDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'axp-component-slot',\n standalone: false,\n exportAs: 'slot',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNsb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudC1zbG90L2NvbXBvbmVudC1zbG90LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLGVBQWUsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZHLE9BQU8sRUFDTCxRQUFRLEVBQ1IsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxxQkFBcUIsRUFDckIsTUFBTSxFQUVOLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQU9yRixNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTUUsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNoQyxTQUFJLEdBQUcsS0FBSyxFQUFPLENBQUM7UUFDcEIsWUFBTyxHQUFHLEtBQUssRUFBTyxDQUFDO1FBRWYsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxvQkFBZSxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQzFELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25ELHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXZDLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFF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LEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUNELHlCQUF5QjtZQUN6QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFNBQVUsQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTtnQkFDbkMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUN2QixHQUFHLE9BQU87YUFDWCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUE4RTtRQUM1RyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0MsbUNBQW1DO0lBQ3JDLENBQUM7OEdBOUVVLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUxyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxLQUFLO29CQUNqQixRQUFRLEVBQUUsTUFBTTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBDb250ZXh0RGF0YSwgQVhQQ29udGV4dFN0b3JlLCBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQge1xuICBjb21wdXRlZCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIHNpZ25hbCxcbiAgVHlwZSxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzb3J0QnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQQ29tcG9uZW50U2xvdFJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vY29tcG9uZW50LXNsb3QtcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdheHAtY29tcG9uZW50LXNsb3QnLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgZXhwb3J0QXM6ICdzbG90Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQ29tcG9uZW50U2xvdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIGhvc3QgPSBpbnB1dDxhbnk+KCk7XG4gIGNvbnRleHQgPSBpbnB1dDxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlZ2lzdHJ5U2VydmljZSA9IGluamVjdChBWFBDb21wb25lbnRTbG90UmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgZXZhbHVhdG9yID0gaW5qZWN0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlKTtcbiAgcHVibGljIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHB1YmxpYyBjb250ZXh0U3RvcmUgPSBpbmplY3QoQVhQQ29udGV4dFN0b3JlKTtcblxuICBwdWJsaWMgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX3ZpZXdDb3VudCgpID09PSAwKTtcblxuICAvLyBDcmVhdGUgYSBzaWduYWwgdG8gc3RvcmUgdGhlIGNvdW50IG9mIGNoaWxkcmVuXG4gIHByaXZhdGUgX3ZpZXdDb3VudCA9IHNpZ25hbCgwKTtcblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRDb21wb25lbnRzKCk7XG4gICAgLy8gVXBkYXRlIHRoZSBzaWduYWwgYWZ0ZXIgbG9hZGluZ1xuICAgIHRoaXMuX3ZpZXdDb3VudC5zZXQodGhpcy52aWV3Q29udGFpbmVyUmVmLmxlbmd0aCk7XG4gIH1cblxuICBhc3luYyBsb2FkQ29tcG9uZW50cygpIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBjb25zdCBjb25maWdzID0gc29ydEJ5KHRoaXMucmVnaXN0cnlTZXJ2aWNlLmdldCh0aGlzLm5hbWUoKSksIChjKSA9PiBjLnByaW9yaXR5ID8/IDApO1xuICAgIGlmICghY29uZmlncykge1xuICAgICAgY29uc29sZS5lcnJvcihgTm8gY29tcG9uZW50IGZvdW5kIGZvciBzbG90ICR7dGhpcy5uYW1lKCl9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGNvbmZpZ3MubWFwKGFzeW5jIChjKSA9PiAoe1xuICAgICAgICBjb25maWc6IGMsXG4gICAgICAgIHZpc2libGU6IGMuY29uZGl0aW9uID8gYXdhaXQgdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihjLmNvbmRpdGlvbikgOiB0cnVlLFxuICAgICAgfSkpLFxuICAgICk7XG4gICAgY29uc3Qgc2xvdHMgPSByZXN1bHRzLmZpbHRlcigocikgPT4gci52aXNpYmxlKS5tYXAoKHIpID0+IHIuY29uZmlnKTtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHNsb3RzLm1hcChhc3luYyAoY29uZmlnKSA9PiB7XG4gICAgICAgIGxldCBjb21wb25lbnQhOiBUeXBlPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgICAgICBsZXQgb3B0aW9uczogeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0gPSB7fTtcbiAgICAgICAgLy8gbG9hZCBjb21wb25lbnRcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWcubG9hZENvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGF3YWl0IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb21wb25lbnQgPSBhd2FpdCBjb25maWcubG9hZENvbXBvbmVudD8uKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY29uZmlnLmNvbXBvbmVudCkge1xuICAgICAgICAgIGNvbXBvbmVudCA9IGNvbmZpZy5jb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbG9hZCBvcHRpb25zXG4gICAgICAgIGRlYnVnZ2VyO1xuICAgICAgICBpZiAodHlwZW9mIGNvbmZpZy5vcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZ1biA9IGNvbmZpZy5vcHRpb25zIGFzIEZ1bmN0aW9uO1xuICAgICAgICAgICAgb3B0aW9ucyA9IGZ1bigpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5vcHRpb25zKSB7XG4gICAgICAgICAgb3B0aW9ucyA9IGF3YWl0IHRoaXMuZXZhbHVhdG9yLmV2YWx1YXRlKGNvbmZpZy5vcHRpb25zLCB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYXBwbHkgb3B0aW9ucyBhbmQgaG9zdFxuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCEpO1xuICAgICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwge1xuICAgICAgICAgIGhvc3Q6IHRoaXMuaG9zdCgpLFxuICAgICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dCgpLFxuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVDb25kaXRpb24oY29uZGl0aW9uOiBzdHJpbmcgfCAoKGNvbnRleHQ/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.0.4\", 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.0.4\", ngImport: i0, type: AXPComponentSlotModule, declarations: [AXPComponentSlotDirective], exports: [AXPComponentSlotDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPComponentSlotModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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 { 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/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/core/translation\";\nimport * as i6 from \"@acorex/components/popover\";\nimport * as i7 from \"@acorex/components/tag-box\";\nimport * as i8 from \"@acorex/platform/layout/builder\";\nimport * as i9 from \"@acorex/cdk/list-navigation\";\nimport * as i10 from \"@acorex/components/badge\";\nexport class AXPLayoutFiltersComponent {\n constructor() {\n this.translate = inject(AXTranslationService);\n this.calendarService = inject(AXCalendarService);\n this.filterOperatorMiddleware = inject(AXPFilterOperatorMiddlewareService);\n this.filtersDefinitions = input([]);\n this.initialFilters = input([]);\n this.onFiltersChanged = output();\n this.tagBox = viewChild('tagBox');\n this.selectedField = signal(null);\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);\n this.asyncTags = signal([]);\n this.popover = viewChild('popover');\n this.inputValue = signal('');\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 });\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 });\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.0.4\", ngImport: i0, type: AXPLayoutFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { 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: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i5.AXTranslatorPipe, name: \"translate\" }, { kind: \"ngmodule\", type: AXPopoverModule }, { kind: \"component\", type: i6.AXPopoverComponent, selector: \"ax-popover\", inputs: [\"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: i7.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: 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: AXListNavigationModule }, { kind: \"directive\", type: i9.AXListNavigationDirective, selector: \"[axListNavigation]\", inputs: [\"orientation\"], outputs: [\"onNavigationChanged\", \"onPressEnterOrSpace\"], exportAs: [\"axListNavigation\"] }, { kind: \"directive\", type: i9.AXListNavigationItemDirective, selector: \"[axListNavigationItem]\", exportAs: [\"axListNavigationItem\"] }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i10.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"text\", \"look\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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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U0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQWdCTDs4R0F2UVEseUJBQXlCO2tHQUF6Qix5QkFBeUIsaXVCQ25EdEMsazVIQThGQSx5RkR4REksWUFBWSxtRkFDWixXQUFXLDhWQUNYLGNBQWMsNlhBQ2QsaUJBQWlCLHNWQUNqQixtQkFBbUIsOEZBQ25CLGVBQWUsa1VBQ2YscUJBQXFCLDhCQUNyQixjQUFjLDZkQUNkLHNCQUFzQiw4WkFDdEIsc0JBQXNCLGtYQUN0QixhQUFhOzsyRkFHSix5QkFBeUI7a0JBckJyQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBR2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUI7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLHNCQUFzQjt3QkFDdEIsc0JBQXNCO3dCQUN0QixhQUFhO3FCQUNkOzhCQWN5QixTQUFTO3NCQUFsQyxZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYRXZlbnQsIEFYSHRtbEV2ZW50LCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYTGlzdE5hdmlnYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay9saXN0LW5hdmlnYXRpb24nO1xuaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJDb21wb25lbnQsIEFYUG9wb3Zlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYU2VsZWN0aW9uTGlzdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3Rpb24tbGlzdCc7XG5pbXBvcnQgeyBBWFRhZ0JveENvbXBvbmVudCwgQVhUYWdCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFnLWJveCc7XG5pbXBvcnQgeyBBWENhbGVuZGFyU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQUxMX0RFRkFVTFRfT1BFUkFUT1JTLCBBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRmlsdGVyRGVmaW5pdGlvbiwgQVhQRmlsdGVyUXVlcnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSwgQVhQTGF5b3V0Q29udGV4dENoYW5nZUV2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBsaW5rZWRTaWduYWwsXG4gIG91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbiAgdmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLWxheW91dC1maWx0ZXJzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheW91dC1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBvcG92ZXJNb2R1bGUsXG4gICAgQVhTZWxlY3Rpb25MaXN0TW9kdWxlLFxuICAgIEFYVGFnQm94TW9kdWxlLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUsXG4gICAgQVhMaXN0TmF2aWdhdGlvbk1vZHVsZSxcbiAgICBBWEJhZGdlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMYXlvdXRGaWx0ZXJzQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByb3RlY3RlZCBjYWxlbmRhclNlcnZpY2UgPSBpbmplY3QoQVhDYWxlbmRhclNlcnZpY2UpO1xuICBwcml2YXRlIGZpbHRlck9wZXJhdG9yTWlkZGxld2FyZSA9IGluamVjdChBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlKTtcblxuICBmaWx0ZXJzRGVmaW5pdGlvbnMgPSBpbnB1dDxBWFBGaWx0ZXJEZWZpbml0aW9uW10+KFtdKTtcbiAgaW5pdGlhbEZpbHRlcnMgPSBpbnB1dDxBWFBGaWx0ZXJRdWVyeVtdPihbXSk7XG4gIG9uRmlsdGVyc0NoYW5nZWQgPSBvdXRwdXQ8QVhQRmlsdGVyUXVlcnlbXT4oKTtcblxuICBwcm90ZWN0ZWQgdGFnQm94ID0gdmlld0NoaWxkPEFYVGFnQm94Q29tcG9uZW50PigndGFnQm94Jyk7XG4gIHRhZ0JveElucHV0ITogYW55O1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2Nhc2VJdGVtJykgbGlzdEl0ZW1zITogUXVlcnlMaXN0PGFueT47XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkRmllbGQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZEZpbHRlcnMgPSBsaW5rZWRTaWduYWw8QVhQRmlsdGVyRGVmaW5pdGlvbltdPigoKSA9PlxuICAgIHRoaXMuY29udmVydFF1ZXJpZXNUb0RlZmluaXRpb25zKHRoaXMuaW5pdGlhbEZpbHRlcnMoKSkubWFwKChpKSA9PiAoeyAuLi5pLCByZWFkT25seTogdHJ1ZSB9KSksXG4gICk7XG5cbiAgY29udGV4dCA9IGxpbmtlZFNpZ25hbDxhbnk+KCgpID0+IHRoaXMuY29udmVydFF1ZXJpZXNUb0NvbnRleHQodGhpcy5pbml0aWFsRmlsdGVycygpKSk7XG5cbiAgcHJvdGVjdGVkIGFjdGl2ZUZpbHRlciA9IHNpZ25hbDxBWFBGaWx0ZXJEZWZpbml0aW9uIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIGFzeW5jVGFncyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHByb3RlY3RlZCBwb3BvdmVyID0gdmlld0NoaWxkPEFYUG9wb3ZlckNvbXBvbmVudD4oJ3BvcG92ZXInKTtcblxuICBpbnB1dFZhbHVlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIGlubGluZUZpbHRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyc0RlZmluaXRpb25zKCkuZmlsdGVyKFxuICAgICAgKGYpID0+XG4gICAgICAgIGYuZmlsdGVyVHlwZS5pbmxpbmUgJiZcbiAgICAgICAgIXRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlXG4gICAgICAgICAgLnRyYW5zZm9ybUZpbHRlcnModGhpcy5zZWxlY3RlZEZpbHRlcnMoKSlcbiAgICAgICAgICAuc29tZShcbiAgICAgICAgICAgIChzZikgPT5cbiAgICAgICAgICAgICAgc2YuZmllbGQgPT09IGYuZmllbGQgJiZcbiAgICAgICAgICAgICAgc2Yub3BlcmF0b3I/LnR5cGUgPT09ICh0aGlzLmNvbnRleHQoKVtzZi5maWVsZF0/Lm9wZXJhdGlvbj8udHlwZSB8fCBmLm9wZXJhdG9yPy50eXBlKSxcbiAgICAgICAgICApLFxuICAgICk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGdldERpc3BsYXlWYWx1ZSA9IGFzeW5jIChmaWx0ZXI6IEFYUEZpbHRlckRlZmluaXRpb24sIHZhbDogYW55KSA9PiB7XG4gICAgaWYgKGZpbHRlci53aWRnZXQudHlwZSA9PT0gJ3NlbGVjdC1lZGl0b3InIHx8IGZpbHRlci53aWRnZXQudHlwZSA9PT0gJ3NlbGVjdC1maWx0ZXInKSB7XG4gICAgICBjb25zdCBkYXRhU291cmNlOiBBWERhdGFTb3VyY2UgPSBmaWx0ZXIud2lkZ2V0Lm9wdGlvbnM/LlsnZGF0YVNvdXJjZSddO1xuICAgICAgY29uc3QgdGV4dEZpZWxkID0gZmlsdGVyLndpZGdldC5vcHRpb25zPy5bJ3RleHRGaWVsZCddO1xuICAgICAgY29uc3QgdmFsdWVGaWVsZCA9IGZpbHRlci53aWRnZXQub3B0aW9ucz8uWyd2YWx1ZUZpZWxkJ107XG4gICAgICBpZiAoZGF0YVNvdXJjZT8uY29uZmlnPy5ieUtleSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0czogdW5rbm93bltdID0gYXdhaXQgUHJvbWlzZS5hbGwodmFsLm1hcCgodikgPT4gZGF0YVNvdXJjZS5jb25maWcuYnlLZXkhKHYpKSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdHMubWFwKChkYXRhKSA9PiAoZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVt0ZXh0RmllbGRdKS5qb2luKCcsICcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSAoYXdhaXQgZGF0YVNvdXJjZS5jb25maWcuYnlLZXkodmFsKSkgYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgICAgICByZXR1cm4gZGF0YT8uW3RleHRGaWVsZF0gfHwgdmFsO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVNvdXJjZSkpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgICAgIHJldHVybiBkYXRhU291cmNlLm1hcCgoZGF0YSkgPT4gKGRhdGEgYXMgUmVjb3JkPHN0cmluZywgYW55PilbdGV4dEZpZWxkXSkuam9pbignLCAnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCByZWNvcmQ6IGFueSA9IGRhdGFTb3VyY2UuZmluZCgoZDogYW55KSA9PiBkW3ZhbHVlRmllbGRdID09PSB2YWwpO1xuICAgICAgICAgIHJldHVybiByZWNvcmQgPyByZWNvcmRbdGV4dEZpZWxkXSA6ICcnO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWwpXG4gICAgICA/IGAke3RoaXMuY29udmVydElmSVNPU3RyaW5nRGF0ZSh2YWwuZnJvbSl9IGFuZCAke3RoaXMuY29udmVydElmSVNPU3RyaW5nRGF0ZSh2YWwudG8pfWBcbiAgICAgIDogdGhpcy5jb252ZXJ0SWZJU09TdHJpbmdEYXRlKHZhbCk7XG4gIH07XG5cbiAgcHJvdGVjdGVkIGNvbnZlcnRJZklTT1N0cmluZ0RhdGUgPSAodmFsOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBpc0lTT1N0cmluZ0RhdGUgPSAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9XFwuXFxkezN9WiQvLnRlc3QodmFsKTtcbiAgICBpZiAoaXNJU09TdHJpbmdEYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh2YWwpLmRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCk7XG4gICAgfVxuICAgIHJldHVybiB2YWw7XG4gIH07XG5cbiAgY29udmVydFF1ZXJpZXNUb0RlZmluaXRpb25zKHF1ZXJpZXM6IEFYUEZpbHRlclF1ZXJ5W10pOiBBWFBGaWx0ZXJEZWZpbml0aW9uW10ge1xuICAgIGNvbnN0IGRlZmluaXRpb25zID0gdGhpcy5maWx0ZXJzRGVmaW5pdGlvbnMoKTtcblxuICAgIHJldHVybiBxdWVyaWVzLm1hcCgocSkgPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IGRlZmluaXRpb25zLmZpbmQoKHApID0+IHAuZmllbGQgPT09IHEuZmllbGQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZDogcS5maWVsZCxcbiAgICAgICAgb3BlcmF0b3I6IHEub3BlcmF0b3IsXG4gICAgICAgIHZhbHVlOiBxLnZhbHVlLFxuICAgICAgICB0aXRsZTogZGVmaW5pdGlvbj8udGl0bGUgfHwgJycsXG4gICAgICAgIHdpZGdldDogZGVmaW5pdGlvbj8ud2lkZ2V0ISxcbiAgICAgICAgZmlsdGVyVHlwZTogZGVmaW5pdGlvbj8uZmlsdGVyVHlwZSEsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgY29udmVydFF1ZXJpZXNUb0NvbnRleHQocXVlcmllczogQVhQRmlsdGVyUXVlcnlbXSk6IGFueSB7XG4gICAgcmV0dXJuIHF1ZXJpZXMucmVkdWNlKChhY2MsIHEpID0+IHtcbiAgICAgIGFjY1txLmZpZWxkXSA9IHsgdmFsdWU6IHEudmFsdWUsIG9wZXJhdGlvbjogcS5vcGVyYXRvciB9O1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBhbnkpO1xuICB9XG5cbiAgZmlsdGVyRmllbGRzID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnNEZWZpbml0aW9ucygpLmZpbHRlcigoZikgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZi5maWx0ZXJUeXBlLmFkdmFuY2UgJiZcbiAgICAgICAgIXRoaXMuc2VsZWN0ZWRGaWx0ZXJzKCkuc29tZSgoc2YpID0+IHtcbiAgICAgICAgICByZXR1cm4gc2YuZmllbGQgPT09IGYuZmllbGQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuICB9O1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFnQm94SW5wdXQgPSB0aGlzLnRhZ0JveCgpPy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gIH1cblxuICBoYW5kbGVTZWxlY3RGaWVsZChmaWVsZDogQVhQRmlsdGVyRGVmaW5pdGlvbikge1xuICAgIHRoaXMuYWN0aXZlRmlsdGVyLnNldChmaWVsZCk7XG4gICAgLy8gdGhpcy5pbnB1dFZhbHVlLnNldCgnJyk7XG4gICAgdGhpcy50YWdCb3goKT8uaW5wdXRWYWx1ZS5zZXQoJycpO1xuICB9XG4gIGhhbmRsZUZpZWxkS2V5RG93bihlOiBLZXlib2FyZEV2ZW50LCBmaWVsZDogQVhQRmlsdGVyRGVmaW5pdGlvbikge1xuICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgdGhpcy5oYW5kbGVTZWxlY3RGaWVsZChmaWVsZCk7XG4gICAgfVxuICB9XG5cbiAgb25Db250ZXh0Q2hhbmdlZChlOiBBWFBMYXlvdXRDb250ZXh0Q2hhbmdlRXZlbnQpIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0KGUuZGF0YSk7XG4gIH1cblxuICBoYW5kbGVBcHBseUZpbHRlcigpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVGaWx0ZXIoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgdGhpcy5hY3RpdmVGaWx0ZXIoKSBhcyBBWFBGaWx0ZXJEZWZpbml0aW9uXSk7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlci5zZXQobnVsbCk7XG4gICAgICB0aGlzLnBvcG92ZXIoKT8uY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVCdXR0b25LZXlEb3duKGU6IEV2ZW50KSB7XG4gICAgaWYgKHRoaXMucG9wb3ZlcigpPy5pc09wZW4gJiYgIXRoaXMuYWN0aXZlRmlsdGVyKCkpIHtcbiAgICAgIC8vIEZpbmQgZmlyc3QgbGlzdCBpdGVtIGFuZCBmb2N1cyBpdFxuICAgICAgY29uc3QgZmlyc3RJdGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2F4TGlzdE5hdmlnYXRpb25JdGVtXScpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKGZpcnN0SXRlbSkge1xuICAgICAgICBmaXJzdEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgZT8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGU6IEFYSHRtbEV2ZW50PEtleWJvYXJkRXZlbnQ+KSB7XG4gICAgaWYgKGUubmF0aXZlRXZlbnQ/LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIGlmICh0aGlzLnBvcG92ZXIoKT8uaXNPcGVuICYmICF0aGlzLmFjdGl2ZUZpbHRlcigpKSB7XG4gICAgICAgIC8vIEZpbmQgZmlyc3QgbGlzdCBpdGVtIGFuZCBmb2N1cyBpdFxuICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbYXhMaXN0TmF2aWdhdGlvbkl0ZW1dJykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmIChmaXJzdEl0ZW0pIHtcbiAgICAgICAgICBmaXJzdEl0ZW0uZm9jdXMoKTtcbiAgICAgICAgICBlLm5hdGl2ZUV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucG9wb3ZlcigpPy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgI2VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVudHJhY2tlZCgoKSA9PiB0aGlzLmNvbnRleHQoKSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gdGhpcy5zZWxlY3RlZEZpbHRlcnMoKTtcbiAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgY29uc3QgY29udmVydGVkRmlsdGVyczogQVhQRmlsdGVyUXVlcnlbXSA9IHNlbGVjdGVkRmlsdGVycy5tYXAoKGYpID0+ICh7XG4gICAgICAgIGZpZWxkOiBmLmZpZWxkLFxuICAgICAgICBvcGVyYXRvcjogY29udGV4dFtmLmZpZWxkXT8ub3BlcmF0aW9uLFxuICAgICAgICB2YWx1ZTogY29udGV4dFtmLmZpZWxkXT8udmFsdWUsXG4gICAgICB9KSk7XG4gICAgICBjb25zdCBuZXdDb250ZXh0OiBhbnkgPSB7fTtcbiAgICAgIGNvbnZlcnRlZEZpbHRlcnMuZm9yRWFjaCgoY2YpID0+IHtcbiAgICAgICAgbmV3Q29udGV4dFtjZi5maWVsZF0gPSB7XG4gICAgICAgICAgdmFsdWU6IGNmLnZhbHVlLFxuICAgICAgICAgIG9wZXJhdGlvbjogdHlwZW9mIGNmLm9wZXJhdG9yID09PSAnc3RyaW5nJyA/IHsgdHlwZTogY2Yub3BlcmF0b3IgfSA6IGNmLm9wZXJhdG9yLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY29udGV4dC5zZXQobmV3Q29udGV4dCk7XG4gICAgICB0aGlzLmRlYWN0aXZhdGVBbGxMaXN0SXRlbXMoKTtcbiAgICAgIHRoaXMub25GaWx0ZXJzQ2hhbmdlZC5lbWl0KGNvbnZlcnRlZEZpbHRlcnMpO1xuICAgIH0pO1xuICB9KTtcblxuICBoYW5kbGVTZWxlY3RGaWx0ZXJzKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS52YWx1ZT8ubGVuZ3RoIDwgdGhpcy5zZWxlY3RlZEZpbHRlcnMoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnVwZGF0ZSgocHJldikgPT4ge1xuICAgICAgICByZXR1cm4gZS52YWx1ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRBY3RpdmVPcGVyYXRvcihmaWx0ZXI6IEFYUEZpbHRlckRlZmluaXRpb24gfCBudWxsKSB7XG4gICAgaWYgKCFmaWx0ZXIpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dE9wZXJhdGlvbiA9IHRoaXMuY29udGV4dCgpPy5bZmlsdGVyLmZpZWxkXT8ub3BlcmF0aW9uPy50eXBlO1xuICAgIGNvbnN0IG9wZXJhdG9yVHlwZSA9IGNvbnRleHRPcGVyYXRpb24gfHwgZmlsdGVyLm9wZXJhdG9yPy50eXBlO1xuXG4gICAgcmV0dXJuIEFMTF9ERUZBVUxUX09QRVJBVE9SUy5maW5kKChvKSA9PiBvLm5hbWUgPT09IG9wZXJhdG9yVHlwZSk/LnRpdGxlO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0SW5saW5lRmlsdGVyKGZpbHRlcjogQVhQRmlsdGVyRGVmaW5pdGlvbikge1xuICAgIHRoaXMuY29udGV4dC51cGRhdGUoKHByZXYpID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgW2ZpbHRlci5maWVsZF06IHtcbiAgICAgICAgdmFsdWU6IHRoaXMudGFnQm94KCk/LmlucHV0VmFsdWUoKSxcbiAgICAgICAgb3BlcmF0aW9uOiB7IHR5cGU6ICdjb250YWlucycgfSxcbiAgICAgIH0sXG4gICAgfSkpO1xuICAgIHRoaXMudGFnQm94KCk/LmlucHV0VmFsdWUuc2V0KCcnKTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy51cGRhdGUoKHByZXYpID0+IFsuLi5wcmV2LCBmaWx0ZXJdKTtcbiAgICB0aGlzLnBvcG92ZXIoKT8uY2xvc2UoKTtcbiAgfVxuXG4gIGhhbmRsZUlubGluZUZpbHRlcktleURvd24oZTogS2V5Ym9hcmRFdmVudCwgZmlsdGVyOiBBWFBGaWx0ZXJEZWZpbml0aW9uKSB7XG4gICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLmhhbmRsZVNlbGVjdElubGluZUZpbHRlcihmaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZVBvcG92ZXJDbG9zZWQoZTogQVhFdmVudCkge1xuICAgIHRoaXMuYWN0aXZlRmlsdGVyLnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblBvcG92ZXJPcGVuZWQoZTogQVhFdmVudCkge1xuICAgIGlmICh0aGlzLmZpbHRlcnNEZWZpbml0aW9ucygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5wb3BvdmVyKCk/LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGRlYWN0aXZhdGVBbGxMaXN0SXRlbXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGlzdEl0ZW1zKSB7XG4gICAgICB0aGlzLmxpc3RJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBpdGVtLmlzQWN0aXZlLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNlZmZlY3QyID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0gdGhpcy5zZWxlY3RlZEZpbHRlcnMoKTtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0KCk7XG5cbiAgICBQcm9taXNlLmFsbChcbiAgICAgIGZpbHRlcnMubWFwKGFzeW5jIChmaWx0ZXIpID0+IHtcbiAgICAgICAgY29uc3QgdmFsID0gY29udGV4dFtmaWx0ZXIuZmllbGRdPy52YWx1ZTtcbiAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlID0gYXdhaXQgdGhpcy5nZXREaXNwbGF5VmFsdWUoZmlsdGVyLCB2YWwpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICBxdWVyeTogYCR7dGhpcy50cmFuc2xhdGUudHJhbnNsYXRlU3luYyhmaWx0ZXIudGl0bGUpfSAke3RoaXMuZ2V0QWN0aXZlT3BlcmF0b3IoZmlsdGVyKX0gJyR7ZGlzcGxheVZhbHVlfSdgLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgKS50aGVuKChyZXN1bHRzKSA9PiB7XG4gICAgICB0aGlzLmFzeW5jVGFncy5zZXQocmVzdWx0cyk7XG4gICAgfSk7XG4gIH0pO1xufVxuIiwiPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWdhcC0yIGF4LXAtMlwiPlxuICA8YXgtYnV0dG9uIChrZXlkb3duKT1cImhhbmRsZUJ1dHRvbktleURvd24oJGV2ZW50KVwiIChvbkNsaWNrKT1cInBvcG92ZXIub3BlbigpXCIgI2ZpbHRlckJ1dHRvbiBbbG9va109XCInYmxhbmsnXCI+XG4gICAgPGF4LWljb24gY2xhc3M9XCJmYXIgZmEtYmFycy1maWx0ZXIgYXgtY3Vyc29yLXBvaW50ZXJcIj4gPC9heC1pY29uPlxuICA8L2F4LWJ1dHRvbj5cbiAgPGF4LXRhZy1ib3hcbiAgICBbbmdNb2RlbF09XCJhc3luY1RhZ3MoKVwiXG4gICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVNlbGVjdEZpbHRlcnMoJGV2ZW50KVwiXG4gICAgW3RleHRGaWVsZF09XCIncXVlcnknXCJcbiAgICBbdmFsdWVGaWVsZF09XCInaWQnXCJcbiAgICBbcmVhZG9ubHldPVwiZmlsdGVyc0RlZmluaXRpb25zKCkubGVuZ3RoID09PSAwXCJcbiAgICBbbG9va109XCInbm9uZSdcIlxuICAgIFtyZWFkb25seUZpZWxkXT1cIidyZWFkT25seSdcIlxuICAgIChvbktleURvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICBbYWRkT25FbnRlcl09XCJmYWxzZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIihmaWx0ZXJzRGVmaW5pdGlvbnMoKS5sZW5ndGggPT09IDAgPyAnZmlsdGVyLm5vUmVjb3JkcycgOiAnZmlsdGVyLnRpdGxlJykgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgI3RhZ0JveFxuICA+PC9heC10YWctYm94PlxuPC9kaXY+XG5cbjxheC1wb3BvdmVyXG4gIFtvZmZzZXRZXT1cImFjdGl2ZUZpbHRlcigpID8gLTMwIDogMFwiXG4gIFt0YXJnZXRdPVwidGFnQm94SW5wdXRcIlxuICBbb3Blbk9uXT1cIid0b2dnbGUnXCJcbiAgKG9uT3BlbmVkKT1cIm9uUG9wb3Zlck9wZW5lZCgkZXZlbnQpXCJcbiAgW2Nsb3NlT25dPVwiJ2NsaWNrT3V0J1wiXG4gIChvbkNsb3NlZCk9XCJoYW5kbGVQb3BvdmVyQ2xvc2VkKCRldmVudClcIlxuICBbYWRhcHRpdml0eUVuYWJsZWRdPVwidHJ1ZVwiXG4gICNwb3BvdmVyXG4+XG4gIDxkaXYgY2xhc3M9XCJtZDpheC1taW4tdy03MiBheC1ib3JkZXIgYXgtc3VyZmFjZSBheC13LWZ1bGwgYXgtcm91bmRlZC1tZCBtZDpheC1tYXgtaC05NiBtZDpheC1vdmVyZmxvdy1hdXRvXCI+XG4gICAgPGF4cC13aWRnZXRzLWNvbnRhaW5lciBbY29udGV4dF09XCJjb250ZXh0KClcIiAob25Db250ZXh0Q2hhbmdlZCk9XCJvbkNvbnRleHRDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgIEBpZiAoYWN0aXZlRmlsdGVyKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZmxleC1jb2wgYXgtbGlnaHRlc3Qtc3VyZmFjZSBheC1zaGFkb3ctbWRcIj5cbiAgICAgICAgICA8YXgtaGVhZGVyIGNsYXNzPVwiYXgtYm9yZGVyLWIgYXgtYm9yZGVyLWxpZ2h0IGF4LXB4LTQgYXgtcHktMlwiPnt7XG4gICAgICAgICAgICBhY3RpdmVGaWx0ZXIoKT8udGl0bGUhIHwgdHJhbnNsYXRlIHwgYXN5bmNcbiAgICAgICAgICB9fTwvYXgtaGVhZGVyPlxuICAgICAgICAgIDxheC1jb250ZW50IGNsYXNzPVwiYXgtcC00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWItMlwiPlxuICAgICAgICAgICAgICA8YXgtYmFkZ2UgW3RleHRdPVwiZ2V0QWN0aXZlT3BlcmF0b3IoYWN0aXZlRmlsdGVyKCkpIVwiPjwvYXgtYmFkZ2U+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgYXhwLXdpZGdldC1yZW5kZXJlclxuICAgICAgICAgICAgICBbbm9kZV09XCJ7XG4gICAgICAgICAgICAgICAgdHlwZTogYWN0aXZlRmlsdGVyKCk/LndpZGdldD8udHlwZSB8fCAndGV4dC1lZGl0b3InLFxuICAgICAgICAgICAgICAgIHBhdGg6IGFjdGl2ZUZpbHRlcigpPy5maWVsZCxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBhY3RpdmVGaWx0ZXIoKT8ud2lkZ2V0Py5vcHRpb25zLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgW21vZGVdPVwiJ2VkaXQnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYXgtY29udGVudD5cbiAgICAgICAgICA8YXgtZm9vdGVyIGNsYXNzPVwiYXgtYm9yZGVyLXQgYXgtZmxleCBheC1qdXN0aWZ5LWVuZCBheC1ib3JkZXItbGlnaHQgYXgtdy1mdWxsIGF4LXB4LTQgYXgtcHktMlwiPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXhzXCIgW3RleHRdPVwiJ2FwcGx5JyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCIgKG9uQ2xpY2spPVwiaGFuZGxlQXBwbHlGaWx0ZXIoKVwiPjwvYXgtYnV0dG9uPlxuICAgICAgICAgIDwvYXgtZm9vdGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGF4TGlzdE5hdmlnYXRpb24gI2xpc3Q9XCJheExpc3ROYXZpZ2F0aW9uXCIgY2xhc3M9XCJheHAtbGlzdC1pdGVtc1wiPlxuICAgICAgICAgIEBpZiAodGFnQm94LmlucHV0VmFsdWUoKSkge1xuICAgICAgICAgICAgQGZvciAoaW5saW5lRmlsdGVyIG9mIGlubGluZUZpbHRlcnMoKTsgdHJhY2sgaW5saW5lRmlsdGVyLmZpZWxkKSB7XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBheExpc3ROYXZpZ2F0aW9uSXRlbVxuICAgICAgICAgICAgICAgICNjYXNlSXRlbT1cImF4TGlzdE5hdmlnYXRpb25JdGVtXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYXhwLXN0YXRlLWZvY3VzZWRdPVwiY2FzZUl0ZW0uaXNBY3RpdmUoKVwiXG4gICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2VsZWN0SW5saW5lRmlsdGVyKGlubGluZUZpbHRlcilcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUlubGluZUZpbHRlcktleURvd24oJGV2ZW50LCBpbmxpbmVGaWx0ZXIpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGlubGluZUZpbHRlci50aXRsZSB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19IHt7IGdldEFjdGl2ZU9wZXJhdG9yKGlubGluZUZpbHRlcikgfX0gJ3t7XG4gICAgICAgICAgICAgICAgICB0YWdCb3guaW5wdXRWYWx1ZSgpXG4gICAgICAgICAgICAgICAgfX0nXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC13LWZ1bGwgYXgtYm9yZGVyLXQgYXgtYm9yZGVyLWxpZ2h0IGF4LW15LTFcIj48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGZpbHRlckZpZWxkcygpOyB0cmFjayBmaWVsZC5maWVsZCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBheExpc3ROYXZpZ2F0aW9uSXRlbVxuICAgICAgICAgICAgICAjY2FzZUl0ZW09XCJheExpc3ROYXZpZ2F0aW9uSXRlbVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5heHAtc3RhdGUtZm9jdXNlZF09XCJjYXNlSXRlbS5pc0FjdGl2ZSgpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlbGVjdEZpZWxkKGZpZWxkKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZUZpZWxkS2V5RG93bigkZXZlbnQsIGZpZWxkKVwiXG4gICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWVuZCBheC1nYXAtMlwiPlxuICAgICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtdy01XCIgW2NsYXNzXT1cIidmYS1saWdodCAnICsgZmllbGQuaWNvblwiPiA8L2F4LWljb24+XG4gICAgICAgICAgICAgICAge3sgZmllbGQudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9heHAtd2lkZ2V0cy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPlxuIl19","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.0.4\", ngImport: i0, type: AXPUserAvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPUserAvatarService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", 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);\n this.size = input(40);\n this.userId = input('');\n this.src = signal('');\n this.userName = computed(() => this.userInfo()?.username || '');\n this.firstName = computed(() => this.userInfo()?.firstName || 'Root');\n this.lastName = computed(() => this.userInfo()?.lastName || 'User');\n this.title = computed(() => `${this.firstName()} ${this.lastName()}`);\n this.isOnline = computed(() => this.userInfo()?.status === 'online');\n this.avatarText = computed(() => this.getInitials());\n this.avatarColor = computed(() => this.pickColor(this.avatarText()));\n this.hasPicture = signal(false);\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.0.4\", ngImport: i0, type: AXPUserAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.4\", 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.0.4\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdmF0YXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvbGliL3VzZXItYXZhdGFyL3VzZXItYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMvc3JjL2xpYi91c2VyLWF2YXRhci91c2VyLWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUczRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBZXpELE1BQU0sT0FBTyxzQkFBc0I7SUFibkM7UUFjbUIsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFdEMsYUFBUSxHQUFHLE1BQU0sQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFFNUQsU0FBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUN6QixXQUFNLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FB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YUFBYSxvTkFDYixhQUFhOzsyRkFLSixzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ0UsaUJBQWlCLFdBR2xCO3dCQUNQLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGFBQWE7cUJBQ2hCLGlCQUNnQixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhclNlcnZpY2UgfSBmcm9tICcuL3VzZXItYXZhdGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWEF2YXRhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdmF0YXInO1xuaW1wb3J0IHsgQVhIdG1sRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQVXNlckF2YXRhckRhdGEgfSBmcm9tICcuL3VzZXItYXZhdGFyLnR5cGVzJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhJbWFnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9pbWFnZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC11c2VyLWF2YXRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWF2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi91c2VyLWF2YXRhci5jb21wb25lbnQuc2NzcycsXG4gIGltcG9ydHM6IFtcbiAgICBBWEF2YXRhck1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWEltYWdlTW9kdWxlLFxuICAgIEFYQmFkZ2VNb2R1bGVcbl0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFVzZXJBdmF0YXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlckF2YXRhclNlcnZpY2UgPSBpbmplY3QoQVhQVXNlckF2YXRhclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgdXNlckluZm8gPSBzaWduYWw8QVhQVXNlckF2YXRhckRhdGEgfCBudWxsPihudWxsKTtcblxuICBzaXplID0gaW5wdXQ8bnVtYmVyPig0MCk7XG4gIHVzZXJJZCA9IGlucHV0PHN0cmluZz4oJycpO1xuXG4gIHNyYyA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcbiAgdXNlck5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVzZXJJbmZvKCk/LnVzZXJuYW1lIHx8ICcnKTtcbiAgZmlyc3ROYW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51c2VySW5mbygpPy5maXJzdE5hbWUgfHwgJ1Jvb3QnKTtcbiAgbGFzdE5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnVzZXJJbmZvKCk/Lmxhc3ROYW1lIHx8ICdVc2VyJyk7XG4gIHRpdGxlID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5maXJzdE5hbWUoKX0gJHt0aGlzLmxhc3ROYW1lKCl9YCk7XG4gIGlzT25saW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy51c2VySW5mbygpPy5zdGF0dXMgPT09ICdvbmxpbmUnKTtcblxuICBhdmF0YXJUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nZXRJbml0aWFscygpKTtcbiAgYXZhdGFyQ29sb3IgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBpY2tDb2xvcih0aGlzLmF2YXRhclRleHQoKSkpO1xuXG4gIHByb3RlY3RlZCBoYXNQaWN0dXJlID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgb25JbWFnZUVycm9yKGV2ZW50OiBBWEh0bWxFdmVudDxFcnJvckV2ZW50Pikge1xuICAgIHRoaXMuaGFzUGljdHVyZS5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW1hZ2VMb2FkKGV2ZW50OiBBWEh0bWxFdmVudDxFdmVudD4pIHtcbiAgICB0aGlzLmhhc1BpY3R1cmUuc2V0KHRydWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkVXNlckRhdGEoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZFVzZXJEYXRhKCk6IHZvaWQge1xuICAgIC8vIFNraXAgaWYgbm8gdXNlcm5hbWUgcHJvdmlkZWRcbiAgICBpZiAoIXRoaXMudXNlcklkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIHVzZXIgaW5mbyBvYnNlcnZhYmxlIHRvIGdldCByZWFsLXRpbWUgdXBkYXRlc1xuICAgIHRoaXMudXNlckF2YXRhclNlcnZpY2VcbiAgICAgIC5nZXRVc2VySW5mbyQodGhpcy51c2VySWQoKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHVzZXJEYXRhKSA9PiB7XG4gICAgICAgIHRoaXMudXNlckluZm8uc2V0KHVzZXJEYXRhKTtcbiAgICAgICAgLy8gVGhpcyBpcyBhIHBsYWNlaG9sZGVyIC0gcmVwbGFjZSB3aXRoIHlvdXIgYWN0dWFsIGF2YXRhciBVUkwgbG9naWNcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUF2YXRhclNyYygpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYXZhdGFyIGltYWdlIHNvdXJjZVxuICAgKiBUaGlzIGlzIGEgcGxhY2Vob2xkZXIgLSBpbXBsZW1lbnQgYmFzZWQgb24geW91ciBhY3R1YWwgcmVxdWlyZW1lbnRzXG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlQXZhdGFyU3JjKCk6IHZvaWQge1xuICAgIC8vIEV4YW1wbGU6IENoZWNrIGlmIHRoZSB1c2VyIGhhcyBhIGN1c3RvbSBhdmF0YXIgVVJMXG4gICAgLy8gSWYgbm90LCBnZW5lcmF0ZSBhIHBsYWNlaG9sZGVyIHVzaW5nIGluaXRpYWxzXG4gICAgaWYgKHRoaXMudXNlckluZm8oKT8uYXZhdGFyVXJsKSB7XG4gICAgICB0aGlzLnNyYy5zZXQodGhpcy51c2VySW5mbygpPy5hdmF0YXJVcmwhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gR2VuZXJhdGUgYSBwbGFjZWhvbGRlciAtIHlvdSBjb3VsZCB1c2UgYW4gZXh0ZXJuYWwgc2VydmljZSBsaWtlIFVJIEF2YXRhcnNcbiAgICAgIC8vIG9yIGltcGxlbWVudCB5b3VyIG93biBsb2dpY1xuICAgICAgY29uc3QgaW5pdGlhbHMgPSB0aGlzLmdldEluaXRpYWxzKCk7XG4gICAgICB0aGlzLnNyYy5zZXQoYGh0dHBzOi8vYXZhdGFyLmlyYW4ubGlhcmEucnVuL3VzZXJuYW1lP3VzZXJuYW1lPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGluaXRpYWxzKX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGluaXRpYWxzIGZyb20gZmlyc3QgYW5kIGxhc3QgbmFtZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRJbml0aWFscygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpcnN0SW5pdGlhbCA9IHRoaXMuZmlyc3ROYW1lKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgbGFzdEluaXRpYWwgPSB0aGlzLmxhc3ROYW1lKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7XG4gICAgcmV0dXJuIGZpcnN0SW5pdGlhbCArIGxhc3RJbml0aWFsO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNoU3RyaW5nKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBsZXQgaGFzaCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSAtIGhhc2ggKyBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgIGhhc2ggfD0gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGguYWJzKGhhc2gpO1xuICB9XG5cbiAgcHJpdmF0ZSBwaWNrQ29sb3IoaW5pdGlhbHM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgY29sb3JzID0gWydwcmltYXJ5JywgJ3NlY29uZGFyeScsICdkYW5nZXInLCAnd2FybmluZycsICdzdWNjZXNzJywgJ2FjY2VudDEnLCAnYWNjZW50MicsICdhY2NlbnQzJ107XG4gICAgY29uc3QgaWR4ID0gdGhpcy5oYXNoU3RyaW5nKGluaXRpYWxzKSAlIGNvbG9ycy5sZW5ndGg7XG4gICAgcmV0dXJuIGNvbG9yc1tpZHhdO1xuICB9XG59XG4iLCI8YXgtYXZhdGFyICNhdmF0YXIgW3NpemVdPVwic2l6ZSgpXCIgY2xhc3M9XCJheC1jdXJzb3ItcG9pbnRlclwiPlxuICBAaWYoaGFzUGljdHVyZSgpKXtcbiAgPGF4LWltYWdlIChvbkVycm9yKT1cIm9uSW1hZ2VFcnJvcigkZXZlbnQpXCIgKG9uTG9hZCk9XCJvbkltYWdlTG9hZCgkZXZlbnQpXCIgW3NyY109XCJzcmMoKVwiPjwvYXgtaW1hZ2U+XG4gIH1AZWxzZXtcbiAgPGF4LXRleHQgY2xhc3M9XCJheC17eyBhdmF0YXJDb2xvcigpIH19LWxpZ2h0ZXN0IFwiPlxuICAgIDxzbWFsbCBjbGFzcz1cImF4LXRleHQteHMgYXgtZm9udC1zZW1pYm9sZFwiPnt7IGF2YXRhclRleHQoKSB9fTwvc21hbGw+XG4gIDwvYXgtdGV4dD5cbiAgfVxuPC9heC1hdmF0YXI+XG5cbjwhLS1cblxuYXgtcHJpbWFyeS1saWdodGVzdFxuYXgtd2FybmluZy1saWdodGVzdFxuYXgtc3VjY2Vzcy1saWdodGVzdFxuYXgtZGFuZ2VyLWxpZ2h0ZXN0XG5heC1zZWNvbmRhcnktbGlnaHRlc3RcbmF4LWFjY2VudDEtbGlnaHRlc3RcbmF4LWFjY2VudDItbGlnaHRlc3RcbmF4LWFjY2VudDMtbGlnaHRlc3RcblxuLS0+XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cy9zcmMvYWNvcmV4LXBsYXRmb3JtLWxheW91dC1jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2","i4","i3","i5","i8","i1"],"mappings":"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"}