@acorex/components 20.7.28 → 20.7.29

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.
@@ -81,12 +81,12 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
81
81
  this.updateHasChild();
82
82
  this.updateContentLabel();
83
83
  this.childObserver = new MutationObserver((records) => {
84
- if (!this.hasRelevantChildMutation(records)) {
84
+ if (!this.hasRelevantMutation(records)) {
85
85
  return;
86
86
  }
87
87
  this.scheduleChildRefresh();
88
88
  });
89
- this.childObserver.observe(this.hostElement, { childList: true, subtree: true });
89
+ this.childObserver.observe(this.hostElement, { childList: true, subtree: true, characterData: true });
90
90
  this.destroyRef.onDestroy(() => this.childObserver?.disconnect());
91
91
  });
92
92
  this.#contextMenuSync = effect(() => {
@@ -287,8 +287,11 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
287
287
  this.updateContentLabel();
288
288
  });
289
289
  }
290
- hasRelevantChildMutation(records) {
290
+ hasRelevantMutation(records) {
291
291
  for (const record of records) {
292
+ if (record.type === 'characterData') {
293
+ return true;
294
+ }
292
295
  if (this.nodeListContainsMenuStructuralNode(record.addedNodes) ||
293
296
  this.nodeListContainsMenuStructuralNode(record.removedNodes)) {
294
297
  return true;
@@ -315,9 +318,9 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
315
318
  if (instance?.text()) {
316
319
  return instance.text();
317
320
  }
318
- const span = host.querySelector('.ax-start-side span, .ax-inside-text span');
319
- if (span?.textContent?.trim()) {
320
- return span.textContent.trim();
321
+ const insideText = host.querySelector('.ax-inside-text');
322
+ if (insideText?.textContent?.trim()) {
323
+ return insideText.textContent.trim();
321
324
  }
322
325
  return host.querySelector('ax-text')?.textContent?.trim() ?? '';
323
326
  }
@@ -356,14 +359,14 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
356
359
  updateContentLabel() {
357
360
  if (!isPlatformBrowser(this.platformId))
358
361
  return;
359
- const span = this.hostElement.querySelector('.ax-start-side span, .ax-inside-text span');
360
- const label = span?.textContent?.trim() || this.hostElement.querySelector('ax-text')?.textContent?.trim() || '';
362
+ const insideText = this.hostElement.querySelector('.ax-inside-text');
363
+ const label = insideText?.textContent?.trim() || this.hostElement.querySelector('ax-text')?.textContent?.trim() || '';
361
364
  if (label !== this.contentLabel()) {
362
365
  this.contentLabel.set(label);
363
366
  }
364
367
  }
365
368
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
366
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSideMenuItemComponent, isStandalone: true, selector: "ax-side-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActive: { classPropertyName: "routerLinkActive", publicName: "routerLinkActive", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { text: "textChange", active: "activeChange", isLoading: "isLoadingChange", isCollapsed: "isCollapsedChange", onClick: "onClick" }, providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], queries: [{ propertyName: "childItems", predicate: AXSideMenuItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menuItemTrigger", first: true, predicate: ["menuItemTrigger"], descendants: true, isSignal: true }, { propertyName: "childrenSlot", first: true, predicate: ["childrenSlot"], descendants: true, isSignal: true }, { propertyName: "childrenContextMenu", first: true, predicate: ["childrenContextMenu"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div [axTooltip]=\"tooltipContent()\" axTooltipPlacement=\"end\" class=\"ax-side-menu-wrapper\">\n @if (!isCompactMode()) {\n <ng-content select=\"ax-title\"></ng-content>\n }\n @if (routerLink()) {\n <a\n #menuItemTrigger\n [axRipple]\n [target]=\"target()\"\n class=\"ax-side-item\"\n [routerLink]=\"routerLink()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else if (href()) {\n <a\n #menuItemTrigger\n [axRipple]\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else {\n <div\n #menuItemTrigger\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </div>\n }\n\n <div\n class=\"ax-side-children\"\n [class.ax-collapsed]=\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\"\n [class.ax-empty]=\"!hasChild() && !isLoading()\"\n >\n @if (isLoading()) {\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\n }\n <div #childrenSlot class=\"ax-side-children-content\" [hidden]=\"isLoading()\">\n <ng-content select=\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\"></ng-content>\n </div>\n </div>\n\n @if (isCompactMode() && hasChild()) {\n <ax-context-menu\n #childrenContextMenu\n class=\"ax-side-menu-children-context-menu\"\n [openOn]=\"'hover'\"\n [closeOn]=\"'leave'\"\n [closeOnRouteChange]=\"true\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onClose)=\"handleContextMenuClosed()\"\n />\n }\n\n <ng-content select=\"ax-divider\"></ng-content>\n <ng-template #menuItemContent>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <div class=\"ax-inside-text\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"> </span>\n }\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "directive", type: i1.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "closeOnRouteChange", "items", "target"], outputs: ["onItemClick", "onOpening", "onClose"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
369
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXSideMenuItemComponent, isStandalone: true, selector: "ax-side-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: "toggleOnClick", publicName: "toggleOnClick", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActive: { classPropertyName: "routerLinkActive", publicName: "routerLinkActive", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: "routerLinkActiveOptions", publicName: "routerLinkActiveOptions", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { text: "textChange", active: "activeChange", isLoading: "isLoadingChange", isCollapsed: "isCollapsedChange", onClick: "onClick" }, providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], queries: [{ propertyName: "childItems", predicate: AXSideMenuItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "menuItemTrigger", first: true, predicate: ["menuItemTrigger"], descendants: true, isSignal: true }, { propertyName: "childrenSlot", first: true, predicate: ["childrenSlot"], descendants: true, isSignal: true }, { propertyName: "childrenContextMenu", first: true, predicate: ["childrenContextMenu"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div [axTooltip]=\"tooltipContent()\" axTooltipPlacement=\"end\" class=\"ax-side-menu-wrapper\">\n @if (!isCompactMode()) {\n <ng-content select=\"ax-title\"></ng-content>\n }\n @if (routerLink()) {\n <a\n #menuItemTrigger\n [axRipple]\n [target]=\"target()\"\n class=\"ax-side-item\"\n [routerLink]=\"routerLink()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else if (href()) {\n <a\n #menuItemTrigger\n [axRipple]\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else {\n <div\n #menuItemTrigger\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </div>\n }\n\n <div\n class=\"ax-side-children\"\n [class.ax-collapsed]=\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\"\n [class.ax-empty]=\"!hasChild() && !isLoading()\"\n >\n @if (isLoading()) {\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\n }\n <div #childrenSlot class=\"ax-side-children-content\" [hidden]=\"isLoading()\">\n <ng-content select=\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\"></ng-content>\n </div>\n </div>\n\n @if (isCompactMode() && hasChild()) {\n <ax-context-menu\n #childrenContextMenu\n class=\"ax-side-menu-children-context-menu\"\n [openOn]=\"'hover'\"\n [closeOn]=\"'leave'\"\n [closeOnRouteChange]=\"true\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onClose)=\"handleContextMenuClosed()\"\n />\n }\n\n <ng-content select=\"ax-divider\"></ng-content>\n <ng-template #menuItemContent>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-inside-text\">\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"> </span>\n }\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: AXRippleDirective, selector: "[axRipple]", inputs: ["axRipple", "axRippleColor"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "directive", type: i1.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "component", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "closeOnRouteChange", "items", "target"], outputs: ["onItemClick", "onOpening", "onClose"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
367
370
  }
368
371
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuItemComponent, decorators: [{
369
372
  type: Component,
@@ -377,7 +380,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
377
380
  AXTranslatorPipe,
378
381
  AXTooltipModule,
379
382
  AXContextMenuComponent,
380
- ], providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], template: "<div [axTooltip]=\"tooltipContent()\" axTooltipPlacement=\"end\" class=\"ax-side-menu-wrapper\">\n @if (!isCompactMode()) {\n <ng-content select=\"ax-title\"></ng-content>\n }\n @if (routerLink()) {\n <a\n #menuItemTrigger\n [axRipple]\n [target]=\"target()\"\n class=\"ax-side-item\"\n [routerLink]=\"routerLink()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else if (href()) {\n <a\n #menuItemTrigger\n [axRipple]\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else {\n <div\n #menuItemTrigger\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </div>\n }\n\n <div\n class=\"ax-side-children\"\n [class.ax-collapsed]=\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\"\n [class.ax-empty]=\"!hasChild() && !isLoading()\"\n >\n @if (isLoading()) {\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\n }\n <div #childrenSlot class=\"ax-side-children-content\" [hidden]=\"isLoading()\">\n <ng-content select=\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\"></ng-content>\n </div>\n </div>\n\n @if (isCompactMode() && hasChild()) {\n <ax-context-menu\n #childrenContextMenu\n class=\"ax-side-menu-children-context-menu\"\n [openOn]=\"'hover'\"\n [closeOn]=\"'leave'\"\n [closeOnRouteChange]=\"true\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onClose)=\"handleContextMenuClosed()\"\n />\n }\n\n <ng-content select=\"ax-divider\"></ng-content>\n <ng-template #menuItemContent>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <div class=\"ax-inside-text\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"> </span>\n }\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n </div>\n </ng-template>\n</div>\n" }]
383
+ ], providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], template: "<div [axTooltip]=\"tooltipContent()\" axTooltipPlacement=\"end\" class=\"ax-side-menu-wrapper\">\n @if (!isCompactMode()) {\n <ng-content select=\"ax-title\"></ng-content>\n }\n @if (routerLink()) {\n <a\n #menuItemTrigger\n [axRipple]\n [target]=\"target()\"\n class=\"ax-side-item\"\n [routerLink]=\"routerLink()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n [routerLinkActive]=\"routerLinkActive()\"\n [routerLinkActiveOptions]=\"routerLinkActiveOptions()\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else if (href()) {\n <a\n #menuItemTrigger\n [axRipple]\n [href]=\"href()\"\n [target]=\"target()\"\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </a>\n } @else {\n <div\n #menuItemTrigger\n [axRipple]\n class=\"ax-side-item\"\n [class.ax-state-active]=\"active()\"\n (click)=\"handleClickEvent($event)\"\n [class.ax-state-disabled]=\"disabled\"\n >\n <ng-container [ngTemplateOutlet]=\"menuItemContent\"></ng-container>\n </div>\n }\n\n <div\n class=\"ax-side-children\"\n [class.ax-collapsed]=\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\"\n [class.ax-empty]=\"!hasChild() && !isLoading()\"\n >\n @if (isLoading()) {\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\n }\n <div #childrenSlot class=\"ax-side-children-content\" [hidden]=\"isLoading()\">\n <ng-content select=\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\"></ng-content>\n </div>\n </div>\n\n @if (isCompactMode() && hasChild()) {\n <ax-context-menu\n #childrenContextMenu\n class=\"ax-side-menu-children-context-menu\"\n [openOn]=\"'hover'\"\n [closeOn]=\"'leave'\"\n [closeOnRouteChange]=\"true\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n (onClose)=\"handleContextMenuClosed()\"\n />\n }\n\n <ng-content select=\"ax-divider\"></ng-content>\n <ng-template #menuItemContent>\n <div class=\"ax-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-inside-text\">\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"ax-end-side\">\n <ng-content select=\"ax-suffix\"></ng-content>\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\n <span class=\"ax-icon ax-icon-chevron-right arrow-icon\" [class.arrow-icon-expand]=\"!isCollapsed()\"> </span>\n }\n @if (isLoading()) {\n <ax-loading></ax-loading>\n }\n </div>\n </ng-template>\n</div>\n" }]
381
384
  }] });
382
385
 
383
386
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-side-menu.mjs","sources":["../tmp-esm2022/side-menu/lib/side-menu-base.js","../tmp-esm2022/side-menu/lib/side-menu-item/side-menu-item.component.js","../tmp-esm2022/side-menu/lib/side-menu.component.js","../tmp-esm2022/side-menu/lib/side-menu.directive.js","../tmp-esm2022/side-menu/lib/side-menu.module.js","../tmp-esm2022/side-menu/acorex-components-side-menu.js"],"sourcesContent":["/**\n * DI token for the parent `ax-side-menu`. Child `ax-side-menu-item`s inject this\n * to read shared state (e.g. the current display mode) without creating a\n * circular import on the concrete `AXSideMenuComponent` class.\n */\nexport class AXSideMenuBase {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NpZGUtbWVudS9zcmMvbGliL3NpZGUtbWVudS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQWdCLGNBQWM7Q0FFbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBESSB0b2tlbiBmb3IgdGhlIHBhcmVudCBgYXgtc2lkZS1tZW51YC4gQ2hpbGQgYGF4LXNpZGUtbWVudS1pdGVtYHMgaW5qZWN0IHRoaXNcbiAqIHRvIHJlYWQgc2hhcmVkIHN0YXRlIChlLmcuIHRoZSBjdXJyZW50IGRpc3BsYXkgbW9kZSkgd2l0aG91dCBjcmVhdGluZyBhXG4gKiBjaXJjdWxhciBpbXBvcnQgb24gdGhlIGNvbmNyZXRlIGBBWFNpZGVNZW51Q29tcG9uZW50YCBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYU2lkZU1lbnVCYXNlIHtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgbW9kZTogU2lnbmFsPCdmdWxsJyB8ICdjb21wYWN0Jz47XG59XG4iXX0=","import { AXClickEvent, AXComponent, AXRippleDirective, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXContextMenuComponent } from '@acorex/components/menu';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { AsyncPipe, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChildren, DestroyRef, effect, ElementRef, inject, input, model, output, PLATFORM_ID, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/tooltip\";\nexport class AXSideMenuItemClickEvent extends AXClickEvent {\n constructor() {\n super(...arguments);\n this.handled = false;\n }\n}\nexport class AXSideMenuItemComponent extends MXInteractiveComponent {\n constructor() {\n super(...arguments);\n this.text = model('', ...(ngDevMode ? [{ debugName: \"text\" }] : []));\n this.active = model(false, ...(ngDevMode ? [{ debugName: \"active\" }] : []));\n this.isLoading = model(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.isCollapsed = model(true, ...(ngDevMode ? [{ debugName: \"isCollapsed\" }] : []));\n this.onClick = output();\n this.toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: \"toggleOnClick\" }] : []));\n this.href = input(...(ngDevMode ? [undefined, { debugName: \"href\" }] : []));\n this.routerLink = input(...(ngDevMode ? [undefined, { debugName: \"routerLink\" }] : []));\n this.routerLinkActive = input('ax-state-active', ...(ngDevMode ? [{ debugName: \"routerLinkActive\" }] : []));\n this.routerLinkActiveOptions = input({ exact: false }, ...(ngDevMode ? [{ debugName: \"routerLinkActiveOptions\" }] : []));\n this.target = input('_self', ...(ngDevMode ? [{ debugName: \"target\" }] : []));\n this.menuItemTrigger = viewChild.required('menuItemTrigger');\n this.hasChild = signal(false, ...(ngDevMode ? [{ debugName: \"hasChild\" }] : []));\n this.isCompactMode = computed(() => this.menuMode() === 'compact', ...(ngDevMode ? [{ debugName: \"isCompactMode\" }] : []));\n /** Top-level rail entry in compact mode (opens the flyout context menu). */\n this.isFirstLevel = computed(() => {\n if (!this.isCompactMode()) {\n return false;\n }\n return !this.hostElement.parentElement?.closest('.ax-side-children-content');\n }, ...(ngDevMode ? [{ debugName: \"isFirstLevel\" }] : []));\n /** Tooltip text for first-level items in compact mode only. */\n this.tooltipContent = computed(() => {\n if (!this.isFirstLevel())\n return null;\n return this.text().trim() || this.contentLabel().trim() || null;\n }, ...(ngDevMode ? [{ debugName: \"tooltipContent\" }] : []));\n this.elem = inject((ElementRef));\n this.platformId = inject(PLATFORM_ID);\n this.destroyRef = inject(DestroyRef);\n this.menuMode = signal('full', ...(ngDevMode ? [{ debugName: \"menuMode\" }] : []));\n this.contentLabel = signal('', ...(ngDevMode ? [{ debugName: \"contentLabel\" }] : []));\n this.childObserver = null;\n this.childRefreshScheduled = false;\n this.childItems = contentChildren(AXSideMenuItemComponent, ...(ngDevMode ? [{ debugName: \"childItems\", descendants: true }] : [{ descendants: true }]));\n this.childrenSlot = viewChild('childrenSlot', ...(ngDevMode ? [{ debugName: \"childrenSlot\" }] : []));\n this.childrenContextMenu = viewChild('childrenContextMenu', ...(ngDevMode ? [{ debugName: \"childrenContextMenu\" }] : []));\n this.#childCheckEffect = effect(() => {\n if (this.childItems().length) {\n this.updateHasChild();\n }\n }, ...(ngDevMode ? [{ debugName: \"#childCheckEffect\" }] : []));\n this.#initChildren = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this.reparentOrphanedChildren();\n this.updateHasChild();\n this.updateContentLabel();\n this.childObserver = new MutationObserver((records) => {\n if (!this.hasRelevantChildMutation(records)) {\n return;\n }\n this.scheduleChildRefresh();\n });\n this.childObserver.observe(this.hostElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => this.childObserver?.disconnect());\n });\n this.#contextMenuSync = effect(() => {\n if (!this.isCompactMode() || !isPlatformBrowser(this.platformId) || !this.isFirstLevel() || !this.hasChild()) {\n return;\n }\n const menu = this.childrenContextMenu();\n if (!menu) {\n return;\n }\n if (this.isCollapsed()) {\n menu.close();\n }\n else {\n this.closeSiblingCompactMenus();\n this.openCompactContextMenu(menu);\n }\n }, ...(ngDevMode ? [{ debugName: \"#contextMenuSync\" }] : []));\n }\n get hostElement() {\n return this.elem.nativeElement;\n }\n #childCheckEffect;\n #initChildren;\n #contextMenuSync;\n syncMenuMode(mode) {\n if (this.menuMode() === mode) {\n return;\n }\n this.menuMode.set(mode);\n this.childrenContextMenu()?.close();\n if (mode === 'compact') {\n this.isCollapsed.set(true);\n }\n }\n /** Builds the cascading `AXMenuItem` tree used by the compact-mode context menu. */\n buildMenuItemsFromChildren() {\n this.reparentOrphanedChildren();\n const slot = this.childrenSlot()?.nativeElement;\n const itemsFromSlot = slot ? this.mapSlotChildrenToMenuItems(slot) : [];\n if (itemsFromSlot.length > 0) {\n return itemsFromSlot;\n }\n return this.getDirectChildElements().map((el) => this.toMenuItem(el));\n }\n activateFromContextMenu(nativeEvent) {\n if (this.disabled || this.isLoading()) {\n return;\n }\n const trigger = this.menuItemTrigger().nativeElement;\n if (trigger instanceof HTMLAnchorElement) {\n trigger.click();\n return;\n }\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent,\n handled: false,\n });\n }\n toggle() {\n if (this.isCompactMode() && (!this.hasChild() || !this.isFirstLevel())) {\n return;\n }\n this.isCollapsed.update((collapsed) => !collapsed);\n }\n open() {\n this.isCollapsed.set(false);\n }\n close() {\n this.isCollapsed.set(true);\n this.childrenContextMenu()?.close();\n }\n handleContextMenuItemClick(event) {\n const instance = event.item.data?.sideMenuItem;\n if (!instance || instance.hasChild())\n return;\n instance.activateFromContextMenu(event.nativeEvent);\n }\n handleContextMenuClosed() {\n if (!this.isCollapsed())\n this.isCollapsed.set(true);\n }\n handleClickEvent(e) {\n if (this.disabled || this.isLoading())\n return;\n const event = {\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n handled: false,\n };\n this.onClick.emit(event);\n if (!event.handled && this.toggleOnClick() && (this.hasChild() || !this.isCompactMode()))\n this.toggle();\n e.stopPropagation();\n }\n openCompactContextMenu(menu) {\n const items = this.buildMenuItemsFromChildren();\n if (!items.length)\n return;\n menu.showAt(this.getContextMenuAnchorPoint(), this.menuItemTrigger().nativeElement, {\n sender: menu,\n canceled: false,\n targetElement: this.menuItemTrigger().nativeElement,\n items,\n });\n }\n getContextMenuAnchorPoint() {\n const rect = this.menuItemTrigger().nativeElement.getBoundingClientRect();\n const offset = 8;\n if (AXHtmlUtil.isRtl(this.hostElement)) {\n return { x: rect.left - offset, y: rect.top };\n }\n return { x: rect.right + offset, y: rect.top };\n }\n mapSlotChildrenToMenuItems(slot) {\n const items = [];\n let pendingGroupTitle;\n for (const child of Array.from(slot.children)) {\n if (child.tagName === 'AX-TITLE') {\n pendingGroupTitle = child.textContent?.trim() || undefined;\n continue;\n }\n if (child.tagName === 'AX-DIVIDER') {\n if (items.length > 0) {\n items[items.length - 1] = { ...items[items.length - 1], break: true };\n }\n continue;\n }\n if (child.tagName !== 'AX-SIDE-MENU-ITEM') {\n continue;\n }\n const menuItem = this.toMenuItem(child);\n if (pendingGroupTitle) {\n menuItem.group = { title: pendingGroupTitle };\n pendingGroupTitle = undefined;\n }\n items.push(menuItem);\n }\n return items;\n }\n toMenuItem(host) {\n const instance = this.getInstanceFromElement(host);\n const item = {\n text: this.getItemLabel(host, instance),\n disabled: instance?.disabled ?? false,\n icon: this.getItemIcon(host),\n suffix: this.getItemSuffix(host),\n };\n if (instance) {\n item.data = { sideMenuItem: instance };\n }\n if (this.hasNestedChildren(host, instance)) {\n item.items =\n instance?.buildMenuItemsFromChildren() ?? this.getDirectChildElements(host).map((el) => this.toMenuItem(el));\n }\n return item;\n }\n hasNestedChildren(host, instance) {\n return (instance?.hasChild() ?? false) || this.getDirectChildElements(host).length > 0;\n }\n /** Direct `ax-side-menu-item` children of `menuHost` (defaults to this item). */\n getDirectChildElements(menuHost = this.hostElement) {\n return Array.from(menuHost.querySelectorAll('ax-side-menu-item')).filter((el) => {\n if (el === menuHost) {\n return false;\n }\n return el.parentElement?.closest('ax-side-menu-item') === menuHost;\n });\n }\n reparentOrphanedChildren() {\n const container = this.childrenSlot()?.nativeElement;\n if (!container) {\n return;\n }\n for (const el of this.getDirectChildElements()) {\n if (!container.contains(el)) {\n try {\n container.appendChild(el);\n }\n catch {\n // HierarchyRequestError when the node is already being moved.\n }\n }\n }\n }\n scheduleChildRefresh() {\n if (this.childRefreshScheduled) {\n return;\n }\n this.childRefreshScheduled = true;\n requestAnimationFrame(() => {\n this.childRefreshScheduled = false;\n this.reparentOrphanedChildren();\n this.updateHasChild();\n this.updateContentLabel();\n });\n }\n hasRelevantChildMutation(records) {\n for (const record of records) {\n if (this.nodeListContainsMenuStructuralNode(record.addedNodes) ||\n this.nodeListContainsMenuStructuralNode(record.removedNodes)) {\n return true;\n }\n }\n return false;\n }\n nodeListContainsMenuStructuralNode(nodes) {\n for (const node of Array.from(nodes)) {\n if (!(node instanceof Element)) {\n continue;\n }\n const tagName = node.tagName;\n if (tagName === 'AX-SIDE-MENU-ITEM' || tagName === 'AX-TITLE' || tagName === 'AX-DIVIDER') {\n return true;\n }\n if (node.querySelector?.('ax-side-menu-item,ax-title,ax-divider')) {\n return true;\n }\n }\n return false;\n }\n getItemLabel(host, instance) {\n if (instance?.text()) {\n return instance.text();\n }\n const span = host.querySelector('.ax-start-side span, .ax-inside-text span');\n if (span?.textContent?.trim()) {\n return span.textContent.trim();\n }\n return host.querySelector('ax-text')?.textContent?.trim() ?? '';\n }\n getItemIcon(host) {\n const axIcon = host.querySelector('ax-prefix ax-icon');\n if (!axIcon) {\n return undefined;\n }\n return axIcon.getAttribute('icon') ?? axIcon.querySelector('i')?.className ?? undefined;\n }\n getItemSuffix(host) {\n const text = host.querySelector('ax-suffix ax-text')?.textContent?.trim();\n return text ? { text } : undefined;\n }\n getInstanceFromElement(el) {\n const ctx = el.__axContext__;\n return ctx instanceof AXSideMenuItemComponent ? ctx : undefined;\n }\n closeSiblingCompactMenus() {\n const menuHost = this.hostElement.closest('ax-side-menu');\n if (!menuHost) {\n return;\n }\n menuHost.querySelectorAll(':scope > ax-side-menu-item').forEach((el) => {\n const sibling = this.getInstanceFromElement(el);\n if (!sibling || sibling === this) {\n return;\n }\n sibling.isCollapsed.set(true);\n sibling.childrenContextMenu()?.close();\n });\n }\n updateHasChild() {\n this.hasChild.set(this.childItems().length > 0 || this.getDirectChildElements().length > 0);\n }\n updateContentLabel() {\n if (!isPlatformBrowser(this.platformId))\n return;\n const span = this.hostElement.querySelector('.ax-start-side span, .ax-inside-text span');\n const label = span?.textContent?.trim() || this.hostElement.querySelector('ax-text')?.textContent?.trim() || '';\n if (label !== this.contentLabel()) {\n this.contentLabel.set(label);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXSideMenuItemComponent, isStandalone: true, selector: \"ax-side-menu-item\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: \"text\", publicName: \"text\", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: \"active\", publicName: \"active\", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: \"isLoading\", publicName: \"isLoading\", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: \"isCollapsed\", publicName: \"isCollapsed\", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: \"toggleOnClick\", publicName: \"toggleOnClick\", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: \"href\", publicName: \"href\", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: \"routerLink\", publicName: \"routerLink\", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActive: { classPropertyName: \"routerLinkActive\", publicName: \"routerLinkActive\", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: \"routerLinkActiveOptions\", publicName: \"routerLinkActiveOptions\", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: \"target\", publicName: \"target\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { text: \"textChange\", active: \"activeChange\", isLoading: \"isLoadingChange\", isCollapsed: \"isCollapsedChange\", onClick: \"onClick\" }, providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], queries: [{ propertyName: \"childItems\", predicate: AXSideMenuItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: \"menuItemTrigger\", first: true, predicate: [\"menuItemTrigger\"], descendants: true, isSignal: true }, { propertyName: \"childrenSlot\", first: true, predicate: [\"childrenSlot\"], descendants: true, isSignal: true }, { propertyName: \"childrenContextMenu\", first: true, predicate: [\"childrenContextMenu\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<div [axTooltip]=\\\"tooltipContent()\\\" axTooltipPlacement=\\\"end\\\" class=\\\"ax-side-menu-wrapper\\\">\\n @if (!isCompactMode()) {\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n }\\n @if (routerLink()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [routerLink]=\\\"routerLink()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n [routerLinkActive]=\\\"routerLinkActive()\\\"\\n [routerLinkActiveOptions]=\\\"routerLinkActiveOptions()\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else if (href()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [href]=\\\"href()\\\"\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else {\\n <div\\n #menuItemTrigger\\n [axRipple]\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </div>\\n }\\n\\n <div\\n class=\\\"ax-side-children\\\"\\n [class.ax-collapsed]=\\\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\\\"\\n [class.ax-empty]=\\\"!hasChild() && !isLoading()\\\"\\n >\\n @if (isLoading()) {\\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\\n }\\n <div #childrenSlot class=\\\"ax-side-children-content\\\" [hidden]=\\\"isLoading()\\\">\\n <ng-content select=\\\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\\\"></ng-content>\\n </div>\\n </div>\\n\\n @if (isCompactMode() && hasChild()) {\\n <ax-context-menu\\n #childrenContextMenu\\n class=\\\"ax-side-menu-children-context-menu\\\"\\n [openOn]=\\\"'hover'\\\"\\n [closeOn]=\\\"'leave'\\\"\\n [closeOnRouteChange]=\\\"true\\\"\\n (onItemClick)=\\\"handleContextMenuItemClick($event)\\\"\\n (onClose)=\\\"handleContextMenuClosed()\\\"\\n />\\n }\\n\\n <ng-content select=\\\"ax-divider\\\"></ng-content>\\n <ng-template #menuItemContent>\\n <div class=\\\"ax-start-side\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n @if (text()) {\\n <span>{{ text() }}</span>\\n }\\n <div class=\\\"ax-inside-text\\\">\\n <ng-content></ng-content>\\n </div>\\n </div>\\n <div class=\\\"ax-end-side\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\\n <span class=\\\"ax-icon ax-icon-chevron-right arrow-icon\\\" [class.arrow-icon-expand]=\\\"!isCollapsed()\\\"> </span>\\n }\\n @if (isLoading()) {\\n <ax-loading></ax-loading>\\n }\\n </div>\\n </ng-template>\\n</div>\\n\", dependencies: [{ kind: \"directive\", type: AXRippleDirective, selector: \"[axRipple]\", inputs: [\"axRipple\", \"axRippleColor\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i1.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"component\", type: AXContextMenuComponent, selector: \"ax-context-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"closeOnRouteChange\", \"items\", \"target\"], outputs: [\"onItemClick\", \"onOpening\", \"onClose\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-side-menu-item', inputs: ['disabled'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n AXRippleDirective,\n RouterLink,\n RouterLinkActive,\n NgTemplateOutlet,\n AXLoadingComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n AXContextMenuComponent,\n ], providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], template: \"<div [axTooltip]=\\\"tooltipContent()\\\" axTooltipPlacement=\\\"end\\\" class=\\\"ax-side-menu-wrapper\\\">\\n @if (!isCompactMode()) {\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n }\\n @if (routerLink()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [routerLink]=\\\"routerLink()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n [routerLinkActive]=\\\"routerLinkActive()\\\"\\n [routerLinkActiveOptions]=\\\"routerLinkActiveOptions()\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else if (href()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [href]=\\\"href()\\\"\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else {\\n <div\\n #menuItemTrigger\\n [axRipple]\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </div>\\n }\\n\\n <div\\n class=\\\"ax-side-children\\\"\\n [class.ax-collapsed]=\\\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\\\"\\n [class.ax-empty]=\\\"!hasChild() && !isLoading()\\\"\\n >\\n @if (isLoading()) {\\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\\n }\\n <div #childrenSlot class=\\\"ax-side-children-content\\\" [hidden]=\\\"isLoading()\\\">\\n <ng-content select=\\\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\\\"></ng-content>\\n </div>\\n </div>\\n\\n @if (isCompactMode() && hasChild()) {\\n <ax-context-menu\\n #childrenContextMenu\\n class=\\\"ax-side-menu-children-context-menu\\\"\\n [openOn]=\\\"'hover'\\\"\\n [closeOn]=\\\"'leave'\\\"\\n [closeOnRouteChange]=\\\"true\\\"\\n (onItemClick)=\\\"handleContextMenuItemClick($event)\\\"\\n (onClose)=\\\"handleContextMenuClosed()\\\"\\n />\\n }\\n\\n <ng-content select=\\\"ax-divider\\\"></ng-content>\\n <ng-template #menuItemContent>\\n <div class=\\\"ax-start-side\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n @if (text()) {\\n <span>{{ text() }}</span>\\n }\\n <div class=\\\"ax-inside-text\\\">\\n <ng-content></ng-content>\\n </div>\\n </div>\\n <div class=\\\"ax-end-side\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\\n <span class=\\\"ax-icon ax-icon-chevron-right arrow-icon\\\" [class.arrow-icon-expand]=\\\"!isCollapsed()\\\"> </span>\\n }\\n @if (isLoading()) {\\n <ax-loading></ax-loading>\\n }\\n </div>\\n </ng-template>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9zaWRlLW1lbnUvc3JjL2xpYi9zaWRlLW1lbnUtaXRlbS9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NpZGUtbWVudS9zcmMvbGliL3NpZGUtbWVudS1pdGVtL3NpZGUtbWVudS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUE0QyxNQUFNLHlCQUF5QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFXLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixVQUFVLEVBQUUs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QkFBc0IsZ01BSHRCLFNBQVMseUNBQ1QsZ0JBQWdCOzsyRkFNUCx1QkFBdUI7a0JBbkJuQyxTQUFTOytCQUNFLG1CQUFtQixVQUNyQixDQUFDLFVBQVUsQ0FBQyxtQkFFSCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixzQkFBc0I7cUJBQ3ZCLGFBQ1UsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyx5QkFBeUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGlja0V2ZW50LCBBWENvbXBvbmVudCwgQVhSaXBwbGVEaXJlY3RpdmUsIE1YSW50ZXJhY3RpdmVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhDb250ZXh0TWVudUNvbXBvbmVudCwgQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCwgQVhNZW51SXRlbSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCwgQVhQb2ludCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIGlzUGxhdGZvcm1Ccm93c2VyLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgRGVzdHJveVJlZixcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVJdGVtQ2xpY2tFdmVudCBleHRlbmRzIEFYQ2xpY2tFdmVudCB7XG4gIGhhbmRsZWQgPSBmYWxzZTtcbn1cblxuLyoqIFJvdXRlcyBjb250ZXh0LW1lbnUgY2xpY2tzIGJhY2sgdG8gdGhlIG1hdGNoaW5nIGBheC1zaWRlLW1lbnUtaXRlbWAuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYU2lkZU1lbnVDb250ZXh0TWVudUl0ZW1EYXRhIHtcbiAgc2lkZU1lbnVJdGVtOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2lkZS1tZW51LWl0ZW0nLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBBWFJpcHBsZURpcmVjdGl2ZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBWExvYWRpbmdDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gICAgQVhUb29sdGlwTW9kdWxlLFxuICAgIEFYQ29udGV4dE1lbnVDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTaWRlTWVudUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBNWEludGVyYWN0aXZlQ29tcG9uZW50IHtcbiAgdGV4dCA9IG1vZGVsKCcnKTtcbiAgYWN0aXZlID0gbW9kZWwoZmFsc2UpO1xuICBpc0xvYWRpbmcgPSBtb2RlbChmYWxzZSk7XG4gIGlzQ29sbGFwc2VkID0gbW9kZWwodHJ1ZSk7XG4gIG9uQ2xpY2sgPSBvdXRwdXQ8QVhTaWRlTWVudUl0ZW1DbGlja0V2ZW50PigpO1xuXG4gIHJlYWRvbmx5IHRvZ2dsZU9uQ2xpY2sgPSBpbnB1dCh0cnVlKTtcbiAgcmVhZG9ubHkgaHJlZiA9IGlucHV0PHN0cmluZyB8IG51bGw+KCk7XG4gIHJlYWRvbmx5IHJvdXRlckxpbmsgPSBpbnB1dDxzdHJpbmcgfCBhbnlbXSB8IFVybFRyZWUgfCBudWxsPigpO1xuICByZWFkb25seSByb3V0ZXJMaW5rQWN0aXZlID0gaW5wdXQ8c3RyaW5nIHwgc3RyaW5nW10+KCdheC1zdGF0ZS1hY3RpdmUnKTtcbiAgcmVhZG9ubHkgcm91dGVyTGlua0FjdGl2ZU9wdGlvbnMgPSBpbnB1dDx7IGV4YWN0OiBib29sZWFuIH0gfCBJc0FjdGl2ZU1hdGNoT3B0aW9ucz4oeyBleGFjdDogZmFsc2UgfSk7XG4gIHJlYWRvbmx5IHRhcmdldCA9IGlucHV0PCdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJz4oJ19zZWxmJyk7XG5cbiAgcHJvdGVjdGVkIG1lbnVJdGVtVHJpZ2dlciA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ21lbnVJdGVtVHJpZ2dlcicpO1xuICBwcm90ZWN0ZWQgaGFzQ2hpbGQgPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgaXNDb21wYWN0TW9kZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubWVudU1vZGUoKSA9PT0gJ2NvbXBhY3QnKTtcblxuICAvKiogVG9wLWxldmVsIHJhaWwgZW50cnkgaW4gY29tcGFjdCBtb2RlIChvcGVucyB0aGUgZmx5b3V0IGNvbnRleHQgbWVudSkuICovXG4gIHByb3RlY3RlZCBpc0ZpcnN0TGV2ZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmlzQ29tcGFjdE1vZGUoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMuaG9zdEVsZW1lbnQucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnLmF4LXNpZGUtY2hpbGRyZW4tY29udGVudCcpO1xuICB9KTtcblxuICAvKiogVG9vbHRpcCB0ZXh0IGZvciBmaXJzdC1sZXZlbCBpdGVtcyBpbiBjb21wYWN0IG1vZGUgb25seS4gKi9cbiAgcHJvdGVjdGVkIHRvb2x0aXBDb250ZW50ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy5pc0ZpcnN0TGV2ZWwoKSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMudGV4dCgpLnRyaW0oKSB8fCB0aGlzLmNvbnRlbnRMYWJlbCgpLnRyaW0oKSB8fCBudWxsO1xuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVsZW0gPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWVudU1vZGUgPSBzaWduYWw8J2Z1bGwnIHwgJ2NvbXBhY3QnPignZnVsbCcpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnRMYWJlbCA9IHNpZ25hbCgnJyk7XG5cbiAgcHJpdmF0ZSBjaGlsZE9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2hpbGRSZWZyZXNoU2NoZWR1bGVkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpbGRJdGVtcyA9IGNvbnRlbnRDaGlsZHJlbihBWFNpZGVNZW51SXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlsZHJlblNsb3QgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdjaGlsZHJlblNsb3QnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlsZHJlbkNvbnRleHRNZW51ID0gdmlld0NoaWxkPEFYQ29udGV4dE1lbnVDb21wb25lbnQ+KCdjaGlsZHJlbkNvbnRleHRNZW51Jyk7XG5cbiAgcHJpdmF0ZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gICNjaGlsZENoZWNrRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGhpcy5jaGlsZEl0ZW1zKCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLnVwZGF0ZUhhc0NoaWxkKCk7XG4gICAgfVxuICB9KTtcblxuICAjaW5pdENoaWxkcmVuID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZXBhcmVudE9ycGhhbmVkQ2hpbGRyZW4oKTtcbiAgICB0aGlzLnVwZGF0ZUhhc0NoaWxkKCk7XG4gICAgdGhpcy51cGRhdGVDb250ZW50TGFiZWwoKTtcbiAgICB0aGlzLmNoaWxkT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigocmVjb3JkcykgPT4ge1xuICAgICAgaWYgKCF0aGlzLmhhc1JlbGV2YW50Q2hpbGRNdXRhdGlvbihyZWNvcmRzKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNjaGVkdWxlQ2hpbGRSZWZyZXNoKCk7XG4gICAgfSk7XG4gICAgdGhpcy5jaGlsZE9ic2VydmVyLm9ic2VydmUodGhpcy5ob3N0RWxlbWVudCwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0aGlzLmNoaWxkT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSk7XG4gIH0pO1xuXG4gICNjb250ZXh0TWVudVN5bmMgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICghdGhpcy5pc0NvbXBhY3RNb2RlKCkgfHwgIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgIXRoaXMuaXNGaXJzdExldmVsKCkgfHwgIXRoaXMuaGFzQ2hpbGQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnUgPSB0aGlzLmNoaWxkcmVuQ29udGV4dE1lbnUoKTtcbiAgICBpZiAoIW1lbnUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCgpKSB7XG4gICAgICBtZW51LmNsb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2VTaWJsaW5nQ29tcGFjdE1lbnVzKCk7XG4gICAgICB0aGlzLm9wZW5Db21wYWN0Q29udGV4dE1lbnUobWVudSk7XG4gICAgfVxuICB9KTtcblxuICBzeW5jTWVudU1vZGUobW9kZTogJ2Z1bGwnIHwgJ2NvbXBhY3QnKSB7XG4gICAgaWYgKHRoaXMubWVudU1vZGUoKSA9PT0gbW9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm1lbnVNb2RlLnNldChtb2RlKTtcbiAgICB0aGlzLmNoaWxkcmVuQ29udGV4dE1lbnUoKT8uY2xvc2UoKTtcbiAgICBpZiAobW9kZSA9PT0gJ2NvbXBhY3QnKSB7XG4gICAgICB0aGlzLmlzQ29sbGFwc2VkLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKiogQnVpbGRzIHRoZSBjYXNjYWRpbmcgYEFYTWVudUl0ZW1gIHRyZWUgdXNlZCBieSB0aGUgY29tcGFjdC1tb2RlIGNvbnRleHQgbWVudS4gKi9cbiAgYnVpbGRNZW51SXRlbXNGcm9tQ2hpbGRyZW4oKTogQVhNZW51SXRlbVtdIHtcbiAgICB0aGlzLnJlcGFyZW50T3JwaGFuZWRDaGlsZHJlbigpO1xuXG4gICAgY29uc3Qgc2xvdCA9IHRoaXMuY2hpbGRyZW5TbG90KCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgaXRlbXNGcm9tU2xvdCA9IHNsb3QgPyB0aGlzLm1hcFNsb3RDaGlsZHJlblRvTWVudUl0ZW1zKHNsb3QpIDogW107XG5cbiAgICBpZiAoaXRlbXNGcm9tU2xvdC5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaXRlbXNGcm9tU2xvdDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXREaXJlY3RDaGlsZEVsZW1lbnRzKCkubWFwKChlbCkgPT4gdGhpcy50b01lbnVJdGVtKGVsKSk7XG4gIH1cblxuICBhY3RpdmF0ZUZyb21Db250ZXh0TWVudShuYXRpdmVFdmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaXNMb2FkaW5nKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdHJpZ2dlciA9IHRoaXMubWVudUl0ZW1UcmlnZ2VyKCkubmF0aXZlRWxlbWVudDtcbiAgICBpZiAodHJpZ2dlciBpbnN0YW5jZW9mIEhUTUxBbmNob3JFbGVtZW50KSB7XG4gICAgICB0cmlnZ2VyLmNsaWNrKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgICBuYXRpdmVFdmVudCxcbiAgICAgIGhhbmRsZWQ6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLmlzQ29tcGFjdE1vZGUoKSAmJiAoIXRoaXMuaGFzQ2hpbGQoKSB8fCAhdGhpcy5pc0ZpcnN0TGV2ZWwoKSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0NvbGxhcHNlZC51cGRhdGUoKGNvbGxhcHNlZCkgPT4gIWNvbGxhcHNlZCk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaXNDb2xsYXBzZWQuc2V0KHRydWUpO1xuICAgIHRoaXMuY2hpbGRyZW5Db250ZXh0TWVudSgpPy5jbG9zZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbnRleHRNZW51SXRlbUNsaWNrKGV2ZW50OiBBWENvbnRleHRNZW51SXRlbXNDbGlja0V2ZW50KSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSAoZXZlbnQuaXRlbS5kYXRhIGFzIEFYU2lkZU1lbnVDb250ZXh0TWVudUl0ZW1EYXRhIHwgdW5kZWZpbmVkKT8uc2lkZU1lbnVJdGVtO1xuICAgIGlmICghaW5zdGFuY2UgfHwgaW5zdGFuY2UuaGFzQ2hpbGQoKSkgcmV0dXJuO1xuICAgIGluc3RhbmNlLmFjdGl2YXRlRnJvbUNvbnRleHRNZW51KGV2ZW50Lm5hdGl2ZUV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb250ZXh0TWVudUNsb3NlZCgpIHtcbiAgICBpZiAoIXRoaXMuaXNDb2xsYXBzZWQoKSkgdGhpcy5pc0NvbGxhcHNlZC5zZXQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2tFdmVudChlOiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc0xvYWRpbmcoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZXZlbnQ6IEFYU2lkZU1lbnVJdGVtQ2xpY2tFdmVudCA9IHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICAgIGhhbmRsZWQ6IGZhbHNlLFxuICAgIH07XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIGlmICghZXZlbnQuaGFuZGxlZCAmJiB0aGlzLnRvZ2dsZU9uQ2xpY2soKSAmJiAodGhpcy5oYXNDaGlsZCgpIHx8ICF0aGlzLmlzQ29tcGFjdE1vZGUoKSkpIHRoaXMudG9nZ2xlKCk7XG5cbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuQ29tcGFjdENvbnRleHRNZW51KG1lbnU6IEFYQ29udGV4dE1lbnVDb21wb25lbnQpIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuYnVpbGRNZW51SXRlbXNGcm9tQ2hpbGRyZW4oKTtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgbWVudS5zaG93QXQodGhpcy5nZXRDb250ZXh0TWVudUFuY2hvclBvaW50KCksIHRoaXMubWVudUl0ZW1UcmlnZ2VyKCkubmF0aXZlRWxlbWVudCwge1xuICAgICAgc2VuZGVyOiBtZW51LFxuICAgICAgY2FuY2VsZWQ6IGZhbHNlLFxuICAgICAgdGFyZ2V0RWxlbWVudDogdGhpcy5tZW51SXRlbVRyaWdnZXIoKS5uYXRpdmVFbGVtZW50LFxuICAgICAgaXRlbXMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRleHRNZW51QW5jaG9yUG9pbnQoKTogQVhQb2ludCB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMubWVudUl0ZW1UcmlnZ2VyKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBvZmZzZXQgPSA4O1xuICAgIGlmIChBWEh0bWxVdGlsLmlzUnRsKHRoaXMuaG9zdEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4geyB4OiByZWN0LmxlZnQgLSBvZmZzZXQsIHk6IHJlY3QudG9wIH07XG4gICAgfVxuICAgIHJldHVybiB7IHg6IHJlY3QucmlnaHQgKyBvZmZzZXQsIHk6IHJlY3QudG9wIH07XG4gIH1cblxuICBwcml2YXRlIG1hcFNsb3RDaGlsZHJlblRvTWVudUl0ZW1zKHNsb3Q6IEhUTUxFbGVtZW50KTogQVhNZW51SXRlbVtdIHtcbiAgICBjb25zdCBpdGVtczogQVhNZW51SXRlbVtdID0gW107XG4gICAgbGV0IHBlbmRpbmdHcm91cFRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIEFycmF5LmZyb20oc2xvdC5jaGlsZHJlbikpIHtcbiAgICAgIGlmIChjaGlsZC50YWdOYW1lID09PSAnQVgtVElUTEUnKSB7XG4gICAgICAgIHBlbmRpbmdHcm91cFRpdGxlID0gY2hpbGQudGV4dENvbnRlbnQ/LnRyaW0oKSB8fCB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGNoaWxkLnRhZ05hbWUgPT09ICdBWC1ESVZJREVSJykge1xuICAgICAgICBpZiAoaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGl0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdID0geyAuLi5pdGVtc1tpdGVtcy5sZW5ndGggLSAxXSwgYnJlYWs6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGlsZC50YWdOYW1lICE9PSAnQVgtU0lERS1NRU5VLUlURU0nKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtZW51SXRlbSA9IHRoaXMudG9NZW51SXRlbShjaGlsZCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICBpZiAocGVuZGluZ0dyb3VwVGl0bGUpIHtcbiAgICAgICAgbWVudUl0ZW0uZ3JvdXAgPSB7IHRpdGxlOiBwZW5kaW5nR3JvdXBUaXRsZSB9O1xuICAgICAgICBwZW5kaW5nR3JvdXBUaXRsZSA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGl0ZW1zLnB1c2gobWVudUl0ZW0pO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgdG9NZW51SXRlbShob3N0OiBIVE1MRWxlbWVudCk6IEFYTWVudUl0ZW0ge1xuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5nZXRJbnN0YW5jZUZyb21FbGVtZW50KGhvc3QpO1xuICAgIGNvbnN0IGl0ZW06IEFYTWVudUl0ZW0gPSB7XG4gICAgICB0ZXh0OiB0aGlzLmdldEl0ZW1MYWJlbChob3N0LCBpbnN0YW5jZSksXG4gICAgICBkaXNhYmxlZDogaW5zdGFuY2U/LmRpc2FibGVkID8/IGZhbHNlLFxuICAgICAgaWNvbjogdGhpcy5nZXRJdGVtSWNvbihob3N0KSxcbiAgICAgIHN1ZmZpeDogdGhpcy5nZXRJdGVtU3VmZml4KGhvc3QpLFxuICAgIH07XG5cbiAgICBpZiAoaW5zdGFuY2UpIHtcbiAgICAgIGl0ZW0uZGF0YSA9IHsgc2lkZU1lbnVJdGVtOiBpbnN0YW5jZSB9IHNhdGlzZmllcyBBWFNpZGVNZW51Q29udGV4dE1lbnVJdGVtRGF0YTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNOZXN0ZWRDaGlsZHJlbihob3N0LCBpbnN0YW5jZSkpIHtcbiAgICAgIGl0ZW0uaXRlbXMgPVxuICAgICAgICBpbnN0YW5jZT8uYnVpbGRNZW51SXRlbXNGcm9tQ2hpbGRyZW4oKSA/PyB0aGlzLmdldERpcmVjdENoaWxkRWxlbWVudHMoaG9zdCkubWFwKChlbCkgPT4gdGhpcy50b01lbnVJdGVtKGVsKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBwcml2YXRlIGhhc05lc3RlZENoaWxkcmVuKGhvc3Q6IEhUTUxFbGVtZW50LCBpbnN0YW5jZT86IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChpbnN0YW5jZT8uaGFzQ2hpbGQoKSA/PyBmYWxzZSkgfHwgdGhpcy5nZXREaXJlY3RDaGlsZEVsZW1lbnRzKGhvc3QpLmxlbmd0aCA+IDA7XG4gIH1cblxuICAvKiogRGlyZWN0IGBheC1zaWRlLW1lbnUtaXRlbWAgY2hpbGRyZW4gb2YgYG1lbnVIb3N0YCAoZGVmYXVsdHMgdG8gdGhpcyBpdGVtKS4gKi9cbiAgcHJpdmF0ZSBnZXREaXJlY3RDaGlsZEVsZW1lbnRzKG1lbnVIb3N0OiBIVE1MRWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShtZW51SG9zdC5xdWVyeVNlbGVjdG9yQWxsKCdheC1zaWRlLW1lbnUtaXRlbScpKS5maWx0ZXIoKGVsKSA9PiB7XG4gICAgICBpZiAoZWwgPT09IG1lbnVIb3N0KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbC5wYXJlbnRFbGVtZW50Py5jbG9zZXN0KCdheC1zaWRlLW1lbnUtaXRlbScpID09PSBtZW51SG9zdDtcbiAgICB9KSBhcyBIVE1MRWxlbWVudFtdO1xuICB9XG5cbiAgcHJpdmF0ZSByZXBhcmVudE9ycGhhbmVkQ2hpbGRyZW4oKSB7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jaGlsZHJlblNsb3QoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZWwgb2YgdGhpcy5nZXREaXJlY3RDaGlsZEVsZW1lbnRzKCkpIHtcbiAgICAgIGlmICghY29udGFpbmVyLmNvbnRhaW5zKGVsKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlbCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIEhpZXJhcmNoeVJlcXVlc3RFcnJvciB3aGVuIHRoZSBub2RlIGlzIGFscmVhZHkgYmVpbmcgbW92ZWQuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlQ2hpbGRSZWZyZXNoKCkge1xuICAgIGlmICh0aGlzLmNoaWxkUmVmcmVzaFNjaGVkdWxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoaWxkUmVmcmVzaFNjaGVkdWxlZCA9IHRydWU7XG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuY2hpbGRSZWZyZXNoU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnJlcGFyZW50T3JwaGFuZWRDaGlsZHJlbigpO1xuICAgICAgdGhpcy51cGRhdGVIYXNDaGlsZCgpO1xuICAgICAgdGhpcy51cGRhdGVDb250ZW50TGFiZWwoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzUmVsZXZhbnRDaGlsZE11dGF0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10pOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubm9kZUxpc3RDb250YWluc01lbnVTdHJ1Y3R1cmFsTm9kZShyZWNvcmQuYWRkZWROb2RlcykgfHxcbiAgICAgICAgdGhpcy5ub2RlTGlzdENvbnRhaW5zTWVudVN0cnVjdHVyYWxOb2RlKHJlY29yZC5yZW1vdmVkTm9kZXMpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbm9kZUxpc3RDb250YWluc01lbnVTdHJ1Y3R1cmFsTm9kZShub2RlczogTm9kZUxpc3QpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgQXJyYXkuZnJvbShub2RlcykpIHtcbiAgICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhZ05hbWUgPSBub2RlLnRhZ05hbWU7XG4gICAgICBpZiAodGFnTmFtZSA9PT0gJ0FYLVNJREUtTUVOVS1JVEVNJyB8fCB0YWdOYW1lID09PSAnQVgtVElUTEUnIHx8IHRhZ05hbWUgPT09ICdBWC1ESVZJREVSJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlLnF1ZXJ5U2VsZWN0b3I/LignYXgtc2lkZS1tZW51LWl0ZW0sYXgtdGl0bGUsYXgtZGl2aWRlcicpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1MYWJlbChob3N0OiBIVE1MRWxlbWVudCwgaW5zdGFuY2U/OiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCk6IHN0cmluZyB7XG4gICAgaWYgKGluc3RhbmNlPy50ZXh0KCkpIHtcbiAgICAgIHJldHVybiBpbnN0YW5jZS50ZXh0KCk7XG4gICAgfVxuICAgIGNvbnN0IHNwYW4gPSBob3N0LnF1ZXJ5U2VsZWN0b3IoJy5heC1zdGFydC1zaWRlIHNwYW4sIC5heC1pbnNpZGUtdGV4dCBzcGFuJyk7XG4gICAgaWYgKHNwYW4/LnRleHRDb250ZW50Py50cmltKCkpIHtcbiAgICAgIHJldHVybiBzcGFuLnRleHRDb250ZW50LnRyaW0oKTtcbiAgICB9XG4gICAgcmV0dXJuIGhvc3QucXVlcnlTZWxlY3RvcignYXgtdGV4dCcpPy50ZXh0Q29udGVudD8udHJpbSgpID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtSWNvbihob3N0OiBIVE1MRWxlbWVudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXhJY29uID0gaG9zdC5xdWVyeVNlbGVjdG9yKCdheC1wcmVmaXggYXgtaWNvbicpO1xuICAgIGlmICghYXhJY29uKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gYXhJY29uLmdldEF0dHJpYnV0ZSgnaWNvbicpID8/IGF4SWNvbi5xdWVyeVNlbGVjdG9yKCdpJyk/LmNsYXNzTmFtZSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1TdWZmaXgoaG9zdDogSFRNTEVsZW1lbnQpOiB7IHRleHQ6IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0ZXh0ID0gaG9zdC5xdWVyeVNlbGVjdG9yKCdheC1zdWZmaXggYXgtdGV4dCcpPy50ZXh0Q29udGVudD8udHJpbSgpO1xuICAgIHJldHVybiB0ZXh0ID8geyB0ZXh0IH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEluc3RhbmNlRnJvbUVsZW1lbnQoZWw6IEVsZW1lbnQpOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY3R4ID0gKGVsIGFzIHVua25vd24gYXMgeyBfX2F4Q29udGV4dF9fPzogdW5rbm93biB9KS5fX2F4Q29udGV4dF9fO1xuICAgIHJldHVybiBjdHggaW5zdGFuY2VvZiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCA/IGN0eCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VTaWJsaW5nQ29tcGFjdE1lbnVzKCkge1xuICAgIGNvbnN0IG1lbnVIb3N0ID0gdGhpcy5ob3N0RWxlbWVudC5jbG9zZXN0KCdheC1zaWRlLW1lbnUnKTtcbiAgICBpZiAoIW1lbnVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbWVudUhvc3QucXVlcnlTZWxlY3RvckFsbCgnOnNjb3BlID4gYXgtc2lkZS1tZW51LWl0ZW0nKS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgY29uc3Qgc2libGluZyA9IHRoaXMuZ2V0SW5zdGFuY2VGcm9tRWxlbWVudChlbCk7XG4gICAgICBpZiAoIXNpYmxpbmcgfHwgc2libGluZyA9PT0gdGhpcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzaWJsaW5nLmlzQ29sbGFwc2VkLnNldCh0cnVlKTtcbiAgICAgIHNpYmxpbmcuY2hpbGRyZW5Db250ZXh0TWVudSgpPy5jbG9zZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIYXNDaGlsZCgpIHtcbiAgICB0aGlzLmhhc0NoaWxkLnNldCh0aGlzLmNoaWxkSXRlbXMoKS5sZW5ndGggPiAwIHx8IHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cygpLmxlbmd0aCA+IDApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250ZW50TGFiZWwoKSB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgY29uc3Qgc3BhbiA9IHRoaXMuaG9zdEVsZW1lbnQucXVlcnlTZWxlY3RvcignLmF4LXN0YXJ0LXNpZGUgc3BhbiwgLmF4LWluc2lkZS10ZXh0IHNwYW4nKTtcbiAgICBjb25zdCBsYWJlbCA9IHNwYW4/LnRleHRDb250ZW50Py50cmltKCkgfHwgdGhpcy5ob3N0RWxlbWVudC5xdWVyeVNlbGVjdG9yKCdheC10ZXh0Jyk/LnRleHRDb250ZW50Py50cmltKCkgfHwgJyc7XG4gICAgaWYgKGxhYmVsICE9PSB0aGlzLmNvbnRlbnRMYWJlbCgpKSB7XG4gICAgICB0aGlzLmNvbnRlbnRMYWJlbC5zZXQobGFiZWwpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBbYXhUb29sdGlwXT1cInRvb2x0aXBDb250ZW50KClcIiBheFRvb2x0aXBQbGFjZW1lbnQ9XCJlbmRcIiBjbGFzcz1cImF4LXNpZGUtbWVudS13cmFwcGVyXCI+XG4gIEBpZiAoIWlzQ29tcGFjdE1vZGUoKSkge1xuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXRpdGxlXCI+PC9uZy1jb250ZW50PlxuICB9XG4gIEBpZiAocm91dGVyTGluaygpKSB7XG4gICAgPGFcbiAgICAgICNtZW51SXRlbVRyaWdnZXJcbiAgICAgIFtheFJpcHBsZV1cbiAgICAgIFt0YXJnZXRdPVwidGFyZ2V0KClcIlxuICAgICAgY2xhc3M9XCJheC1zaWRlLWl0ZW1cIlxuICAgICAgW3JvdXRlckxpbmtdPVwicm91dGVyTGluaygpXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVDbGlja0V2ZW50KCRldmVudClcIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cInJvdXRlckxpbmtBY3RpdmUoKVwiXG4gICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwicm91dGVyTGlua0FjdGl2ZU9wdGlvbnMoKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG4gIH0gQGVsc2UgaWYgKGhyZWYoKSkge1xuICAgIDxhXG4gICAgICAjbWVudUl0ZW1UcmlnZ2VyXG4gICAgICBbYXhSaXBwbGVdXG4gICAgICBbaHJlZl09XCJocmVmKClcIlxuICAgICAgW3RhcmdldF09XCJ0YXJnZXQoKVwiXG4gICAgICBjbGFzcz1cImF4LXNpZGUtaXRlbVwiXG4gICAgICBbY2xhc3MuYXgtc3RhdGUtYWN0aXZlXT1cImFjdGl2ZSgpXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVDbGlja0V2ZW50KCRldmVudClcIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYT5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdlxuICAgICAgI21lbnVJdGVtVHJpZ2dlclxuICAgICAgW2F4UmlwcGxlXVxuICAgICAgY2xhc3M9XCJheC1zaWRlLWl0ZW1cIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWFjdGl2ZV09XCJhY3RpdmUoKVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2tFdmVudCgkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImF4LXNpZGUtY2hpbGRyZW5cIlxuICAgIFtjbGFzcy5heC1jb2xsYXBzZWRdPVwiKCFpc0NvbXBhY3RNb2RlKCkgJiYgaXNDb2xsYXBzZWQoKSkgfHwgKGlzQ29tcGFjdE1vZGUoKSAmJiBpc0ZpcnN0TGV2ZWwoKSlcIlxuICAgIFtjbGFzcy5heC1lbXB0eV09XCIhaGFzQ2hpbGQoKSAmJiAhaXNMb2FkaW5nKClcIlxuICA+XG4gICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgPHA+e3sgJ0BhY29yZXg6Y29tbW9uLnN0YXR1cy5sb2FkaW5nJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9wPlxuICAgIH1cbiAgICA8ZGl2ICNjaGlsZHJlblNsb3QgY2xhc3M9XCJheC1zaWRlLWNoaWxkcmVuLWNvbnRlbnRcIiBbaGlkZGVuXT1cImlzTG9hZGluZygpXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zaWRlLW1lbnUtaXRlbSwgbmctY29udGFpbmVyLCBbbmdUZW1wbGF0ZU91dGxldF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIEBpZiAoaXNDb21wYWN0TW9kZSgpICYmIGhhc0NoaWxkKCkpIHtcbiAgICA8YXgtY29udGV4dC1tZW51XG4gICAgICAjY2hpbGRyZW5Db250ZXh0TWVudVxuICAgICAgY2xhc3M9XCJheC1zaWRlLW1lbnUtY2hpbGRyZW4tY29udGV4dC1tZW51XCJcbiAgICAgIFtvcGVuT25dPVwiJ2hvdmVyJ1wiXG4gICAgICBbY2xvc2VPbl09XCInbGVhdmUnXCJcbiAgICAgIFtjbG9zZU9uUm91dGVDaGFuZ2VdPVwidHJ1ZVwiXG4gICAgICAob25JdGVtQ2xpY2spPVwiaGFuZGxlQ29udGV4dE1lbnVJdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAob25DbG9zZSk9XCJoYW5kbGVDb250ZXh0TWVudUNsb3NlZCgpXCJcbiAgICAvPlxuICB9XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZGl2aWRlclwiPjwvbmctY29udGVudD5cbiAgPG5nLXRlbXBsYXRlICNtZW51SXRlbUNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImF4LXN0YXJ0LXNpZGVcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXByZWZpeFwiPjwvbmctY29udGVudD5cbiAgICAgIEBpZiAodGV4dCgpKSB7XG4gICAgICAgIDxzcGFuPnt7IHRleHQoKSB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1pbnNpZGUtdGV4dFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZW5kLXNpZGVcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPjwvbmctY29udGVudD5cbiAgICAgIEBpZiAoaGFzQ2hpbGQoKSAmJiAhaXNMb2FkaW5nKCkgJiYgdG9nZ2xlT25DbGljaygpICYmICFpc0ZpcnN0TGV2ZWwoKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1jaGV2cm9uLXJpZ2h0IGFycm93LWljb25cIiBbY2xhc3MuYXJyb3ctaWNvbi1leHBhbmRdPVwiIWlzQ29sbGFwc2VkKClcIj4gPC9zcGFuPlxuICAgICAgfVxuICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, DestroyRef, effect, ElementRef, HostBinding, inject, input, model, PLATFORM_ID, signal, ViewEncapsulation, } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { AXSideMenuBase } from './side-menu-base';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @category\n * A component for displaying a side menu with customizable content.\n */\nexport class AXSideMenuComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.items = model(...(ngDevMode ? [undefined, { debugName: \"items\" }] : []));\n this.look = input('pills', ...(ngDevMode ? [{ debugName: \"look\" }] : []));\n this.location = input('start', ...(ngDevMode ? [{ debugName: \"location\" }] : []));\n this.mode = input('full', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.elementRef = inject(ElementRef);\n /**\n * All `ax-side-menu-item` instances discovered by walking the host DOM.\n *\n * We use DOM discovery (instead of `contentChildren`) because Angular content\n * queries do **not** traverse embedded views created by `ngTemplateOutlet`,\n * and the `AXSideMenuBase` DI token is not reachable from inside those views\n * either (they inherit injection from the template's declaration site, not\n * the insertion site). Walking the DOM works for direct projection,\n * structural directives, and recursive `ngTemplateOutlet`-based templates\n * uniformly.\n */\n this._items = signal([], ...(ngDevMode ? [{ debugName: \"_items\" }] : []));\n /** Read-only signal exposing every discovered `ax-side-menu-item` instance. */\n this.children = this._items.asReadonly();\n this.platformId = inject(PLATFORM_ID);\n this.destroyRef = inject(DestroyRef);\n this.hostElement = this.elementRef.nativeElement;\n this.domRefreshScheduled = false;\n this.domRefreshObserver = null;\n this.#init = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId))\n return;\n this.refreshItemsFromDom();\n this.domRefreshObserver = new MutationObserver((records) => {\n if (!this.hasRelevantMenuItemMutation(records)) {\n return;\n }\n this.scheduleDomRefresh();\n });\n this.domRefreshObserver.observe(this.elementRef.nativeElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => this.domRefreshObserver?.disconnect());\n });\n /** Push full/compact mode to every menu item whenever mode changes. */\n this.#syncItemMode = effect(() => {\n const mode = this.mode();\n this._items().forEach((item) => item.syncMenuMode(mode));\n }, ...(ngDevMode ? [{ debugName: \"#syncItemMode\" }] : []));\n }\n #init;\n /** Push full/compact mode to every menu item whenever mode changes. */\n #syncItemMode;\n /**\n * Walks the host DOM to discover every nested `ax-side-menu-item`, looks up\n * the component instance through the `__axContext__` property that\n * `MXBaseComponent.ngOnInit` attaches to each host element, and updates the\n * internal items signal and `.first-level` CSS class accordingly.\n *\n * Triggered both initially and from a `MutationObserver` so recursive\n * templates that add/remove items at runtime stay in sync.\n */\n refreshItemsFromDom() {\n const host = this.elementRef.nativeElement;\n const elements = host.querySelectorAll('ax-side-menu-item');\n const items = [];\n elements.forEach((el) => {\n const instance = el.__axContext__;\n if (instance instanceof AXSideMenuItemComponent) {\n items.push(instance);\n }\n });\n const current = this._items();\n const changed = current.length !== items.length || current.some((it, i) => it !== items[i]);\n if (changed) {\n this._items.set(items);\n }\n this.addFirstLevelClass();\n }\n scheduleDomRefresh() {\n if (this.domRefreshScheduled) {\n return;\n }\n this.domRefreshScheduled = true;\n // Batch multiple rapid mutations (e.g., large template updates or overlays closing)\n // into a single refresh to prevent long main-thread stalls.\n requestAnimationFrame(() => {\n this.domRefreshScheduled = false;\n this.refreshItemsFromDom();\n });\n }\n hasRelevantMenuItemMutation(records) {\n for (const record of records) {\n if (this.nodeListContainsMenuItem(record.addedNodes) || this.nodeListContainsMenuItem(record.removedNodes)) {\n return true;\n }\n }\n return false;\n }\n nodeListContainsMenuItem(nodes) {\n for (const node of Array.from(nodes)) {\n if (!(node instanceof Element)) {\n continue;\n }\n if (node.tagName === 'AX-SIDE-MENU-ITEM') {\n return true;\n }\n if (node.querySelector?.('ax-side-menu-item')) {\n return true;\n }\n }\n return false;\n }\n addFirstLevelClass() {\n const allChildren = this._items();\n allChildren.forEach((item) => item.getHostElement().querySelector('.ax-side-item')?.classList.remove('first-level'));\n allChildren\n .filter((item) => {\n const itemElement = item.getHostElement();\n return (this.hostElement.contains(itemElement) && !itemElement.parentElement?.closest('.ax-side-children-content'));\n })\n .forEach((item) => item.getHostElement().querySelector('.ax-side-item')?.classList.add('first-level'));\n }\n /** @ignore */\n get __hostClass() {\n return [`ax-look-${this.look()}`, `ax-location-${this.location()}`, `ax-mode-${this.mode()}`];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXSideMenuComponent, isStandalone: true, selector: \"ax-side-menu\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: true, isRequired: false, transformFunction: null }, location: { classPropertyName: \"location\", publicName: \"location\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: \"itemsChange\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [\n { provide: AXComponent, useExisting: AXSideMenuComponent },\n { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },\n ], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n<ng-template #Recursion let-item>\\n @if (item.title) {\\n <ax-title>{{ item.title }}</ax-title>\\n }\\n @if (item.routerLink) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [target]=\\\"item.target\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [routerLink]=\\\"item.routerLink\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n [routerLinkActive]=\\\"item.routerLinkActive\\\"\\n [routerLinkActiveOptions]=\\\"item.routerLinkActiveOptions\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else if (item.href) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [href]=\\\"item.href\\\"\\n [target]=\\\"item.target\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n }\\n\\n <ng-template #sideMenuItemContent>\\n <ax-prefix>\\n @if (item.icon) {\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n }\\n </ax-prefix>\\n @if (item.data) {\\n <ax-text>{{ item.data }}</ax-text>\\n }\\n @if (item.suffixText) {\\n <ax-suffix>\\n <ax-text>{{ item.suffixText }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ng-template>\\n</ng-template>\\n\", styles: [\":root{--ax-comp-side-menu-indicator-size: 2px}ax-side-menu{display:flex;width:100%;flex-direction:column;gap:.5rem;color:inherit;font-size:.875rem;line-height:1.25rem;-webkit-user-select:none;user-select:none}ax-side-menu>ax-title{display:block;margin-block:.5rem;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{display:block;margin-block:.5rem;margin-top:.5rem;padding-inline:.75rem;padding-bottom:.25rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{display:block;width:100%;height:1px;margin-block:.25rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-side-menu ax-side-menu-item .ax-side-item{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;font-size:inherit;font-weight:500}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;transition-property:rotate;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{display:grid;grid-template-rows:1fr;padding-inline-start:1.25rem;opacity:1;transition-property:grid-template-rows,opacity;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{grid-template-rows:0fr;opacity:0}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:.5rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}ax-side-menu ax-side-menu-item .ax-side-children-content{display:flex;flex-direction:column;gap:.5rem}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:0}ax-side-menu.ax-look-with-line .ax-ripple,ax-side-menu.ax-look-with-line-color .ax-ripple{display:none}ax-side-menu.ax-look-with-line.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-start .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-item:before{inset-inline-start:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-end .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-item:before{inset-inline-end:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line ax-side-menu-item,ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line .ax-side-item,ax-side-menu.ax-look-with-line-color ax-side-menu-item,ax-side-menu.ax-look-with-line-color .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-item{position:relative}ax-side-menu.ax-look-with-line ax-side-menu-item:before,ax-side-menu.ax-look-with-line .ax-side-children:before,ax-side-menu.ax-look-with-line .ax-side-item:before,ax-side-menu.ax-look-with-line-color ax-side-menu-item:before,ax-side-menu.ax-look-with-line-color .ax-side-children:before,ax-side-menu.ax-look-with-line-color .ax-side-item:before{position:absolute;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface));content:\\\"\\\";transition-property:width;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu.ax-look-with-line .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before{position:absolute;width:var(--ax-comp-side-menu-indicator-size, 2px);height:100%;background-color:rgba(var(--ax-comp-side-menu-indicator-active-color, var(--ax-comp-side-menu-bg-color, var(--ax-sys-color-primary-surface))));content:\\\"\\\"}ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-children{gap:0}ax-side-menu.ax-look-with-line .ax-side-children ax-side-menu-item:first-child,ax-side-menu.ax-look-with-line-color .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.1)}ax-side-menu.ax-look-default{gap:.25rem}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{padding:.5rem 1rem;border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.5)}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.1)}ax-side-menu.ax-look-default .ax-side-children{position:relative;gap:.25rem;padding-inline-start:2.25rem}ax-side-menu.ax-look-default .ax-side-children:before{position:absolute;width:1px;height:100%;margin-inline-start:1.5rem;background-color:rgba(var(--ax-sys-color-border-light-surface));content:\\\"\\\"}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding:.25rem .5rem}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-mode-compact{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}ax-side-menu.ax-mode-compact ::-webkit-scrollbar{width:4px;height:4px}ax-side-menu.ax-mode-compact ::-webkit-scrollbar-track{background:transparent}ax-side-menu.ax-mode-compact ::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}ax-side-menu.ax-mode-compact .ax-side-menu-wrapper{display:flex;flex-direction:column;align-items:center;width:fit-content}ax-side-menu.ax-mode-compact .ax-side-children{display:none}ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-darker-surface, var(--ax-sys-color-surface)))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:.125rem!important;display:flex;justify-content:center;width:100%}ax-side-menu.ax-mode-compact ax-side-menu-item ax-icon{font-size:1.4rem}ax-side-menu.ax-mode-compact ax-side-menu-item .ax-side-item{width:fit-content;gap:0;padding:.5rem}ax-side-menu.ax-mode-compact ax-badge{position:absolute;top:5px;right:5px}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{scale:-1 1}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:-90deg}ax-side-menu-item>.ax-side-menu-wrapper>.ax-side-menu-children-context-menu:not(.ax-state-open){display:none}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: 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: \"component\", type: AXSideMenuItemComponent, selector: \"ax-side-menu-item\", inputs: [\"disabled\", \"text\", \"active\", \"isLoading\", \"isCollapsed\", \"toggleOnClick\", \"href\", \"routerLink\", \"routerLinkActive\", \"routerLinkActiveOptions\", \"target\"], outputs: [\"textChange\", \"activeChange\", \"isLoadingChange\", \"isCollapsedChange\", \"onClick\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-side-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXSideMenuItemComponent,\n RouterLink,\n RouterLinkActive,\n AXDecoratorIconComponent,\n ], providers: [\n { provide: AXComponent, useExisting: AXSideMenuComponent },\n { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },\n ], template: \"<ng-content select=\\\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n<ng-template #Recursion let-item>\\n @if (item.title) {\\n <ax-title>{{ item.title }}</ax-title>\\n }\\n @if (item.routerLink) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [target]=\\\"item.target\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [routerLink]=\\\"item.routerLink\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n [routerLinkActive]=\\\"item.routerLinkActive\\\"\\n [routerLinkActiveOptions]=\\\"item.routerLinkActiveOptions\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else if (item.href) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [href]=\\\"item.href\\\"\\n [target]=\\\"item.target\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n }\\n\\n <ng-template #sideMenuItemContent>\\n <ax-prefix>\\n @if (item.icon) {\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n }\\n </ax-prefix>\\n @if (item.data) {\\n <ax-text>{{ item.data }}</ax-text>\\n }\\n @if (item.suffixText) {\\n <ax-suffix>\\n <ax-text>{{ item.suffixText }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ng-template>\\n</ng-template>\\n\", styles: [\":root{--ax-comp-side-menu-indicator-size: 2px}ax-side-menu{display:flex;width:100%;flex-direction:column;gap:.5rem;color:inherit;font-size:.875rem;line-height:1.25rem;-webkit-user-select:none;user-select:none}ax-side-menu>ax-title{display:block;margin-block:.5rem;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{display:block;margin-block:.5rem;margin-top:.5rem;padding-inline:.75rem;padding-bottom:.25rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{display:block;width:100%;height:1px;margin-block:.25rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-side-menu ax-side-menu-item .ax-side-item{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;font-size:inherit;font-weight:500}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;transition-property:rotate;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{display:grid;grid-template-rows:1fr;padding-inline-start:1.25rem;opacity:1;transition-property:grid-template-rows,opacity;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{grid-template-rows:0fr;opacity:0}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:.5rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}ax-side-menu ax-side-menu-item .ax-side-children-content{display:flex;flex-direction:column;gap:.5rem}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:0}ax-side-menu.ax-look-with-line .ax-ripple,ax-side-menu.ax-look-with-line-color .ax-ripple{display:none}ax-side-menu.ax-look-with-line.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-start .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-item:before{inset-inline-start:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-end .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-item:before{inset-inline-end:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line ax-side-menu-item,ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line .ax-side-item,ax-side-menu.ax-look-with-line-color ax-side-menu-item,ax-side-menu.ax-look-with-line-color .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-item{position:relative}ax-side-menu.ax-look-with-line ax-side-menu-item:before,ax-side-menu.ax-look-with-line .ax-side-children:before,ax-side-menu.ax-look-with-line .ax-side-item:before,ax-side-menu.ax-look-with-line-color ax-side-menu-item:before,ax-side-menu.ax-look-with-line-color .ax-side-children:before,ax-side-menu.ax-look-with-line-color .ax-side-item:before{position:absolute;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface));content:\\\"\\\";transition-property:width;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu.ax-look-with-line .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before{position:absolute;width:var(--ax-comp-side-menu-indicator-size, 2px);height:100%;background-color:rgba(var(--ax-comp-side-menu-indicator-active-color, var(--ax-comp-side-menu-bg-color, var(--ax-sys-color-primary-surface))));content:\\\"\\\"}ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-children{gap:0}ax-side-menu.ax-look-with-line .ax-side-children ax-side-menu-item:first-child,ax-side-menu.ax-look-with-line-color .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.1)}ax-side-menu.ax-look-default{gap:.25rem}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{padding:.5rem 1rem;border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.5)}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.1)}ax-side-menu.ax-look-default .ax-side-children{position:relative;gap:.25rem;padding-inline-start:2.25rem}ax-side-menu.ax-look-default .ax-side-children:before{position:absolute;width:1px;height:100%;margin-inline-start:1.5rem;background-color:rgba(var(--ax-sys-color-border-light-surface));content:\\\"\\\"}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding:.25rem .5rem}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-mode-compact{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}ax-side-menu.ax-mode-compact ::-webkit-scrollbar{width:4px;height:4px}ax-side-menu.ax-mode-compact ::-webkit-scrollbar-track{background:transparent}ax-side-menu.ax-mode-compact ::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}ax-side-menu.ax-mode-compact .ax-side-menu-wrapper{display:flex;flex-direction:column;align-items:center;width:fit-content}ax-side-menu.ax-mode-compact .ax-side-children{display:none}ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-darker-surface, var(--ax-sys-color-surface)))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:.125rem!important;display:flex;justify-content:center;width:100%}ax-side-menu.ax-mode-compact ax-side-menu-item ax-icon{font-size:1.4rem}ax-side-menu.ax-mode-compact ax-side-menu-item .ax-side-item{width:fit-content;gap:0;padding:.5rem}ax-side-menu.ax-mode-compact ax-badge{position:absolute;top:5px;right:5px}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{scale:-1 1}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:-90deg}ax-side-menu-item>.ax-side-menu-wrapper>.ax-side-menu-children-context-menu:not(.ax-state-open){display:none}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFVBQVUsRUFBRSxnQkFBZ0IsRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUF1QnBGOzs7R0FHRztBQW9CSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQW5CcEQ7O1FBb0JFLFVBQUssR0FBRyxLQUFLLDJEQUFvQixDQUFDO1FBQ3pCLFNBQUksR0FBRyxLQUFLLENBQWlCLE9BQU8sZ0RBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsS0FBSyxDQUFxQixPQUFP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RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtZQUMxRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1NBQzlELGlEQ2hFSCwwdkVBb0VBLG03VkRkSSxnQkFBZ0Isb0pBQ2hCLDJCQUEyQix5TEFDM0IsdUJBQXVCLDhUQUN2QixVQUFVLG9PQUNWLGdCQUFnQiw4TUFDaEIsd0JBQXdCOzsyRkFPZixtQkFBbUI7a0JBbkIvQixTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxnQkFBZ0I7d0JBQ2hCLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUN2QixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3FCQUN6QixhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHFCQUFxQixFQUFFO3dCQUMxRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTtxQkFDOUQ7OEJBb0lXLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIFBMQVRGT1JNX0lELFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYU2lkZU1lbnVCYXNlIH0gZnJvbSAnLi9zaWRlLW1lbnUtYmFzZSc7XG5pbXBvcnQgeyBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1tZW51LWl0ZW0vc2lkZS1tZW51LWl0ZW0uY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQVhTaWRlTWVudUxvb2sgPSAncGlsbHMnIHwgJ3dpdGgtbGluZScgfCAnd2l0aC1saW5lLWNvbG9yJyB8ICdkZWZhdWx0JztcbmV4cG9ydCB0eXBlIEFYU2lkZU1lbnVMb2NhdGlvbiA9ICdzdGFydCcgfCAnZW5kJztcbmV4cG9ydCB0eXBlIEFYU2lkZU1lbnVJdGVtID0ge1xuICB0aXRsZT86IHN0cmluZztcbiAgcm91dGVyTGluaz86IHN0cmluZyB8IGFueVtdIHwgVXJsVHJlZTtcbiAgcm91dGVyTGlua0FjdGl2ZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICByb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucz86IHsgZXhhY3Q6IGJvb2xlYW4gfSB8IElzQWN0aXZlTWF0Y2hPcHRpb25zO1xuICBocmVmPzogc3RyaW5nO1xuICB0YXJnZXQ/OiAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG4gIHRleHQ6IHN0cmluZztcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc0xvYWRpbmc/OiBib29sZWFuO1xuICBpc0NvbGxhcHNlZD86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7XG4gIGRhdGE/OiB1bmtub3duO1xuICBzdWZmaXhUZXh0Pzogc3RyaW5nO1xuICB0b2dnbGVPbkNsaWNrPzogYm9vbGVhbjtcbiAgaXRlbXM/OiBBWFNpZGVNZW51SXRlbVtdO1xufTtcblxuLyoqXG4gKiBAY2F0ZWdvcnlcbiAqIEEgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGEgc2lkZSBtZW51IHdpdGggY3VzdG9taXphYmxlIGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNpZGUtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaWRlLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCxcbiAgICBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTaWRlTWVudUNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhTaWRlTWVudUJhc2UsIHVzZUV4aXN0aW5nOiBBWFNpZGVNZW51Q29tcG9uZW50IH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVDb21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCBpbXBsZW1lbnRzIEFYU2lkZU1lbnVCYXNlIHtcbiAgaXRlbXMgPSBtb2RlbDxBWFNpZGVNZW51SXRlbVtdPigpO1xuICByZWFkb25seSBsb29rID0gaW5wdXQ8QVhTaWRlTWVudUxvb2s+KCdwaWxscycpO1xuICByZWFkb25seSBsb2NhdGlvbiA9IGlucHV0PEFYU2lkZU1lbnVMb2NhdGlvbj4oJ3N0YXJ0Jyk7XG4gIHJlYWRvbmx5IG1vZGUgPSBpbnB1dDwnZnVsbCcgfCAnY29tcGFjdCc+KCdmdWxsJyk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIC8qKlxuICAgKiBBbGwgYGF4LXNpZGUtbWVudS1pdGVtYCBpbnN0YW5jZXMgZGlzY292ZXJlZCBieSB3YWxraW5nIHRoZSBob3N0IERPTS5cbiAgICpcbiAgICogV2UgdXNlIERPTSBkaXNjb3ZlcnkgKGluc3RlYWQgb2YgYGNvbnRlbnRDaGlsZHJlbmApIGJlY2F1c2UgQW5ndWxhciBjb250ZW50XG4gICAqIHF1ZXJpZXMgZG8gKipub3QqKiB0cmF2ZXJzZSBlbWJlZGRlZCB2aWV3cyBjcmVhdGVkIGJ5IGBuZ1RlbXBsYXRlT3V0bGV0YCxcbiAgICogYW5kIHRoZSBgQVhTaWRlTWVudUJhc2VgIERJIHRva2VuIGlzIG5vdCByZWFjaGFibGUgZnJvbSBpbnNpZGUgdGhvc2Ugdmlld3NcbiAgICogZWl0aGVyICh0aGV5IGluaGVyaXQgaW5qZWN0aW9uIGZyb20gdGhlIHRlbXBsYXRlJ3MgZGVjbGFyYXRpb24gc2l0ZSwgbm90XG4gICAqIHRoZSBpbnNlcnRpb24gc2l0ZSkuIFdhbGtpbmcgdGhlIERPTSB3b3JrcyBmb3IgZGlyZWN0IHByb2plY3Rpb24sXG4gICAqIHN0cnVjdHVyYWwgZGlyZWN0aXZlcywgYW5kIHJlY3Vyc2l2ZSBgbmdUZW1wbGF0ZU91dGxldGAtYmFzZWQgdGVtcGxhdGVzXG4gICAqIHVuaWZvcm1seS5cbiAgICovXG4gIHByaXZhdGUgX2l0ZW1zID0gc2lnbmFsPEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50W10+KFtdKTtcbiAgLyoqIFJlYWQtb25seSBzaWduYWwgZXhwb3NpbmcgZXZlcnkgZGlzY292ZXJlZCBgYXgtc2lkZS1tZW51LWl0ZW1gIGluc3RhbmNlLiAqL1xuICByZWFkb25seSBjaGlsZHJlbiA9IHRoaXMuX2l0ZW1zLmFzUmVhZG9ubHkoKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICBwcml2YXRlIGRvbVJlZnJlc2hTY2hlZHVsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBkb21SZWZyZXNoT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgdGhpcy5yZWZyZXNoSXRlbXNGcm9tRG9tKCk7XG4gICAgdGhpcy5kb21SZWZyZXNoT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigocmVjb3JkcykgPT4ge1xuICAgICAgaWYgKCF0aGlzLmhhc1JlbGV2YW50TWVudUl0ZW1NdXRhdGlvbihyZWNvcmRzKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNjaGVkdWxlRG9tUmVmcmVzaCgpO1xuICAgIH0pO1xuICAgIHRoaXMuZG9tUmVmcmVzaE9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gdGhpcy5kb21SZWZyZXNoT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSk7XG4gIH0pO1xuXG4gIC8qKiBQdXNoIGZ1bGwvY29tcGFjdCBtb2RlIHRvIGV2ZXJ5IG1lbnUgaXRlbSB3aGVuZXZlciBtb2RlIGNoYW5nZXMuICovXG4gICNzeW5jSXRlbU1vZGUgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG1vZGUgPSB0aGlzLm1vZGUoKTtcbiAgICB0aGlzLl9pdGVtcygpLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uc3luY01lbnVNb2RlKG1vZGUpKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFdhbGtzIHRoZSBob3N0IERPTSB0byBkaXNjb3ZlciBldmVyeSBuZXN0ZWQgYGF4LXNpZGUtbWVudS1pdGVtYCwgbG9va3MgdXBcbiAgICogdGhlIGNvbXBvbmVudCBpbnN0YW5jZSB0aHJvdWdoIHRoZSBgX19heENvbnRleHRfX2AgcHJvcGVydHkgdGhhdFxuICAgKiBgTVhCYXNlQ29tcG9uZW50Lm5nT25Jbml0YCBhdHRhY2hlcyB0byBlYWNoIGhvc3QgZWxlbWVudCwgYW5kIHVwZGF0ZXMgdGhlXG4gICAqIGludGVybmFsIGl0ZW1zIHNpZ25hbCBhbmQgYC5maXJzdC1sZXZlbGAgQ1NTIGNsYXNzIGFjY29yZGluZ2x5LlxuICAgKlxuICAgKiBUcmlnZ2VyZWQgYm90aCBpbml0aWFsbHkgYW5kIGZyb20gYSBgTXV0YXRpb25PYnNlcnZlcmAgc28gcmVjdXJzaXZlXG4gICAqIHRlbXBsYXRlcyB0aGF0IGFkZC9yZW1vdmUgaXRlbXMgYXQgcnVudGltZSBzdGF5IGluIHN5bmMuXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hJdGVtc0Zyb21Eb20oKSB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdC5xdWVyeVNlbGVjdG9yQWxsKCdheC1zaWRlLW1lbnUtaXRlbScpO1xuICAgIGNvbnN0IGl0ZW1zOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudFtdID0gW107XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gKGVsIGFzIHVua25vd24gYXMgeyBfX2F4Q29udGV4dF9fPzogdW5rbm93biB9KS5fX2F4Q29udGV4dF9fO1xuICAgICAgaWYgKGluc3RhbmNlIGluc3RhbmNlb2YgQVhTaWRlTWVudUl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbXMucHVzaChpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5faXRlbXMoKTtcbiAgICBjb25zdCBjaGFuZ2VkID0gY3VycmVudC5sZW5ndGggIT09IGl0ZW1zLmxlbmd0aCB8fCBjdXJyZW50LnNvbWUoKGl0LCBpKSA9PiBpdCAhPT0gaXRlbXNbaV0pO1xuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLl9pdGVtcy5zZXQoaXRlbXMpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkRmlyc3RMZXZlbENsYXNzKCk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlRG9tUmVmcmVzaCgpIHtcbiAgICBpZiAodGhpcy5kb21SZWZyZXNoU2NoZWR1bGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZG9tUmVmcmVzaFNjaGVkdWxlZCA9IHRydWU7XG5cbiAgICAvLyBCYXRjaCBtdWx0aXBsZSByYXBpZCBtdXRhdGlvbnMgKGUuZy4sIGxhcmdlIHRlbXBsYXRlIHVwZGF0ZXMgb3Igb3ZlcmxheXMgY2xvc2luZylcbiAgICAvLyBpbnRvIGEgc2luZ2xlIHJlZnJlc2ggdG8gcHJldmVudCBsb25nIG1haW4tdGhyZWFkIHN0YWxscy5cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5kb21SZWZyZXNoU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnJlZnJlc2hJdGVtc0Zyb21Eb20oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzUmVsZXZhbnRNZW51SXRlbU11dGF0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10pOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICBpZiAodGhpcy5ub2RlTGlzdENvbnRhaW5zTWVudUl0ZW0ocmVjb3JkLmFkZGVkTm9kZXMpIHx8IHRoaXMubm9kZUxpc3RDb250YWluc01lbnVJdGVtKHJlY29yZC5yZW1vdmVkTm9kZXMpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIG5vZGVMaXN0Q29udGFpbnNNZW51SXRlbShub2RlczogTm9kZUxpc3QpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgQXJyYXkuZnJvbShub2RlcykpIHtcbiAgICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlLnRhZ05hbWUgPT09ICdBWC1TSURFLU1FTlUtSVRFTScpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5xdWVyeVNlbGVjdG9yPy4oJ2F4LXNpZGUtbWVudS1pdGVtJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRmlyc3RMZXZlbENsYXNzKCkge1xuICAgIGNvbnN0IGFsbENoaWxkcmVuID0gdGhpcy5faXRlbXMoKTtcbiAgICBhbGxDaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PlxuICAgICAgaXRlbS5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5heC1zaWRlLWl0ZW0nKT8uY2xhc3NMaXN0LnJlbW92ZSgnZmlyc3QtbGV2ZWwnKSxcbiAgICApO1xuXG4gICAgYWxsQ2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSBpdGVtLmdldEhvc3RFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyhpdGVtRWxlbWVudCkgJiYgIWl0ZW1FbGVtZW50LnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJy5heC1zaWRlLWNoaWxkcmVuLWNvbnRlbnQnKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcignLmF4LXNpZGUtaXRlbScpPy5jbGFzc0xpc3QuYWRkKCdmaXJzdC1sZXZlbCcpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtgYXgtbG9vay0ke3RoaXMubG9vaygpfWAsIGBheC1sb2NhdGlvbi0ke3RoaXMubG9jYXRpb24oKX1gLCBgYXgtbW9kZS0ke3RoaXMubW9kZSgpfWBdO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1zaWRlLW1lbnUtaXRlbSxheC10aXRsZSxuZy1jb250YWluZXIsW25nVGVtcGxhdGVPdXRsZXRdXCI+PC9uZy1jb250ZW50PlxuXG5AZm9yIChub2RlIG9mIGl0ZW1zKCk7IHRyYWNrIG5vZGUpIHtcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG5vZGUgfVwiPiA8L25nLWNvbnRhaW5lcj5cbn1cbjxuZy10ZW1wbGF0ZSAjUmVjdXJzaW9uIGxldC1pdGVtPlxuICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICA8YXgtdGl0bGU+e3sgaXRlbS50aXRsZSB9fTwvYXgtdGl0bGU+XG4gIH1cbiAgQGlmIChpdGVtLnJvdXRlckxpbmspIHtcbiAgICA8YXgtc2lkZS1tZW51LWl0ZW1cbiAgICAgIFt0ZXh0XT1cIml0ZW0udGV4dFwiXG4gICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgIFtpc0xvYWRpbmddPVwiaXRlbS5pc0xvYWRpbmdcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZXJMaW5rXCJcbiAgICAgIFtpc0NvbGxhcHNlZF09XCJpdGVtLmlzQ29sbGFwc2VkXCJcbiAgICAgIFt0b2dnbGVPbkNsaWNrXT1cIml0ZW0udG9nZ2xlT25DbGlja1wiXG4gICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJpdGVtLnJvdXRlckxpbmtBY3RpdmVcIlxuICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cIml0ZW0ucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc2lkZS1tZW51LWl0ZW0+XG4gIH0gQGVsc2UgaWYgKGl0ZW0uaHJlZikge1xuICAgIDxheC1zaWRlLW1lbnUtaXRlbVxuICAgICAgW3RleHRdPVwiaXRlbS50ZXh0XCJcbiAgICAgIFtocmVmXT1cIml0ZW0uaHJlZlwiXG4gICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgIFthY3RpdmVdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgW2lzTG9hZGluZ109XCJpdGVtLmlzTG9hZGluZ1wiXG4gICAgICBbaXNDb2xsYXBzZWRdPVwiaXRlbS5pc0NvbGxhcHNlZFwiXG4gICAgICBbdG9nZ2xlT25DbGlja109XCJpdGVtLnRvZ2dsZU9uQ2xpY2tcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc2lkZS1tZW51LWl0ZW0+XG4gIH0gQGVsc2Uge1xuICAgIDxheC1zaWRlLW1lbnUtaXRlbVxuICAgICAgW3RleHRdPVwiaXRlbS50ZXh0XCJcbiAgICAgIFthY3RpdmVdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgW2lzTG9hZGluZ109XCJpdGVtLmlzTG9hZGluZ1wiXG4gICAgICBbaXNDb2xsYXBzZWRdPVwiaXRlbS5pc0NvbGxhcHNlZFwiXG4gICAgICBbdG9nZ2xlT25DbGlja109XCJpdGVtLnRvZ2dsZU9uQ2xpY2tcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc2lkZS1tZW51LWl0ZW0+XG4gIH1cblxuICA8bmctdGVtcGxhdGUgI3NpZGVNZW51SXRlbUNvbnRlbnQ+XG4gICAgPGF4LXByZWZpeD5cbiAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPiA8L2F4LWljb24+XG4gICAgICB9XG4gICAgPC9heC1wcmVmaXg+XG4gICAgQGlmIChpdGVtLmRhdGEpIHtcbiAgICAgIDxheC10ZXh0Pnt7IGl0ZW0uZGF0YSB9fTwvYXgtdGV4dD5cbiAgICB9XG4gICAgQGlmIChpdGVtLnN1ZmZpeFRleHQpIHtcbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW0uc3VmZml4VGV4dCB9fTwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIH1cbiAgICBAZm9yIChjaGlsZCBvZiBpdGVtLml0ZW1zOyB0cmFjayBjaGlsZCkge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19","import { AXOutlineContainerDirective } from '@acorex/cdk/outline';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { afterNextRender, Directive, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { isEqual } from 'lodash-es';\nimport { distinctUntilChanged, map } from 'rxjs';\nimport { AXSideMenuComponent } from './side-menu.component';\nimport * as i0 from \"@angular/core\";\nexport class AXOutlineSideMenuDirective {\n constructor() {\n this.router = inject(Router);\n this.unsubscriber = inject(AXUnsubscriber);\n this.sideMenu = inject(AXSideMenuComponent);\n this.container = inject(AXOutlineContainerDirective);\n this.#anr = afterNextRender(() => {\n this.container.outlineItems$\n .pipe(this.unsubscriber.takeUntilDestroy, map((items) => {\n if (!items || items.length === 0)\n return [];\n return this.buildNestedMenuItems(items);\n }), distinctUntilChanged(isEqual))\n .subscribe((menuItems) => {\n this.updateSideMenu(menuItems);\n });\n });\n }\n #anr;\n updateSideMenu(newMenuItems) {\n const currentMenuItems = this.sideMenu.items();\n const newSignature = this.getStructuralSignature(newMenuItems);\n const currentSignature = this.getStructuralSignature(currentMenuItems || []);\n if (newSignature !== currentSignature) {\n this.sideMenu.items.set(newMenuItems);\n return;\n }\n const currentComponents = this.sideMenu.children();\n const newActiveItem = this.flattenMenuItems(newMenuItems).find((item) => item.active);\n const currentActiveComponent = currentComponents.find((c) => c.active());\n if (newActiveItem?.href === currentActiveComponent?.href()) {\n return;\n }\n currentActiveComponent?.active.set(false);\n if (newActiveItem) {\n const componentToActivate = currentComponents.find((c) => c.href() === newActiveItem.href);\n componentToActivate?.active.set(true);\n }\n }\n /**\n * Creates a string signature that represents the tree structure of the menu.\n * Example: \"href1(href1.1,href1.2),href2,href3\"\n * This will be different for a flat list vs. a nested list.\n */\n getStructuralSignature(items) {\n return items\n .map((item) => {\n let signature = item.href || '';\n if (item.items && item.items.length > 0) {\n signature += `(${this.getStructuralSignature(item.items)})`;\n }\n return signature;\n })\n .join(',');\n }\n flattenMenuItems(items) {\n return items.reduce((acc, item) => {\n acc.push(item);\n if (item.items) {\n acc.push(...this.flattenMenuItems(item.items));\n }\n return acc;\n }, []);\n }\n textReplace(item) {\n const text = item.el.textContent;\n if (item.hasAnchor) {\n const newStr = text?.slice(0, -1);\n return newStr?.trim() || '';\n }\n return text?.trim() || '';\n }\n buildNestedMenuItems(items) {\n const menuItemsMap = new Map();\n const rootItems = [];\n items.forEach((item) => {\n const menuItem = {\n items: [],\n target: '_self',\n active: item.active,\n toggleOnClick: false,\n text: this.textReplace(item),\n href: `${this.router.url.split('#')[0]}#${item.id}`,\n };\n menuItemsMap.set(item.id, menuItem);\n });\n items.forEach((item) => {\n const menuItem = menuItemsMap.get(item.id);\n if (!menuItem)\n return;\n if (item.parentId) {\n const parentMenuItem = menuItemsMap.get(item.parentId);\n if (parentMenuItem) {\n parentMenuItem.items?.push(menuItem);\n }\n else {\n console.warn(`Outline item with id \"${item.id}\" has a parentId \"${item.parentId}\" that does not exist.`);\n rootItems.push(menuItem);\n }\n }\n else {\n rootItems.push(menuItem);\n }\n });\n return rootItems;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXOutlineSideMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXOutlineSideMenuDirective, isStandalone: true, selector: \"[axOutlineSideMenu]\", providers: [AXUnsubscriber], exportAs: [\"axOutlineSideMenu\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXOutlineSideMenuDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axOutlineSideMenu]',\n exportAs: 'axOutlineSideMenu',\n providers: [AXUnsubscriber],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPNUUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU1VLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV4RCxTQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWE7aUJBQ3pCLElBQUksQ0FDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUNsQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUss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Q3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNuQixjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLElBQUksQ0FBQyxFQUFFLHFCQUFxQixJQUFJLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO29CQUN6RyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0E5R1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsa0VBRjFCLENBQUMsY0FBYyxDQUFDOzsyRkFFaEIsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE91dGxpbmVDb250YWluZXJEaXJlY3RpdmUsIG91dGxpbmVJdGVtVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL291dGxpbmUnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhTaWRlTWVudUNvbXBvbmVudCwgQVhTaWRlTWVudUl0ZW0gfSBmcm9tICcuL3NpZGUtbWVudS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhPdXRsaW5lU2lkZU1lbnVdJyxcbiAgZXhwb3J0QXM6ICdheE91dGxpbmVTaWRlTWVudScsXG4gIHByb3ZpZGVyczogW0FYVW5zdWJzY3JpYmVyXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhPdXRsaW5lU2lkZU1lbnVEaXJlY3RpdmUge1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHVuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG4gIHByaXZhdGUgc2lkZU1lbnUgPSBpbmplY3QoQVhTaWRlTWVudUNvbXBvbmVudCk7XG4gIHByaXZhdGUgY29udGFpbmVyID0gaW5qZWN0KEFYT3V0bGluZUNvbnRhaW5lckRpcmVjdGl2ZSk7XG5cbiAgI2FuciA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5jb250YWluZXIub3V0bGluZUl0ZW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3ksXG4gICAgICAgIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgICAgIHJldHVybiB0aGlzLmJ1aWxkTmVzdGVkTWVudUl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzRXF1YWwpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobWVudUl0ZW1zKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlU2lkZU1lbnUobWVudUl0ZW1zKTtcbiAgICAgIH0pO1xuICB9KTtcblxuICBwcml2YXRlIHVwZGF0ZVNpZGVNZW51KG5ld01lbnVJdGVtczogQVhTaWRlTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRNZW51SXRlbXMgPSB0aGlzLnNpZGVNZW51Lml0ZW1zKCk7XG4gICAgY29uc3QgbmV3U2lnbmF0dXJlID0gdGhpcy5nZXRTdHJ1Y3R1cmFsU2lnbmF0dXJlKG5ld01lbnVJdGVtcyk7XG4gICAgY29uc3QgY3VycmVudFNpZ25hdHVyZSA9IHRoaXMuZ2V0U3RydWN0dXJhbFNpZ25hdHVyZShjdXJyZW50TWVudUl0ZW1zIHx8IFtdKTtcblxuICAgIGlmIChuZXdTaWduYXR1cmUgIT09IGN1cnJlbnRTaWduYXR1cmUpIHtcbiAgICAgIHRoaXMuc2lkZU1lbnUuaXRlbXMuc2V0KG5ld01lbnVJdGVtcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudENvbXBvbmVudHMgPSB0aGlzLnNpZGVNZW51LmNoaWxkcmVuKCk7XG4gICAgY29uc3QgbmV3QWN0aXZlSXRlbSA9IHRoaXMuZmxhdHRlbk1lbnVJdGVtcyhuZXdNZW51SXRlbXMpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uYWN0aXZlKTtcbiAgICBjb25zdCBjdXJyZW50QWN0aXZlQ29tcG9uZW50ID0gY3VycmVudENvbXBvbmVudHMuZmluZCgoYykgPT4gYy5hY3RpdmUoKSk7XG4gICAgaWYgKG5ld0FjdGl2ZUl0ZW0/LmhyZWYgPT09IGN1cnJlbnRBY3RpdmVDb21wb25lbnQ/LmhyZWYoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjdXJyZW50QWN0aXZlQ29tcG9uZW50Py5hY3RpdmUuc2V0KGZhbHNlKTtcbiAgICBpZiAobmV3QWN0aXZlSXRlbSkge1xuICAgICAgY29uc3QgY29tcG9uZW50VG9BY3RpdmF0ZSA9IGN1cnJlbnRDb21wb25lbnRzLmZpbmQoKGMpID0+IGMuaHJlZigpID09PSBuZXdBY3RpdmVJdGVtLmhyZWYpO1xuICAgICAgY29tcG9uZW50VG9BY3RpdmF0ZT8uYWN0aXZlLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN0cmluZyBzaWduYXR1cmUgdGhhdCByZXByZXNlbnRzIHRoZSB0cmVlIHN0cnVjdHVyZSBvZiB0aGUgbWVudS5cbiAgICogRXhhbXBsZTogXCJocmVmMShocmVmMS4xLGhyZWYxLjIpLGhyZWYyLGhyZWYzXCJcbiAgICogVGhpcyB3aWxsIGJlIGRpZmZlcmVudCBmb3IgYSBmbGF0IGxpc3QgdnMuIGEgbmVzdGVkIGxpc3QuXG4gICAqL1xuICBwcml2YXRlIGdldFN0cnVjdHVyYWxTaWduYXR1cmUoaXRlbXM6IEFYU2lkZU1lbnVJdGVtW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtc1xuICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBsZXQgc2lnbmF0dXJlID0gaXRlbS5ocmVmIHx8ICcnO1xuICAgICAgICBpZiAoaXRlbS5pdGVtcyAmJiBpdGVtLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzaWduYXR1cmUgKz0gYCgke3RoaXMuZ2V0U3RydWN0dXJhbFNpZ25hdHVyZShpdGVtLml0ZW1zKX0pYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2lnbmF0dXJlO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcsJyk7XG4gIH1cblxuICBwcml2YXRlIGZsYXR0ZW5NZW51SXRlbXMoaXRlbXM6IEFYU2lkZU1lbnVJdGVtW10pOiBBWFNpZGVNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICAgIGFjYy5wdXNoKGl0ZW0pO1xuICAgICAgaWYgKGl0ZW0uaXRlbXMpIHtcbiAgICAgICAgYWNjLnB1c2goLi4udGhpcy5mbGF0dGVuTWVudUl0ZW1zKGl0ZW0uaXRlbXMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10gYXMgQVhTaWRlTWVudUl0ZW1bXSk7XG4gIH1cblxuICBwcml2YXRlIHRleHRSZXBsYWNlKGl0ZW06IG91dGxpbmVJdGVtVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IGl0ZW0uZWwudGV4dENvbnRlbnQ7XG4gICAgaWYgKGl0ZW0uaGFzQW5jaG9yKSB7XG4gICAgICBjb25zdCBuZXdTdHIgPSB0ZXh0Py5zbGljZSgwLCAtMSk7XG4gICAgICByZXR1cm4gbmV3U3RyPy50cmltKCkgfHwgJyc7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0Py50cmltKCkgfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTmVzdGVkTWVudUl0ZW1zKGl0ZW1zOiBvdXRsaW5lSXRlbVR5cGVbXSk6IEFYU2lkZU1lbnVJdGVtW10ge1xuICAgIGNvbnN0IG1lbnVJdGVtc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBBWFNpZGVNZW51SXRlbT4oKTtcbiAgICBjb25zdCByb290SXRlbXM6IEFYU2lkZU1lbnVJdGVtW10gPSBbXTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBtZW51SXRlbTogQVhTaWRlTWVudUl0ZW0gPSB7XG4gICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgICAgdGFyZ2V0OiAnX3NlbGYnLFxuICAgICAgICBhY3RpdmU6IGl0ZW0uYWN0aXZlLFxuICAgICAgICB0b2dnbGVPbkNsaWNrOiBmYWxzZSxcbiAgICAgICAgdGV4dDogdGhpcy50ZXh0UmVwbGFjZShpdGVtKSxcbiAgICAgICAgaHJlZjogYCR7dGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcjJylbMF19IyR7aXRlbS5pZH1gLFxuICAgICAgfTtcbiAgICAgIG1lbnVJdGVtc01hcC5zZXQoaXRlbS5pZCwgbWVudUl0ZW0pO1xuICAgIH0pO1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IG1lbnVJdGVtID0gbWVudUl0ZW1zTWFwLmdldChpdGVtLmlkKTtcbiAgICAgIGlmICghbWVudUl0ZW0pIHJldHVybjtcbiAgICAgIGlmIChpdGVtLnBhcmVudElkKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudE1lbnVJdGVtID0gbWVudUl0ZW1zTWFwLmdldChpdGVtLnBhcmVudElkKTtcbiAgICAgICAgaWYgKHBhcmVudE1lbnVJdGVtKSB7XG4gICAgICAgICAgcGFyZW50TWVudUl0ZW0uaXRlbXM/LnB1c2gobWVudUl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgT3V0bGluZSBpdGVtIHdpdGggaWQgXCIke2l0ZW0uaWR9XCIgaGFzIGEgcGFyZW50SWQgXCIke2l0ZW0ucGFyZW50SWR9XCIgdGhhdCBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICAgICAgICByb290SXRlbXMucHVzaChtZW51SXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3RJdGVtcy5wdXNoKG1lbnVJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcm9vdEl0ZW1zO1xuICB9XG59XG4iXX0=","import { AXCommonModule, AXRippleDirective } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\nimport { AXSideMenuComponent } from './side-menu.component';\nimport { AXOutlineSideMenuDirective } from './side-menu.directive';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXRippleDirective,\n AXLoadingModule,\n AXTranslationModule,\n RouterLink,\n RouterLinkActive,\n AXDecoratorModule,\n];\nexport class AXSideMenuModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,\n AXCommonModule,\n AXRippleDirective,\n AXLoadingModule,\n AXTranslationModule,\n RouterLink,\n RouterLinkActive,\n AXDecoratorModule, AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective], exports: [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,\n AXCommonModule,\n AXLoadingModule,\n AXTranslationModule,\n AXDecoratorModule, AXSideMenuComponent, AXSideMenuItemComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFbkUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBQzdGLE1BQU0sT0FBTyxHQUFHO0lBQ2QsWUFBWTtJQUNaLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtDQUNsQixDQUFDO0FBT0YsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsWUFmM0IsWUFBWTtZQUNaLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLGlCQUFpQixFQVRBLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixhQUF4RSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEI7K0dBaUI5RSxnQkFBZ0IsWUFmM0IsWUFBWTtZQUNaLGNBQWM7WUFFZCxlQUFlO1lBQ2YsbUJBQW1CO1lBR25CLGlCQUFpQixFQVRBLG1CQUFtQixFQUFFLHVCQUF1Qjs7MkZBaUJsRCxnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWFJpcHBsZURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLW1lbnUtaXRlbS9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhTaWRlTWVudUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE91dGxpbmVTaWRlTWVudURpcmVjdGl2ZSB9IGZyb20gJy4vc2lkZS1tZW51LmRpcmVjdGl2ZSc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWFNpZGVNZW51Q29tcG9uZW50LCBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCwgQVhPdXRsaW5lU2lkZU1lbnVEaXJlY3RpdmVdO1xuY29uc3QgTU9EVUxFUyA9IFtcbiAgQ29tbW9uTW9kdWxlLFxuICBBWENvbW1vbk1vZHVsZSxcbiAgQVhSaXBwbGVEaXJlY3RpdmUsXG4gIEFYTG9hZGluZ01vZHVsZSxcbiAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgUm91dGVyTGluayxcbiAgUm91dGVyTGlua0FjdGl2ZSxcbiAgQVhEZWNvcmF0b3JNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtc2lkZS1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9zaWRlLW1lbnUvc3JjL2Fjb3JleC1jb21wb25lbnRzLXNpZGUtbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-side-menu.mjs","sources":["../tmp-esm2022/side-menu/lib/side-menu-base.js","../tmp-esm2022/side-menu/lib/side-menu-item/side-menu-item.component.js","../tmp-esm2022/side-menu/lib/side-menu.component.js","../tmp-esm2022/side-menu/lib/side-menu.directive.js","../tmp-esm2022/side-menu/lib/side-menu.module.js","../tmp-esm2022/side-menu/acorex-components-side-menu.js"],"sourcesContent":["/**\n * DI token for the parent `ax-side-menu`. Child `ax-side-menu-item`s inject this\n * to read shared state (e.g. the current display mode) without creating a\n * circular import on the concrete `AXSideMenuComponent` class.\n */\nexport class AXSideMenuBase {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NpZGUtbWVudS9zcmMvbGliL3NpZGUtbWVudS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLE9BQWdCLGNBQWM7Q0FFbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBESSB0b2tlbiBmb3IgdGhlIHBhcmVudCBgYXgtc2lkZS1tZW51YC4gQ2hpbGQgYGF4LXNpZGUtbWVudS1pdGVtYHMgaW5qZWN0IHRoaXNcbiAqIHRvIHJlYWQgc2hhcmVkIHN0YXRlIChlLmcuIHRoZSBjdXJyZW50IGRpc3BsYXkgbW9kZSkgd2l0aG91dCBjcmVhdGluZyBhXG4gKiBjaXJjdWxhciBpbXBvcnQgb24gdGhlIGNvbmNyZXRlIGBBWFNpZGVNZW51Q29tcG9uZW50YCBjbGFzcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYU2lkZU1lbnVCYXNlIHtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgbW9kZTogU2lnbmFsPCdmdWxsJyB8ICdjb21wYWN0Jz47XG59XG4iXX0=","import { AXClickEvent, AXComponent, AXRippleDirective, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXContextMenuComponent } from '@acorex/components/menu';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { AsyncPipe, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChildren, DestroyRef, effect, ElementRef, inject, input, model, output, PLATFORM_ID, signal, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/tooltip\";\nexport class AXSideMenuItemClickEvent extends AXClickEvent {\n constructor() {\n super(...arguments);\n this.handled = false;\n }\n}\nexport class AXSideMenuItemComponent extends MXInteractiveComponent {\n constructor() {\n super(...arguments);\n this.text = model('', ...(ngDevMode ? [{ debugName: \"text\" }] : []));\n this.active = model(false, ...(ngDevMode ? [{ debugName: \"active\" }] : []));\n this.isLoading = model(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.isCollapsed = model(true, ...(ngDevMode ? [{ debugName: \"isCollapsed\" }] : []));\n this.onClick = output();\n this.toggleOnClick = input(true, ...(ngDevMode ? [{ debugName: \"toggleOnClick\" }] : []));\n this.href = input(...(ngDevMode ? [undefined, { debugName: \"href\" }] : []));\n this.routerLink = input(...(ngDevMode ? [undefined, { debugName: \"routerLink\" }] : []));\n this.routerLinkActive = input('ax-state-active', ...(ngDevMode ? [{ debugName: \"routerLinkActive\" }] : []));\n this.routerLinkActiveOptions = input({ exact: false }, ...(ngDevMode ? [{ debugName: \"routerLinkActiveOptions\" }] : []));\n this.target = input('_self', ...(ngDevMode ? [{ debugName: \"target\" }] : []));\n this.menuItemTrigger = viewChild.required('menuItemTrigger');\n this.hasChild = signal(false, ...(ngDevMode ? [{ debugName: \"hasChild\" }] : []));\n this.isCompactMode = computed(() => this.menuMode() === 'compact', ...(ngDevMode ? [{ debugName: \"isCompactMode\" }] : []));\n /** Top-level rail entry in compact mode (opens the flyout context menu). */\n this.isFirstLevel = computed(() => {\n if (!this.isCompactMode()) {\n return false;\n }\n return !this.hostElement.parentElement?.closest('.ax-side-children-content');\n }, ...(ngDevMode ? [{ debugName: \"isFirstLevel\" }] : []));\n /** Tooltip text for first-level items in compact mode only. */\n this.tooltipContent = computed(() => {\n if (!this.isFirstLevel())\n return null;\n return this.text().trim() || this.contentLabel().trim() || null;\n }, ...(ngDevMode ? [{ debugName: \"tooltipContent\" }] : []));\n this.elem = inject((ElementRef));\n this.platformId = inject(PLATFORM_ID);\n this.destroyRef = inject(DestroyRef);\n this.menuMode = signal('full', ...(ngDevMode ? [{ debugName: \"menuMode\" }] : []));\n this.contentLabel = signal('', ...(ngDevMode ? [{ debugName: \"contentLabel\" }] : []));\n this.childObserver = null;\n this.childRefreshScheduled = false;\n this.childItems = contentChildren(AXSideMenuItemComponent, ...(ngDevMode ? [{ debugName: \"childItems\", descendants: true }] : [{ descendants: true }]));\n this.childrenSlot = viewChild('childrenSlot', ...(ngDevMode ? [{ debugName: \"childrenSlot\" }] : []));\n this.childrenContextMenu = viewChild('childrenContextMenu', ...(ngDevMode ? [{ debugName: \"childrenContextMenu\" }] : []));\n this.#childCheckEffect = effect(() => {\n if (this.childItems().length) {\n this.updateHasChild();\n }\n }, ...(ngDevMode ? [{ debugName: \"#childCheckEffect\" }] : []));\n this.#initChildren = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this.reparentOrphanedChildren();\n this.updateHasChild();\n this.updateContentLabel();\n this.childObserver = new MutationObserver((records) => {\n if (!this.hasRelevantMutation(records)) {\n return;\n }\n this.scheduleChildRefresh();\n });\n this.childObserver.observe(this.hostElement, { childList: true, subtree: true, characterData: true });\n this.destroyRef.onDestroy(() => this.childObserver?.disconnect());\n });\n this.#contextMenuSync = effect(() => {\n if (!this.isCompactMode() || !isPlatformBrowser(this.platformId) || !this.isFirstLevel() || !this.hasChild()) {\n return;\n }\n const menu = this.childrenContextMenu();\n if (!menu) {\n return;\n }\n if (this.isCollapsed()) {\n menu.close();\n }\n else {\n this.closeSiblingCompactMenus();\n this.openCompactContextMenu(menu);\n }\n }, ...(ngDevMode ? [{ debugName: \"#contextMenuSync\" }] : []));\n }\n get hostElement() {\n return this.elem.nativeElement;\n }\n #childCheckEffect;\n #initChildren;\n #contextMenuSync;\n syncMenuMode(mode) {\n if (this.menuMode() === mode) {\n return;\n }\n this.menuMode.set(mode);\n this.childrenContextMenu()?.close();\n if (mode === 'compact') {\n this.isCollapsed.set(true);\n }\n }\n /** Builds the cascading `AXMenuItem` tree used by the compact-mode context menu. */\n buildMenuItemsFromChildren() {\n this.reparentOrphanedChildren();\n const slot = this.childrenSlot()?.nativeElement;\n const itemsFromSlot = slot ? this.mapSlotChildrenToMenuItems(slot) : [];\n if (itemsFromSlot.length > 0) {\n return itemsFromSlot;\n }\n return this.getDirectChildElements().map((el) => this.toMenuItem(el));\n }\n activateFromContextMenu(nativeEvent) {\n if (this.disabled || this.isLoading()) {\n return;\n }\n const trigger = this.menuItemTrigger().nativeElement;\n if (trigger instanceof HTMLAnchorElement) {\n trigger.click();\n return;\n }\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent,\n handled: false,\n });\n }\n toggle() {\n if (this.isCompactMode() && (!this.hasChild() || !this.isFirstLevel())) {\n return;\n }\n this.isCollapsed.update((collapsed) => !collapsed);\n }\n open() {\n this.isCollapsed.set(false);\n }\n close() {\n this.isCollapsed.set(true);\n this.childrenContextMenu()?.close();\n }\n handleContextMenuItemClick(event) {\n const instance = event.item.data?.sideMenuItem;\n if (!instance || instance.hasChild())\n return;\n instance.activateFromContextMenu(event.nativeEvent);\n }\n handleContextMenuClosed() {\n if (!this.isCollapsed())\n this.isCollapsed.set(true);\n }\n handleClickEvent(e) {\n if (this.disabled || this.isLoading())\n return;\n const event = {\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n handled: false,\n };\n this.onClick.emit(event);\n if (!event.handled && this.toggleOnClick() && (this.hasChild() || !this.isCompactMode()))\n this.toggle();\n e.stopPropagation();\n }\n openCompactContextMenu(menu) {\n const items = this.buildMenuItemsFromChildren();\n if (!items.length)\n return;\n menu.showAt(this.getContextMenuAnchorPoint(), this.menuItemTrigger().nativeElement, {\n sender: menu,\n canceled: false,\n targetElement: this.menuItemTrigger().nativeElement,\n items,\n });\n }\n getContextMenuAnchorPoint() {\n const rect = this.menuItemTrigger().nativeElement.getBoundingClientRect();\n const offset = 8;\n if (AXHtmlUtil.isRtl(this.hostElement)) {\n return { x: rect.left - offset, y: rect.top };\n }\n return { x: rect.right + offset, y: rect.top };\n }\n mapSlotChildrenToMenuItems(slot) {\n const items = [];\n let pendingGroupTitle;\n for (const child of Array.from(slot.children)) {\n if (child.tagName === 'AX-TITLE') {\n pendingGroupTitle = child.textContent?.trim() || undefined;\n continue;\n }\n if (child.tagName === 'AX-DIVIDER') {\n if (items.length > 0) {\n items[items.length - 1] = { ...items[items.length - 1], break: true };\n }\n continue;\n }\n if (child.tagName !== 'AX-SIDE-MENU-ITEM') {\n continue;\n }\n const menuItem = this.toMenuItem(child);\n if (pendingGroupTitle) {\n menuItem.group = { title: pendingGroupTitle };\n pendingGroupTitle = undefined;\n }\n items.push(menuItem);\n }\n return items;\n }\n toMenuItem(host) {\n const instance = this.getInstanceFromElement(host);\n const item = {\n text: this.getItemLabel(host, instance),\n disabled: instance?.disabled ?? false,\n icon: this.getItemIcon(host),\n suffix: this.getItemSuffix(host),\n };\n if (instance) {\n item.data = { sideMenuItem: instance };\n }\n if (this.hasNestedChildren(host, instance)) {\n item.items =\n instance?.buildMenuItemsFromChildren() ?? this.getDirectChildElements(host).map((el) => this.toMenuItem(el));\n }\n return item;\n }\n hasNestedChildren(host, instance) {\n return (instance?.hasChild() ?? false) || this.getDirectChildElements(host).length > 0;\n }\n /** Direct `ax-side-menu-item` children of `menuHost` (defaults to this item). */\n getDirectChildElements(menuHost = this.hostElement) {\n return Array.from(menuHost.querySelectorAll('ax-side-menu-item')).filter((el) => {\n if (el === menuHost) {\n return false;\n }\n return el.parentElement?.closest('ax-side-menu-item') === menuHost;\n });\n }\n reparentOrphanedChildren() {\n const container = this.childrenSlot()?.nativeElement;\n if (!container) {\n return;\n }\n for (const el of this.getDirectChildElements()) {\n if (!container.contains(el)) {\n try {\n container.appendChild(el);\n }\n catch {\n // HierarchyRequestError when the node is already being moved.\n }\n }\n }\n }\n scheduleChildRefresh() {\n if (this.childRefreshScheduled) {\n return;\n }\n this.childRefreshScheduled = true;\n requestAnimationFrame(() => {\n this.childRefreshScheduled = false;\n this.reparentOrphanedChildren();\n this.updateHasChild();\n this.updateContentLabel();\n });\n }\n hasRelevantMutation(records) {\n for (const record of records) {\n if (record.type === 'characterData') {\n return true;\n }\n if (this.nodeListContainsMenuStructuralNode(record.addedNodes) ||\n this.nodeListContainsMenuStructuralNode(record.removedNodes)) {\n return true;\n }\n }\n return false;\n }\n nodeListContainsMenuStructuralNode(nodes) {\n for (const node of Array.from(nodes)) {\n if (!(node instanceof Element)) {\n continue;\n }\n const tagName = node.tagName;\n if (tagName === 'AX-SIDE-MENU-ITEM' || tagName === 'AX-TITLE' || tagName === 'AX-DIVIDER') {\n return true;\n }\n if (node.querySelector?.('ax-side-menu-item,ax-title,ax-divider')) {\n return true;\n }\n }\n return false;\n }\n getItemLabel(host, instance) {\n if (instance?.text()) {\n return instance.text();\n }\n const insideText = host.querySelector('.ax-inside-text');\n if (insideText?.textContent?.trim()) {\n return insideText.textContent.trim();\n }\n return host.querySelector('ax-text')?.textContent?.trim() ?? '';\n }\n getItemIcon(host) {\n const axIcon = host.querySelector('ax-prefix ax-icon');\n if (!axIcon) {\n return undefined;\n }\n return axIcon.getAttribute('icon') ?? axIcon.querySelector('i')?.className ?? undefined;\n }\n getItemSuffix(host) {\n const text = host.querySelector('ax-suffix ax-text')?.textContent?.trim();\n return text ? { text } : undefined;\n }\n getInstanceFromElement(el) {\n const ctx = el.__axContext__;\n return ctx instanceof AXSideMenuItemComponent ? ctx : undefined;\n }\n closeSiblingCompactMenus() {\n const menuHost = this.hostElement.closest('ax-side-menu');\n if (!menuHost) {\n return;\n }\n menuHost.querySelectorAll(':scope > ax-side-menu-item').forEach((el) => {\n const sibling = this.getInstanceFromElement(el);\n if (!sibling || sibling === this) {\n return;\n }\n sibling.isCollapsed.set(true);\n sibling.childrenContextMenu()?.close();\n });\n }\n updateHasChild() {\n this.hasChild.set(this.childItems().length > 0 || this.getDirectChildElements().length > 0);\n }\n updateContentLabel() {\n if (!isPlatformBrowser(this.platformId))\n return;\n const insideText = this.hostElement.querySelector('.ax-inside-text');\n const label = insideText?.textContent?.trim() || this.hostElement.querySelector('ax-text')?.textContent?.trim() || '';\n if (label !== this.contentLabel()) {\n this.contentLabel.set(label);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXSideMenuItemComponent, isStandalone: true, selector: \"ax-side-menu-item\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: \"text\", publicName: \"text\", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: \"active\", publicName: \"active\", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: \"isLoading\", publicName: \"isLoading\", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: \"isCollapsed\", publicName: \"isCollapsed\", isSignal: true, isRequired: false, transformFunction: null }, toggleOnClick: { classPropertyName: \"toggleOnClick\", publicName: \"toggleOnClick\", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: \"href\", publicName: \"href\", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: \"routerLink\", publicName: \"routerLink\", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActive: { classPropertyName: \"routerLinkActive\", publicName: \"routerLinkActive\", isSignal: true, isRequired: false, transformFunction: null }, routerLinkActiveOptions: { classPropertyName: \"routerLinkActiveOptions\", publicName: \"routerLinkActiveOptions\", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: \"target\", publicName: \"target\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { text: \"textChange\", active: \"activeChange\", isLoading: \"isLoadingChange\", isCollapsed: \"isCollapsedChange\", onClick: \"onClick\" }, providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], queries: [{ propertyName: \"childItems\", predicate: AXSideMenuItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: \"menuItemTrigger\", first: true, predicate: [\"menuItemTrigger\"], descendants: true, isSignal: true }, { propertyName: \"childrenSlot\", first: true, predicate: [\"childrenSlot\"], descendants: true, isSignal: true }, { propertyName: \"childrenContextMenu\", first: true, predicate: [\"childrenContextMenu\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"<div [axTooltip]=\\\"tooltipContent()\\\" axTooltipPlacement=\\\"end\\\" class=\\\"ax-side-menu-wrapper\\\">\\n @if (!isCompactMode()) {\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n }\\n @if (routerLink()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [routerLink]=\\\"routerLink()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n [routerLinkActive]=\\\"routerLinkActive()\\\"\\n [routerLinkActiveOptions]=\\\"routerLinkActiveOptions()\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else if (href()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [href]=\\\"href()\\\"\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else {\\n <div\\n #menuItemTrigger\\n [axRipple]\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </div>\\n }\\n\\n <div\\n class=\\\"ax-side-children\\\"\\n [class.ax-collapsed]=\\\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\\\"\\n [class.ax-empty]=\\\"!hasChild() && !isLoading()\\\"\\n >\\n @if (isLoading()) {\\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\\n }\\n <div #childrenSlot class=\\\"ax-side-children-content\\\" [hidden]=\\\"isLoading()\\\">\\n <ng-content select=\\\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\\\"></ng-content>\\n </div>\\n </div>\\n\\n @if (isCompactMode() && hasChild()) {\\n <ax-context-menu\\n #childrenContextMenu\\n class=\\\"ax-side-menu-children-context-menu\\\"\\n [openOn]=\\\"'hover'\\\"\\n [closeOn]=\\\"'leave'\\\"\\n [closeOnRouteChange]=\\\"true\\\"\\n (onItemClick)=\\\"handleContextMenuItemClick($event)\\\"\\n (onClose)=\\\"handleContextMenuClosed()\\\"\\n />\\n }\\n\\n <ng-content select=\\\"ax-divider\\\"></ng-content>\\n <ng-template #menuItemContent>\\n <div class=\\\"ax-start-side\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <div class=\\\"ax-inside-text\\\">\\n @if (text()) {\\n <span>{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </div>\\n </div>\\n <div class=\\\"ax-end-side\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\\n <span class=\\\"ax-icon ax-icon-chevron-right arrow-icon\\\" [class.arrow-icon-expand]=\\\"!isCollapsed()\\\"> </span>\\n }\\n @if (isLoading()) {\\n <ax-loading></ax-loading>\\n }\\n </div>\\n </ng-template>\\n</div>\\n\", dependencies: [{ kind: \"directive\", type: AXRippleDirective, selector: \"[axRipple]\", inputs: [\"axRipple\", \"axRippleColor\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i1.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"component\", type: AXContextMenuComponent, selector: \"ax-context-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"closeOnRouteChange\", \"items\", \"target\"], outputs: [\"onItemClick\", \"onOpening\", \"onClose\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-side-menu-item', inputs: ['disabled'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n AXRippleDirective,\n RouterLink,\n RouterLinkActive,\n NgTemplateOutlet,\n AXLoadingComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n AXContextMenuComponent,\n ], providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], template: \"<div [axTooltip]=\\\"tooltipContent()\\\" axTooltipPlacement=\\\"end\\\" class=\\\"ax-side-menu-wrapper\\\">\\n @if (!isCompactMode()) {\\n <ng-content select=\\\"ax-title\\\"></ng-content>\\n }\\n @if (routerLink()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [routerLink]=\\\"routerLink()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n [routerLinkActive]=\\\"routerLinkActive()\\\"\\n [routerLinkActiveOptions]=\\\"routerLinkActiveOptions()\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else if (href()) {\\n <a\\n #menuItemTrigger\\n [axRipple]\\n [href]=\\\"href()\\\"\\n [target]=\\\"target()\\\"\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </a>\\n } @else {\\n <div\\n #menuItemTrigger\\n [axRipple]\\n class=\\\"ax-side-item\\\"\\n [class.ax-state-active]=\\\"active()\\\"\\n (click)=\\\"handleClickEvent($event)\\\"\\n [class.ax-state-disabled]=\\\"disabled\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"menuItemContent\\\"></ng-container>\\n </div>\\n }\\n\\n <div\\n class=\\\"ax-side-children\\\"\\n [class.ax-collapsed]=\\\"(!isCompactMode() && isCollapsed()) || (isCompactMode() && isFirstLevel())\\\"\\n [class.ax-empty]=\\\"!hasChild() && !isLoading()\\\"\\n >\\n @if (isLoading()) {\\n <p>{{ '@acorex:common.status.loading' | translate | async }}</p>\\n }\\n <div #childrenSlot class=\\\"ax-side-children-content\\\" [hidden]=\\\"isLoading()\\\">\\n <ng-content select=\\\"ax-side-menu-item, ng-container, [ngTemplateOutlet]\\\"></ng-content>\\n </div>\\n </div>\\n\\n @if (isCompactMode() && hasChild()) {\\n <ax-context-menu\\n #childrenContextMenu\\n class=\\\"ax-side-menu-children-context-menu\\\"\\n [openOn]=\\\"'hover'\\\"\\n [closeOn]=\\\"'leave'\\\"\\n [closeOnRouteChange]=\\\"true\\\"\\n (onItemClick)=\\\"handleContextMenuItemClick($event)\\\"\\n (onClose)=\\\"handleContextMenuClosed()\\\"\\n />\\n }\\n\\n <ng-content select=\\\"ax-divider\\\"></ng-content>\\n <ng-template #menuItemContent>\\n <div class=\\\"ax-start-side\\\">\\n <ng-content select=\\\"ax-prefix\\\"></ng-content>\\n <div class=\\\"ax-inside-text\\\">\\n @if (text()) {\\n <span>{{ text() }}</span>\\n }\\n <ng-content></ng-content>\\n </div>\\n </div>\\n <div class=\\\"ax-end-side\\\">\\n <ng-content select=\\\"ax-suffix\\\"></ng-content>\\n @if (hasChild() && !isLoading() && toggleOnClick() && !isFirstLevel()) {\\n <span class=\\\"ax-icon ax-icon-chevron-right arrow-icon\\\" [class.arrow-icon-expand]=\\\"!isCollapsed()\\\"> </span>\\n }\\n @if (isLoading()) {\\n <ax-loading></ax-loading>\\n }\\n </div>\\n </ng-template>\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9zaWRlLW1lbnUvc3JjL2xpYi9zaWRlLW1lbnUtaXRlbS9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NpZGUtbWVudS9zcmMvbGliL3NpZGUtbWVudS1pdGVtL3NpZGUtbWVudS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUE0QyxNQUFNLHlCQUF5QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFXLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsZUFBZSxFQUNmLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixVQUFVLEVBQUUs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dkUsNDZGQTJGQSw0Q0RoREksaUJBQWlCLDhGQUNqQixVQUFVLG9PQUNWLGdCQUFnQiw4TUFDaEIsZ0JBQWdCLG9KQUNoQixrQkFBa0IsMEhBR2xCLGVBQWUsdVJBQ2Ysc0JBQXNCLGdNQUh0QixTQUFTLHlDQUNULGdCQUFnQjs7MkZBTVAsdUJBQXVCO2tCQW5CbkMsU0FBUzsrQkFDRSxtQkFBbUIsVUFDckIsQ0FBQyxVQUFVLENBQUMsbUJBRUgsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxpQkFBaUI7d0JBQ2pCLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysc0JBQXNCO3FCQUN2QixhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcseUJBQXlCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhDb21wb25lbnQsIEFYUmlwcGxlRGlyZWN0aXZlLCBNWEludGVyYWN0aXZlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYQ29udGV4dE1lbnVDb21wb25lbnQsIEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQsIEFYTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWVudSc7XG5pbXBvcnQgeyBBWFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3JQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYSHRtbFV0aWwsIEFYUG9pbnQgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBpc1BsYXRmb3JtQnJvd3NlciwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERlc3Ryb3lSZWYsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIG91dHB1dCxcbiAgUExBVEZPUk1fSUQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJc0FjdGl2ZU1hdGNoT3B0aW9ucywgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBjbGFzcyBBWFNpZGVNZW51SXRlbUNsaWNrRXZlbnQgZXh0ZW5kcyBBWENsaWNrRXZlbnQge1xuICBoYW5kbGVkID0gZmFsc2U7XG59XG5cbi8qKiBSb3V0ZXMgY29udGV4dC1tZW51IGNsaWNrcyBiYWNrIHRvIHRoZSBtYXRjaGluZyBgYXgtc2lkZS1tZW51LWl0ZW1gLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFNpZGVNZW51Q29udGV4dE1lbnVJdGVtRGF0YSB7XG4gIHNpZGVNZW51SXRlbTogQVhTaWRlTWVudUl0ZW1Db21wb25lbnQ7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNpZGUtbWVudS1pdGVtJyxcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQVhSaXBwbGVEaXJlY3RpdmUsXG4gICAgUm91dGVyTGluayxcbiAgICBSb3V0ZXJMaW5rQWN0aXZlLFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQVhMb2FkaW5nQ29tcG9uZW50LFxuICAgIEFzeW5jUGlwZSxcbiAgICBBWFRyYW5zbGF0b3JQaXBlLFxuICAgIEFYVG9vbHRpcE1vZHVsZSxcbiAgICBBWENvbnRleHRNZW51Q29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTaWRlTWVudUl0ZW1Db21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XG4gIHRleHQgPSBtb2RlbCgnJyk7XG4gIGFjdGl2ZSA9IG1vZGVsKGZhbHNlKTtcbiAgaXNMb2FkaW5nID0gbW9kZWwoZmFsc2UpO1xuICBpc0NvbGxhcHNlZCA9IG1vZGVsKHRydWUpO1xuICBvbkNsaWNrID0gb3V0cHV0PEFYU2lkZU1lbnVJdGVtQ2xpY2tFdmVudD4oKTtcblxuICByZWFkb25seSB0b2dnbGVPbkNsaWNrID0gaW5wdXQodHJ1ZSk7XG4gIHJlYWRvbmx5IGhyZWYgPSBpbnB1dDxzdHJpbmcgfCBudWxsPigpO1xuICByZWFkb25seSByb3V0ZXJMaW5rID0gaW5wdXQ8c3RyaW5nIHwgYW55W10gfCBVcmxUcmVlIHwgbnVsbD4oKTtcbiAgcmVhZG9ubHkgcm91dGVyTGlua0FjdGl2ZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPignYXgtc3RhdGUtYWN0aXZlJyk7XG4gIHJlYWRvbmx5IHJvdXRlckxpbmtBY3RpdmVPcHRpb25zID0gaW5wdXQ8eyBleGFjdDogYm9vbGVhbiB9IHwgSXNBY3RpdmVNYXRjaE9wdGlvbnM+KHsgZXhhY3Q6IGZhbHNlIH0pO1xuICByZWFkb25seSB0YXJnZXQgPSBpbnB1dDwnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc+KCdfc2VsZicpO1xuXG4gIHByb3RlY3RlZCBtZW51SXRlbVRyaWdnZXIgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdtZW51SXRlbVRyaWdnZXInKTtcbiAgcHJvdGVjdGVkIGhhc0NoaWxkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIGlzQ29tcGFjdE1vZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1lbnVNb2RlKCkgPT09ICdjb21wYWN0Jyk7XG5cbiAgLyoqIFRvcC1sZXZlbCByYWlsIGVudHJ5IGluIGNvbXBhY3QgbW9kZSAob3BlbnMgdGhlIGZseW91dCBjb250ZXh0IG1lbnUpLiAqL1xuICBwcm90ZWN0ZWQgaXNGaXJzdExldmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy5pc0NvbXBhY3RNb2RlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICF0aGlzLmhvc3RFbGVtZW50LnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJy5heC1zaWRlLWNoaWxkcmVuLWNvbnRlbnQnKTtcbiAgfSk7XG5cbiAgLyoqIFRvb2x0aXAgdGV4dCBmb3IgZmlyc3QtbGV2ZWwgaXRlbXMgaW4gY29tcGFjdCBtb2RlIG9ubHkuICovXG4gIHByb3RlY3RlZCB0b29sdGlwQ29udGVudCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMuaXNGaXJzdExldmVsKCkpIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLnRleHQoKS50cmltKCkgfHwgdGhpcy5jb250ZW50TGFiZWwoKS50cmltKCkgfHwgbnVsbDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1lbnVNb2RlID0gc2lnbmFsPCdmdWxsJyB8ICdjb21wYWN0Jz4oJ2Z1bGwnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZW50TGFiZWwgPSBzaWduYWwoJycpO1xuXG4gIHByaXZhdGUgY2hpbGRPYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNoaWxkUmVmcmVzaFNjaGVkdWxlZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoaWxkSXRlbXMgPSBjb250ZW50Q2hpbGRyZW4oQVhTaWRlTWVudUl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpbGRyZW5TbG90ID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignY2hpbGRyZW5TbG90Jyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpbGRyZW5Db250ZXh0TWVudSA9IHZpZXdDaGlsZDxBWENvbnRleHRNZW51Q29tcG9uZW50PignY2hpbGRyZW5Db250ZXh0TWVudScpO1xuXG4gIHByaXZhdGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICAjY2hpbGRDaGVja0VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuY2hpbGRJdGVtcygpLmxlbmd0aCkge1xuICAgICAgdGhpcy51cGRhdGVIYXNDaGlsZCgpO1xuICAgIH1cbiAgfSk7XG5cbiAgI2luaXRDaGlsZHJlbiA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVwYXJlbnRPcnBoYW5lZENoaWxkcmVuKCk7XG4gICAgdGhpcy51cGRhdGVIYXNDaGlsZCgpO1xuICAgIHRoaXMudXBkYXRlQ29udGVudExhYmVsKCk7XG4gICAgdGhpcy5jaGlsZE9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKHJlY29yZHMpID0+IHtcbiAgICAgIGlmICghdGhpcy5oYXNSZWxldmFudE11dGF0aW9uKHJlY29yZHMpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2NoZWR1bGVDaGlsZFJlZnJlc2goKTtcbiAgICB9KTtcbiAgICB0aGlzLmNoaWxkT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmhvc3RFbGVtZW50LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSwgY2hhcmFjdGVyRGF0YTogdHJ1ZSB9KTtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHRoaXMuY2hpbGRPYnNlcnZlcj8uZGlzY29ubmVjdCgpKTtcbiAgfSk7XG5cbiAgI2NvbnRleHRNZW51U3luYyA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmlzQ29tcGFjdE1vZGUoKSB8fCAhaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCAhdGhpcy5pc0ZpcnN0TGV2ZWwoKSB8fCAhdGhpcy5oYXNDaGlsZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWVudSA9IHRoaXMuY2hpbGRyZW5Db250ZXh0TWVudSgpO1xuICAgIGlmICghbWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQ29sbGFwc2VkKCkpIHtcbiAgICAgIG1lbnUuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZVNpYmxpbmdDb21wYWN0TWVudXMoKTtcbiAgICAgIHRoaXMub3BlbkNvbXBhY3RDb250ZXh0TWVudShtZW51KTtcbiAgICB9XG4gIH0pO1xuXG4gIHN5bmNNZW51TW9kZShtb2RlOiAnZnVsbCcgfCAnY29tcGFjdCcpIHtcbiAgICBpZiAodGhpcy5tZW51TW9kZSgpID09PSBtb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubWVudU1vZGUuc2V0KG1vZGUpO1xuICAgIHRoaXMuY2hpbGRyZW5Db250ZXh0TWVudSgpPy5jbG9zZSgpO1xuICAgIGlmIChtb2RlID09PSAnY29tcGFjdCcpIHtcbiAgICAgIHRoaXMuaXNDb2xsYXBzZWQuc2V0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBCdWlsZHMgdGhlIGNhc2NhZGluZyBgQVhNZW51SXRlbWAgdHJlZSB1c2VkIGJ5IHRoZSBjb21wYWN0LW1vZGUgY29udGV4dCBtZW51LiAqL1xuICBidWlsZE1lbnVJdGVtc0Zyb21DaGlsZHJlbigpOiBBWE1lbnVJdGVtW10ge1xuICAgIHRoaXMucmVwYXJlbnRPcnBoYW5lZENoaWxkcmVuKCk7XG5cbiAgICBjb25zdCBzbG90ID0gdGhpcy5jaGlsZHJlblNsb3QoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBpdGVtc0Zyb21TbG90ID0gc2xvdCA/IHRoaXMubWFwU2xvdENoaWxkcmVuVG9NZW51SXRlbXMoc2xvdCkgOiBbXTtcblxuICAgIGlmIChpdGVtc0Zyb21TbG90Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpdGVtc0Zyb21TbG90O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldERpcmVjdENoaWxkRWxlbWVudHMoKS5tYXAoKGVsKSA9PiB0aGlzLnRvTWVudUl0ZW0oZWwpKTtcbiAgfVxuXG4gIGFjdGl2YXRlRnJvbUNvbnRleHRNZW51KG5hdGl2ZUV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc0xvYWRpbmcoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy5tZW51SXRlbVRyaWdnZXIoKS5uYXRpdmVFbGVtZW50O1xuICAgIGlmICh0cmlnZ2VyIGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQpIHtcbiAgICAgIHRyaWdnZXIuY2xpY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgaGFuZGxlZDogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuaXNDb21wYWN0TW9kZSgpICYmICghdGhpcy5oYXNDaGlsZCgpIHx8ICF0aGlzLmlzRmlyc3RMZXZlbCgpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzQ29sbGFwc2VkLnVwZGF0ZSgoY29sbGFwc2VkKSA9PiAhY29sbGFwc2VkKTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQoZmFsc2UpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQodHJ1ZSk7XG4gICAgdGhpcy5jaGlsZHJlbkNvbnRleHRNZW51KCk/LmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dE1lbnVJdGVtQ2xpY2soZXZlbnQ6IEFYQ29udGV4dE1lbnVJdGVtc0NsaWNrRXZlbnQpIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IChldmVudC5pdGVtLmRhdGEgYXMgQVhTaWRlTWVudUNvbnRleHRNZW51SXRlbURhdGEgfCB1bmRlZmluZWQpPy5zaWRlTWVudUl0ZW07XG4gICAgaWYgKCFpbnN0YW5jZSB8fCBpbnN0YW5jZS5oYXNDaGlsZCgpKSByZXR1cm47XG4gICAgaW5zdGFuY2UuYWN0aXZhdGVGcm9tQ29udGV4dE1lbnUoZXZlbnQubmF0aXZlRXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNvbnRleHRNZW51Q2xvc2VkKCkge1xuICAgIGlmICghdGhpcy5pc0NvbGxhcHNlZCgpKSB0aGlzLmlzQ29sbGFwc2VkLnNldCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGlja0V2ZW50KGU6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzTG9hZGluZygpKSByZXR1cm47XG5cbiAgICBjb25zdCBldmVudDogQVhTaWRlTWVudUl0ZW1DbGlja0V2ZW50ID0ge1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKSxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgICAgaGFuZGxlZDogZmFsc2UsXG4gICAgfTtcbiAgICB0aGlzLm9uQ2xpY2suZW1pdChldmVudCk7XG4gICAgaWYgKCFldmVudC5oYW5kbGVkICYmIHRoaXMudG9nZ2xlT25DbGljaygpICYmICh0aGlzLmhhc0NoaWxkKCkgfHwgIXRoaXMuaXNDb21wYWN0TW9kZSgpKSkgdGhpcy50b2dnbGUoKTtcblxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5Db21wYWN0Q29udGV4dE1lbnUobWVudTogQVhDb250ZXh0TWVudUNvbXBvbmVudCkge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5idWlsZE1lbnVJdGVtc0Zyb21DaGlsZHJlbigpO1xuICAgIGlmICghaXRlbXMubGVuZ3RoKSByZXR1cm47XG5cbiAgICBtZW51LnNob3dBdCh0aGlzLmdldENvbnRleHRNZW51QW5jaG9yUG9pbnQoKSwgdGhpcy5tZW51SXRlbVRyaWdnZXIoKS5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBzZW5kZXI6IG1lbnUsXG4gICAgICBjYW5jZWxlZDogZmFsc2UsXG4gICAgICB0YXJnZXRFbGVtZW50OiB0aGlzLm1lbnVJdGVtVHJpZ2dlcigpLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBpdGVtcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGV4dE1lbnVBbmNob3JQb2ludCgpOiBBWFBvaW50IHtcbiAgICBjb25zdCByZWN0ID0gdGhpcy5tZW51SXRlbVRyaWdnZXIoKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IG9mZnNldCA9IDg7XG4gICAgaWYgKEFYSHRtbFV0aWwuaXNSdGwodGhpcy5ob3N0RWxlbWVudCkpIHtcbiAgICAgIHJldHVybiB7IHg6IHJlY3QubGVmdCAtIG9mZnNldCwgeTogcmVjdC50b3AgfTtcbiAgICB9XG4gICAgcmV0dXJuIHsgeDogcmVjdC5yaWdodCArIG9mZnNldCwgeTogcmVjdC50b3AgfTtcbiAgfVxuXG4gIHByaXZhdGUgbWFwU2xvdENoaWxkcmVuVG9NZW51SXRlbXMoc2xvdDogSFRNTEVsZW1lbnQpOiBBWE1lbnVJdGVtW10ge1xuICAgIGNvbnN0IGl0ZW1zOiBBWE1lbnVJdGVtW10gPSBbXTtcbiAgICBsZXQgcGVuZGluZ0dyb3VwVGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgQXJyYXkuZnJvbShzbG90LmNoaWxkcmVuKSkge1xuICAgICAgaWYgKGNoaWxkLnRhZ05hbWUgPT09ICdBWC1USVRMRScpIHtcbiAgICAgICAgcGVuZGluZ0dyb3VwVGl0bGUgPSBjaGlsZC50ZXh0Q29udGVudD8udHJpbSgpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoY2hpbGQudGFnTmFtZSA9PT0gJ0FYLURJVklERVInKSB7XG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV0gPSB7IC4uLml0ZW1zW2l0ZW1zLmxlbmd0aCAtIDFdLCBicmVhazogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGNoaWxkLnRhZ05hbWUgIT09ICdBWC1TSURFLU1FTlUtSVRFTScpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1lbnVJdGVtID0gdGhpcy50b01lbnVJdGVtKGNoaWxkIGFzIEhUTUxFbGVtZW50KTtcbiAgICAgIGlmIChwZW5kaW5nR3JvdXBUaXRsZSkge1xuICAgICAgICBtZW51SXRlbS5ncm91cCA9IHsgdGl0bGU6IHBlbmRpbmdHcm91cFRpdGxlIH07XG4gICAgICAgIHBlbmRpbmdHcm91cFRpdGxlID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaXRlbXMucHVzaChtZW51SXRlbSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgcHJpdmF0ZSB0b01lbnVJdGVtKGhvc3Q6IEhUTUxFbGVtZW50KTogQVhNZW51SXRlbSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmdldEluc3RhbmNlRnJvbUVsZW1lbnQoaG9zdCk7XG4gICAgY29uc3QgaXRlbTogQVhNZW51SXRlbSA9IHtcbiAgICAgIHRleHQ6IHRoaXMuZ2V0SXRlbUxhYmVsKGhvc3QsIGluc3RhbmNlKSxcbiAgICAgIGRpc2FibGVkOiBpbnN0YW5jZT8uZGlzYWJsZWQgPz8gZmFsc2UsXG4gICAgICBpY29uOiB0aGlzLmdldEl0ZW1JY29uKGhvc3QpLFxuICAgICAgc3VmZml4OiB0aGlzLmdldEl0ZW1TdWZmaXgoaG9zdCksXG4gICAgfTtcblxuICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgaXRlbS5kYXRhID0geyBzaWRlTWVudUl0ZW06IGluc3RhbmNlIH0gc2F0aXNmaWVzIEFYU2lkZU1lbnVDb250ZXh0TWVudUl0ZW1EYXRhO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhhc05lc3RlZENoaWxkcmVuKGhvc3QsIGluc3RhbmNlKSkge1xuICAgICAgaXRlbS5pdGVtcyA9XG4gICAgICAgIGluc3RhbmNlPy5idWlsZE1lbnVJdGVtc0Zyb21DaGlsZHJlbigpID8/IHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cyhob3N0KS5tYXAoKGVsKSA9PiB0aGlzLnRvTWVudUl0ZW0oZWwpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzTmVzdGVkQ2hpbGRyZW4oaG9zdDogSFRNTEVsZW1lbnQsIGluc3RhbmNlPzogQVhTaWRlTWVudUl0ZW1Db21wb25lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGluc3RhbmNlPy5oYXNDaGlsZCgpID8/IGZhbHNlKSB8fCB0aGlzLmdldERpcmVjdENoaWxkRWxlbWVudHMoaG9zdCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8qKiBEaXJlY3QgYGF4LXNpZGUtbWVudS1pdGVtYCBjaGlsZHJlbiBvZiBgbWVudUhvc3RgIChkZWZhdWx0cyB0byB0aGlzIGl0ZW0pLiAqL1xuICBwcml2YXRlIGdldERpcmVjdENoaWxkRWxlbWVudHMobWVudUhvc3Q6IEhUTUxFbGVtZW50ID0gdGhpcy5ob3N0RWxlbWVudCk6IEhUTUxFbGVtZW50W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKG1lbnVIb3N0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F4LXNpZGUtbWVudS1pdGVtJykpLmZpbHRlcigoZWwpID0+IHtcbiAgICAgIGlmIChlbCA9PT0gbWVudUhvc3QpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVsLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJ2F4LXNpZGUtbWVudS1pdGVtJykgPT09IG1lbnVIb3N0O1xuICAgIH0pIGFzIEhUTUxFbGVtZW50W107XG4gIH1cblxuICBwcml2YXRlIHJlcGFyZW50T3JwaGFuZWRDaGlsZHJlbigpIHtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmNoaWxkcmVuU2xvdCgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBlbCBvZiB0aGlzLmdldERpcmVjdENoaWxkRWxlbWVudHMoKSkge1xuICAgICAgaWYgKCFjb250YWluZXIuY29udGFpbnMoZWwpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGVsKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSGllcmFyY2h5UmVxdWVzdEVycm9yIHdoZW4gdGhlIG5vZGUgaXMgYWxyZWFkeSBiZWluZyBtb3ZlZC5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2NoZWR1bGVDaGlsZFJlZnJlc2goKSB7XG4gICAgaWYgKHRoaXMuY2hpbGRSZWZyZXNoU2NoZWR1bGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hpbGRSZWZyZXNoU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5jaGlsZFJlZnJlc2hTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVwYXJlbnRPcnBoYW5lZENoaWxkcmVuKCk7XG4gICAgICB0aGlzLnVwZGF0ZUhhc0NoaWxkKCk7XG4gICAgICB0aGlzLnVwZGF0ZUNvbnRlbnRMYWJlbCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNSZWxldmFudE11dGF0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10pOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICBpZiAocmVjb3JkLnR5cGUgPT09ICdjaGFyYWN0ZXJEYXRhJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5ub2RlTGlzdENvbnRhaW5zTWVudVN0cnVjdHVyYWxOb2RlKHJlY29yZC5hZGRlZE5vZGVzKSB8fFxuICAgICAgICB0aGlzLm5vZGVMaXN0Q29udGFpbnNNZW51U3RydWN0dXJhbE5vZGUocmVjb3JkLnJlbW92ZWROb2RlcylcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBub2RlTGlzdENvbnRhaW5zTWVudVN0cnVjdHVyYWxOb2RlKG5vZGVzOiBOb2RlTGlzdCk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBBcnJheS5mcm9tKG5vZGVzKSkge1xuICAgICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgdGFnTmFtZSA9IG5vZGUudGFnTmFtZTtcbiAgICAgIGlmICh0YWdOYW1lID09PSAnQVgtU0lERS1NRU5VLUlURU0nIHx8IHRhZ05hbWUgPT09ICdBWC1USVRMRScgfHwgdGFnTmFtZSA9PT0gJ0FYLURJVklERVInKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG5vZGUucXVlcnlTZWxlY3Rvcj8uKCdheC1zaWRlLW1lbnUtaXRlbSxheC10aXRsZSxheC1kaXZpZGVyJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbUxhYmVsKGhvc3Q6IEhUTUxFbGVtZW50LCBpbnN0YW5jZT86IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaW5zdGFuY2U/LnRleHQoKSkge1xuICAgICAgcmV0dXJuIGluc3RhbmNlLnRleHQoKTtcbiAgICB9XG4gICAgY29uc3QgaW5zaWRlVGV4dCA9IGhvc3QucXVlcnlTZWxlY3RvcignLmF4LWluc2lkZS10ZXh0Jyk7XG4gICAgaWYgKGluc2lkZVRleHQ/LnRleHRDb250ZW50Py50cmltKCkpIHtcbiAgICAgIHJldHVybiBpbnNpZGVUZXh0LnRleHRDb250ZW50LnRyaW0oKTtcbiAgICB9XG4gICAgcmV0dXJuIGhvc3QucXVlcnlTZWxlY3RvcignYXgtdGV4dCcpPy50ZXh0Q29udGVudD8udHJpbSgpID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtSWNvbihob3N0OiBIVE1MRWxlbWVudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXhJY29uID0gaG9zdC5xdWVyeVNlbGVjdG9yKCdheC1wcmVmaXggYXgtaWNvbicpO1xuICAgIGlmICghYXhJY29uKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gYXhJY29uLmdldEF0dHJpYnV0ZSgnaWNvbicpID8/IGF4SWNvbi5xdWVyeVNlbGVjdG9yKCdpJyk/LmNsYXNzTmFtZSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1TdWZmaXgoaG9zdDogSFRNTEVsZW1lbnQpOiB7IHRleHQ6IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0ZXh0ID0gaG9zdC5xdWVyeVNlbGVjdG9yKCdheC1zdWZmaXggYXgtdGV4dCcpPy50ZXh0Q29udGVudD8udHJpbSgpO1xuICAgIHJldHVybiB0ZXh0ID8geyB0ZXh0IH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEluc3RhbmNlRnJvbUVsZW1lbnQoZWw6IEVsZW1lbnQpOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY3R4ID0gKGVsIGFzIHVua25vd24gYXMgeyBfX2F4Q29udGV4dF9fPzogdW5rbm93biB9KS5fX2F4Q29udGV4dF9fO1xuICAgIHJldHVybiBjdHggaW5zdGFuY2VvZiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCA/IGN0eCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VTaWJsaW5nQ29tcGFjdE1lbnVzKCkge1xuICAgIGNvbnN0IG1lbnVIb3N0ID0gdGhpcy5ob3N0RWxlbWVudC5jbG9zZXN0KCdheC1zaWRlLW1lbnUnKTtcbiAgICBpZiAoIW1lbnVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbWVudUhvc3QucXVlcnlTZWxlY3RvckFsbCgnOnNjb3BlID4gYXgtc2lkZS1tZW51LWl0ZW0nKS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgY29uc3Qgc2libGluZyA9IHRoaXMuZ2V0SW5zdGFuY2VGcm9tRWxlbWVudChlbCk7XG4gICAgICBpZiAoIXNpYmxpbmcgfHwgc2libGluZyA9PT0gdGhpcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzaWJsaW5nLmlzQ29sbGFwc2VkLnNldCh0cnVlKTtcbiAgICAgIHNpYmxpbmcuY2hpbGRyZW5Db250ZXh0TWVudSgpPy5jbG9zZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIYXNDaGlsZCgpIHtcbiAgICB0aGlzLmhhc0NoaWxkLnNldCh0aGlzLmNoaWxkSXRlbXMoKS5sZW5ndGggPiAwIHx8IHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cygpLmxlbmd0aCA+IDApO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250ZW50TGFiZWwoKSB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgY29uc3QgaW5zaWRlVGV4dCA9IHRoaXMuaG9zdEVsZW1lbnQucXVlcnlTZWxlY3RvcignLmF4LWluc2lkZS10ZXh0Jyk7XG4gICAgY29uc3QgbGFiZWwgPSBpbnNpZGVUZXh0Py50ZXh0Q29udGVudD8udHJpbSgpIHx8IHRoaXMuaG9zdEVsZW1lbnQucXVlcnlTZWxlY3RvcignYXgtdGV4dCcpPy50ZXh0Q29udGVudD8udHJpbSgpIHx8ICcnO1xuICAgIGlmIChsYWJlbCAhPT0gdGhpcy5jb250ZW50TGFiZWwoKSkge1xuICAgICAgdGhpcy5jb250ZW50TGFiZWwuc2V0KGxhYmVsKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW2F4VG9vbHRpcF09XCJ0b29sdGlwQ29udGVudCgpXCIgYXhUb29sdGlwUGxhY2VtZW50PVwiZW5kXCIgY2xhc3M9XCJheC1zaWRlLW1lbnUtd3JhcHBlclwiPlxuICBAaWYgKCFpc0NvbXBhY3RNb2RlKCkpIHtcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC10aXRsZVwiPjwvbmctY29udGVudD5cbiAgfVxuICBAaWYgKHJvdXRlckxpbmsoKSkge1xuICAgIDxhXG4gICAgICAjbWVudUl0ZW1UcmlnZ2VyXG4gICAgICBbYXhSaXBwbGVdXG4gICAgICBbdGFyZ2V0XT1cInRhcmdldCgpXCJcbiAgICAgIGNsYXNzPVwiYXgtc2lkZS1pdGVtXCJcbiAgICAgIFtyb3V0ZXJMaW5rXT1cInJvdXRlckxpbmsoKVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2tFdmVudCgkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJyb3V0ZXJMaW5rQWN0aXZlKClcIlxuICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInJvdXRlckxpbmtBY3RpdmVPcHRpb25zKClcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVudUl0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9hPlxuICB9IEBlbHNlIGlmIChocmVmKCkpIHtcbiAgICA8YVxuICAgICAgI21lbnVJdGVtVHJpZ2dlclxuICAgICAgW2F4UmlwcGxlXVxuICAgICAgW2hyZWZdPVwiaHJlZigpXCJcbiAgICAgIFt0YXJnZXRdPVwidGFyZ2V0KClcIlxuICAgICAgY2xhc3M9XCJheC1zaWRlLWl0ZW1cIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWFjdGl2ZV09XCJhY3RpdmUoKVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2tFdmVudCgkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICNtZW51SXRlbVRyaWdnZXJcbiAgICAgIFtheFJpcHBsZV1cbiAgICAgIGNsYXNzPVwiYXgtc2lkZS1pdGVtXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1hY3RpdmVdPVwiYWN0aXZlKClcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrRXZlbnQoJGV2ZW50KVwiXG4gICAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVudUl0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJheC1zaWRlLWNoaWxkcmVuXCJcbiAgICBbY2xhc3MuYXgtY29sbGFwc2VkXT1cIighaXNDb21wYWN0TW9kZSgpICYmIGlzQ29sbGFwc2VkKCkpIHx8IChpc0NvbXBhY3RNb2RlKCkgJiYgaXNGaXJzdExldmVsKCkpXCJcbiAgICBbY2xhc3MuYXgtZW1wdHldPVwiIWhhc0NoaWxkKCkgJiYgIWlzTG9hZGluZygpXCJcbiAgPlxuICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgIDxwPnt7ICdAYWNvcmV4OmNvbW1vbi5zdGF0dXMubG9hZGluZycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvcD5cbiAgICB9XG4gICAgPGRpdiAjY2hpbGRyZW5TbG90IGNsYXNzPVwiYXgtc2lkZS1jaGlsZHJlbi1jb250ZW50XCIgW2hpZGRlbl09XCJpc0xvYWRpbmcoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc2lkZS1tZW51LWl0ZW0sIG5nLWNvbnRhaW5lciwgW25nVGVtcGxhdGVPdXRsZXRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKGlzQ29tcGFjdE1vZGUoKSAmJiBoYXNDaGlsZCgpKSB7XG4gICAgPGF4LWNvbnRleHQtbWVudVxuICAgICAgI2NoaWxkcmVuQ29udGV4dE1lbnVcbiAgICAgIGNsYXNzPVwiYXgtc2lkZS1tZW51LWNoaWxkcmVuLWNvbnRleHQtbWVudVwiXG4gICAgICBbb3Blbk9uXT1cIidob3ZlcidcIlxuICAgICAgW2Nsb3NlT25dPVwiJ2xlYXZlJ1wiXG4gICAgICBbY2xvc2VPblJvdXRlQ2hhbmdlXT1cInRydWVcIlxuICAgICAgKG9uSXRlbUNsaWNrKT1cImhhbmRsZUNvbnRleHRNZW51SXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgKG9uQ2xvc2UpPVwiaGFuZGxlQ29udGV4dE1lbnVDbG9zZWQoKVwiXG4gICAgLz5cbiAgfVxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWRpdmlkZXJcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy10ZW1wbGF0ZSAjbWVudUl0ZW1Db250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJheC1zdGFydC1zaWRlXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtaW5zaWRlLXRleHRcIj5cbiAgICAgICAgQGlmICh0ZXh0KCkpIHtcbiAgICAgICAgICA8c3Bhbj57eyB0ZXh0KCkgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWVuZC1zaWRlXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj48L25nLWNvbnRlbnQ+XG4gICAgICBAaWYgKGhhc0NoaWxkKCkgJiYgIWlzTG9hZGluZygpICYmIHRvZ2dsZU9uQ2xpY2soKSAmJiAhaXNGaXJzdExldmVsKCkpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1yaWdodCBhcnJvdy1pY29uXCIgW2NsYXNzLmFycm93LWljb24tZXhwYW5kXT1cIiFpc0NvbGxhcHNlZCgpXCI+IDwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { afterNextRender, ChangeDetectionStrategy, Component, DestroyRef, effect, ElementRef, HostBinding, inject, input, model, PLATFORM_ID, signal, ViewEncapsulation, } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { AXSideMenuBase } from './side-menu-base';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @category\n * A component for displaying a side menu with customizable content.\n */\nexport class AXSideMenuComponent extends NXComponent {\n constructor() {\n super(...arguments);\n this.items = model(...(ngDevMode ? [undefined, { debugName: \"items\" }] : []));\n this.look = input('pills', ...(ngDevMode ? [{ debugName: \"look\" }] : []));\n this.location = input('start', ...(ngDevMode ? [{ debugName: \"location\" }] : []));\n this.mode = input('full', ...(ngDevMode ? [{ debugName: \"mode\" }] : []));\n this.elementRef = inject(ElementRef);\n /**\n * All `ax-side-menu-item` instances discovered by walking the host DOM.\n *\n * We use DOM discovery (instead of `contentChildren`) because Angular content\n * queries do **not** traverse embedded views created by `ngTemplateOutlet`,\n * and the `AXSideMenuBase` DI token is not reachable from inside those views\n * either (they inherit injection from the template's declaration site, not\n * the insertion site). Walking the DOM works for direct projection,\n * structural directives, and recursive `ngTemplateOutlet`-based templates\n * uniformly.\n */\n this._items = signal([], ...(ngDevMode ? [{ debugName: \"_items\" }] : []));\n /** Read-only signal exposing every discovered `ax-side-menu-item` instance. */\n this.children = this._items.asReadonly();\n this.platformId = inject(PLATFORM_ID);\n this.destroyRef = inject(DestroyRef);\n this.hostElement = this.elementRef.nativeElement;\n this.domRefreshScheduled = false;\n this.domRefreshObserver = null;\n this.#init = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId))\n return;\n this.refreshItemsFromDom();\n this.domRefreshObserver = new MutationObserver((records) => {\n if (!this.hasRelevantMenuItemMutation(records)) {\n return;\n }\n this.scheduleDomRefresh();\n });\n this.domRefreshObserver.observe(this.elementRef.nativeElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => this.domRefreshObserver?.disconnect());\n });\n /** Push full/compact mode to every menu item whenever mode changes. */\n this.#syncItemMode = effect(() => {\n const mode = this.mode();\n this._items().forEach((item) => item.syncMenuMode(mode));\n }, ...(ngDevMode ? [{ debugName: \"#syncItemMode\" }] : []));\n }\n #init;\n /** Push full/compact mode to every menu item whenever mode changes. */\n #syncItemMode;\n /**\n * Walks the host DOM to discover every nested `ax-side-menu-item`, looks up\n * the component instance through the `__axContext__` property that\n * `MXBaseComponent.ngOnInit` attaches to each host element, and updates the\n * internal items signal and `.first-level` CSS class accordingly.\n *\n * Triggered both initially and from a `MutationObserver` so recursive\n * templates that add/remove items at runtime stay in sync.\n */\n refreshItemsFromDom() {\n const host = this.elementRef.nativeElement;\n const elements = host.querySelectorAll('ax-side-menu-item');\n const items = [];\n elements.forEach((el) => {\n const instance = el.__axContext__;\n if (instance instanceof AXSideMenuItemComponent) {\n items.push(instance);\n }\n });\n const current = this._items();\n const changed = current.length !== items.length || current.some((it, i) => it !== items[i]);\n if (changed) {\n this._items.set(items);\n }\n this.addFirstLevelClass();\n }\n scheduleDomRefresh() {\n if (this.domRefreshScheduled) {\n return;\n }\n this.domRefreshScheduled = true;\n // Batch multiple rapid mutations (e.g., large template updates or overlays closing)\n // into a single refresh to prevent long main-thread stalls.\n requestAnimationFrame(() => {\n this.domRefreshScheduled = false;\n this.refreshItemsFromDom();\n });\n }\n hasRelevantMenuItemMutation(records) {\n for (const record of records) {\n if (this.nodeListContainsMenuItem(record.addedNodes) || this.nodeListContainsMenuItem(record.removedNodes)) {\n return true;\n }\n }\n return false;\n }\n nodeListContainsMenuItem(nodes) {\n for (const node of Array.from(nodes)) {\n if (!(node instanceof Element)) {\n continue;\n }\n if (node.tagName === 'AX-SIDE-MENU-ITEM') {\n return true;\n }\n if (node.querySelector?.('ax-side-menu-item')) {\n return true;\n }\n }\n return false;\n }\n addFirstLevelClass() {\n const allChildren = this._items();\n allChildren.forEach((item) => item.getHostElement().querySelector('.ax-side-item')?.classList.remove('first-level'));\n allChildren\n .filter((item) => {\n const itemElement = item.getHostElement();\n return (this.hostElement.contains(itemElement) && !itemElement.parentElement?.closest('.ax-side-children-content'));\n })\n .forEach((item) => item.getHostElement().querySelector('.ax-side-item')?.classList.add('first-level'));\n }\n /** @ignore */\n get __hostClass() {\n return [`ax-look-${this.look()}`, `ax-location-${this.location()}`, `ax-mode-${this.mode()}`];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXSideMenuComponent, isStandalone: true, selector: \"ax-side-menu\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: \"look\", publicName: \"look\", isSignal: true, isRequired: false, transformFunction: null }, location: { classPropertyName: \"location\", publicName: \"location\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: \"itemsChange\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [\n { provide: AXComponent, useExisting: AXSideMenuComponent },\n { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },\n ], usesInheritance: true, ngImport: i0, template: \"<ng-content select=\\\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n<ng-template #Recursion let-item>\\n @if (item.title) {\\n <ax-title>{{ item.title }}</ax-title>\\n }\\n @if (item.routerLink) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [target]=\\\"item.target\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [routerLink]=\\\"item.routerLink\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n [routerLinkActive]=\\\"item.routerLinkActive\\\"\\n [routerLinkActiveOptions]=\\\"item.routerLinkActiveOptions\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else if (item.href) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [href]=\\\"item.href\\\"\\n [target]=\\\"item.target\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n }\\n\\n <ng-template #sideMenuItemContent>\\n <ax-prefix>\\n @if (item.icon) {\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n }\\n </ax-prefix>\\n @if (item.data) {\\n <ax-text>{{ item.data }}</ax-text>\\n }\\n @if (item.suffixText) {\\n <ax-suffix>\\n <ax-text>{{ item.suffixText }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ng-template>\\n</ng-template>\\n\", styles: [\":root{--ax-comp-side-menu-indicator-size: 2px}ax-side-menu{display:flex;width:100%;flex-direction:column;gap:.5rem;color:inherit;font-size:.875rem;line-height:1.25rem;-webkit-user-select:none;user-select:none}ax-side-menu>ax-title{display:block;margin-block:.5rem;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{display:block;margin-block:.5rem;margin-top:.5rem;padding-inline:.75rem;padding-bottom:.25rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{display:block;width:100%;height:1px;margin-block:.25rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-side-menu ax-side-menu-item .ax-side-item{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;font-size:inherit;font-weight:500}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;transition-property:rotate;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{display:grid;grid-template-rows:1fr;padding-inline-start:1.25rem;opacity:1;transition-property:grid-template-rows,opacity;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{grid-template-rows:0fr;opacity:0}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:.5rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}ax-side-menu ax-side-menu-item .ax-side-children-content{display:flex;flex-direction:column;gap:.5rem}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:0}ax-side-menu.ax-look-with-line .ax-ripple,ax-side-menu.ax-look-with-line-color .ax-ripple{display:none}ax-side-menu.ax-look-with-line.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-start .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-item:before{inset-inline-start:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-end .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-item:before{inset-inline-end:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line ax-side-menu-item,ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line .ax-side-item,ax-side-menu.ax-look-with-line-color ax-side-menu-item,ax-side-menu.ax-look-with-line-color .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-item{position:relative}ax-side-menu.ax-look-with-line ax-side-menu-item:before,ax-side-menu.ax-look-with-line .ax-side-children:before,ax-side-menu.ax-look-with-line .ax-side-item:before,ax-side-menu.ax-look-with-line-color ax-side-menu-item:before,ax-side-menu.ax-look-with-line-color .ax-side-children:before,ax-side-menu.ax-look-with-line-color .ax-side-item:before{position:absolute;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface));content:\\\"\\\";transition-property:width;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu.ax-look-with-line .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before{position:absolute;width:var(--ax-comp-side-menu-indicator-size, 2px);height:100%;background-color:rgba(var(--ax-comp-side-menu-indicator-active-color, var(--ax-comp-side-menu-bg-color, var(--ax-sys-color-primary-surface))));content:\\\"\\\"}ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-children{gap:0}ax-side-menu.ax-look-with-line .ax-side-children ax-side-menu-item:first-child,ax-side-menu.ax-look-with-line-color .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.1)}ax-side-menu.ax-look-default{gap:.25rem}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{padding:.5rem 1rem;border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.5)}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.1)}ax-side-menu.ax-look-default .ax-side-children{position:relative;gap:.25rem;padding-inline-start:2.25rem}ax-side-menu.ax-look-default .ax-side-children:before{position:absolute;width:1px;height:100%;margin-inline-start:1.5rem;background-color:rgba(var(--ax-sys-color-border-light-surface));content:\\\"\\\"}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding:.25rem .5rem}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-mode-compact{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}ax-side-menu.ax-mode-compact ::-webkit-scrollbar{width:4px;height:4px}ax-side-menu.ax-mode-compact ::-webkit-scrollbar-track{background:transparent}ax-side-menu.ax-mode-compact ::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}ax-side-menu.ax-mode-compact .ax-side-menu-wrapper{display:flex;flex-direction:column;align-items:center;width:fit-content}ax-side-menu.ax-mode-compact .ax-side-children{display:none}ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-darker-surface, var(--ax-sys-color-surface)))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:.125rem!important;display:flex;justify-content:center;width:100%}ax-side-menu.ax-mode-compact ax-side-menu-item ax-icon{font-size:1.4rem}ax-side-menu.ax-mode-compact ax-side-menu-item .ax-side-item{width:fit-content;gap:0;padding:.5rem}ax-side-menu.ax-mode-compact ax-badge{position:absolute;top:5px;right:5px}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{scale:-1 1}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:-90deg}ax-side-menu-item>.ax-side-menu-wrapper>.ax-side-menu-children-context-menu:not(.ax-state-open){display:none}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: 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: \"component\", type: AXSideMenuItemComponent, selector: \"ax-side-menu-item\", inputs: [\"disabled\", \"text\", \"active\", \"isLoading\", \"isCollapsed\", \"toggleOnClick\", \"href\", \"routerLink\", \"routerLinkActive\", \"routerLinkActiveOptions\", \"target\"], outputs: [\"textChange\", \"activeChange\", \"isLoadingChange\", \"isCollapsedChange\", \"onClick\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-side-menu', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXSideMenuItemComponent,\n RouterLink,\n RouterLinkActive,\n AXDecoratorIconComponent,\n ], providers: [\n { provide: AXComponent, useExisting: AXSideMenuComponent },\n { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },\n ], template: \"<ng-content select=\\\"ax-side-menu-item,ax-title,ng-container,[ngTemplateOutlet]\\\"></ng-content>\\n\\n@for (node of items(); track node) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: node }\\\"> </ng-container>\\n}\\n<ng-template #Recursion let-item>\\n @if (item.title) {\\n <ax-title>{{ item.title }}</ax-title>\\n }\\n @if (item.routerLink) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [target]=\\\"item.target\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [routerLink]=\\\"item.routerLink\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n [routerLinkActive]=\\\"item.routerLinkActive\\\"\\n [routerLinkActiveOptions]=\\\"item.routerLinkActiveOptions\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else if (item.href) {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [href]=\\\"item.href\\\"\\n [target]=\\\"item.target\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n } @else {\\n <ax-side-menu-item\\n [text]=\\\"item.text\\\"\\n [active]=\\\"item.active\\\"\\n [disabled]=\\\"item.disabled\\\"\\n [isLoading]=\\\"item.isLoading\\\"\\n [isCollapsed]=\\\"item.isCollapsed\\\"\\n [toggleOnClick]=\\\"item.toggleOnClick\\\"\\n >\\n <ng-container [ngTemplateOutlet]=\\\"sideMenuItemContent\\\"></ng-container>\\n </ax-side-menu-item>\\n }\\n\\n <ng-template #sideMenuItemContent>\\n <ax-prefix>\\n @if (item.icon) {\\n <ax-icon [icon]=\\\"item.icon\\\"> </ax-icon>\\n }\\n </ax-prefix>\\n @if (item.data) {\\n <ax-text>{{ item.data }}</ax-text>\\n }\\n @if (item.suffixText) {\\n <ax-suffix>\\n <ax-text>{{ item.suffixText }}</ax-text>\\n </ax-suffix>\\n }\\n @for (child of item.items; track child) {\\n <ng-container [ngTemplateOutlet]=\\\"Recursion\\\" [ngTemplateOutletContext]=\\\"{ $implicit: child }\\\"></ng-container>\\n }\\n </ng-template>\\n</ng-template>\\n\", styles: [\":root{--ax-comp-side-menu-indicator-size: 2px}ax-side-menu{display:flex;width:100%;flex-direction:column;gap:.5rem;color:inherit;font-size:.875rem;line-height:1.25rem;-webkit-user-select:none;user-select:none}ax-side-menu>ax-title{display:block;margin-block:.5rem;padding:.25rem .75rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-title{display:block;margin-block:.5rem;margin-top:.5rem;padding-inline:.75rem;padding-bottom:.25rem;font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;opacity:.5}ax-side-menu ax-side-menu-item ax-divider{display:block;width:100%;height:1px;margin-block:.25rem;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}ax-side-menu ax-side-menu-item .ax-side-item{position:relative;display:flex;cursor:pointer;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 1rem;font-size:inherit;font-weight:500}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-side-menu ax-side-menu-item .ax-side-item.ax-state-disabled .ax-ripple{opacity:0}ax-side-menu ax-side-menu-item .ax-side-item:hover:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu ax-side-menu-item .ax-side-item:hover.ax-state-disabled,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active.ax-state-disabled) ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side,ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{display:flex;align-items:center}ax-side-menu ax-side-menu-item .ax-side-item .ax-start-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side{gap:.5rem}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{display:block;transition-property:rotate;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:90deg}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side ax-loading ax-loading-spinner span{border-color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:rgba(var(--ax-sys-color-on-surface),.3)!important}ax-side-menu ax-side-menu-item .ax-side-children{display:grid;grid-template-rows:1fr;padding-inline-start:1.25rem;opacity:1;transition-property:grid-template-rows,opacity;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{grid-template-rows:0fr;opacity:0}ax-side-menu ax-side-menu-item .ax-side-children.ax-empty{display:none}ax-side-menu ax-side-menu-item .ax-side-children .ax-side-children-content{overflow:hidden}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child{padding-top:.5rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:1rem}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{font-weight:400}ax-side-menu ax-side-menu-item .ax-side-children-content{display:flex;flex-direction:column;gap:.5rem}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item{border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-surface))}ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:0}ax-side-menu.ax-look-with-line .ax-ripple,ax-side-menu.ax-look-with-line-color .ax-ripple{display:none}ax-side-menu.ax-look-with-line.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-start .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-start .ax-side-item:before{inset-inline-start:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line.ax-location-end .ax-side-item:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-children:before,ax-side-menu.ax-look-with-line-color.ax-location-end .ax-side-item:before{inset-inline-end:0;width:calc(var(--ax-comp-side-menu-indicator-size, 2px) / 2)}ax-side-menu.ax-look-with-line ax-side-menu-item,ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line .ax-side-item,ax-side-menu.ax-look-with-line-color ax-side-menu-item,ax-side-menu.ax-look-with-line-color .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-item{position:relative}ax-side-menu.ax-look-with-line ax-side-menu-item:before,ax-side-menu.ax-look-with-line .ax-side-children:before,ax-side-menu.ax-look-with-line .ax-side-item:before,ax-side-menu.ax-look-with-line-color ax-side-menu-item:before,ax-side-menu.ax-look-with-line-color .ax-side-children:before,ax-side-menu.ax-look-with-line-color .ax-side-item:before{position:absolute;height:100%;background-color:rgba(var(--ax-sys-color-border-lightest-surface));content:\\\"\\\";transition-property:width;transition-duration:var(--ax-sys-transition-duration);transition-timing-function:var(--ax-sys-transition-timing-function)}ax-side-menu.ax-look-with-line .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled),ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-look-with-line .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line .ax-side-item.ax-state-disabled,ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled):before{position:absolute;width:var(--ax-comp-side-menu-indicator-size, 2px);height:100%;background-color:rgba(var(--ax-comp-side-menu-indicator-active-color, var(--ax-comp-side-menu-bg-color, var(--ax-sys-color-primary-surface))));content:\\\"\\\"}ax-side-menu.ax-look-with-line .ax-side-children,ax-side-menu.ax-look-with-line-color .ax-side-children{gap:0}ax-side-menu.ax-look-with-line .ax-side-children ax-side-menu-item:first-child,ax-side-menu.ax-look-with-line-color .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-look-with-line-color .ax-side-item:hover:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.05)}ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-with-line-color .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface),.1)}ax-side-menu.ax-look-default{gap:.25rem}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{padding:.5rem 1rem;border-radius:var(--ax-sys-border-radius)}ax-side-menu.ax-look-default .ax-side-item:hover:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.5)}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface),.1)}ax-side-menu.ax-look-default .ax-side-children{position:relative;gap:.25rem;padding-inline-start:2.25rem}ax-side-menu.ax-look-default .ax-side-children:before{position:absolute;width:1px;height:100%;margin-inline-start:1.5rem;background-color:rgba(var(--ax-sys-color-border-light-surface));content:\\\"\\\"}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding:.25rem .5rem}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:0}ax-side-menu.ax-mode-compact{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}ax-side-menu.ax-mode-compact ::-webkit-scrollbar{width:4px;height:4px}ax-side-menu.ax-mode-compact ::-webkit-scrollbar-track{background:transparent}ax-side-menu.ax-mode-compact ::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}ax-side-menu.ax-mode-compact .ax-side-menu-wrapper{display:flex;flex-direction:column;align-items:center;width:fit-content}ax-side-menu.ax-mode-compact .ax-side-children{display:none}ax-side-menu.ax-mode-compact .ax-inside-text{display:none}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item:hover:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-surface));background-color:rgba(var(--ax-sys-color-darker-surface, var(--ax-sys-color-surface)))}ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-active:not(ax-side-menu.ax-mode-compact.ax-look-pills>ax-side-menu-item>.ax-side-item.ax-state-disabled){color:rgba(var(--ax-sys-color-on-primary-surface));background-color:rgba(var(--ax-sys-color-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:.125rem!important;display:flex;justify-content:center;width:100%}ax-side-menu.ax-mode-compact ax-side-menu-item ax-icon{font-size:1.4rem}ax-side-menu.ax-mode-compact ax-side-menu-item .ax-side-item{width:fit-content;gap:0;padding:.5rem}ax-side-menu.ax-mode-compact ax-badge{position:absolute;top:5px;right:5px}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{scale:-1 1}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand{rotate:-90deg}ax-side-menu-item>.ax-side-menu-wrapper>.ax-side-menu-children-context-menu:not(.ax-state-open){display:none}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFVBQVUsRUFBRSxnQkFBZ0IsRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUF1QnBGOzs7R0FHRztBQW9CSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQW5CcEQ7O1FBb0JFLFVBQUssR0FBRyxLQUFLLDJEQUFvQixDQUFDO1FBQ3pCLFNBQUksR0FBRyxLQUFLLENBQWlCLE9BQU8sZ0RBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsS0FBSyxDQUFxQixPQUFP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RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtZQUMxRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1NBQzlELGlEQ2hFSCwwdkVBb0VBLG03VkRkSSxnQkFBZ0Isb0pBQ2hCLDJCQUEyQix5TEFDM0IsdUJBQXVCLDhUQUN2QixVQUFVLG9PQUNWLGdCQUFnQiw4TUFDaEIsd0JBQXdCOzsyRkFPZixtQkFBbUI7a0JBbkIvQixTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxnQkFBZ0I7d0JBQ2hCLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUN2QixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsd0JBQXdCO3FCQUN6QixhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHFCQUFxQixFQUFFO3dCQUMxRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTtxQkFDOUQ7OEJBb0lXLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50LCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIFBMQVRGT1JNX0lELFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYU2lkZU1lbnVCYXNlIH0gZnJvbSAnLi9zaWRlLW1lbnUtYmFzZSc7XG5pbXBvcnQgeyBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1tZW51LWl0ZW0vc2lkZS1tZW51LWl0ZW0uY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQVhTaWRlTWVudUxvb2sgPSAncGlsbHMnIHwgJ3dpdGgtbGluZScgfCAnd2l0aC1saW5lLWNvbG9yJyB8ICdkZWZhdWx0JztcbmV4cG9ydCB0eXBlIEFYU2lkZU1lbnVMb2NhdGlvbiA9ICdzdGFydCcgfCAnZW5kJztcbmV4cG9ydCB0eXBlIEFYU2lkZU1lbnVJdGVtID0ge1xuICB0aXRsZT86IHN0cmluZztcbiAgcm91dGVyTGluaz86IHN0cmluZyB8IGFueVtdIHwgVXJsVHJlZTtcbiAgcm91dGVyTGlua0FjdGl2ZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICByb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucz86IHsgZXhhY3Q6IGJvb2xlYW4gfSB8IElzQWN0aXZlTWF0Y2hPcHRpb25zO1xuICBocmVmPzogc3RyaW5nO1xuICB0YXJnZXQ/OiAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG4gIHRleHQ6IHN0cmluZztcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc0xvYWRpbmc/OiBib29sZWFuO1xuICBpc0NvbGxhcHNlZD86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7XG4gIGRhdGE/OiB1bmtub3duO1xuICBzdWZmaXhUZXh0Pzogc3RyaW5nO1xuICB0b2dnbGVPbkNsaWNrPzogYm9vbGVhbjtcbiAgaXRlbXM/OiBBWFNpZGVNZW51SXRlbVtdO1xufTtcblxuLyoqXG4gKiBAY2F0ZWdvcnlcbiAqIEEgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGEgc2lkZSBtZW51IHdpdGggY3VzdG9taXphYmxlIGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNpZGUtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaWRlLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCxcbiAgICBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTaWRlTWVudUNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhTaWRlTWVudUJhc2UsIHVzZUV4aXN0aW5nOiBBWFNpZGVNZW51Q29tcG9uZW50IH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVDb21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCBpbXBsZW1lbnRzIEFYU2lkZU1lbnVCYXNlIHtcbiAgaXRlbXMgPSBtb2RlbDxBWFNpZGVNZW51SXRlbVtdPigpO1xuICByZWFkb25seSBsb29rID0gaW5wdXQ8QVhTaWRlTWVudUxvb2s+KCdwaWxscycpO1xuICByZWFkb25seSBsb2NhdGlvbiA9IGlucHV0PEFYU2lkZU1lbnVMb2NhdGlvbj4oJ3N0YXJ0Jyk7XG4gIHJlYWRvbmx5IG1vZGUgPSBpbnB1dDwnZnVsbCcgfCAnY29tcGFjdCc+KCdmdWxsJyk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIC8qKlxuICAgKiBBbGwgYGF4LXNpZGUtbWVudS1pdGVtYCBpbnN0YW5jZXMgZGlzY292ZXJlZCBieSB3YWxraW5nIHRoZSBob3N0IERPTS5cbiAgICpcbiAgICogV2UgdXNlIERPTSBkaXNjb3ZlcnkgKGluc3RlYWQgb2YgYGNvbnRlbnRDaGlsZHJlbmApIGJlY2F1c2UgQW5ndWxhciBjb250ZW50XG4gICAqIHF1ZXJpZXMgZG8gKipub3QqKiB0cmF2ZXJzZSBlbWJlZGRlZCB2aWV3cyBjcmVhdGVkIGJ5IGBuZ1RlbXBsYXRlT3V0bGV0YCxcbiAgICogYW5kIHRoZSBgQVhTaWRlTWVudUJhc2VgIERJIHRva2VuIGlzIG5vdCByZWFjaGFibGUgZnJvbSBpbnNpZGUgdGhvc2Ugdmlld3NcbiAgICogZWl0aGVyICh0aGV5IGluaGVyaXQgaW5qZWN0aW9uIGZyb20gdGhlIHRlbXBsYXRlJ3MgZGVjbGFyYXRpb24gc2l0ZSwgbm90XG4gICAqIHRoZSBpbnNlcnRpb24gc2l0ZSkuIFdhbGtpbmcgdGhlIERPTSB3b3JrcyBmb3IgZGlyZWN0IHByb2plY3Rpb24sXG4gICAqIHN0cnVjdHVyYWwgZGlyZWN0aXZlcywgYW5kIHJlY3Vyc2l2ZSBgbmdUZW1wbGF0ZU91dGxldGAtYmFzZWQgdGVtcGxhdGVzXG4gICAqIHVuaWZvcm1seS5cbiAgICovXG4gIHByaXZhdGUgX2l0ZW1zID0gc2lnbmFsPEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50W10+KFtdKTtcbiAgLyoqIFJlYWQtb25seSBzaWduYWwgZXhwb3NpbmcgZXZlcnkgZGlzY292ZXJlZCBgYXgtc2lkZS1tZW51LWl0ZW1gIGluc3RhbmNlLiAqL1xuICByZWFkb25seSBjaGlsZHJlbiA9IHRoaXMuX2l0ZW1zLmFzUmVhZG9ubHkoKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICBwcml2YXRlIGRvbVJlZnJlc2hTY2hlZHVsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBkb21SZWZyZXNoT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgdGhpcy5yZWZyZXNoSXRlbXNGcm9tRG9tKCk7XG4gICAgdGhpcy5kb21SZWZyZXNoT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigocmVjb3JkcykgPT4ge1xuICAgICAgaWYgKCF0aGlzLmhhc1JlbGV2YW50TWVudUl0ZW1NdXRhdGlvbihyZWNvcmRzKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNjaGVkdWxlRG9tUmVmcmVzaCgpO1xuICAgIH0pO1xuICAgIHRoaXMuZG9tUmVmcmVzaE9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gdGhpcy5kb21SZWZyZXNoT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSk7XG4gIH0pO1xuXG4gIC8qKiBQdXNoIGZ1bGwvY29tcGFjdCBtb2RlIHRvIGV2ZXJ5IG1lbnUgaXRlbSB3aGVuZXZlciBtb2RlIGNoYW5nZXMuICovXG4gICNzeW5jSXRlbU1vZGUgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG1vZGUgPSB0aGlzLm1vZGUoKTtcbiAgICB0aGlzLl9pdGVtcygpLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uc3luY01lbnVNb2RlKG1vZGUpKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFdhbGtzIHRoZSBob3N0IERPTSB0byBkaXNjb3ZlciBldmVyeSBuZXN0ZWQgYGF4LXNpZGUtbWVudS1pdGVtYCwgbG9va3MgdXBcbiAgICogdGhlIGNvbXBvbmVudCBpbnN0YW5jZSB0aHJvdWdoIHRoZSBgX19heENvbnRleHRfX2AgcHJvcGVydHkgdGhhdFxuICAgKiBgTVhCYXNlQ29tcG9uZW50Lm5nT25Jbml0YCBhdHRhY2hlcyB0byBlYWNoIGhvc3QgZWxlbWVudCwgYW5kIHVwZGF0ZXMgdGhlXG4gICAqIGludGVybmFsIGl0ZW1zIHNpZ25hbCBhbmQgYC5maXJzdC1sZXZlbGAgQ1NTIGNsYXNzIGFjY29yZGluZ2x5LlxuICAgKlxuICAgKiBUcmlnZ2VyZWQgYm90aCBpbml0aWFsbHkgYW5kIGZyb20gYSBgTXV0YXRpb25PYnNlcnZlcmAgc28gcmVjdXJzaXZlXG4gICAqIHRlbXBsYXRlcyB0aGF0IGFkZC9yZW1vdmUgaXRlbXMgYXQgcnVudGltZSBzdGF5IGluIHN5bmMuXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hJdGVtc0Zyb21Eb20oKSB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdC5xdWVyeVNlbGVjdG9yQWxsKCdheC1zaWRlLW1lbnUtaXRlbScpO1xuICAgIGNvbnN0IGl0ZW1zOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudFtdID0gW107XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gKGVsIGFzIHVua25vd24gYXMgeyBfX2F4Q29udGV4dF9fPzogdW5rbm93biB9KS5fX2F4Q29udGV4dF9fO1xuICAgICAgaWYgKGluc3RhbmNlIGluc3RhbmNlb2YgQVhTaWRlTWVudUl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbXMucHVzaChpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5faXRlbXMoKTtcbiAgICBjb25zdCBjaGFuZ2VkID0gY3VycmVudC5sZW5ndGggIT09IGl0ZW1zLmxlbmd0aCB8fCBjdXJyZW50LnNvbWUoKGl0LCBpKSA9PiBpdCAhPT0gaXRlbXNbaV0pO1xuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLl9pdGVtcy5zZXQoaXRlbXMpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkRmlyc3RMZXZlbENsYXNzKCk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlRG9tUmVmcmVzaCgpIHtcbiAgICBpZiAodGhpcy5kb21SZWZyZXNoU2NoZWR1bGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZG9tUmVmcmVzaFNjaGVkdWxlZCA9IHRydWU7XG5cbiAgICAvLyBCYXRjaCBtdWx0aXBsZSByYXBpZCBtdXRhdGlvbnMgKGUuZy4sIGxhcmdlIHRlbXBsYXRlIHVwZGF0ZXMgb3Igb3ZlcmxheXMgY2xvc2luZylcbiAgICAvLyBpbnRvIGEgc2luZ2xlIHJlZnJlc2ggdG8gcHJldmVudCBsb25nIG1haW4tdGhyZWFkIHN0YWxscy5cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5kb21SZWZyZXNoU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnJlZnJlc2hJdGVtc0Zyb21Eb20oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzUmVsZXZhbnRNZW51SXRlbU11dGF0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10pOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICBpZiAodGhpcy5ub2RlTGlzdENvbnRhaW5zTWVudUl0ZW0ocmVjb3JkLmFkZGVkTm9kZXMpIHx8IHRoaXMubm9kZUxpc3RDb250YWluc01lbnVJdGVtKHJlY29yZC5yZW1vdmVkTm9kZXMpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIG5vZGVMaXN0Q29udGFpbnNNZW51SXRlbShub2RlczogTm9kZUxpc3QpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgQXJyYXkuZnJvbShub2RlcykpIHtcbiAgICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlLnRhZ05hbWUgPT09ICdBWC1TSURFLU1FTlUtSVRFTScpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5xdWVyeVNlbGVjdG9yPy4oJ2F4LXNpZGUtbWVudS1pdGVtJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRmlyc3RMZXZlbENsYXNzKCkge1xuICAgIGNvbnN0IGFsbENoaWxkcmVuID0gdGhpcy5faXRlbXMoKTtcbiAgICBhbGxDaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PlxuICAgICAgaXRlbS5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5heC1zaWRlLWl0ZW0nKT8uY2xhc3NMaXN0LnJlbW92ZSgnZmlyc3QtbGV2ZWwnKSxcbiAgICApO1xuXG4gICAgYWxsQ2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSBpdGVtLmdldEhvc3RFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyhpdGVtRWxlbWVudCkgJiYgIWl0ZW1FbGVtZW50LnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJy5heC1zaWRlLWNoaWxkcmVuLWNvbnRlbnQnKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcignLmF4LXNpZGUtaXRlbScpPy5jbGFzc0xpc3QuYWRkKCdmaXJzdC1sZXZlbCcpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtgYXgtbG9vay0ke3RoaXMubG9vaygpfWAsIGBheC1sb2NhdGlvbi0ke3RoaXMubG9jYXRpb24oKX1gLCBgYXgtbW9kZS0ke3RoaXMubW9kZSgpfWBdO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1zaWRlLW1lbnUtaXRlbSxheC10aXRsZSxuZy1jb250YWluZXIsW25nVGVtcGxhdGVPdXRsZXRdXCI+PC9uZy1jb250ZW50PlxuXG5AZm9yIChub2RlIG9mIGl0ZW1zKCk7IHRyYWNrIG5vZGUpIHtcbiAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG5vZGUgfVwiPiA8L25nLWNvbnRhaW5lcj5cbn1cbjxuZy10ZW1wbGF0ZSAjUmVjdXJzaW9uIGxldC1pdGVtPlxuICBAaWYgKGl0ZW0udGl0bGUpIHtcbiAgICA8YXgtdGl0bGU+e3sgaXRlbS50aXRsZSB9fTwvYXgtdGl0bGU+XG4gIH1cbiAgQGlmIChpdGVtLnJvdXRlckxpbmspIHtcbiAgICA8YXgtc2lkZS1tZW51LWl0ZW1cbiAgICAgIFt0ZXh0XT1cIml0ZW0udGV4dFwiXG4gICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgIFtpc0xvYWRpbmddPVwiaXRlbS5pc0xvYWRpbmdcIlxuICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS5yb3V0ZXJMaW5rXCJcbiAgICAgIFtpc0NvbGxhcHNlZF09XCJpdGVtLmlzQ29sbGFwc2VkXCJcbiAgICAgIFt0b2dnbGVPbkNsaWNrXT1cIml0ZW0udG9nZ2xlT25DbGlja1wiXG4gICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJpdGVtLnJvdXRlckxpbmtBY3RpdmVcIlxuICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cIml0ZW0ucm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc2lkZS1tZW51LWl0ZW0+XG4gIH0gQGVsc2UgaWYgKGl0ZW0uaHJlZikge1xuICAgIDxheC1zaWRlLW1lbnUtaXRlbVxuICAgICAgW3RleHRdPVwiaXRlbS50ZXh0XCJcbiAgICAgIFtocmVmXT1cIml0ZW0uaHJlZlwiXG4gICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgIFthY3RpdmVdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgW2lzTG9hZGluZ109XCJpdGVtLmlzTG9hZGluZ1wiXG4gICAgICBbaXNDb2xsYXBzZWRdPVwiaXRlbS5pc0NvbGxhcHNlZFwiXG4gICAgICBbdG9nZ2xlT25DbGlja109XCJpdGVtLnRvZ2dsZU9uQ2xpY2tcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc2lkZS1tZW51LWl0ZW0+XG4gIH0gQGVsc2Uge1xuICAgIDxheC1zaWRlLW1lbnUtaXRlbVxuICAgICAgW3RleHRdPVwiaXRlbS50ZXh0XCJcbiAgICAgIFthY3RpdmVdPVwiaXRlbS5hY3RpdmVcIlxuICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgW2lzTG9hZGluZ109XCJpdGVtLmlzTG9hZGluZ1wiXG4gICAgICBbaXNDb2xsYXBzZWRdPVwiaXRlbS5pc0NvbGxhcHNlZFwiXG4gICAgICBbdG9nZ2xlT25DbGlja109XCJpdGVtLnRvZ2dsZU9uQ2xpY2tcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2lkZU1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYXgtc2lkZS1tZW51LWl0ZW0+XG4gIH1cblxuICA8bmctdGVtcGxhdGUgI3NpZGVNZW51SXRlbUNvbnRlbnQ+XG4gICAgPGF4LXByZWZpeD5cbiAgICAgIEBpZiAoaXRlbS5pY29uKSB7XG4gICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPiA8L2F4LWljb24+XG4gICAgICB9XG4gICAgPC9heC1wcmVmaXg+XG4gICAgQGlmIChpdGVtLmRhdGEpIHtcbiAgICAgIDxheC10ZXh0Pnt7IGl0ZW0uZGF0YSB9fTwvYXgtdGV4dD5cbiAgICB9XG4gICAgQGlmIChpdGVtLnN1ZmZpeFRleHQpIHtcbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC10ZXh0Pnt7IGl0ZW0uc3VmZml4VGV4dCB9fTwvYXgtdGV4dD5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIH1cbiAgICBAZm9yIChjaGlsZCBvZiBpdGVtLml0ZW1zOyB0cmFjayBjaGlsZCkge1xuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJSZWN1cnNpb25cIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGNoaWxkIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19","import { AXOutlineContainerDirective } from '@acorex/cdk/outline';\nimport { AXUnsubscriber } from '@acorex/core/utils';\nimport { afterNextRender, Directive, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { isEqual } from 'lodash-es';\nimport { distinctUntilChanged, map } from 'rxjs';\nimport { AXSideMenuComponent } from './side-menu.component';\nimport * as i0 from \"@angular/core\";\nexport class AXOutlineSideMenuDirective {\n constructor() {\n this.router = inject(Router);\n this.unsubscriber = inject(AXUnsubscriber);\n this.sideMenu = inject(AXSideMenuComponent);\n this.container = inject(AXOutlineContainerDirective);\n this.#anr = afterNextRender(() => {\n this.container.outlineItems$\n .pipe(this.unsubscriber.takeUntilDestroy, map((items) => {\n if (!items || items.length === 0)\n return [];\n return this.buildNestedMenuItems(items);\n }), distinctUntilChanged(isEqual))\n .subscribe((menuItems) => {\n this.updateSideMenu(menuItems);\n });\n });\n }\n #anr;\n updateSideMenu(newMenuItems) {\n const currentMenuItems = this.sideMenu.items();\n const newSignature = this.getStructuralSignature(newMenuItems);\n const currentSignature = this.getStructuralSignature(currentMenuItems || []);\n if (newSignature !== currentSignature) {\n this.sideMenu.items.set(newMenuItems);\n return;\n }\n const currentComponents = this.sideMenu.children();\n const newActiveItem = this.flattenMenuItems(newMenuItems).find((item) => item.active);\n const currentActiveComponent = currentComponents.find((c) => c.active());\n if (newActiveItem?.href === currentActiveComponent?.href()) {\n return;\n }\n currentActiveComponent?.active.set(false);\n if (newActiveItem) {\n const componentToActivate = currentComponents.find((c) => c.href() === newActiveItem.href);\n componentToActivate?.active.set(true);\n }\n }\n /**\n * Creates a string signature that represents the tree structure of the menu.\n * Example: \"href1(href1.1,href1.2),href2,href3\"\n * This will be different for a flat list vs. a nested list.\n */\n getStructuralSignature(items) {\n return items\n .map((item) => {\n let signature = item.href || '';\n if (item.items && item.items.length > 0) {\n signature += `(${this.getStructuralSignature(item.items)})`;\n }\n return signature;\n })\n .join(',');\n }\n flattenMenuItems(items) {\n return items.reduce((acc, item) => {\n acc.push(item);\n if (item.items) {\n acc.push(...this.flattenMenuItems(item.items));\n }\n return acc;\n }, []);\n }\n textReplace(item) {\n const text = item.el.textContent;\n if (item.hasAnchor) {\n const newStr = text?.slice(0, -1);\n return newStr?.trim() || '';\n }\n return text?.trim() || '';\n }\n buildNestedMenuItems(items) {\n const menuItemsMap = new Map();\n const rootItems = [];\n items.forEach((item) => {\n const menuItem = {\n items: [],\n target: '_self',\n active: item.active,\n toggleOnClick: false,\n text: this.textReplace(item),\n href: `${this.router.url.split('#')[0]}#${item.id}`,\n };\n menuItemsMap.set(item.id, menuItem);\n });\n items.forEach((item) => {\n const menuItem = menuItemsMap.get(item.id);\n if (!menuItem)\n return;\n if (item.parentId) {\n const parentMenuItem = menuItemsMap.get(item.parentId);\n if (parentMenuItem) {\n parentMenuItem.items?.push(menuItem);\n }\n else {\n console.warn(`Outline item with id \"${item.id}\" has a parentId \"${item.parentId}\" that does not exist.`);\n rootItems.push(menuItem);\n }\n }\n else {\n rootItems.push(menuItem);\n }\n });\n return rootItems;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXOutlineSideMenuDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXOutlineSideMenuDirective, isStandalone: true, selector: \"[axOutlineSideMenu]\", providers: [AXUnsubscriber], exportAs: [\"axOutlineSideMenu\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXOutlineSideMenuDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axOutlineSideMenu]',\n exportAs: 'axOutlineSideMenu',\n providers: [AXUnsubscriber],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPNUUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU1VLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV4RCxTQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWE7aUJBQ3pCLElBQUksQ0FDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUNsQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUss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Q3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNuQixjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLElBQUksQ0FBQyxFQUFFLHFCQUFxQixJQUFJLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO29CQUN6RyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0E5R1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsa0VBRjFCLENBQUMsY0FBYyxDQUFDOzsyRkFFaEIsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE91dGxpbmVDb250YWluZXJEaXJlY3RpdmUsIG91dGxpbmVJdGVtVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL291dGxpbmUnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhTaWRlTWVudUNvbXBvbmVudCwgQVhTaWRlTWVudUl0ZW0gfSBmcm9tICcuL3NpZGUtbWVudS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhPdXRsaW5lU2lkZU1lbnVdJyxcbiAgZXhwb3J0QXM6ICdheE91dGxpbmVTaWRlTWVudScsXG4gIHByb3ZpZGVyczogW0FYVW5zdWJzY3JpYmVyXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhPdXRsaW5lU2lkZU1lbnVEaXJlY3RpdmUge1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHVuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG4gIHByaXZhdGUgc2lkZU1lbnUgPSBpbmplY3QoQVhTaWRlTWVudUNvbXBvbmVudCk7XG4gIHByaXZhdGUgY29udGFpbmVyID0gaW5qZWN0KEFYT3V0bGluZUNvbnRhaW5lckRpcmVjdGl2ZSk7XG5cbiAgI2FuciA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5jb250YWluZXIub3V0bGluZUl0ZW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3ksXG4gICAgICAgIG1hcCgoaXRlbXMpID0+IHtcbiAgICAgICAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgICAgIHJldHVybiB0aGlzLmJ1aWxkTmVzdGVkTWVudUl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzRXF1YWwpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobWVudUl0ZW1zKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlU2lkZU1lbnUobWVudUl0ZW1zKTtcbiAgICAgIH0pO1xuICB9KTtcblxuICBwcml2YXRlIHVwZGF0ZVNpZGVNZW51KG5ld01lbnVJdGVtczogQVhTaWRlTWVudUl0ZW1bXSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRNZW51SXRlbXMgPSB0aGlzLnNpZGVNZW51Lml0ZW1zKCk7XG4gICAgY29uc3QgbmV3U2lnbmF0dXJlID0gdGhpcy5nZXRTdHJ1Y3R1cmFsU2lnbmF0dXJlKG5ld01lbnVJdGVtcyk7XG4gICAgY29uc3QgY3VycmVudFNpZ25hdHVyZSA9IHRoaXMuZ2V0U3RydWN0dXJhbFNpZ25hdHVyZShjdXJyZW50TWVudUl0ZW1zIHx8IFtdKTtcblxuICAgIGlmIChuZXdTaWduYXR1cmUgIT09IGN1cnJlbnRTaWduYXR1cmUpIHtcbiAgICAgIHRoaXMuc2lkZU1lbnUuaXRlbXMuc2V0KG5ld01lbnVJdGVtcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudENvbXBvbmVudHMgPSB0aGlzLnNpZGVNZW51LmNoaWxkcmVuKCk7XG4gICAgY29uc3QgbmV3QWN0aXZlSXRlbSA9IHRoaXMuZmxhdHRlbk1lbnVJdGVtcyhuZXdNZW51SXRlbXMpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uYWN0aXZlKTtcbiAgICBjb25zdCBjdXJyZW50QWN0aXZlQ29tcG9uZW50ID0gY3VycmVudENvbXBvbmVudHMuZmluZCgoYykgPT4gYy5hY3RpdmUoKSk7XG4gICAgaWYgKG5ld0FjdGl2ZUl0ZW0/LmhyZWYgPT09IGN1cnJlbnRBY3RpdmVDb21wb25lbnQ/LmhyZWYoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjdXJyZW50QWN0aXZlQ29tcG9uZW50Py5hY3RpdmUuc2V0KGZhbHNlKTtcbiAgICBpZiAobmV3QWN0aXZlSXRlbSkge1xuICAgICAgY29uc3QgY29tcG9uZW50VG9BY3RpdmF0ZSA9IGN1cnJlbnRDb21wb25lbnRzLmZpbmQoKGMpID0+IGMuaHJlZigpID09PSBuZXdBY3RpdmVJdGVtLmhyZWYpO1xuICAgICAgY29tcG9uZW50VG9BY3RpdmF0ZT8uYWN0aXZlLnNldCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHN0cmluZyBzaWduYXR1cmUgdGhhdCByZXByZXNlbnRzIHRoZSB0cmVlIHN0cnVjdHVyZSBvZiB0aGUgbWVudS5cbiAgICogRXhhbXBsZTogXCJocmVmMShocmVmMS4xLGhyZWYxLjIpLGhyZWYyLGhyZWYzXCJcbiAgICogVGhpcyB3aWxsIGJlIGRpZmZlcmVudCBmb3IgYSBmbGF0IGxpc3QgdnMuIGEgbmVzdGVkIGxpc3QuXG4gICAqL1xuICBwcml2YXRlIGdldFN0cnVjdHVyYWxTaWduYXR1cmUoaXRlbXM6IEFYU2lkZU1lbnVJdGVtW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtc1xuICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBsZXQgc2lnbmF0dXJlID0gaXRlbS5ocmVmIHx8ICcnO1xuICAgICAgICBpZiAoaXRlbS5pdGVtcyAmJiBpdGVtLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzaWduYXR1cmUgKz0gYCgke3RoaXMuZ2V0U3RydWN0dXJhbFNpZ25hdHVyZShpdGVtLml0ZW1zKX0pYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2lnbmF0dXJlO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcsJyk7XG4gIH1cblxuICBwcml2YXRlIGZsYXR0ZW5NZW51SXRlbXMoaXRlbXM6IEFYU2lkZU1lbnVJdGVtW10pOiBBWFNpZGVNZW51SXRlbVtdIHtcbiAgICByZXR1cm4gaXRlbXMucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICAgIGFjYy5wdXNoKGl0ZW0pO1xuICAgICAgaWYgKGl0ZW0uaXRlbXMpIHtcbiAgICAgICAgYWNjLnB1c2goLi4udGhpcy5mbGF0dGVuTWVudUl0ZW1zKGl0ZW0uaXRlbXMpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwgW10gYXMgQVhTaWRlTWVudUl0ZW1bXSk7XG4gIH1cblxuICBwcml2YXRlIHRleHRSZXBsYWNlKGl0ZW06IG91dGxpbmVJdGVtVHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdGV4dCA9IGl0ZW0uZWwudGV4dENvbnRlbnQ7XG4gICAgaWYgKGl0ZW0uaGFzQW5jaG9yKSB7XG4gICAgICBjb25zdCBuZXdTdHIgPSB0ZXh0Py5zbGljZSgwLCAtMSk7XG4gICAgICByZXR1cm4gbmV3U3RyPy50cmltKCkgfHwgJyc7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0Py50cmltKCkgfHwgJyc7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTmVzdGVkTWVudUl0ZW1zKGl0ZW1zOiBvdXRsaW5lSXRlbVR5cGVbXSk6IEFYU2lkZU1lbnVJdGVtW10ge1xuICAgIGNvbnN0IG1lbnVJdGVtc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBBWFNpZGVNZW51SXRlbT4oKTtcbiAgICBjb25zdCByb290SXRlbXM6IEFYU2lkZU1lbnVJdGVtW10gPSBbXTtcbiAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBtZW51SXRlbTogQVhTaWRlTWVudUl0ZW0gPSB7XG4gICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgICAgdGFyZ2V0OiAnX3NlbGYnLFxuICAgICAgICBhY3RpdmU6IGl0ZW0uYWN0aXZlLFxuICAgICAgICB0b2dnbGVPbkNsaWNrOiBmYWxzZSxcbiAgICAgICAgdGV4dDogdGhpcy50ZXh0UmVwbGFjZShpdGVtKSxcbiAgICAgICAgaHJlZjogYCR7dGhpcy5yb3V0ZXIudXJsLnNwbGl0KCcjJylbMF19IyR7aXRlbS5pZH1gLFxuICAgICAgfTtcbiAgICAgIG1lbnVJdGVtc01hcC5zZXQoaXRlbS5pZCwgbWVudUl0ZW0pO1xuICAgIH0pO1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IG1lbnVJdGVtID0gbWVudUl0ZW1zTWFwLmdldChpdGVtLmlkKTtcbiAgICAgIGlmICghbWVudUl0ZW0pIHJldHVybjtcbiAgICAgIGlmIChpdGVtLnBhcmVudElkKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudE1lbnVJdGVtID0gbWVudUl0ZW1zTWFwLmdldChpdGVtLnBhcmVudElkKTtcbiAgICAgICAgaWYgKHBhcmVudE1lbnVJdGVtKSB7XG4gICAgICAgICAgcGFyZW50TWVudUl0ZW0uaXRlbXM/LnB1c2gobWVudUl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgT3V0bGluZSBpdGVtIHdpdGggaWQgXCIke2l0ZW0uaWR9XCIgaGFzIGEgcGFyZW50SWQgXCIke2l0ZW0ucGFyZW50SWR9XCIgdGhhdCBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICAgICAgICByb290SXRlbXMucHVzaChtZW51SXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvb3RJdGVtcy5wdXNoKG1lbnVJdGVtKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcm9vdEl0ZW1zO1xuICB9XG59XG4iXX0=","import { AXCommonModule, AXRippleDirective } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\nimport { AXSideMenuComponent } from './side-menu.component';\nimport { AXOutlineSideMenuDirective } from './side-menu.directive';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXRippleDirective,\n AXLoadingModule,\n AXTranslationModule,\n RouterLink,\n RouterLinkActive,\n AXDecoratorModule,\n];\nexport class AXSideMenuModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,\n AXCommonModule,\n AXRippleDirective,\n AXLoadingModule,\n AXTranslationModule,\n RouterLink,\n RouterLinkActive,\n AXDecoratorModule, AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective], exports: [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, imports: [CommonModule,\n AXCommonModule,\n AXLoadingModule,\n AXTranslationModule,\n AXDecoratorModule, AXSideMenuComponent, AXSideMenuItemComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXSideMenuModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFbkUsTUFBTSxTQUFTLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0FBQzdGLE1BQU0sT0FBTyxHQUFHO0lBQ2QsWUFBWTtJQUNaLGNBQWM7SUFDZCxpQkFBaUI7SUFDakIsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtDQUNsQixDQUFDO0FBT0YsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsWUFmM0IsWUFBWTtZQUNaLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLGlCQUFpQixFQVRBLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixhQUF4RSxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEI7K0dBaUI5RSxnQkFBZ0IsWUFmM0IsWUFBWTtZQUNaLGNBQWM7WUFFZCxlQUFlO1lBQ2YsbUJBQW1CO1lBR25CLGlCQUFpQixFQVRBLG1CQUFtQixFQUFFLHVCQUF1Qjs7MkZBaUJsRCxnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWFJpcHBsZURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLW1lbnUtaXRlbS9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhTaWRlTWVudUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE91dGxpbmVTaWRlTWVudURpcmVjdGl2ZSB9IGZyb20gJy4vc2lkZS1tZW51LmRpcmVjdGl2ZSc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWFNpZGVNZW51Q29tcG9uZW50LCBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCwgQVhPdXRsaW5lU2lkZU1lbnVEaXJlY3RpdmVdO1xuY29uc3QgTU9EVUxFUyA9IFtcbiAgQ29tbW9uTW9kdWxlLFxuICBBWENvbW1vbk1vZHVsZSxcbiAgQVhSaXBwbGVEaXJlY3RpdmUsXG4gIEFYTG9hZGluZ01vZHVsZSxcbiAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgUm91dGVyTGluayxcbiAgUm91dGVyTGlua0FjdGl2ZSxcbiAgQVhEZWNvcmF0b3JNb2R1bGUsXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uTU9EVUxFUywgLi4uQ09NUE9ORU5UXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVNb2R1bGUge31cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtc2lkZS1tZW51LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9zaWRlLW1lbnUvc3JjL2Fjb3JleC1jb21wb25lbnRzLXNpZGUtbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "20.7.28",
3
+ "version": "20.7.29",
4
4
  "peerDependencies": {
5
- "@acorex/core": "20.7.28",
6
- "@acorex/cdk": "20.7.28",
5
+ "@acorex/core": "20.7.29",
6
+ "@acorex/cdk": "20.7.29",
7
7
  "polytype": ">=0.17.0",
8
8
  "angular-imask": ">=7.6.1",
9
9
  "gridstack": ">=12.0.0",
@@ -56,6 +56,10 @@
56
56
  "types": "./index.d.ts",
57
57
  "default": "./fesm2022/acorex-components.mjs"
58
58
  },
59
+ "./accordion": {
60
+ "types": "./accordion/index.d.ts",
61
+ "default": "./fesm2022/acorex-components-accordion.mjs"
62
+ },
59
63
  "./action-sheet": {
60
64
  "types": "./action-sheet/index.d.ts",
61
65
  "default": "./fesm2022/acorex-components-action-sheet.mjs"
@@ -64,10 +68,6 @@
64
68
  "types": "./alert/index.d.ts",
65
69
  "default": "./fesm2022/acorex-components-alert.mjs"
66
70
  },
67
- "./accordion": {
68
- "types": "./accordion/index.d.ts",
69
- "default": "./fesm2022/acorex-components-accordion.mjs"
70
- },
71
71
  "./aspect-ratio": {
72
72
  "types": "./aspect-ratio/index.d.ts",
73
73
  "default": "./fesm2022/acorex-components-aspect-ratio.mjs"
@@ -144,6 +144,10 @@
144
144
  "types": "./comment/index.d.ts",
145
145
  "default": "./fesm2022/acorex-components-comment.mjs"
146
146
  },
147
+ "./conversation": {
148
+ "types": "./conversation/index.d.ts",
149
+ "default": "./fesm2022/acorex-components-conversation.mjs"
150
+ },
147
151
  "./conversation2": {
148
152
  "types": "./conversation2/index.d.ts",
149
153
  "default": "./fesm2022/acorex-components-conversation2.mjs"
@@ -152,10 +156,6 @@
152
156
  "types": "./cron-job/index.d.ts",
153
157
  "default": "./fesm2022/acorex-components-cron-job.mjs"
154
158
  },
155
- "./conversation": {
156
- "types": "./conversation/index.d.ts",
157
- "default": "./fesm2022/acorex-components-conversation.mjs"
158
- },
159
159
  "./data-list": {
160
160
  "types": "./data-list/index.d.ts",
161
161
  "default": "./fesm2022/acorex-components-data-list.mjs"
@@ -164,14 +164,14 @@
164
164
  "types": "./data-pager/index.d.ts",
165
165
  "default": "./fesm2022/acorex-components-data-pager.mjs"
166
166
  },
167
- "./data-table": {
168
- "types": "./data-table/index.d.ts",
169
- "default": "./fesm2022/acorex-components-data-table.mjs"
170
- },
171
167
  "./datetime-box": {
172
168
  "types": "./datetime-box/index.d.ts",
173
169
  "default": "./fesm2022/acorex-components-datetime-box.mjs"
174
170
  },
171
+ "./data-table": {
172
+ "types": "./data-table/index.d.ts",
173
+ "default": "./fesm2022/acorex-components-data-table.mjs"
174
+ },
175
175
  "./datetime-input": {
176
176
  "types": "./datetime-input/index.d.ts",
177
177
  "default": "./fesm2022/acorex-components-datetime-input.mjs"
@@ -232,14 +232,14 @@
232
232
  "types": "./image/index.d.ts",
233
233
  "default": "./fesm2022/acorex-components-image.mjs"
234
234
  },
235
- "./json-viewer": {
236
- "types": "./json-viewer/index.d.ts",
237
- "default": "./fesm2022/acorex-components-json-viewer.mjs"
238
- },
239
235
  "./image-editor": {
240
236
  "types": "./image-editor/index.d.ts",
241
237
  "default": "./fesm2022/acorex-components-image-editor.mjs"
242
238
  },
239
+ "./json-viewer": {
240
+ "types": "./json-viewer/index.d.ts",
241
+ "default": "./fesm2022/acorex-components-json-viewer.mjs"
242
+ },
243
243
  "./kanban": {
244
244
  "types": "./kanban/index.d.ts",
245
245
  "default": "./fesm2022/acorex-components-kanban.mjs"
@@ -352,14 +352,14 @@
352
352
  "types": "./rail-navigation/index.d.ts",
353
353
  "default": "./fesm2022/acorex-components-rail-navigation.mjs"
354
354
  },
355
- "./range-slider": {
356
- "types": "./range-slider/index.d.ts",
357
- "default": "./fesm2022/acorex-components-range-slider.mjs"
358
- },
359
355
  "./rate-picker": {
360
356
  "types": "./rate-picker/index.d.ts",
361
357
  "default": "./fesm2022/acorex-components-rate-picker.mjs"
362
358
  },
359
+ "./range-slider": {
360
+ "types": "./range-slider/index.d.ts",
361
+ "default": "./fesm2022/acorex-components-range-slider.mjs"
362
+ },
363
363
  "./rest-api-generator": {
364
364
  "types": "./rest-api-generator/index.d.ts",
365
365
  "default": "./fesm2022/acorex-components-rest-api-generator.mjs"
@@ -380,14 +380,14 @@
380
380
  "types": "./scheduler/index.d.ts",
381
381
  "default": "./fesm2022/acorex-components-scheduler.mjs"
382
382
  },
383
- "./scheduler-picker": {
384
- "types": "./scheduler-picker/index.d.ts",
385
- "default": "./fesm2022/acorex-components-scheduler-picker.mjs"
386
- },
387
383
  "./scss": {
388
384
  "types": "./scss/index.d.ts",
389
385
  "default": "./fesm2022/acorex-components-scss.mjs"
390
386
  },
387
+ "./scheduler-picker": {
388
+ "types": "./scheduler-picker/index.d.ts",
389
+ "default": "./fesm2022/acorex-components-scheduler-picker.mjs"
390
+ },
391
391
  "./search-box": {
392
392
  "types": "./search-box/index.d.ts",
393
393
  "default": "./fesm2022/acorex-components-search-box.mjs"
@@ -440,22 +440,22 @@
440
440
  "types": "./tag-box/index.d.ts",
441
441
  "default": "./fesm2022/acorex-components-tag-box.mjs"
442
442
  },
443
- "./text-area": {
444
- "types": "./text-area/index.d.ts",
445
- "default": "./fesm2022/acorex-components-text-area.mjs"
446
- },
447
443
  "./text-box": {
448
444
  "types": "./text-box/index.d.ts",
449
445
  "default": "./fesm2022/acorex-components-text-box.mjs"
450
446
  },
451
- "./time-duration": {
452
- "types": "./time-duration/index.d.ts",
453
- "default": "./fesm2022/acorex-components-time-duration.mjs"
447
+ "./text-area": {
448
+ "types": "./text-area/index.d.ts",
449
+ "default": "./fesm2022/acorex-components-text-area.mjs"
454
450
  },
455
451
  "./time-line": {
456
452
  "types": "./time-line/index.d.ts",
457
453
  "default": "./fesm2022/acorex-components-time-line.mjs"
458
454
  },
455
+ "./time-duration": {
456
+ "types": "./time-duration/index.d.ts",
457
+ "default": "./fesm2022/acorex-components-time-duration.mjs"
458
+ },
459
459
  "./toast": {
460
460
  "types": "./toast/index.d.ts",
461
461
  "default": "./fesm2022/acorex-components-toast.mjs"
@@ -78,7 +78,7 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
78
78
  private getDirectChildElements;
79
79
  private reparentOrphanedChildren;
80
80
  private scheduleChildRefresh;
81
- private hasRelevantChildMutation;
81
+ private hasRelevantMutation;
82
82
  private nodeListContainsMenuStructuralNode;
83
83
  private getItemLabel;
84
84
  private getItemIcon;