@acorex/components 20.7.23 → 20.7.24
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.
|
@@ -60,6 +60,7 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
60
60
|
this.destroyRef = inject(DestroyRef);
|
|
61
61
|
this.menuMode = signal('full', ...(ngDevMode ? [{ debugName: "menuMode" }] : []));
|
|
62
62
|
this.childObserver = null;
|
|
63
|
+
this.childRefreshScheduled = false;
|
|
63
64
|
this.childItems = contentChildren(AXSideMenuItemComponent, ...(ngDevMode ? [{ debugName: "childItems", descendants: true }] : [{ descendants: true }]));
|
|
64
65
|
this.childrenSlot = viewChild('childrenSlot', ...(ngDevMode ? [{ debugName: "childrenSlot" }] : []));
|
|
65
66
|
this.childrenContextMenu = viewChild('childrenContextMenu', ...(ngDevMode ? [{ debugName: "childrenContextMenu" }] : []));
|
|
@@ -74,9 +75,11 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
74
75
|
}
|
|
75
76
|
this.reparentOrphanedChildren();
|
|
76
77
|
this.updateHasChild();
|
|
77
|
-
this.childObserver = new MutationObserver(() => {
|
|
78
|
-
this.
|
|
79
|
-
|
|
78
|
+
this.childObserver = new MutationObserver((records) => {
|
|
79
|
+
if (!this.hasRelevantChildMutation(records)) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.scheduleChildRefresh();
|
|
80
83
|
});
|
|
81
84
|
this.childObserver.observe(this.hostElement, { childList: true, subtree: true });
|
|
82
85
|
this.destroyRef.onDestroy(() => this.childObserver?.disconnect());
|
|
@@ -267,6 +270,40 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
267
270
|
}
|
|
268
271
|
}
|
|
269
272
|
}
|
|
273
|
+
scheduleChildRefresh() {
|
|
274
|
+
if (this.childRefreshScheduled) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
this.childRefreshScheduled = true;
|
|
278
|
+
requestAnimationFrame(() => {
|
|
279
|
+
this.childRefreshScheduled = false;
|
|
280
|
+
this.reparentOrphanedChildren();
|
|
281
|
+
this.updateHasChild();
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
hasRelevantChildMutation(records) {
|
|
285
|
+
for (const record of records) {
|
|
286
|
+
if (this.nodeListContainsMenuStructuralNode(record.addedNodes) || this.nodeListContainsMenuStructuralNode(record.removedNodes)) {
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
return false;
|
|
291
|
+
}
|
|
292
|
+
nodeListContainsMenuStructuralNode(nodes) {
|
|
293
|
+
for (const node of Array.from(nodes)) {
|
|
294
|
+
if (!(node instanceof Element)) {
|
|
295
|
+
continue;
|
|
296
|
+
}
|
|
297
|
+
const tagName = node.tagName;
|
|
298
|
+
if (tagName === 'AX-SIDE-MENU-ITEM' || tagName === 'AX-TITLE' || tagName === 'AX-DIVIDER') {
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
if (node.querySelector?.('ax-side-menu-item,ax-title,ax-divider')) {
|
|
302
|
+
return true;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
270
307
|
getItemLabel(host, instance) {
|
|
271
308
|
if (instance?.text()) {
|
|
272
309
|
return instance.text();
|
|
@@ -356,13 +393,20 @@ class AXSideMenuComponent extends NXComponent {
|
|
|
356
393
|
this.platformId = inject(PLATFORM_ID);
|
|
357
394
|
this.destroyRef = inject(DestroyRef);
|
|
358
395
|
this.hostElement = this.elementRef.nativeElement;
|
|
396
|
+
this.domRefreshScheduled = false;
|
|
397
|
+
this.domRefreshObserver = null;
|
|
359
398
|
this.#init = afterNextRender(() => {
|
|
360
399
|
if (!isPlatformBrowser(this.platformId))
|
|
361
400
|
return;
|
|
362
401
|
this.refreshItemsFromDom();
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
402
|
+
this.domRefreshObserver = new MutationObserver((records) => {
|
|
403
|
+
if (!this.hasRelevantMenuItemMutation(records)) {
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
this.scheduleDomRefresh();
|
|
407
|
+
});
|
|
408
|
+
this.domRefreshObserver.observe(this.elementRef.nativeElement, { childList: true, subtree: true });
|
|
409
|
+
this.destroyRef.onDestroy(() => this.domRefreshObserver?.disconnect());
|
|
366
410
|
});
|
|
367
411
|
this.#syncTooltips = effect(() => {
|
|
368
412
|
const isCompact = this.mode() === 'compact';
|
|
@@ -407,6 +451,40 @@ class AXSideMenuComponent extends NXComponent {
|
|
|
407
451
|
}
|
|
408
452
|
this.addFirstLevelClass();
|
|
409
453
|
}
|
|
454
|
+
scheduleDomRefresh() {
|
|
455
|
+
if (this.domRefreshScheduled) {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
this.domRefreshScheduled = true;
|
|
459
|
+
// Batch multiple rapid mutations (e.g., large template updates or overlays closing)
|
|
460
|
+
// into a single refresh to prevent long main-thread stalls.
|
|
461
|
+
requestAnimationFrame(() => {
|
|
462
|
+
this.domRefreshScheduled = false;
|
|
463
|
+
this.refreshItemsFromDom();
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
hasRelevantMenuItemMutation(records) {
|
|
467
|
+
for (const record of records) {
|
|
468
|
+
if (this.nodeListContainsMenuItem(record.addedNodes) || this.nodeListContainsMenuItem(record.removedNodes)) {
|
|
469
|
+
return true;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
return false;
|
|
473
|
+
}
|
|
474
|
+
nodeListContainsMenuItem(nodes) {
|
|
475
|
+
for (const node of Array.from(nodes)) {
|
|
476
|
+
if (!(node instanceof Element)) {
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
479
|
+
if (node.tagName === 'AX-SIDE-MENU-ITEM') {
|
|
480
|
+
return true;
|
|
481
|
+
}
|
|
482
|
+
if (node.querySelector?.('ax-side-menu-item')) {
|
|
483
|
+
return true;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
return false;
|
|
487
|
+
}
|
|
410
488
|
addFirstLevelClass() {
|
|
411
489
|
const allChildren = this._items();
|
|
412
490
|
allChildren.forEach((item) => item.getHostElement().querySelector('.ax-side-item')?.classList.remove('first-level'));
|
|
@@ -425,7 +503,7 @@ class AXSideMenuComponent extends NXComponent {
|
|
|
425
503
|
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: [
|
|
426
504
|
{ provide: AXComponent, useExisting: AXSideMenuComponent },
|
|
427
505
|
{ provide: AXSideMenuBase, useExisting: AXSideMenuComponent },
|
|
428
|
-
], 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 .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-badge{position:absolute;top:0}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[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", "tooltipText", "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 }); }
|
|
506
|
+
], 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: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 .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-badge{position:absolute;top:10px}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[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", "tooltipText", "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 }); }
|
|
429
507
|
}
|
|
430
508
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXSideMenuComponent, decorators: [{
|
|
431
509
|
type: Component,
|
|
@@ -439,7 +517,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
439
517
|
], providers: [
|
|
440
518
|
{ provide: AXComponent, useExisting: AXSideMenuComponent },
|
|
441
519
|
{ provide: AXSideMenuBase, useExisting: AXSideMenuComponent },
|
|
442
|
-
], 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 .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-badge{position:absolute;top:0}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[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"] }]
|
|
520
|
+
], 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: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 .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-badge{position:absolute;top:10px}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[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"] }]
|
|
443
521
|
}], propDecorators: { __hostClass: [{
|
|
444
522
|
type: HostBinding,
|
|
445
523
|
args: ['class']
|
|
@@ -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.tooltipStatus = signal(false, ...(ngDevMode ? [{ debugName: \"tooltipStatus\" }] : []));\n this.tooltipText = input('', ...(ngDevMode ? [{ debugName: \"tooltipText\" }] : []));\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 const host = this.hostElement;\n return !host.parentElement?.closest('.ax-side-children-content');\n }, ...(ngDevMode ? [{ debugName: \"isFirstLevel\" }] : []));\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.childObserver = null;\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.childObserver = new MutationObserver(() => {\n this.reparentOrphanedChildren();\n this.updateHasChild();\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 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 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 }, tooltipText: { classPropertyName: \"tooltipText\", publicName: \"tooltipText\", 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]=\\\"tooltipStatus() ? tooltipText() : null\\\" 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]=\\\"'click'\\\"\\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\", \"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]=\\\"tooltipStatus() ? tooltipText() : null\\\" 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]=\\\"'click'\\\"\\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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QUUsdUJBQXVCLEVBQUUsQ0FBQyxxREFxQzdCLHVCQUF1Qix1Y0MxRnZFLDQzRkEwRkEsNENEL0NJLGlCQUFpQiw4RkFDakIsVUFBVSxvT0FDVixnQkFBZ0IsOE1BQ2hCLGdCQUFnQixvSkFDaEIsa0JBQWtCLDBIQUdsQixlQUFlLHVSQUNmLHNCQUFzQiwwS0FIdEIsU0FBUyx5Q0FDVCxnQkFBZ0I7OzJGQU1QLHVCQUF1QjtrQkFuQm5DLFNBQVM7K0JBQ0UsbUJBQW1CLFVBQ3JCLENBQUMsVUFBVSxDQUFDLG1CQUVILHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUI7d0JBQ1AsaUJBQWlCO3dCQUNqQixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHNCQUFzQjtxQkFDdkIsYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHlCQUF5QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENsaWNrRXZlbnQsIEFYQ29tcG9uZW50LCBBWFJpcHBsZURpcmVjdGl2ZSwgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWExvYWRpbmdDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWENvbnRleHRNZW51Q29tcG9uZW50LCBBWENvbnRleHRNZW51SXRlbXNDbGlja0V2ZW50LCBBWE1lbnVJdGVtIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21lbnUnO1xuaW1wb3J0IHsgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWEh0bWxVdGlsLCBBWFBvaW50IH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgaXNQbGF0Zm9ybUJyb3dzZXIsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXNBY3RpdmVNYXRjaE9wdGlvbnMsIFJvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmUsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5leHBvcnQgY2xhc3MgQVhTaWRlTWVudUl0ZW1DbGlja0V2ZW50IGV4dGVuZHMgQVhDbGlja0V2ZW50IHtcbiAgaGFuZGxlZCA9IGZhbHNlO1xufVxuXG4vKiogUm91dGVzIGNvbnRleHQtbWVudSBjbGlja3MgYmFjayB0byB0aGUgbWF0Y2hpbmcgYGF4LXNpZGUtbWVudS1pdGVtYC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhTaWRlTWVudUNvbnRleHRNZW51SXRlbURhdGEge1xuICBzaWRlTWVudUl0ZW06IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1zaWRlLW1lbnUtaXRlbScsXG4gIGlucHV0czogWydkaXNhYmxlZCddLFxuICB0ZW1wbGF0ZVVybDogJy4vc2lkZS1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIEFYUmlwcGxlRGlyZWN0aXZlLFxuICAgIFJvdXRlckxpbmssXG4gICAgUm91dGVyTGlua0FjdGl2ZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFYTG9hZGluZ0NvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gICAgQVhDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCBleHRlbmRzIE1YSW50ZXJhY3RpdmVDb21wb25lbnQge1xuICB0ZXh0ID0gbW9kZWwoJycpO1xuICBhY3RpdmUgPSBtb2RlbChmYWxzZSk7XG4gIGlzTG9hZGluZyA9IG1vZGVsKGZhbHNlKTtcbiAgaXNDb2xsYXBzZWQgPSBtb2RlbCh0cnVlKTtcbiAgb25DbGljayA9IG91dHB1dDxBWFNpZGVNZW51SXRlbUNsaWNrRXZlbnQ+KCk7XG4gIHRvb2x0aXBTdGF0dXMgPSBzaWduYWwoZmFsc2UpO1xuICB0b29sdGlwVGV4dCA9IGlucHV0KCcnKTtcblxuICByZWFkb25seSB0b2dnbGVPbkNsaWNrID0gaW5wdXQodHJ1ZSk7XG4gIHJlYWRvbmx5IGhyZWYgPSBpbnB1dDxzdHJpbmcgfCBudWxsPigpO1xuICByZWFkb25seSByb3V0ZXJMaW5rID0gaW5wdXQ8c3RyaW5nIHwgYW55W10gfCBVcmxUcmVlIHwgbnVsbD4oKTtcbiAgcmVhZG9ubHkgcm91dGVyTGlua0FjdGl2ZSA9IGlucHV0PHN0cmluZyB8IHN0cmluZ1tdPignYXgtc3RhdGUtYWN0aXZlJyk7XG4gIHJlYWRvbmx5IHJvdXRlckxpbmtBY3RpdmVPcHRpb25zID0gaW5wdXQ8eyBleGFjdDogYm9vbGVhbiB9IHwgSXNBY3RpdmVNYXRjaE9wdGlvbnM+KHsgZXhhY3Q6IGZhbHNlIH0pO1xuICByZWFkb25seSB0YXJnZXQgPSBpbnB1dDwnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc+KCdfc2VsZicpO1xuXG4gIHByb3RlY3RlZCBtZW51SXRlbVRyaWdnZXIgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdtZW51SXRlbVRyaWdnZXInKTtcbiAgcHJvdGVjdGVkIGhhc0NoaWxkID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJvdGVjdGVkIGlzQ29tcGFjdE1vZGUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1lbnVNb2RlKCkgPT09ICdjb21wYWN0Jyk7XG5cbiAgLyoqIFRvcC1sZXZlbCByYWlsIGVudHJ5IGluIGNvbXBhY3QgbW9kZSAob3BlbnMgdGhlIGZseW91dCBjb250ZXh0IG1lbnUpLiAqL1xuICBwcm90ZWN0ZWQgaXNGaXJzdExldmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy5pc0NvbXBhY3RNb2RlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuaG9zdEVsZW1lbnQ7XG4gICAgcmV0dXJuICFob3N0LnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJy5heC1zaWRlLWNoaWxkcmVuLWNvbnRlbnQnKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1lbnVNb2RlID0gc2lnbmFsPCdmdWxsJyB8ICdjb21wYWN0Jz4oJ2Z1bGwnKTtcblxuICBwcml2YXRlIGNoaWxkT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlsZEl0ZW1zID0gY29udGVudENoaWxkcmVuKEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoaWxkcmVuU2xvdCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2NoaWxkcmVuU2xvdCcpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoaWxkcmVuQ29udGV4dE1lbnUgPSB2aWV3Q2hpbGQ8QVhDb250ZXh0TWVudUNvbXBvbmVudD4oJ2NoaWxkcmVuQ29udGV4dE1lbnUnKTtcblxuICBwcml2YXRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgI2NoaWxkQ2hlY2tFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLmNoaWxkSXRlbXMoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMudXBkYXRlSGFzQ2hpbGQoKTtcbiAgICB9XG4gIH0pO1xuXG4gICNpbml0Q2hpbGRyZW4gPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlcGFyZW50T3JwaGFuZWRDaGlsZHJlbigpO1xuICAgIHRoaXMudXBkYXRlSGFzQ2hpbGQoKTtcbiAgICB0aGlzLmNoaWxkT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XG4gICAgICB0aGlzLnJlcGFyZW50T3JwaGFuZWRDaGlsZHJlbigpO1xuICAgICAgdGhpcy51cGRhdGVIYXNDaGlsZCgpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hpbGRPYnNlcnZlci5vYnNlcnZlKHRoaXMuaG9zdEVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gdGhpcy5jaGlsZE9ic2VydmVyPy5kaXNjb25uZWN0KCkpO1xuICB9KTtcblxuICAjY29udGV4dE1lbnVTeW5jID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRoaXMuaXNDb21wYWN0TW9kZSgpIHx8ICFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpIHx8ICF0aGlzLmlzRmlyc3RMZXZlbCgpIHx8ICF0aGlzLmhhc0NoaWxkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51ID0gdGhpcy5jaGlsZHJlbkNvbnRleHRNZW51KCk7XG4gICAgaWYgKCFtZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQoKSkge1xuICAgICAgbWVudS5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsb3NlU2libGluZ0NvbXBhY3RNZW51cygpO1xuICAgICAgdGhpcy5vcGVuQ29tcGFjdENvbnRleHRNZW51KG1lbnUpO1xuICAgIH1cbiAgfSk7XG5cbiAgc3luY01lbnVNb2RlKG1vZGU6ICdmdWxsJyB8ICdjb21wYWN0Jykge1xuICAgIGlmICh0aGlzLm1lbnVNb2RlKCkgPT09IG1vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tZW51TW9kZS5zZXQobW9kZSk7XG4gICAgdGhpcy5jaGlsZHJlbkNvbnRleHRNZW51KCk/LmNsb3NlKCk7XG4gICAgaWYgKG1vZGUgPT09ICdjb21wYWN0Jykge1xuICAgICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEJ1aWxkcyB0aGUgY2FzY2FkaW5nIGBBWE1lbnVJdGVtYCB0cmVlIHVzZWQgYnkgdGhlIGNvbXBhY3QtbW9kZSBjb250ZXh0IG1lbnUuICovXG4gIGJ1aWxkTWVudUl0ZW1zRnJvbUNoaWxkcmVuKCk6IEFYTWVudUl0ZW1bXSB7XG4gICAgdGhpcy5yZXBhcmVudE9ycGhhbmVkQ2hpbGRyZW4oKTtcblxuICAgIGNvbnN0IHNsb3QgPSB0aGlzLmNoaWxkcmVuU2xvdCgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGl0ZW1zRnJvbVNsb3QgPSBzbG90ID8gdGhpcy5tYXBTbG90Q2hpbGRyZW5Ub01lbnVJdGVtcyhzbG90KSA6IFtdO1xuXG4gICAgaWYgKGl0ZW1zRnJvbVNsb3QubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGl0ZW1zRnJvbVNsb3Q7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cygpLm1hcCgoZWwpID0+IHRoaXMudG9NZW51SXRlbShlbCkpO1xuICB9XG5cbiAgYWN0aXZhdGVGcm9tQ29udGV4dE1lbnUobmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzTG9hZGluZygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRyaWdnZXIgPSB0aGlzLm1lbnVJdGVtVHJpZ2dlcigpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRyaWdnZXIgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCkge1xuICAgICAgdHJpZ2dlci5jbGljaygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICBoYW5kbGVkOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5pc0NvbXBhY3RNb2RlKCkgJiYgKCF0aGlzLmhhc0NoaWxkKCkgfHwgIXRoaXMuaXNGaXJzdExldmVsKCkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNDb2xsYXBzZWQudXBkYXRlKChjb2xsYXBzZWQpID0+ICFjb2xsYXBzZWQpO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLmlzQ29sbGFwc2VkLnNldChmYWxzZSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzQ29sbGFwc2VkLnNldCh0cnVlKTtcbiAgICB0aGlzLmNoaWxkcmVuQ29udGV4dE1lbnUoKT8uY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb250ZXh0TWVudUl0ZW1DbGljayhldmVudDogQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCkge1xuICAgIGNvbnN0IGluc3RhbmNlID0gKGV2ZW50Lml0ZW0uZGF0YSBhcyBBWFNpZGVNZW51Q29udGV4dE1lbnVJdGVtRGF0YSB8IHVuZGVmaW5lZCk/LnNpZGVNZW51SXRlbTtcbiAgICBpZiAoIWluc3RhbmNlIHx8IGluc3RhbmNlLmhhc0NoaWxkKCkpIHJldHVybjtcbiAgICBpbnN0YW5jZS5hY3RpdmF0ZUZyb21Db250ZXh0TWVudShldmVudC5uYXRpdmVFdmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dE1lbnVDbG9zZWQoKSB7XG4gICAgaWYgKCF0aGlzLmlzQ29sbGFwc2VkKCkpIHRoaXMuaXNDb2xsYXBzZWQuc2V0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrRXZlbnQoZTogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaXNMb2FkaW5nKCkpIHJldHVybjtcblxuICAgIGNvbnN0IGV2ZW50OiBBWFNpZGVNZW51SXRlbUNsaWNrRXZlbnQgPSB7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgICBoYW5kbGVkOiBmYWxzZSxcbiAgICB9O1xuICAgIHRoaXMub25DbGljay5lbWl0KGV2ZW50KTtcbiAgICBpZiAoIWV2ZW50LmhhbmRsZWQgJiYgdGhpcy50b2dnbGVPbkNsaWNrKCkgJiYgKHRoaXMuaGFzQ2hpbGQoKSB8fCAhdGhpcy5pc0NvbXBhY3RNb2RlKCkpKSB0aGlzLnRvZ2dsZSgpO1xuXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNvbXBhY3RDb250ZXh0TWVudShtZW51OiBBWENvbnRleHRNZW51Q29tcG9uZW50KSB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmJ1aWxkTWVudUl0ZW1zRnJvbUNoaWxkcmVuKCk7XG4gICAgaWYgKCFpdGVtcy5sZW5ndGgpIHJldHVybjtcblxuICAgIG1lbnUuc2hvd0F0KHRoaXMuZ2V0Q29udGV4dE1lbnVBbmNob3JQb2ludCgpLCB0aGlzLm1lbnVJdGVtVHJpZ2dlcigpLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHNlbmRlcjogbWVudSxcbiAgICAgIGNhbmNlbGVkOiBmYWxzZSxcbiAgICAgIHRhcmdldEVsZW1lbnQ6IHRoaXMubWVudUl0ZW1UcmlnZ2VyKCkubmF0aXZlRWxlbWVudCxcbiAgICAgIGl0ZW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0TWVudUFuY2hvclBvaW50KCk6IEFYUG9pbnQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLm1lbnVJdGVtVHJpZ2dlcigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgb2Zmc2V0ID0gODtcbiAgICBpZiAoQVhIdG1sVXRpbC5pc1J0bCh0aGlzLmhvc3RFbGVtZW50KSkge1xuICAgICAgcmV0dXJuIHsgeDogcmVjdC5sZWZ0IC0gb2Zmc2V0LCB5OiByZWN0LnRvcCB9O1xuICAgIH1cbiAgICByZXR1cm4geyB4OiByZWN0LnJpZ2h0ICsgb2Zmc2V0LCB5OiByZWN0LnRvcCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBTbG90Q2hpbGRyZW5Ub01lbnVJdGVtcyhzbG90OiBIVE1MRWxlbWVudCk6IEFYTWVudUl0ZW1bXSB7XG4gICAgY29uc3QgaXRlbXM6IEFYTWVudUl0ZW1bXSA9IFtdO1xuICAgIGxldCBwZW5kaW5nR3JvdXBUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBBcnJheS5mcm9tKHNsb3QuY2hpbGRyZW4pKSB7XG4gICAgICBpZiAoY2hpbGQudGFnTmFtZSA9PT0gJ0FYLVRJVExFJykge1xuICAgICAgICBwZW5kaW5nR3JvdXBUaXRsZSA9IGNoaWxkLnRleHRDb250ZW50Py50cmltKCkgfHwgdW5kZWZpbmVkO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGlsZC50YWdOYW1lID09PSAnQVgtRElWSURFUicpIHtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXSA9IHsgLi4uaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV0sIGJyZWFrOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoY2hpbGQudGFnTmFtZSAhPT0gJ0FYLVNJREUtTUVOVS1JVEVNJykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVudUl0ZW0gPSB0aGlzLnRvTWVudUl0ZW0oY2hpbGQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgaWYgKHBlbmRpbmdHcm91cFRpdGxlKSB7XG4gICAgICAgIG1lbnVJdGVtLmdyb3VwID0geyB0aXRsZTogcGVuZGluZ0dyb3VwVGl0bGUgfTtcbiAgICAgICAgcGVuZGluZ0dyb3VwVGl0bGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpdGVtcy5wdXNoKG1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBwcml2YXRlIHRvTWVudUl0ZW0oaG9zdDogSFRNTEVsZW1lbnQpOiBBWE1lbnVJdGVtIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuZ2V0SW5zdGFuY2VGcm9tRWxlbWVudChob3N0KTtcbiAgICBjb25zdCBpdGVtOiBBWE1lbnVJdGVtID0ge1xuICAgICAgdGV4dDogdGhpcy5nZXRJdGVtTGFiZWwoaG9zdCwgaW5zdGFuY2UpLFxuICAgICAgZGlzYWJsZWQ6IGluc3RhbmNlPy5kaXNhYmxlZCA/PyBmYWxzZSxcbiAgICAgIGljb246IHRoaXMuZ2V0SXRlbUljb24oaG9zdCksXG4gICAgICBzdWZmaXg6IHRoaXMuZ2V0SXRlbVN1ZmZpeChob3N0KSxcbiAgICB9O1xuXG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICBpdGVtLmRhdGEgPSB7IHNpZGVNZW51SXRlbTogaW5zdGFuY2UgfSBzYXRpc2ZpZXMgQVhTaWRlTWVudUNvbnRleHRNZW51SXRlbURhdGE7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzTmVzdGVkQ2hpbGRyZW4oaG9zdCwgaW5zdGFuY2UpKSB7XG4gICAgICBpdGVtLml0ZW1zID1cbiAgICAgICAgaW5zdGFuY2U/LmJ1aWxkTWVudUl0ZW1zRnJvbUNoaWxkcmVuKCkgPz8gdGhpcy5nZXREaXJlY3RDaGlsZEVsZW1lbnRzKGhvc3QpLm1hcCgoZWwpID0+IHRoaXMudG9NZW51SXRlbShlbCkpO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNOZXN0ZWRDaGlsZHJlbihob3N0OiBIVE1MRWxlbWVudCwgaW5zdGFuY2U/OiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoaW5zdGFuY2U/Lmhhc0NoaWxkKCkgPz8gZmFsc2UpIHx8IHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cyhob3N0KS5sZW5ndGggPiAwO1xuICB9XG5cbiAgLyoqIERpcmVjdCBgYXgtc2lkZS1tZW51LWl0ZW1gIGNoaWxkcmVuIG9mIGBtZW51SG9zdGAgKGRlZmF1bHRzIHRvIHRoaXMgaXRlbSkuICovXG4gIHByaXZhdGUgZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cyhtZW51SG9zdDogSFRNTEVsZW1lbnQgPSB0aGlzLmhvc3RFbGVtZW50KTogSFRNTEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obWVudUhvc3QucXVlcnlTZWxlY3RvckFsbCgnYXgtc2lkZS1tZW51LWl0ZW0nKSkuZmlsdGVyKChlbCkgPT4ge1xuICAgICAgaWYgKGVsID09PSBtZW51SG9zdCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gZWwucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnYXgtc2lkZS1tZW51LWl0ZW0nKSA9PT0gbWVudUhvc3Q7XG4gICAgfSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwYXJlbnRPcnBoYW5lZENoaWxkcmVuKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY2hpbGRyZW5TbG90KCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGVsIG9mIHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cygpKSB7XG4gICAgICBpZiAoIWNvbnRhaW5lci5jb250YWlucyhlbCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBIaWVyYXJjaHlSZXF1ZXN0RXJyb3Igd2hlbiB0aGUgbm9kZSBpcyBhbHJlYWR5IGJlaW5nIG1vdmVkLlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtTGFiZWwoaG9zdDogSFRNTEVsZW1lbnQsIGluc3RhbmNlPzogQVhTaWRlTWVudUl0ZW1Db21wb25lbnQpOiBzdHJpbmcge1xuICAgIGlmIChpbnN0YW5jZT8udGV4dCgpKSB7XG4gICAgICByZXR1cm4gaW5zdGFuY2UudGV4dCgpO1xuICAgIH1cbiAgICBjb25zdCBzcGFuID0gaG9zdC5xdWVyeVNlbGVjdG9yKCcuYXgtc3RhcnQtc2lkZSBzcGFuLCAuYXgtaW5zaWRlLXRleHQgc3BhbicpO1xuICAgIGlmIChzcGFuPy50ZXh0Q29udGVudD8udHJpbSgpKSB7XG4gICAgICByZXR1cm4gc3Bhbi50ZXh0Q29udGVudC50cmltKCk7XG4gICAgfVxuICAgIHJldHVybiBob3N0LnF1ZXJ5U2VsZWN0b3IoJ2F4LXRleHQnKT8udGV4dENvbnRlbnQ/LnRyaW0oKSA/PyAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbUljb24oaG9zdDogSFRNTEVsZW1lbnQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGF4SWNvbiA9IGhvc3QucXVlcnlTZWxlY3RvcignYXgtcHJlZml4IGF4LWljb24nKTtcbiAgICBpZiAoIWF4SWNvbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGF4SWNvbi5nZXRBdHRyaWJ1dGUoJ2ljb24nKSA/PyBheEljb24ucXVlcnlTZWxlY3RvcignaScpPy5jbGFzc05hbWUgPz8gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtU3VmZml4KGhvc3Q6IEhUTUxFbGVtZW50KTogeyB0ZXh0OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdGV4dCA9IGhvc3QucXVlcnlTZWxlY3RvcignYXgtc3VmZml4IGF4LXRleHQnKT8udGV4dENvbnRlbnQ/LnRyaW0oKTtcbiAgICByZXR1cm4gdGV4dCA/IHsgdGV4dCB9IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnN0YW5jZUZyb21FbGVtZW50KGVsOiBFbGVtZW50KTogQVhTaWRlTWVudUl0ZW1Db21wb25lbnQgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGN0eCA9IChlbCBhcyB1bmtub3duIGFzIHsgX19heENvbnRleHRfXz86IHVua25vd24gfSkuX19heENvbnRleHRfXztcbiAgICByZXR1cm4gY3R4IGluc3RhbmNlb2YgQVhTaWRlTWVudUl0ZW1Db21wb25lbnQgPyBjdHggOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlU2libGluZ0NvbXBhY3RNZW51cygpIHtcbiAgICBjb25zdCBtZW51SG9zdCA9IHRoaXMuaG9zdEVsZW1lbnQuY2xvc2VzdCgnYXgtc2lkZS1tZW51Jyk7XG4gICAgaWYgKCFtZW51SG9zdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1lbnVIb3N0LnF1ZXJ5U2VsZWN0b3JBbGwoJzpzY29wZSA+IGF4LXNpZGUtbWVudS1pdGVtJykuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgIGNvbnN0IHNpYmxpbmcgPSB0aGlzLmdldEluc3RhbmNlRnJvbUVsZW1lbnQoZWwpO1xuICAgICAgaWYgKCFzaWJsaW5nIHx8IHNpYmxpbmcgPT09IHRoaXMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc2libGluZy5pc0NvbGxhcHNlZC5zZXQodHJ1ZSk7XG4gICAgICBzaWJsaW5nLmNoaWxkcmVuQ29udGV4dE1lbnUoKT8uY2xvc2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlSGFzQ2hpbGQoKSB7XG4gICAgdGhpcy5oYXNDaGlsZC5zZXQodGhpcy5jaGlsZEl0ZW1zKCkubGVuZ3RoID4gMCB8fCB0aGlzLmdldERpcmVjdENoaWxkRWxlbWVudHMoKS5sZW5ndGggPiAwKTtcbiAgfVxufVxuIiwiPGRpdiBbYXhUb29sdGlwXT1cInRvb2x0aXBTdGF0dXMoKSA/IHRvb2x0aXBUZXh0KCkgOiBudWxsXCIgY2xhc3M9XCJheC1zaWRlLW1lbnUtd3JhcHBlclwiPlxuICBAaWYgKCFpc0NvbXBhY3RNb2RlKCkpIHtcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC10aXRsZVwiPjwvbmctY29udGVudD5cbiAgfVxuICBAaWYgKHJvdXRlckxpbmsoKSkge1xuICAgIDxhXG4gICAgICAjbWVudUl0ZW1UcmlnZ2VyXG4gICAgICBbYXhSaXBwbGVdXG4gICAgICBbdGFyZ2V0XT1cInRhcmdldCgpXCJcbiAgICAgIGNsYXNzPVwiYXgtc2lkZS1pdGVtXCJcbiAgICAgIFtyb3V0ZXJMaW5rXT1cInJvdXRlckxpbmsoKVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2tFdmVudCgkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcm91dGVyTGlua0FjdGl2ZV09XCJyb3V0ZXJMaW5rQWN0aXZlKClcIlxuICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInJvdXRlckxpbmtBY3RpdmVPcHRpb25zKClcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVudUl0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9hPlxuICB9IEBlbHNlIGlmIChocmVmKCkpIHtcbiAgICA8YVxuICAgICAgI21lbnVJdGVtVHJpZ2dlclxuICAgICAgW2F4UmlwcGxlXVxuICAgICAgW2hyZWZdPVwiaHJlZigpXCJcbiAgICAgIFt0YXJnZXRdPVwidGFyZ2V0KClcIlxuICAgICAgY2xhc3M9XCJheC1zaWRlLWl0ZW1cIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWFjdGl2ZV09XCJhY3RpdmUoKVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2tFdmVudCgkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG4gIH0gQGVsc2Uge1xuICAgIDxkaXZcbiAgICAgICNtZW51SXRlbVRyaWdnZXJcbiAgICAgIFtheFJpcHBsZV1cbiAgICAgIGNsYXNzPVwiYXgtc2lkZS1pdGVtXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1hY3RpdmVdPVwiYWN0aXZlKClcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrRXZlbnQoJGV2ZW50KVwiXG4gICAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibWVudUl0ZW1Db250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJheC1zaWRlLWNoaWxkcmVuXCJcbiAgICBbY2xhc3MuYXgtY29sbGFwc2VkXT1cIighaXNDb21wYWN0TW9kZSgpICYmIGlzQ29sbGFwc2VkKCkpIHx8IChpc0NvbXBhY3RNb2RlKCkgJiYgaXNGaXJzdExldmVsKCkpXCJcbiAgICBbY2xhc3MuYXgtZW1wdHldPVwiIWhhc0NoaWxkKCkgJiYgIWlzTG9hZGluZygpXCJcbiAgPlxuICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgIDxwPnt7ICdAYWNvcmV4OmNvbW1vbi5zdGF0dXMubG9hZGluZycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvcD5cbiAgICB9XG4gICAgPGRpdiAjY2hpbGRyZW5TbG90IGNsYXNzPVwiYXgtc2lkZS1jaGlsZHJlbi1jb250ZW50XCIgW2hpZGRlbl09XCJpc0xvYWRpbmcoKVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc2lkZS1tZW51LWl0ZW0sIG5nLWNvbnRhaW5lciwgW25nVGVtcGxhdGVPdXRsZXRdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKGlzQ29tcGFjdE1vZGUoKSAmJiBoYXNDaGlsZCgpKSB7XG4gICAgPGF4LWNvbnRleHQtbWVudVxuICAgICAgI2NoaWxkcmVuQ29udGV4dE1lbnVcbiAgICAgIGNsYXNzPVwiYXgtc2lkZS1tZW51LWNoaWxkcmVuLWNvbnRleHQtbWVudVwiXG4gICAgICBbb3Blbk9uXT1cIidob3ZlcidcIlxuICAgICAgW2Nsb3NlT25dPVwiJ2NsaWNrJ1wiXG4gICAgICAob25JdGVtQ2xpY2spPVwiaGFuZGxlQ29udGV4dE1lbnVJdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAob25DbG9zZSk9XCJoYW5kbGVDb250ZXh0TWVudUNsb3NlZCgpXCJcbiAgICAvPlxuICB9XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZGl2aWRlclwiPjwvbmctY29udGVudD5cbiAgPG5nLXRlbXBsYXRlICNtZW51SXRlbUNvbnRlbnQ+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.#init = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId))\n return;\n this.refreshItemsFromDom();\n const observer = new MutationObserver(() => this.refreshItemsFromDom());\n observer.observe(this.elementRef.nativeElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => observer.disconnect());\n });\n this.#syncTooltips = effect(() => {\n const isCompact = this.mode() === 'compact';\n this._items().forEach((item) => {\n const isFirstLevel = !item.getHostElement().parentElement?.closest('.ax-side-children-content');\n item.tooltipStatus.set(isCompact && isFirstLevel);\n });\n }, ...(ngDevMode ? [{ debugName: \"#syncTooltips\" }] : []));\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 #syncTooltips;\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 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 .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-badge{position:absolute;top:0}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[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\", \"tooltipText\", \"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 .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-badge{position:absolute;top:0}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFVBQVUsRUFBRSxnQkFBZ0IsRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUF1QnBGOzs7R0FHRztBQW9CSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQW5CcEQ7O1FBb0JFLFVBQUssR0FBRyxLQUFLLDJEQUFvQixDQUFDO1FBQ3pCLFNBQUksR0FBRyxLQUFLLENBQWlCLE9BQU8sZ0RBQUMsQ0FBQztRQUN0QyxhQUFRLEdBQUcsS0FBSyxDQUFxQixPQUFPLG9EQUFDLENBQUM7UUFDOUMsU0FBSSxHQUFHLEtBQUssQ0FBcUIsTUFBTSxnREFBQyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQ2pFOzs7Ozs7Ozs7O1dBVUc7UUFDSyxXQUFNLEdBQUcsTUFBTSxDQUE0QixFQUFFLGtEQUFDLENBQUM7UUFDdkQsK0VBQStFO1FBQ3RFLGFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxnQkFBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBRTVDLFVBQUssR0FBRyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUFFLE9BQU87WUFDaEQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1lBQ3hFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUFDO1FBRUgsa0JBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzFCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxTQUFTLENBQUM7WUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM3QixNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7Z0JBQ2hHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxZQUFZLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMseURBQUMsQ0FBQztRQUVILHVFQUF1RTtRQUN2RSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDLHlEQUFDLENBQUM7S0FrREo7SUF0RUMsS0FBSyxDQU1GO0lBRUgsYUFBYSxDQU1WO0lBRUgsdUVBQXVFO0lBQ3ZFLGFBQWEsQ0FHVjtJQUVIOzs7Ozs7OztPQVFHO0lBQ0ssbUJBQW1CO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzVELE1BQU0sS0FBSyxHQUE4QixFQUFFLENBQUM7UUFDNUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ3RCLE1BQU0sUUFBUSxHQUFJLEVBQTZDLENBQUMsYUFBYSxDQUFDO1lBQzlFLElBQUksUUFBUSxZQUFZLHVCQUF1QixFQUFFLENBQUM7Z0JBQ2hELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzlCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVGLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FDdEYsQ0FBQztRQUVGLFdBQVc7YUFDUixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNmLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNwSCxDQUFDLENBQUM7YUFDRCxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRCxjQUFjO0lBQ2QsSUFDWSxXQUFXO1FBQ3JCLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLGVBQWUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OEdBN0ZVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLG9vQkFMbkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1lBQzFELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUU7U0FDOUQsaURDaEVILDB2RUFvRUEsK2pWRGRJLGdCQUFnQixvSkFDaEIsMkJBQTJCLHlMQUMzQix1QkFBdUIsNlVBQ3ZCLFVBQVUsb09BQ1YsZ0JBQWdCLDhNQUNoQix3QkFBd0I7OzJGQU9mLG1CQUFtQjtrQkFuQi9CLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLGdCQUFnQjt3QkFDaEIsMkJBQTJCO3dCQUMzQix1QkFBdUI7d0JBQ3ZCLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQix3QkFBd0I7cUJBQ3pCLGFBQ1U7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUJBQXFCLEVBQUU7d0JBQzFELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLHFCQUFxQixFQUFFO3FCQUM5RDs4QkE2RlcsV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIE5YQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCwgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgUExBVEZPUk1fSUQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXNBY3RpdmVNYXRjaE9wdGlvbnMsIFJvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmUsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhTaWRlTWVudUJhc2UgfSBmcm9tICcuL3NpZGUtbWVudS1iYXNlJztcbmltcG9ydCB7IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLW1lbnUtaXRlbS9zaWRlLW1lbnUtaXRlbS5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBBWFNpZGVNZW51TG9vayA9ICdwaWxscycgfCAnd2l0aC1saW5lJyB8ICd3aXRoLWxpbmUtY29sb3InIHwgJ2RlZmF1bHQnO1xuZXhwb3J0IHR5cGUgQVhTaWRlTWVudUxvY2F0aW9uID0gJ3N0YXJ0JyB8ICdlbmQnO1xuZXhwb3J0IHR5cGUgQVhTaWRlTWVudUl0ZW0gPSB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICByb3V0ZXJMaW5rPzogc3RyaW5nIHwgYW55W10gfCBVcmxUcmVlO1xuICByb3V0ZXJMaW5rQWN0aXZlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIHJvdXRlckxpbmtBY3RpdmVPcHRpb25zPzogeyBleGFjdDogYm9vbGVhbiB9IHwgSXNBY3RpdmVNYXRjaE9wdGlvbnM7XG4gIGhyZWY/OiBzdHJpbmc7XG4gIHRhcmdldD86ICdfYmxhbmsnIHwgJ19zZWxmJyB8ICdfcGFyZW50JyB8ICdfdG9wJztcbiAgdGV4dDogc3RyaW5nO1xuICBhY3RpdmU/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzTG9hZGluZz86IGJvb2xlYW47XG4gIGlzQ29sbGFwc2VkPzogYm9vbGVhbjtcbiAgaWNvbj86IHN0cmluZztcbiAgZGF0YT86IHVua25vd247XG4gIHN1ZmZpeFRleHQ/OiBzdHJpbmc7XG4gIHRvZ2dsZU9uQ2xpY2s/OiBib29sZWFuO1xuICBpdGVtcz86IEFYU2lkZU1lbnVJdGVtW107XG59O1xuXG4vKipcbiAqIEBjYXRlZ29yeVxuICogQSBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYSBzaWRlIG1lbnUgd2l0aCBjdXN0b21pemFibGUgY29udGVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2lkZS1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGUtbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW1xuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50LFxuICAgIFJvdXRlckxpbmssXG4gICAgUm91dGVyTGlua0FjdGl2ZSxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNpZGVNZW51Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFNpZGVNZW51QmFzZSwgdXNlRXhpc3Rpbmc6IEFYU2lkZU1lbnVDb21wb25lbnQgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTaWRlTWVudUNvbXBvbmVudCBleHRlbmRzIE5YQ29tcG9uZW50IGltcGxlbWVudHMgQVhTaWRlTWVudUJhc2Uge1xuICBpdGVtcyA9IG1vZGVsPEFYU2lkZU1lbnVJdGVtW10+KCk7XG4gIHJlYWRvbmx5IGxvb2sgPSBpbnB1dDxBWFNpZGVNZW51TG9vaz4oJ3BpbGxzJyk7XG4gIHJlYWRvbmx5IGxvY2F0aW9uID0gaW5wdXQ8QVhTaWRlTWVudUxvY2F0aW9uPignc3RhcnQnKTtcbiAgcmVhZG9ubHkgbW9kZSA9IGlucHV0PCdmdWxsJyB8ICdjb21wYWN0Jz4oJ2Z1bGwnKTtcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgLyoqXG4gICAqIEFsbCBgYXgtc2lkZS1tZW51LWl0ZW1gIGluc3RhbmNlcyBkaXNjb3ZlcmVkIGJ5IHdhbGtpbmcgdGhlIGhvc3QgRE9NLlxuICAgKlxuICAgKiBXZSB1c2UgRE9NIGRpc2NvdmVyeSAoaW5zdGVhZCBvZiBgY29udGVudENoaWxkcmVuYCkgYmVjYXVzZSBBbmd1bGFyIGNvbnRlbnRcbiAgICogcXVlcmllcyBkbyAqKm5vdCoqIHRyYXZlcnNlIGVtYmVkZGVkIHZpZXdzIGNyZWF0ZWQgYnkgYG5nVGVtcGxhdGVPdXRsZXRgLFxuICAgKiBhbmQgdGhlIGBBWFNpZGVNZW51QmFzZWAgREkgdG9rZW4gaXMgbm90IHJlYWNoYWJsZSBmcm9tIGluc2lkZSB0aG9zZSB2aWV3c1xuICAgKiBlaXRoZXIgKHRoZXkgaW5oZXJpdCBpbmplY3Rpb24gZnJvbSB0aGUgdGVtcGxhdGUncyBkZWNsYXJhdGlvbiBzaXRlLCBub3RcbiAgICogdGhlIGluc2VydGlvbiBzaXRlKS4gV2Fsa2luZyB0aGUgRE9NIHdvcmtzIGZvciBkaXJlY3QgcHJvamVjdGlvbixcbiAgICogc3RydWN0dXJhbCBkaXJlY3RpdmVzLCBhbmQgcmVjdXJzaXZlIGBuZ1RlbXBsYXRlT3V0bGV0YC1iYXNlZCB0ZW1wbGF0ZXNcbiAgICogdW5pZm9ybWx5LlxuICAgKi9cbiAgcHJpdmF0ZSBfaXRlbXMgPSBzaWduYWw8QVhTaWRlTWVudUl0ZW1Db21wb25lbnRbXT4oW10pO1xuICAvKiogUmVhZC1vbmx5IHNpZ25hbCBleHBvc2luZyBldmVyeSBkaXNjb3ZlcmVkIGBheC1zaWRlLW1lbnUtaXRlbWAgaW5zdGFuY2UuICovXG4gIHJlYWRvbmx5IGNoaWxkcmVuID0gdGhpcy5faXRlbXMuYXNSZWFkb25seSgpO1xuICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGhvc3RFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgI2luaXQgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xuICAgIHRoaXMucmVmcmVzaEl0ZW1zRnJvbURvbSgpO1xuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4gdGhpcy5yZWZyZXNoSXRlbXNGcm9tRG9tKCkpO1xuICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpKTtcbiAgfSk7XG5cbiAgI3N5bmNUb29sdGlwcyA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaXNDb21wYWN0ID0gdGhpcy5tb2RlKCkgPT09ICdjb21wYWN0JztcbiAgICB0aGlzLl9pdGVtcygpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IGlzRmlyc3RMZXZlbCA9ICFpdGVtLmdldEhvc3RFbGVtZW50KCkucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnLmF4LXNpZGUtY2hpbGRyZW4tY29udGVudCcpO1xuICAgICAgaXRlbS50b29sdGlwU3RhdHVzLnNldChpc0NvbXBhY3QgJiYgaXNGaXJzdExldmVsKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgLyoqIFB1c2ggZnVsbC9jb21wYWN0IG1vZGUgdG8gZXZlcnkgbWVudSBpdGVtIHdoZW5ldmVyIG1vZGUgY2hhbmdlcy4gKi9cbiAgI3N5bmNJdGVtTW9kZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbW9kZSA9IHRoaXMubW9kZSgpO1xuICAgIHRoaXMuX2l0ZW1zKCkuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5zeW5jTWVudU1vZGUobW9kZSkpO1xuICB9KTtcblxuICAvKipcbiAgICogV2Fsa3MgdGhlIGhvc3QgRE9NIHRvIGRpc2NvdmVyIGV2ZXJ5IG5lc3RlZCBgYXgtc2lkZS1tZW51LWl0ZW1gLCBsb29rcyB1cFxuICAgKiB0aGUgY29tcG9uZW50IGluc3RhbmNlIHRocm91Z2ggdGhlIGBfX2F4Q29udGV4dF9fYCBwcm9wZXJ0eSB0aGF0XG4gICAqIGBNWEJhc2VDb21wb25lbnQubmdPbkluaXRgIGF0dGFjaGVzIHRvIGVhY2ggaG9zdCBlbGVtZW50LCBhbmQgdXBkYXRlcyB0aGVcbiAgICogaW50ZXJuYWwgaXRlbXMgc2lnbmFsIGFuZCBgLmZpcnN0LWxldmVsYCBDU1MgY2xhc3MgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIFRyaWdnZXJlZCBib3RoIGluaXRpYWxseSBhbmQgZnJvbSBhIGBNdXRhdGlvbk9ic2VydmVyYCBzbyByZWN1cnNpdmVcbiAgICogdGVtcGxhdGVzIHRoYXQgYWRkL3JlbW92ZSBpdGVtcyBhdCBydW50aW1lIHN0YXkgaW4gc3luYy5cbiAgICovXG4gIHByaXZhdGUgcmVmcmVzaEl0ZW1zRnJvbURvbSgpIHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZWxlbWVudHMgPSBob3N0LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F4LXNpZGUtbWVudS1pdGVtJyk7XG4gICAgY29uc3QgaXRlbXM6IEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50W10gPSBbXTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSAoZWwgYXMgdW5rbm93biBhcyB7IF9fYXhDb250ZXh0X18/OiB1bmtub3duIH0pLl9fYXhDb250ZXh0X187XG4gICAgICBpZiAoaW5zdGFuY2UgaW5zdGFuY2VvZiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCkge1xuICAgICAgICBpdGVtcy5wdXNoKGluc3RhbmNlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLl9pdGVtcygpO1xuICAgIGNvbnN0IGNoYW5nZWQgPSBjdXJyZW50Lmxlbmd0aCAhPT0gaXRlbXMubGVuZ3RoIHx8IGN1cnJlbnQuc29tZSgoaXQsIGkpID0+IGl0ICE9PSBpdGVtc1tpXSk7XG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIHRoaXMuX2l0ZW1zLnNldChpdGVtcyk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRGaXJzdExldmVsQ2xhc3MoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRmlyc3RMZXZlbENsYXNzKCkge1xuICAgIGNvbnN0IGFsbENoaWxkcmVuID0gdGhpcy5faXRlbXMoKTtcbiAgICBhbGxDaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PlxuICAgICAgaXRlbS5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5heC1zaWRlLWl0ZW0nKT8uY2xhc3NMaXN0LnJlbW92ZSgnZmlyc3QtbGV2ZWwnKSxcbiAgICApO1xuXG4gICAgYWxsQ2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSBpdGVtLmdldEhvc3RFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKGl0ZW1FbGVtZW50KSAmJiAhaXRlbUVsZW1lbnQucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnLmF4LXNpZGUtY2hpbGRyZW4tY29udGVudCcpO1xuICAgICAgfSlcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcignLmF4LXNpZGUtaXRlbScpPy5jbGFzc0xpc3QuYWRkKCdmaXJzdC1sZXZlbCcpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtgYXgtbG9vay0ke3RoaXMubG9vaygpfWAsIGBheC1sb2NhdGlvbi0ke3RoaXMubG9jYXRpb24oKX1gLCBgYXgtbW9kZS0ke3RoaXMubW9kZSgpfWBdO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1zaWRlLW1lbnUtaXRlbSxheC10aXRsZSxuZy1jb250YWluZXIsW25nVGVtcGxhdGVPdXRsZXRdXCI+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPNUUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU1VLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV4RCxTQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWE7aUJBQ3pCLElBQUksQ0FDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUNsQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztvQkFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQzlCO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7S0E0Rko7SUF6R0MsSUFBSSxDQWFEO0lBRUssY0FBYyxDQUFDLFlBQThCO1FBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUM7UUFFN0UsSUFBSSxZQUFZLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN6RSxJQUFJLGFBQWEsRUFBRSxJQUFJLEtBQUssc0JBQXNCLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMzRCxPQUFPO1FBQ1QsQ0FBQztRQUNELHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRixtQkFBbUIsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHNCQUFzQixDQUFDLEtBQXVCO1FBQ3BELE9BQU8sS0FBSzthQUNULEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxTQUFTLElBQUksSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDOUQsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUF1QjtRQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNmLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQXNCLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQXFCO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQXdCO1FBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFxQixFQUFFLENBQUM7UUFDdkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFtQjtnQkFDL0IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixhQUFhLEVBQUUsS0FBSztnQkFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUM1QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTthQUNwRCxDQUFDO1lBQ0YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNuQixjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLElBQUksQ0FBQyxFQUFFLHFCQUFxQixJQUFJLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO29CQUN6RyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0E5R1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsa0VBRjFCLENBQUMsY0FBYyxDQUFDOzsyRkFFaEIsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE91dGxpbmVDb250YWluZXJEaXJlY3RpdmUsIG91dGxpbmVJdGVtVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL291dGxpbmUnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhTaWRlTWVudUNvbXBvbmVudCwgQVhTaWRlTWVudUl0ZW0gfSBmcm9tICcuL3NpZGUtbWVudS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhPdXRsaW5lU2lkZU1lbnVdJyxcbiAgZXhwb3J0QXM6ICdheE91dGxpbmVTaWRlTWVudScsXG4gIHByb3ZpZGVyczogW0FYVW5zdWJzY3JpYmVyXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhPdXRsaW5lU2lkZU1lbnVEaXJlY3RpdmUge1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHVuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG4gIHByaXZhdGUgc2lkZU1lbnUgPSBpbmplY3QoQVhTaWRlTWVudUNvbXBvbmVudCk7XG4gIHByaXZhdGUgY29udGFpbmVyID0gaW5qZWN0KEFYT3V0bGluZUNvbnRhaW5lckRpcmVjdGl2ZSk7XG5cbiAgI2FuciA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5jb250YWluZXIub3V0bGluZUl0ZW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3ksXG4gICAgICAgIG1hcCgoaXRlbXMpID0+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.tooltipStatus = signal(false, ...(ngDevMode ? [{ debugName: \"tooltipStatus\" }] : []));\n this.tooltipText = input('', ...(ngDevMode ? [{ debugName: \"tooltipText\" }] : []));\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 const host = this.hostElement;\n return !host.parentElement?.closest('.ax-side-children-content');\n }, ...(ngDevMode ? [{ debugName: \"isFirstLevel\" }] : []));\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.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.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 });\n }\n hasRelevantChildMutation(records) {\n for (const record of records) {\n if (this.nodeListContainsMenuStructuralNode(record.addedNodes) || 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 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 }, tooltipText: { classPropertyName: \"tooltipText\", publicName: \"tooltipText\", 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]=\\\"tooltipStatus() ? tooltipText() : null\\\" 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]=\\\"'click'\\\"\\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\", \"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]=\\\"tooltipStatus() ? tooltipText() : null\\\" 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]=\\\"'click'\\\"\\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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LElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7OEdBbFdVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGl6REFGdkIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLENBQUMscURBc0M3Qix1QkFBdUIsdWNDM0Z2RSw0M0ZBMEZBLDRDRC9DSSxpQkFBaUIsOEZBQ2pCLFVBQVUsb09BQ1YsZ0JBQWdCLDhNQUNoQixnQkFBZ0Isb0pBQ2hCLGtCQUFrQiwwSEFHbEIsZUFBZSx1UkFDZixzQkFBc0IsMEtBSHRCLFNBQVMseUNBQ1QsZ0JBQWdCOzsyRkFNUCx1QkFBdUI7a0JBbkJuQyxTQUFTOytCQUNFLG1CQUFtQixVQUNyQixDQUFDLFVBQVUsQ0FBQyxtQkFFSCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixzQkFBc0I7cUJBQ3ZCLGFBQ1UsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyx5QkFBeUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGlja0V2ZW50LCBBWENvbXBvbmVudCwgQVhSaXBwbGVEaXJlY3RpdmUsIE1YSW50ZXJhY3RpdmVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhDb250ZXh0TWVudUNvbXBvbmVudCwgQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCwgQVhNZW51SXRlbSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhIdG1sVXRpbCwgQVhQb2ludCB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIGlzUGxhdGZvcm1Ccm93c2VyLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgRGVzdHJveVJlZixcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVJdGVtQ2xpY2tFdmVudCBleHRlbmRzIEFYQ2xpY2tFdmVudCB7XG4gIGhhbmRsZWQgPSBmYWxzZTtcbn1cblxuLyoqIFJvdXRlcyBjb250ZXh0LW1lbnUgY2xpY2tzIGJhY2sgdG8gdGhlIG1hdGNoaW5nIGBheC1zaWRlLW1lbnUtaXRlbWAuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYU2lkZU1lbnVDb250ZXh0TWVudUl0ZW1EYXRhIHtcbiAgc2lkZU1lbnVJdGVtOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2lkZS1tZW51LWl0ZW0nLFxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBBWFJpcHBsZURpcmVjdGl2ZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBWExvYWRpbmdDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gICAgQVhUb29sdGlwTW9kdWxlLFxuICAgIEFYQ29udGV4dE1lbnVDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTaWRlTWVudUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBNWEludGVyYWN0aXZlQ29tcG9uZW50IHtcbiAgdGV4dCA9IG1vZGVsKCcnKTtcbiAgYWN0aXZlID0gbW9kZWwoZmFsc2UpO1xuICBpc0xvYWRpbmcgPSBtb2RlbChmYWxzZSk7XG4gIGlzQ29sbGFwc2VkID0gbW9kZWwodHJ1ZSk7XG4gIG9uQ2xpY2sgPSBvdXRwdXQ8QVhTaWRlTWVudUl0ZW1DbGlja0V2ZW50PigpO1xuICB0b29sdGlwU3RhdHVzID0gc2lnbmFsKGZhbHNlKTtcbiAgdG9vbHRpcFRleHQgPSBpbnB1dCgnJyk7XG5cbiAgcmVhZG9ubHkgdG9nZ2xlT25DbGljayA9IGlucHV0KHRydWUpO1xuICByZWFkb25seSBocmVmID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4oKTtcbiAgcmVhZG9ubHkgcm91dGVyTGluayA9IGlucHV0PHN0cmluZyB8IGFueVtdIHwgVXJsVHJlZSB8IG51bGw+KCk7XG4gIHJlYWRvbmx5IHJvdXRlckxpbmtBY3RpdmUgPSBpbnB1dDxzdHJpbmcgfCBzdHJpbmdbXT4oJ2F4LXN0YXRlLWFjdGl2ZScpO1xuICByZWFkb25seSByb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucyA9IGlucHV0PHsgZXhhY3Q6IGJvb2xlYW4gfSB8IElzQWN0aXZlTWF0Y2hPcHRpb25zPih7IGV4YWN0OiBmYWxzZSB9KTtcbiAgcmVhZG9ubHkgdGFyZ2V0ID0gaW5wdXQ8J19ibGFuaycgfCAnX3NlbGYnIHwgJ19wYXJlbnQnIHwgJ190b3AnPignX3NlbGYnKTtcblxuICBwcm90ZWN0ZWQgbWVudUl0ZW1UcmlnZ2VyID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignbWVudUl0ZW1UcmlnZ2VyJyk7XG4gIHByb3RlY3RlZCBoYXNDaGlsZCA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCBpc0NvbXBhY3RNb2RlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tZW51TW9kZSgpID09PSAnY29tcGFjdCcpO1xuXG4gIC8qKiBUb3AtbGV2ZWwgcmFpbCBlbnRyeSBpbiBjb21wYWN0IG1vZGUgKG9wZW5zIHRoZSBmbHlvdXQgY29udGV4dCBtZW51KS4gKi9cbiAgcHJvdGVjdGVkIGlzRmlyc3RMZXZlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMuaXNDb21wYWN0TW9kZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGhvc3QgPSB0aGlzLmhvc3RFbGVtZW50O1xuICAgIHJldHVybiAhaG9zdC5wYXJlbnRFbGVtZW50Py5jbG9zZXN0KCcuYXgtc2lkZS1jaGlsZHJlbi1jb250ZW50Jyk7XG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZWxlbSA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBtZW51TW9kZSA9IHNpZ25hbDwnZnVsbCcgfCAnY29tcGFjdCc+KCdmdWxsJyk7XG5cbiAgcHJpdmF0ZSBjaGlsZE9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2hpbGRSZWZyZXNoU2NoZWR1bGVkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpbGRJdGVtcyA9IGNvbnRlbnRDaGlsZHJlbihBWFNpZGVNZW51SXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlsZHJlblNsb3QgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdjaGlsZHJlblNsb3QnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlsZHJlbkNvbnRleHRNZW51ID0gdmlld0NoaWxkPEFYQ29udGV4dE1lbnVDb21wb25lbnQ+KCdjaGlsZHJlbkNvbnRleHRNZW51Jyk7XG5cbiAgcHJpdmF0ZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gICNjaGlsZENoZWNrRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGhpcy5jaGlsZEl0ZW1zKCkubGVuZ3RoKSB7XG4gICAgICB0aGlzLnVwZGF0ZUhhc0NoaWxkKCk7XG4gICAgfVxuICB9KTtcblxuICAjaW5pdENoaWxkcmVuID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZXBhcmVudE9ycGhhbmVkQ2hpbGRyZW4oKTtcbiAgICB0aGlzLnVwZGF0ZUhhc0NoaWxkKCk7XG4gICAgdGhpcy5jaGlsZE9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKHJlY29yZHMpID0+IHtcbiAgICAgIGlmICghdGhpcy5oYXNSZWxldmFudENoaWxkTXV0YXRpb24ocmVjb3JkcykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zY2hlZHVsZUNoaWxkUmVmcmVzaCgpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hpbGRPYnNlcnZlci5vYnNlcnZlKHRoaXMuaG9zdEVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gdGhpcy5jaGlsZE9ic2VydmVyPy5kaXNjb25uZWN0KCkpO1xuICB9KTtcblxuICAjY29udGV4dE1lbnVTeW5jID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXRoaXMuaXNDb21wYWN0TW9kZSgpIHx8ICFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpIHx8ICF0aGlzLmlzRmlyc3RMZXZlbCgpIHx8ICF0aGlzLmhhc0NoaWxkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBtZW51ID0gdGhpcy5jaGlsZHJlbkNvbnRleHRNZW51KCk7XG4gICAgaWYgKCFtZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQoKSkge1xuICAgICAgbWVudS5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsb3NlU2libGluZ0NvbXBhY3RNZW51cygpO1xuICAgICAgdGhpcy5vcGVuQ29tcGFjdENvbnRleHRNZW51KG1lbnUpO1xuICAgIH1cbiAgfSk7XG5cbiAgc3luY01lbnVNb2RlKG1vZGU6ICdmdWxsJyB8ICdjb21wYWN0Jykge1xuICAgIGlmICh0aGlzLm1lbnVNb2RlKCkgPT09IG1vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tZW51TW9kZS5zZXQobW9kZSk7XG4gICAgdGhpcy5jaGlsZHJlbkNvbnRleHRNZW51KCk/LmNsb3NlKCk7XG4gICAgaWYgKG1vZGUgPT09ICdjb21wYWN0Jykge1xuICAgICAgdGhpcy5pc0NvbGxhcHNlZC5zZXQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEJ1aWxkcyB0aGUgY2FzY2FkaW5nIGBBWE1lbnVJdGVtYCB0cmVlIHVzZWQgYnkgdGhlIGNvbXBhY3QtbW9kZSBjb250ZXh0IG1lbnUuICovXG4gIGJ1aWxkTWVudUl0ZW1zRnJvbUNoaWxkcmVuKCk6IEFYTWVudUl0ZW1bXSB7XG4gICAgdGhpcy5yZXBhcmVudE9ycGhhbmVkQ2hpbGRyZW4oKTtcblxuICAgIGNvbnN0IHNsb3QgPSB0aGlzLmNoaWxkcmVuU2xvdCgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGl0ZW1zRnJvbVNsb3QgPSBzbG90ID8gdGhpcy5tYXBTbG90Q2hpbGRyZW5Ub01lbnVJdGVtcyhzbG90KSA6IFtdO1xuXG4gICAgaWYgKGl0ZW1zRnJvbVNsb3QubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGl0ZW1zRnJvbVNsb3Q7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cygpLm1hcCgoZWwpID0+IHRoaXMudG9NZW51SXRlbShlbCkpO1xuICB9XG5cbiAgYWN0aXZhdGVGcm9tQ29udGV4dE1lbnUobmF0aXZlRXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzTG9hZGluZygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHRyaWdnZXIgPSB0aGlzLm1lbnVJdGVtVHJpZ2dlcigpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRyaWdnZXIgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCkge1xuICAgICAgdHJpZ2dlci5jbGljaygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9uQ2xpY2suZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICBoYW5kbGVkOiBmYWxzZSxcbiAgICB9KTtcbiAgfVxuXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5pc0NvbXBhY3RNb2RlKCkgJiYgKCF0aGlzLmhhc0NoaWxkKCkgfHwgIXRoaXMuaXNGaXJzdExldmVsKCkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXNDb2xsYXBzZWQudXBkYXRlKChjb2xsYXBzZWQpID0+ICFjb2xsYXBzZWQpO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLmlzQ29sbGFwc2VkLnNldChmYWxzZSk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLmlzQ29sbGFwc2VkLnNldCh0cnVlKTtcbiAgICB0aGlzLmNoaWxkcmVuQ29udGV4dE1lbnUoKT8uY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDb250ZXh0TWVudUl0ZW1DbGljayhldmVudDogQVhDb250ZXh0TWVudUl0ZW1zQ2xpY2tFdmVudCkge1xuICAgIGNvbnN0IGluc3RhbmNlID0gKGV2ZW50Lml0ZW0uZGF0YSBhcyBBWFNpZGVNZW51Q29udGV4dE1lbnVJdGVtRGF0YSB8IHVuZGVmaW5lZCk/LnNpZGVNZW51SXRlbTtcbiAgICBpZiAoIWluc3RhbmNlIHx8IGluc3RhbmNlLmhhc0NoaWxkKCkpIHJldHVybjtcbiAgICBpbnN0YW5jZS5hY3RpdmF0ZUZyb21Db250ZXh0TWVudShldmVudC5uYXRpdmVFdmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udGV4dE1lbnVDbG9zZWQoKSB7XG4gICAgaWYgKCF0aGlzLmlzQ29sbGFwc2VkKCkpIHRoaXMuaXNDb2xsYXBzZWQuc2V0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrRXZlbnQoZTogTW91c2VFdmVudCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaXNMb2FkaW5nKCkpIHJldHVybjtcblxuICAgIGNvbnN0IGV2ZW50OiBBWFNpZGVNZW51SXRlbUNsaWNrRXZlbnQgPSB7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5nZXRIb3N0RWxlbWVudCgpLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgICBoYW5kbGVkOiBmYWxzZSxcbiAgICB9O1xuICAgIHRoaXMub25DbGljay5lbWl0KGV2ZW50KTtcbiAgICBpZiAoIWV2ZW50LmhhbmRsZWQgJiYgdGhpcy50b2dnbGVPbkNsaWNrKCkgJiYgKHRoaXMuaGFzQ2hpbGQoKSB8fCAhdGhpcy5pc0NvbXBhY3RNb2RlKCkpKSB0aGlzLnRvZ2dsZSgpO1xuXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkNvbXBhY3RDb250ZXh0TWVudShtZW51OiBBWENvbnRleHRNZW51Q29tcG9uZW50KSB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmJ1aWxkTWVudUl0ZW1zRnJvbUNoaWxkcmVuKCk7XG4gICAgaWYgKCFpdGVtcy5sZW5ndGgpIHJldHVybjtcblxuICAgIG1lbnUuc2hvd0F0KHRoaXMuZ2V0Q29udGV4dE1lbnVBbmNob3JQb2ludCgpLCB0aGlzLm1lbnVJdGVtVHJpZ2dlcigpLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIHNlbmRlcjogbWVudSxcbiAgICAgIGNhbmNlbGVkOiBmYWxzZSxcbiAgICAgIHRhcmdldEVsZW1lbnQ6IHRoaXMubWVudUl0ZW1UcmlnZ2VyKCkubmF0aXZlRWxlbWVudCxcbiAgICAgIGl0ZW1zLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250ZXh0TWVudUFuY2hvclBvaW50KCk6IEFYUG9pbnQge1xuICAgIGNvbnN0IHJlY3QgPSB0aGlzLm1lbnVJdGVtVHJpZ2dlcigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgb2Zmc2V0ID0gODtcbiAgICBpZiAoQVhIdG1sVXRpbC5pc1J0bCh0aGlzLmhvc3RFbGVtZW50KSkge1xuICAgICAgcmV0dXJuIHsgeDogcmVjdC5sZWZ0IC0gb2Zmc2V0LCB5OiByZWN0LnRvcCB9O1xuICAgIH1cbiAgICByZXR1cm4geyB4OiByZWN0LnJpZ2h0ICsgb2Zmc2V0LCB5OiByZWN0LnRvcCB9O1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBTbG90Q2hpbGRyZW5Ub01lbnVJdGVtcyhzbG90OiBIVE1MRWxlbWVudCk6IEFYTWVudUl0ZW1bXSB7XG4gICAgY29uc3QgaXRlbXM6IEFYTWVudUl0ZW1bXSA9IFtdO1xuICAgIGxldCBwZW5kaW5nR3JvdXBUaXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBBcnJheS5mcm9tKHNsb3QuY2hpbGRyZW4pKSB7XG4gICAgICBpZiAoY2hpbGQudGFnTmFtZSA9PT0gJ0FYLVRJVExFJykge1xuICAgICAgICBwZW5kaW5nR3JvdXBUaXRsZSA9IGNoaWxkLnRleHRDb250ZW50Py50cmltKCkgfHwgdW5kZWZpbmVkO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGlsZC50YWdOYW1lID09PSAnQVgtRElWSURFUicpIHtcbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpdGVtc1tpdGVtcy5sZW5ndGggLSAxXSA9IHsgLi4uaXRlbXNbaXRlbXMubGVuZ3RoIC0gMV0sIGJyZWFrOiB0cnVlIH07XG4gICAgICAgIH1cbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoY2hpbGQudGFnTmFtZSAhPT0gJ0FYLVNJREUtTUVOVS1JVEVNJykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbWVudUl0ZW0gPSB0aGlzLnRvTWVudUl0ZW0oY2hpbGQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgaWYgKHBlbmRpbmdHcm91cFRpdGxlKSB7XG4gICAgICAgIG1lbnVJdGVtLmdyb3VwID0geyB0aXRsZTogcGVuZGluZ0dyb3VwVGl0bGUgfTtcbiAgICAgICAgcGVuZGluZ0dyb3VwVGl0bGUgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpdGVtcy5wdXNoKG1lbnVJdGVtKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBwcml2YXRlIHRvTWVudUl0ZW0oaG9zdDogSFRNTEVsZW1lbnQpOiBBWE1lbnVJdGVtIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuZ2V0SW5zdGFuY2VGcm9tRWxlbWVudChob3N0KTtcbiAgICBjb25zdCBpdGVtOiBBWE1lbnVJdGVtID0ge1xuICAgICAgdGV4dDogdGhpcy5nZXRJdGVtTGFiZWwoaG9zdCwgaW5zdGFuY2UpLFxuICAgICAgZGlzYWJsZWQ6IGluc3RhbmNlPy5kaXNhYmxlZCA/PyBmYWxzZSxcbiAgICAgIGljb246IHRoaXMuZ2V0SXRlbUljb24oaG9zdCksXG4gICAgICBzdWZmaXg6IHRoaXMuZ2V0SXRlbVN1ZmZpeChob3N0KSxcbiAgICB9O1xuXG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICBpdGVtLmRhdGEgPSB7IHNpZGVNZW51SXRlbTogaW5zdGFuY2UgfSBzYXRpc2ZpZXMgQVhTaWRlTWVudUNvbnRleHRNZW51SXRlbURhdGE7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzTmVzdGVkQ2hpbGRyZW4oaG9zdCwgaW5zdGFuY2UpKSB7XG4gICAgICBpdGVtLml0ZW1zID1cbiAgICAgICAgaW5zdGFuY2U/LmJ1aWxkTWVudUl0ZW1zRnJvbUNoaWxkcmVuKCkgPz8gdGhpcy5nZXREaXJlY3RDaGlsZEVsZW1lbnRzKGhvc3QpLm1hcCgoZWwpID0+IHRoaXMudG9NZW51SXRlbShlbCkpO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNOZXN0ZWRDaGlsZHJlbihob3N0OiBIVE1MRWxlbWVudCwgaW5zdGFuY2U/OiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoaW5zdGFuY2U/Lmhhc0NoaWxkKCkgPz8gZmFsc2UpIHx8IHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cyhob3N0KS5sZW5ndGggPiAwO1xuICB9XG5cbiAgLyoqIERpcmVjdCBgYXgtc2lkZS1tZW51LWl0ZW1gIGNoaWxkcmVuIG9mIGBtZW51SG9zdGAgKGRlZmF1bHRzIHRvIHRoaXMgaXRlbSkuICovXG4gIHByaXZhdGUgZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cyhtZW51SG9zdDogSFRNTEVsZW1lbnQgPSB0aGlzLmhvc3RFbGVtZW50KTogSFRNTEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20obWVudUhvc3QucXVlcnlTZWxlY3RvckFsbCgnYXgtc2lkZS1tZW51LWl0ZW0nKSkuZmlsdGVyKChlbCkgPT4ge1xuICAgICAgaWYgKGVsID09PSBtZW51SG9zdCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gZWwucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnYXgtc2lkZS1tZW51LWl0ZW0nKSA9PT0gbWVudUhvc3Q7XG4gICAgfSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVwYXJlbnRPcnBoYW5lZENoaWxkcmVuKCkge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuY2hpbGRyZW5TbG90KCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFjb250YWluZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGVsIG9mIHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cygpKSB7XG4gICAgICBpZiAoIWNvbnRhaW5lci5jb250YWlucyhlbCkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBIaWVyYXJjaHlSZXF1ZXN0RXJyb3Igd2hlbiB0aGUgbm9kZSBpcyBhbHJlYWR5IGJlaW5nIG1vdmVkLlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZUNoaWxkUmVmcmVzaCgpIHtcbiAgICBpZiAodGhpcy5jaGlsZFJlZnJlc2hTY2hlZHVsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jaGlsZFJlZnJlc2hTY2hlZHVsZWQgPSB0cnVlO1xuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB0aGlzLmNoaWxkUmVmcmVzaFNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXBhcmVudE9ycGhhbmVkQ2hpbGRyZW4oKTtcbiAgICAgIHRoaXMudXBkYXRlSGFzQ2hpbGQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzUmVsZXZhbnRDaGlsZE11dGF0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10pOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICBpZiAodGhpcy5ub2RlTGlzdENvbnRhaW5zTWVudVN0cnVjdHVyYWxOb2RlKHJlY29yZC5hZGRlZE5vZGVzKSB8fCB0aGlzLm5vZGVMaXN0Q29udGFpbnNNZW51U3RydWN0dXJhbE5vZGUocmVjb3JkLnJlbW92ZWROb2RlcykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgbm9kZUxpc3RDb250YWluc01lbnVTdHJ1Y3R1cmFsTm9kZShub2RlczogTm9kZUxpc3QpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgQXJyYXkuZnJvbShub2RlcykpIHtcbiAgICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRhZ05hbWUgPSBub2RlLnRhZ05hbWU7XG4gICAgICBpZiAodGFnTmFtZSA9PT0gJ0FYLVNJREUtTUVOVS1JVEVNJyB8fCB0YWdOYW1lID09PSAnQVgtVElUTEUnIHx8IHRhZ05hbWUgPT09ICdBWC1ESVZJREVSJykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlLnF1ZXJ5U2VsZWN0b3I/LignYXgtc2lkZS1tZW51LWl0ZW0sYXgtdGl0bGUsYXgtZGl2aWRlcicpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1MYWJlbChob3N0OiBIVE1MRWxlbWVudCwgaW5zdGFuY2U/OiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCk6IHN0cmluZyB7XG4gICAgaWYgKGluc3RhbmNlPy50ZXh0KCkpIHtcbiAgICAgIHJldHVybiBpbnN0YW5jZS50ZXh0KCk7XG4gICAgfVxuICAgIGNvbnN0IHNwYW4gPSBob3N0LnF1ZXJ5U2VsZWN0b3IoJy5heC1zdGFydC1zaWRlIHNwYW4sIC5heC1pbnNpZGUtdGV4dCBzcGFuJyk7XG4gICAgaWYgKHNwYW4/LnRleHRDb250ZW50Py50cmltKCkpIHtcbiAgICAgIHJldHVybiBzcGFuLnRleHRDb250ZW50LnRyaW0oKTtcbiAgICB9XG4gICAgcmV0dXJuIGhvc3QucXVlcnlTZWxlY3RvcignYXgtdGV4dCcpPy50ZXh0Q29udGVudD8udHJpbSgpID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtSWNvbihob3N0OiBIVE1MRWxlbWVudCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgYXhJY29uID0gaG9zdC5xdWVyeVNlbGVjdG9yKCdheC1wcmVmaXggYXgtaWNvbicpO1xuICAgIGlmICghYXhJY29uKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gYXhJY29uLmdldEF0dHJpYnV0ZSgnaWNvbicpID8/IGF4SWNvbi5xdWVyeVNlbGVjdG9yKCdpJyk/LmNsYXNzTmFtZSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1TdWZmaXgoaG9zdDogSFRNTEVsZW1lbnQpOiB7IHRleHQ6IHN0cmluZyB9IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB0ZXh0ID0gaG9zdC5xdWVyeVNlbGVjdG9yKCdheC1zdWZmaXggYXgtdGV4dCcpPy50ZXh0Q29udGVudD8udHJpbSgpO1xuICAgIHJldHVybiB0ZXh0ID8geyB0ZXh0IH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEluc3RhbmNlRnJvbUVsZW1lbnQoZWw6IEVsZW1lbnQpOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY3R4ID0gKGVsIGFzIHVua25vd24gYXMgeyBfX2F4Q29udGV4dF9fPzogdW5rbm93biB9KS5fX2F4Q29udGV4dF9fO1xuICAgIHJldHVybiBjdHggaW5zdGFuY2VvZiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCA/IGN0eCA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VTaWJsaW5nQ29tcGFjdE1lbnVzKCkge1xuICAgIGNvbnN0IG1lbnVIb3N0ID0gdGhpcy5ob3N0RWxlbWVudC5jbG9zZXN0KCdheC1zaWRlLW1lbnUnKTtcbiAgICBpZiAoIW1lbnVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbWVudUhvc3QucXVlcnlTZWxlY3RvckFsbCgnOnNjb3BlID4gYXgtc2lkZS1tZW51LWl0ZW0nKS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgY29uc3Qgc2libGluZyA9IHRoaXMuZ2V0SW5zdGFuY2VGcm9tRWxlbWVudChlbCk7XG4gICAgICBpZiAoIXNpYmxpbmcgfHwgc2libGluZyA9PT0gdGhpcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzaWJsaW5nLmlzQ29sbGFwc2VkLnNldCh0cnVlKTtcbiAgICAgIHNpYmxpbmcuY2hpbGRyZW5Db250ZXh0TWVudSgpPy5jbG9zZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIYXNDaGlsZCgpIHtcbiAgICB0aGlzLmhhc0NoaWxkLnNldCh0aGlzLmNoaWxkSXRlbXMoKS5sZW5ndGggPiAwIHx8IHRoaXMuZ2V0RGlyZWN0Q2hpbGRFbGVtZW50cygpLmxlbmd0aCA+IDApO1xuICB9XG59XG4iLCI8ZGl2IFtheFRvb2x0aXBdPVwidG9vbHRpcFN0YXR1cygpID8gdG9vbHRpcFRleHQoKSA6IG51bGxcIiBjbGFzcz1cImF4LXNpZGUtbWVudS13cmFwcGVyXCI+XG4gIEBpZiAoIWlzQ29tcGFjdE1vZGUoKSkge1xuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXRpdGxlXCI+PC9uZy1jb250ZW50PlxuICB9XG4gIEBpZiAocm91dGVyTGluaygpKSB7XG4gICAgPGFcbiAgICAgICNtZW51SXRlbVRyaWdnZXJcbiAgICAgIFtheFJpcHBsZV1cbiAgICAgIFt0YXJnZXRdPVwidGFyZ2V0KClcIlxuICAgICAgY2xhc3M9XCJheC1zaWRlLWl0ZW1cIlxuICAgICAgW3JvdXRlckxpbmtdPVwicm91dGVyTGluaygpXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVDbGlja0V2ZW50KCRldmVudClcIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlXT1cInJvdXRlckxpbmtBY3RpdmUoKVwiXG4gICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwicm91dGVyTGlua0FjdGl2ZU9wdGlvbnMoKVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG4gIH0gQGVsc2UgaWYgKGhyZWYoKSkge1xuICAgIDxhXG4gICAgICAjbWVudUl0ZW1UcmlnZ2VyXG4gICAgICBbYXhSaXBwbGVdXG4gICAgICBbaHJlZl09XCJocmVmKClcIlxuICAgICAgW3RhcmdldF09XCJ0YXJnZXQoKVwiXG4gICAgICBjbGFzcz1cImF4LXNpZGUtaXRlbVwiXG4gICAgICBbY2xhc3MuYXgtc3RhdGUtYWN0aXZlXT1cImFjdGl2ZSgpXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVDbGlja0V2ZW50KCRldmVudClcIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVJdGVtQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYT5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdlxuICAgICAgI21lbnVJdGVtVHJpZ2dlclxuICAgICAgW2F4UmlwcGxlXVxuICAgICAgY2xhc3M9XCJheC1zaWRlLWl0ZW1cIlxuICAgICAgW2NsYXNzLmF4LXN0YXRlLWFjdGl2ZV09XCJhY3RpdmUoKVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2xpY2tFdmVudCgkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbUNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImF4LXNpZGUtY2hpbGRyZW5cIlxuICAgIFtjbGFzcy5heC1jb2xsYXBzZWRdPVwiKCFpc0NvbXBhY3RNb2RlKCkgJiYgaXNDb2xsYXBzZWQoKSkgfHwgKGlzQ29tcGFjdE1vZGUoKSAmJiBpc0ZpcnN0TGV2ZWwoKSlcIlxuICAgIFtjbGFzcy5heC1lbXB0eV09XCIhaGFzQ2hpbGQoKSAmJiAhaXNMb2FkaW5nKClcIlxuICA+XG4gICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgPHA+e3sgJ0BhY29yZXg6Y29tbW9uLnN0YXR1cy5sb2FkaW5nJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9wPlxuICAgIH1cbiAgICA8ZGl2ICNjaGlsZHJlblNsb3QgY2xhc3M9XCJheC1zaWRlLWNoaWxkcmVuLWNvbnRlbnRcIiBbaGlkZGVuXT1cImlzTG9hZGluZygpXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zaWRlLW1lbnUtaXRlbSwgbmctY29udGFpbmVyLCBbbmdUZW1wbGF0ZU91dGxldF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIEBpZiAoaXNDb21wYWN0TW9kZSgpICYmIGhhc0NoaWxkKCkpIHtcbiAgICA8YXgtY29udGV4dC1tZW51XG4gICAgICAjY2hpbGRyZW5Db250ZXh0TWVudVxuICAgICAgY2xhc3M9XCJheC1zaWRlLW1lbnUtY2hpbGRyZW4tY29udGV4dC1tZW51XCJcbiAgICAgIFtvcGVuT25dPVwiJ2hvdmVyJ1wiXG4gICAgICBbY2xvc2VPbl09XCInY2xpY2snXCJcbiAgICAgIChvbkl0ZW1DbGljayk9XCJoYW5kbGVDb250ZXh0TWVudUl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgIChvbkNsb3NlKT1cImhhbmRsZUNvbnRleHRNZW51Q2xvc2VkKClcIlxuICAgIC8+XG4gIH1cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1kaXZpZGVyXCI+PC9uZy1jb250ZW50PlxuICA8bmctdGVtcGxhdGUgI21lbnVJdGVtQ29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc3RhcnQtc2lkZVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICAgICAgQGlmICh0ZXh0KCkpIHtcbiAgICAgICAgPHNwYW4+e3sgdGV4dCgpIH19PC9zcGFuPlxuICAgICAgfVxuICAgICAgPGRpdiBjbGFzcz1cImF4LWluc2lkZS10ZXh0XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1lbmQtc2lkZVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuICAgICAgQGlmIChoYXNDaGlsZCgpICYmICFpc0xvYWRpbmcoKSAmJiB0b2dnbGVPbkNsaWNrKCkgJiYgIWlzRmlyc3RMZXZlbCgpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tcmlnaHQgYXJyb3ctaWNvblwiIFtjbGFzcy5hcnJvdy1pY29uLWV4cGFuZF09XCIhaXNDb2xsYXBzZWQoKVwiPiA8L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19","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 this.#syncTooltips = effect(() => {\n const isCompact = this.mode() === 'compact';\n this._items().forEach((item) => {\n const isFirstLevel = !item.getHostElement().parentElement?.closest('.ax-side-children-content');\n item.tooltipStatus.set(isCompact && isFirstLevel);\n });\n }, ...(ngDevMode ? [{ debugName: \"#syncTooltips\" }] : []));\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 #syncTooltips;\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: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 .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-badge{position:absolute;top:10px}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[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\", \"tooltipText\", \"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: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 .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-badge{position:absolute;top:10px}ax-side-menu.ax-mode-compact .ax-side-item{width:fit-content;gap:0}[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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IEFYQ29tcG9uZW50LCBOWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbW9kZWwsXG4gIFBMQVRGT1JNX0lELFxuICBzaWduYWwsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFYU2lkZU1lbnVCYXNlIH0gZnJvbSAnLi9zaWRlLW1lbnUtYmFzZSc7XG5pbXBvcnQgeyBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1tZW51LWl0ZW0vc2lkZS1tZW51LWl0ZW0uY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgQVhTaWRlTWVudUxvb2sgPSAncGlsbHMnIHwgJ3dpdGgtbGluZScgfCAnd2l0aC1saW5lLWNvbG9yJyB8ICdkZWZhdWx0JztcbmV4cG9ydCB0eXBlIEFYU2lkZU1lbnVMb2NhdGlvbiA9ICdzdGFydCcgfCAnZW5kJztcbmV4cG9ydCB0eXBlIEFYU2lkZU1lbnVJdGVtID0ge1xuICB0aXRsZT86IHN0cmluZztcbiAgcm91dGVyTGluaz86IHN0cmluZyB8IGFueVtdIHwgVXJsVHJlZTtcbiAgcm91dGVyTGlua0FjdGl2ZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICByb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucz86IHsgZXhhY3Q6IGJvb2xlYW4gfSB8IElzQWN0aXZlTWF0Y2hPcHRpb25zO1xuICBocmVmPzogc3RyaW5nO1xuICB0YXJnZXQ/OiAnX2JsYW5rJyB8ICdfc2VsZicgfCAnX3BhcmVudCcgfCAnX3RvcCc7XG4gIHRleHQ6IHN0cmluZztcbiAgYWN0aXZlPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpc0xvYWRpbmc/OiBib29sZWFuO1xuICBpc0NvbGxhcHNlZD86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7XG4gIGRhdGE/OiB1bmtub3duO1xuICBzdWZmaXhUZXh0Pzogc3RyaW5nO1xuICB0b2dnbGVPbkNsaWNrPzogYm9vbGVhbjtcbiAgaXRlbXM/OiBBWFNpZGVNZW51SXRlbVtdO1xufTtcblxuLyoqXG4gKiBAY2F0ZWdvcnlcbiAqIEEgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGEgc2lkZSBtZW51IHdpdGggY3VzdG9taXphYmxlIGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LXNpZGUtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaWRlLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCxcbiAgICBBWFNpZGVNZW51SXRlbUNvbXBvbmVudCxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIFJvdXRlckxpbmtBY3RpdmUsXG4gICAgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTaWRlTWVudUNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhTaWRlTWVudUJhc2UsIHVzZUV4aXN0aW5nOiBBWFNpZGVNZW51Q29tcG9uZW50IH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYU2lkZU1lbnVDb21wb25lbnQgZXh0ZW5kcyBOWENvbXBvbmVudCBpbXBsZW1lbnRzIEFYU2lkZU1lbnVCYXNlIHtcbiAgaXRlbXMgPSBtb2RlbDxBWFNpZGVNZW51SXRlbVtdPigpO1xuICByZWFkb25seSBsb29rID0gaW5wdXQ8QVhTaWRlTWVudUxvb2s+KCdwaWxscycpO1xuICByZWFkb25seSBsb2NhdGlvbiA9IGlucHV0PEFYU2lkZU1lbnVMb2NhdGlvbj4oJ3N0YXJ0Jyk7XG4gIHJlYWRvbmx5IG1vZGUgPSBpbnB1dDwnZnVsbCcgfCAnY29tcGFjdCc+KCdmdWxsJyk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIC8qKlxuICAgKiBBbGwgYGF4LXNpZGUtbWVudS1pdGVtYCBpbnN0YW5jZXMgZGlzY292ZXJlZCBieSB3YWxraW5nIHRoZSBob3N0IERPTS5cbiAgICpcbiAgICogV2UgdXNlIERPTSBkaXNjb3ZlcnkgKGluc3RlYWQgb2YgYGNvbnRlbnRDaGlsZHJlbmApIGJlY2F1c2UgQW5ndWxhciBjb250ZW50XG4gICAqIHF1ZXJpZXMgZG8gKipub3QqKiB0cmF2ZXJzZSBlbWJlZGRlZCB2aWV3cyBjcmVhdGVkIGJ5IGBuZ1RlbXBsYXRlT3V0bGV0YCxcbiAgICogYW5kIHRoZSBgQVhTaWRlTWVudUJhc2VgIERJIHRva2VuIGlzIG5vdCByZWFjaGFibGUgZnJvbSBpbnNpZGUgdGhvc2Ugdmlld3NcbiAgICogZWl0aGVyICh0aGV5IGluaGVyaXQgaW5qZWN0aW9uIGZyb20gdGhlIHRlbXBsYXRlJ3MgZGVjbGFyYXRpb24gc2l0ZSwgbm90XG4gICAqIHRoZSBpbnNlcnRpb24gc2l0ZSkuIFdhbGtpbmcgdGhlIERPTSB3b3JrcyBmb3IgZGlyZWN0IHByb2plY3Rpb24sXG4gICAqIHN0cnVjdHVyYWwgZGlyZWN0aXZlcywgYW5kIHJlY3Vyc2l2ZSBgbmdUZW1wbGF0ZU91dGxldGAtYmFzZWQgdGVtcGxhdGVzXG4gICAqIHVuaWZvcm1seS5cbiAgICovXG4gIHByaXZhdGUgX2l0ZW1zID0gc2lnbmFsPEFYU2lkZU1lbnVJdGVtQ29tcG9uZW50W10+KFtdKTtcbiAgLyoqIFJlYWQtb25seSBzaWduYWwgZXhwb3NpbmcgZXZlcnkgZGlzY292ZXJlZCBgYXgtc2lkZS1tZW51LWl0ZW1gIGluc3RhbmNlLiAqL1xuICByZWFkb25seSBjaGlsZHJlbiA9IHRoaXMuX2l0ZW1zLmFzUmVhZG9ubHkoKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICBwcml2YXRlIGRvbVJlZnJlc2hTY2hlZHVsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBkb21SZWZyZXNoT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG4gICAgdGhpcy5yZWZyZXNoSXRlbXNGcm9tRG9tKCk7XG4gICAgdGhpcy5kb21SZWZyZXNoT2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigocmVjb3JkcykgPT4ge1xuICAgICAgaWYgKCF0aGlzLmhhc1JlbGV2YW50TWVudUl0ZW1NdXRhdGlvbihyZWNvcmRzKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNjaGVkdWxlRG9tUmVmcmVzaCgpO1xuICAgIH0pO1xuICAgIHRoaXMuZG9tUmVmcmVzaE9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gdGhpcy5kb21SZWZyZXNoT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKSk7XG4gIH0pO1xuXG4gICNzeW5jVG9vbHRpcHMgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlzQ29tcGFjdCA9IHRoaXMubW9kZSgpID09PSAnY29tcGFjdCc7XG4gICAgdGhpcy5faXRlbXMoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBpc0ZpcnN0TGV2ZWwgPSAhaXRlbS5nZXRIb3N0RWxlbWVudCgpLnBhcmVudEVsZW1lbnQ/LmNsb3Nlc3QoJy5heC1zaWRlLWNoaWxkcmVuLWNvbnRlbnQnKTtcbiAgICAgIGl0ZW0udG9vbHRpcFN0YXR1cy5zZXQoaXNDb21wYWN0ICYmIGlzRmlyc3RMZXZlbCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIC8qKiBQdXNoIGZ1bGwvY29tcGFjdCBtb2RlIHRvIGV2ZXJ5IG1lbnUgaXRlbSB3aGVuZXZlciBtb2RlIGNoYW5nZXMuICovXG4gICNzeW5jSXRlbU1vZGUgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG1vZGUgPSB0aGlzLm1vZGUoKTtcbiAgICB0aGlzLl9pdGVtcygpLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uc3luY01lbnVNb2RlKG1vZGUpKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFdhbGtzIHRoZSBob3N0IERPTSB0byBkaXNjb3ZlciBldmVyeSBuZXN0ZWQgYGF4LXNpZGUtbWVudS1pdGVtYCwgbG9va3MgdXBcbiAgICogdGhlIGNvbXBvbmVudCBpbnN0YW5jZSB0aHJvdWdoIHRoZSBgX19heENvbnRleHRfX2AgcHJvcGVydHkgdGhhdFxuICAgKiBgTVhCYXNlQ29tcG9uZW50Lm5nT25Jbml0YCBhdHRhY2hlcyB0byBlYWNoIGhvc3QgZWxlbWVudCwgYW5kIHVwZGF0ZXMgdGhlXG4gICAqIGludGVybmFsIGl0ZW1zIHNpZ25hbCBhbmQgYC5maXJzdC1sZXZlbGAgQ1NTIGNsYXNzIGFjY29yZGluZ2x5LlxuICAgKlxuICAgKiBUcmlnZ2VyZWQgYm90aCBpbml0aWFsbHkgYW5kIGZyb20gYSBgTXV0YXRpb25PYnNlcnZlcmAgc28gcmVjdXJzaXZlXG4gICAqIHRlbXBsYXRlcyB0aGF0IGFkZC9yZW1vdmUgaXRlbXMgYXQgcnVudGltZSBzdGF5IGluIHN5bmMuXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hJdGVtc0Zyb21Eb20oKSB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdC5xdWVyeVNlbGVjdG9yQWxsKCdheC1zaWRlLW1lbnUtaXRlbScpO1xuICAgIGNvbnN0IGl0ZW1zOiBBWFNpZGVNZW51SXRlbUNvbXBvbmVudFtdID0gW107XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gKGVsIGFzIHVua25vd24gYXMgeyBfX2F4Q29udGV4dF9fPzogdW5rbm93biB9KS5fX2F4Q29udGV4dF9fO1xuICAgICAgaWYgKGluc3RhbmNlIGluc3RhbmNlb2YgQVhTaWRlTWVudUl0ZW1Db21wb25lbnQpIHtcbiAgICAgICAgaXRlbXMucHVzaChpbnN0YW5jZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5faXRlbXMoKTtcbiAgICBjb25zdCBjaGFuZ2VkID0gY3VycmVudC5sZW5ndGggIT09IGl0ZW1zLmxlbmd0aCB8fCBjdXJyZW50LnNvbWUoKGl0LCBpKSA9PiBpdCAhPT0gaXRlbXNbaV0pO1xuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLl9pdGVtcy5zZXQoaXRlbXMpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkRmlyc3RMZXZlbENsYXNzKCk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlRG9tUmVmcmVzaCgpIHtcbiAgICBpZiAodGhpcy5kb21SZWZyZXNoU2NoZWR1bGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZG9tUmVmcmVzaFNjaGVkdWxlZCA9IHRydWU7XG5cbiAgICAvLyBCYXRjaCBtdWx0aXBsZSByYXBpZCBtdXRhdGlvbnMgKGUuZy4sIGxhcmdlIHRlbXBsYXRlIHVwZGF0ZXMgb3Igb3ZlcmxheXMgY2xvc2luZylcbiAgICAvLyBpbnRvIGEgc2luZ2xlIHJlZnJlc2ggdG8gcHJldmVudCBsb25nIG1haW4tdGhyZWFkIHN0YWxscy5cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5kb21SZWZyZXNoU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnJlZnJlc2hJdGVtc0Zyb21Eb20oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzUmVsZXZhbnRNZW51SXRlbU11dGF0aW9uKHJlY29yZHM6IE11dGF0aW9uUmVjb3JkW10pOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XG4gICAgICBpZiAodGhpcy5ub2RlTGlzdENvbnRhaW5zTWVudUl0ZW0ocmVjb3JkLmFkZGVkTm9kZXMpIHx8IHRoaXMubm9kZUxpc3RDb250YWluc01lbnVJdGVtKHJlY29yZC5yZW1vdmVkTm9kZXMpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIG5vZGVMaXN0Q29udGFpbnNNZW51SXRlbShub2RlczogTm9kZUxpc3QpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgQXJyYXkuZnJvbShub2RlcykpIHtcbiAgICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlLnRhZ05hbWUgPT09ICdBWC1TSURFLU1FTlUtSVRFTScpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAobm9kZS5xdWVyeVNlbGVjdG9yPy4oJ2F4LXNpZGUtbWVudS1pdGVtJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRmlyc3RMZXZlbENsYXNzKCkge1xuICAgIGNvbnN0IGFsbENoaWxkcmVuID0gdGhpcy5faXRlbXMoKTtcbiAgICBhbGxDaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PlxuICAgICAgaXRlbS5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJy5heC1zaWRlLWl0ZW0nKT8uY2xhc3NMaXN0LnJlbW92ZSgnZmlyc3QtbGV2ZWwnKSxcbiAgICApO1xuXG4gICAgYWxsQ2hpbGRyZW5cbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnQgPSBpdGVtLmdldEhvc3RFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKGl0ZW1FbGVtZW50KSAmJiAhaXRlbUVsZW1lbnQucGFyZW50RWxlbWVudD8uY2xvc2VzdCgnLmF4LXNpZGUtY2hpbGRyZW4tY29udGVudCcpO1xuICAgICAgfSlcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcignLmF4LXNpZGUtaXRlbScpPy5jbGFzc0xpc3QuYWRkKCdmaXJzdC1sZXZlbCcpKTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtgYXgtbG9vay0ke3RoaXMubG9vaygpfWAsIGBheC1sb2NhdGlvbi0ke3RoaXMubG9jYXRpb24oKX1gLCBgYXgtbW9kZS0ke3RoaXMubW9kZSgpfWBdO1xuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1zaWRlLW1lbnUtaXRlbSxheC10aXRsZSxuZy1jb250YWluZXIsW25nVGVtcGxhdGVPdXRsZXRdXCI+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1tZW51LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvc2lkZS1tZW51L3NyYy9saWIvc2lkZS1tZW51LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBa0IsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPNUUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQU1VLFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUV4RCxTQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWE7aUJBQ3pCLElBQUksQ0FDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUNsQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztvQkFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQzlCO2lCQUNBLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7S0E0Rko7SUF6R0MsSUFBSSxDQWFEO0lBRUssY0FBYyxDQUFDLFlBQThCO1FBQ25ELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUM7UUFFN0UsSUFBSSxZQUFZLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sc0JBQXNCLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN6RSxJQUFJLGFBQWEsRUFBRSxJQUFJLEtBQUssc0JBQXNCLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUMzRCxPQUFPO1FBQ1QsQ0FBQztRQUNELHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixNQUFNLG1CQUFtQixHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzRixtQkFBbUIsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHNCQUFzQixDQUFDLEtBQXVCO1FBQ3BELE9BQU8sS0FBSzthQUNULEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDaEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxTQUFTLElBQUksSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDOUQsQ0FBQztZQUNELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUF1QjtRQUM5QyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNmLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNmLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQXNCLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sV0FBVyxDQUFDLElBQXFCO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQXdCO1FBQ25ELE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFxQixFQUFFLENBQUM7UUFDdkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFtQjtnQkFDL0IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixhQUFhLEVBQUUsS0FBSztnQkFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUM1QixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTthQUNwRCxDQUFDO1lBQ0YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFDdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUNuQixjQUFjLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdkMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLElBQUksQ0FBQyxFQUFFLHFCQUFxQixJQUFJLENBQUMsUUFBUSx3QkFBd0IsQ0FBQyxDQUFDO29CQUN6RyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0E5R1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsa0VBRjFCLENBQUMsY0FBYyxDQUFDOzsyRkFFaEIsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE91dGxpbmVDb250YWluZXJEaXJlY3RpdmUsIG91dGxpbmVJdGVtVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL291dGxpbmUnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhTaWRlTWVudUNvbXBvbmVudCwgQVhTaWRlTWVudUl0ZW0gfSBmcm9tICcuL3NpZGUtbWVudS5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXhPdXRsaW5lU2lkZU1lbnVdJyxcbiAgZXhwb3J0QXM6ICdheE91dGxpbmVTaWRlTWVudScsXG4gIHByb3ZpZGVyczogW0FYVW5zdWJzY3JpYmVyXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhPdXRsaW5lU2lkZU1lbnVEaXJlY3RpdmUge1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHVuc3Vic2NyaWJlciA9IGluamVjdChBWFVuc3Vic2NyaWJlcik7XG4gIHByaXZhdGUgc2lkZU1lbnUgPSBpbmplY3QoQVhTaWRlTWVudUNvbXBvbmVudCk7XG4gIHByaXZhdGUgY29udGFpbmVyID0gaW5qZWN0KEFYT3V0bGluZUNvbnRhaW5lckRpcmVjdGl2ZSk7XG5cbiAgI2FuciA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgdGhpcy5jb250YWluZXIub3V0bGluZUl0ZW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3ksXG4gICAgICAgIG1hcCgoaXRlbXMpID0+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.
|
|
3
|
+
"version": "20.7.24",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "20.7.
|
|
6
|
-
"@acorex/cdk": "20.7.
|
|
5
|
+
"@acorex/core": "20.7.24",
|
|
6
|
+
"@acorex/cdk": "20.7.24",
|
|
7
7
|
"polytype": ">=0.17.0",
|
|
8
8
|
"angular-imask": ">=7.6.1",
|
|
9
9
|
"gridstack": ">=12.0.0",
|
|
@@ -112,14 +112,14 @@
|
|
|
112
112
|
"types": "./check-box/index.d.ts",
|
|
113
113
|
"default": "./fesm2022/acorex-components-check-box.mjs"
|
|
114
114
|
},
|
|
115
|
-
"./chips": {
|
|
116
|
-
"types": "./chips/index.d.ts",
|
|
117
|
-
"default": "./fesm2022/acorex-components-chips.mjs"
|
|
118
|
-
},
|
|
119
115
|
"./circular-progress": {
|
|
120
116
|
"types": "./circular-progress/index.d.ts",
|
|
121
117
|
"default": "./fesm2022/acorex-components-circular-progress.mjs"
|
|
122
118
|
},
|
|
119
|
+
"./chips": {
|
|
120
|
+
"types": "./chips/index.d.ts",
|
|
121
|
+
"default": "./fesm2022/acorex-components-chips.mjs"
|
|
122
|
+
},
|
|
123
123
|
"./code-editor": {
|
|
124
124
|
"types": "./code-editor/index.d.ts",
|
|
125
125
|
"default": "./fesm2022/acorex-components-code-editor.mjs"
|
|
@@ -208,14 +208,14 @@
|
|
|
208
208
|
"types": "./editor/index.d.ts",
|
|
209
209
|
"default": "./fesm2022/acorex-components-editor.mjs"
|
|
210
210
|
},
|
|
211
|
-
"./file-explorer": {
|
|
212
|
-
"types": "./file-explorer/index.d.ts",
|
|
213
|
-
"default": "./fesm2022/acorex-components-file-explorer.mjs"
|
|
214
|
-
},
|
|
215
211
|
"./fab": {
|
|
216
212
|
"types": "./fab/index.d.ts",
|
|
217
213
|
"default": "./fesm2022/acorex-components-fab.mjs"
|
|
218
214
|
},
|
|
215
|
+
"./file-explorer": {
|
|
216
|
+
"types": "./file-explorer/index.d.ts",
|
|
217
|
+
"default": "./fesm2022/acorex-components-file-explorer.mjs"
|
|
218
|
+
},
|
|
219
219
|
"./flow-chart": {
|
|
220
220
|
"types": "./flow-chart/index.d.ts",
|
|
221
221
|
"default": "./fesm2022/acorex-components-flow-chart.mjs"
|
package/side-menu/index.d.ts
CHANGED
|
@@ -53,6 +53,7 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
53
53
|
private readonly destroyRef;
|
|
54
54
|
private readonly menuMode;
|
|
55
55
|
private childObserver;
|
|
56
|
+
private childRefreshScheduled;
|
|
56
57
|
private readonly childItems;
|
|
57
58
|
private readonly childrenSlot;
|
|
58
59
|
private readonly childrenContextMenu;
|
|
@@ -75,6 +76,9 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
75
76
|
/** Direct `ax-side-menu-item` children of `menuHost` (defaults to this item). */
|
|
76
77
|
private getDirectChildElements;
|
|
77
78
|
private reparentOrphanedChildren;
|
|
79
|
+
private scheduleChildRefresh;
|
|
80
|
+
private hasRelevantChildMutation;
|
|
81
|
+
private nodeListContainsMenuStructuralNode;
|
|
78
82
|
private getItemLabel;
|
|
79
83
|
private getItemIcon;
|
|
80
84
|
private getItemSuffix;
|
|
@@ -135,6 +139,8 @@ declare class AXSideMenuComponent extends NXComponent implements AXSideMenuBase
|
|
|
135
139
|
private platformId;
|
|
136
140
|
private destroyRef;
|
|
137
141
|
hostElement: HTMLElement;
|
|
142
|
+
private domRefreshScheduled;
|
|
143
|
+
private domRefreshObserver;
|
|
138
144
|
/**
|
|
139
145
|
* Walks the host DOM to discover every nested `ax-side-menu-item`, looks up
|
|
140
146
|
* the component instance through the `__axContext__` property that
|
|
@@ -145,6 +151,9 @@ declare class AXSideMenuComponent extends NXComponent implements AXSideMenuBase
|
|
|
145
151
|
* templates that add/remove items at runtime stay in sync.
|
|
146
152
|
*/
|
|
147
153
|
private refreshItemsFromDom;
|
|
154
|
+
private scheduleDomRefresh;
|
|
155
|
+
private hasRelevantMenuItemMutation;
|
|
156
|
+
private nodeListContainsMenuItem;
|
|
148
157
|
private addFirstLevelClass;
|
|
149
158
|
/** @ignore */
|
|
150
159
|
private get __hostClass();
|