@acorex/components 21.0.2-next.20 → 21.0.2-next.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -117,7 +117,7 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
117
117
|
return;
|
|
118
118
|
}
|
|
119
119
|
if (!compact) {
|
|
120
|
-
this.
|
|
120
|
+
this.moveChildrenToInlineSlot();
|
|
121
121
|
if (popover.isOpen) {
|
|
122
122
|
popover.close();
|
|
123
123
|
}
|
|
@@ -133,10 +133,12 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
133
133
|
}
|
|
134
134
|
this.menuMode.set(mode);
|
|
135
135
|
if (mode === 'full') {
|
|
136
|
-
this.
|
|
136
|
+
this.moveChildrenToInlineSlot();
|
|
137
137
|
this.childrenPopover()?.close();
|
|
138
138
|
}
|
|
139
139
|
else {
|
|
140
|
+
this.moveChildrenToInlineSlot();
|
|
141
|
+
this.childrenPopover()?.close();
|
|
140
142
|
this.isCollapsed.set(true);
|
|
141
143
|
}
|
|
142
144
|
}
|
|
@@ -173,8 +175,12 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
173
175
|
* the submenu cannot expand.
|
|
174
176
|
*/
|
|
175
177
|
getActiveChildrenSlot() {
|
|
176
|
-
if (this.isCompactMode()) {
|
|
177
|
-
|
|
178
|
+
if (this.isCompactMode() && this.isFirstLevel()) {
|
|
179
|
+
const popover = this.childrenPopover();
|
|
180
|
+
if (popover?.isOpen) {
|
|
181
|
+
return this.popoverSlot()?.nativeElement ?? this.childrenSlot()?.nativeElement;
|
|
182
|
+
}
|
|
183
|
+
return this.childrenSlot()?.nativeElement;
|
|
178
184
|
}
|
|
179
185
|
return this.childrenSlot()?.nativeElement;
|
|
180
186
|
}
|
|
@@ -213,7 +219,7 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
213
219
|
if (!popover || popover.disabled)
|
|
214
220
|
return;
|
|
215
221
|
if (this.isCollapsed()) {
|
|
216
|
-
|
|
222
|
+
this.closeCompactFlyout(popover);
|
|
217
223
|
}
|
|
218
224
|
else {
|
|
219
225
|
if (this.isFirstLevel()) {
|
|
@@ -223,6 +229,16 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
223
229
|
void popover.open().then(() => popover.bringToFront());
|
|
224
230
|
}
|
|
225
231
|
}
|
|
232
|
+
/** Restores submenu nodes to the inline slot before the overlay is disposed. */
|
|
233
|
+
closeCompactFlyout(popover) {
|
|
234
|
+
if (popover.isOpen) {
|
|
235
|
+
this.moveChildrenToInlineSlot();
|
|
236
|
+
popover.close();
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
this.moveChildrenToInlineSlot();
|
|
240
|
+
}
|
|
241
|
+
}
|
|
226
242
|
/** Closes other top-level compact flyouts when a rail item is opened. */
|
|
227
243
|
closeSiblingCompactPopovers() {
|
|
228
244
|
const menuEl = this.resolveMenuHostElement();
|
|
@@ -235,8 +251,8 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
235
251
|
}
|
|
236
252
|
instance.isCollapsed.set(true);
|
|
237
253
|
const siblingPopover = instance.childrenPopover();
|
|
238
|
-
if (siblingPopover
|
|
239
|
-
|
|
254
|
+
if (siblingPopover) {
|
|
255
|
+
instance.closeCompactFlyout(siblingPopover);
|
|
240
256
|
}
|
|
241
257
|
});
|
|
242
258
|
}
|
|
@@ -250,16 +266,48 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
250
266
|
if (!source || !target) {
|
|
251
267
|
return;
|
|
252
268
|
}
|
|
253
|
-
if (this.isCompactMode() && !toPopover) {
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
269
|
const from = toPopover ? source : target;
|
|
257
270
|
const to = toPopover ? target : source;
|
|
258
271
|
while (from.firstChild) {
|
|
259
272
|
to.appendChild(from.firstChild);
|
|
260
273
|
}
|
|
261
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* Pulls direct submenu nodes back into the inline slot from the popover host and
|
|
277
|
+
* from any open flyout overlay panel so they are not destroyed on overlay dispose.
|
|
278
|
+
*/
|
|
279
|
+
moveChildrenToInlineSlot() {
|
|
280
|
+
const slot = this.childrenSlot()?.nativeElement;
|
|
281
|
+
if (!slot || !isPlatformBrowser(this.platformId)) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const host = this.elem.nativeElement;
|
|
285
|
+
const sources = [];
|
|
286
|
+
const flyoutHost = this.popoverSlot()?.nativeElement;
|
|
287
|
+
if (flyoutHost) {
|
|
288
|
+
sources.push(flyoutHost);
|
|
289
|
+
}
|
|
290
|
+
this.document.querySelectorAll('.ax-side-menu-popover .ax-side-children-content').forEach((el) => {
|
|
291
|
+
if (el instanceof HTMLElement && el !== slot && !slot.contains(el)) {
|
|
292
|
+
sources.push(el);
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
for (const source of sources) {
|
|
296
|
+
const items = Array.from(source.querySelectorAll(':scope > ax-side-menu-item'));
|
|
297
|
+
for (const el of items) {
|
|
298
|
+
if (el === host) {
|
|
299
|
+
continue;
|
|
300
|
+
}
|
|
301
|
+
const nearestParent = el.parentElement?.closest('ax-side-menu-item');
|
|
302
|
+
if (nearestParent !== host) {
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
slot.appendChild(el);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
262
309
|
_handlePopoverClosed() {
|
|
310
|
+
this.moveChildrenToInlineSlot();
|
|
263
311
|
if (!this.isCollapsed()) {
|
|
264
312
|
this.isCollapsed.set(true);
|
|
265
313
|
}
|
|
@@ -321,7 +369,7 @@ class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
321
369
|
this.isCollapsed.set(false);
|
|
322
370
|
}
|
|
323
371
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
324
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.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: "childrenPopover", first: true, predicate: ["childrenPopover"], descendants: true, isSignal: true }, { propertyName: "menuItemTrigger", first: true, predicate: ["menuItemTrigger"], descendants: true, isSignal: true }, { propertyName: "childrenSlot", first: true, predicate: ["childrenSlot"], descendants: true, isSignal: true }, { propertyName: "popoverSlot", first: true, predicate: ["popoverSlot"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\">\n <ng-content select=\"ax-title\"></ng-content>\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()\"\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 <ax-popover\n #childrenPopover\n class=\"ax-side-menu-children-popover\"\n [target]=\"menuItemTrigger().nativeElement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'end-top'\"\n [offsetX]=\"8\"\n [disabled]=\"!isCompactMode() || disabled || isLoading()\"\n panelClass=\"ax-side-menu-popover\"\n (onClosed)=\"_handlePopoverClosed()\"\n >\n <div #popoverSlot class=\"ax-side-children-content\"></div>\n </ax-popover>\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: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
372
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.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: "childrenPopover", first: true, predicate: ["childrenPopover"], descendants: true, isSignal: true }, { propertyName: "menuItemTrigger", first: true, predicate: ["menuItemTrigger"], descendants: true, isSignal: true }, { propertyName: "childrenSlot", first: true, predicate: ["childrenSlot"], descendants: true, isSignal: true }, { propertyName: "popoverSlot", first: true, predicate: ["popoverSlot"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\">\n <ng-content select=\"ax-title\"></ng-content>\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 <ax-popover\n #childrenPopover\n class=\"ax-side-menu-children-popover\"\n [target]=\"menuItemTrigger().nativeElement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'end-top'\"\n [offsetX]=\"8\"\n [disabled]=\"!isCompactMode() || disabled || isLoading()\"\n panelClass=\"ax-side-menu-popover\"\n (onClosed)=\"_handlePopoverClosed()\"\n >\n <div #popoverSlot class=\"ax-side-children-content\"></div>\n </ax-popover>\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: AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
325
373
|
}
|
|
326
374
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuItemComponent, decorators: [{
|
|
327
375
|
type: Component,
|
|
@@ -335,7 +383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
335
383
|
AXTranslatorPipe,
|
|
336
384
|
AXTooltipModule,
|
|
337
385
|
AXPopoverComponent,
|
|
338
|
-
], providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], template: "<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\">\n <ng-content select=\"ax-title\"></ng-content>\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()\"\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 <ax-popover\n #childrenPopover\n class=\"ax-side-menu-children-popover\"\n [target]=\"menuItemTrigger().nativeElement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'end-top'\"\n [offsetX]=\"8\"\n [disabled]=\"!isCompactMode() || disabled || isLoading()\"\n panelClass=\"ax-side-menu-popover\"\n (onClosed)=\"_handlePopoverClosed()\"\n >\n <div #popoverSlot class=\"ax-side-children-content\"></div>\n </ax-popover>\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" }]
|
|
386
|
+
], providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }], template: "<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\">\n <ng-content select=\"ax-title\"></ng-content>\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 <ax-popover\n #childrenPopover\n class=\"ax-side-menu-children-popover\"\n [target]=\"menuItemTrigger().nativeElement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'end-top'\"\n [offsetX]=\"8\"\n [disabled]=\"!isCompactMode() || disabled || isLoading()\"\n panelClass=\"ax-side-menu-popover\"\n (onClosed)=\"_handlePopoverClosed()\"\n >\n <div #popoverSlot class=\"ax-side-children-content\"></div>\n </ax-popover>\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" }]
|
|
339
387
|
}], propDecorators: { text: [{ type: i0.Input, args: [{ isSignal: true, alias: "text", required: false }] }, { type: i0.Output, args: ["textChange"] }], active: [{ type: i0.Input, args: [{ isSignal: true, alias: "active", required: false }] }, { type: i0.Output, args: ["activeChange"] }], isLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoading", required: false }] }, { type: i0.Output, args: ["isLoadingChange"] }], isCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCollapsed", required: false }] }, { type: i0.Output, args: ["isCollapsedChange"] }], onClick: [{ type: i0.Output, args: ["onClick"] }], tooltipText: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipText", required: false }] }], childrenPopover: [{ type: i0.ViewChild, args: ['childrenPopover', { isSignal: true }] }], menuItemTrigger: [{ type: i0.ViewChild, args: ['menuItemTrigger', { isSignal: true }] }], toggleOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleOnClick", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], routerLinkActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActive", required: false }] }], routerLinkActiveOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLinkActiveOptions", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], childItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AXSideMenuItemComponent), { ...{ descendants: true }, isSignal: true }] }], childrenSlot: [{ type: i0.ViewChild, args: ['childrenSlot', { isSignal: true }] }], popoverSlot: [{ type: i0.ViewChild, args: ['popoverSlot', { isSignal: true }] }] } });
|
|
340
388
|
|
|
341
389
|
/**
|
|
@@ -436,7 +484,7 @@ class AXSideMenuComponent extends NXComponent {
|
|
|
436
484
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.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: [
|
|
437
485
|
{ provide: AXComponent, useExisting: AXSideMenuComponent },
|
|
438
486
|
{ provide: AXSideMenuBase, useExisting: AXSideMenuComponent },
|
|
439
|
-
], 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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-content:\"\";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer base{:root{--ax-comp-side-menu-indicator-size:2px}}@layer components{ax-side-menu{gap:calc(var(--spacing,.25rem) * 2);width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}ax-side-menu>ax-title{margin-block:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-title{margin-block:calc(var(--spacing,.25rem) * 2);margin-top:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-bottom:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-divider{margin-block:calc(var(--spacing,.25rem) * 1);background-color:rgba(var(--ax-sys-color-border-lightest-surface));width:100%;height:1px;display:block}ax-side-menu ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);font-size:inherit;--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);display:flex;position:relative}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}:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active):not(:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,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{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block}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 .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){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))!important}@supports (color:color-mix(in lab,red,red)){ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 30%,transparent)!important}}ax-side-menu ax-side-menu-item .ax-side-children{opacity:1;transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));grid-template-rows:1fr;padding-inline-start:calc(var(--spacing,.25rem) * 5);display:grid}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{opacity:0;grid-template-rows:0fr}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:var(--ax-comp-side-menu-children-gap,.5rem);padding-top:calc(var(--spacing,.25rem) * 2)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:calc(var(--spacing,.25rem) * 4)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400)}ax-side-menu ax-side-menu-item .ax-side-children-content{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}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:hover.ax-state-d isabled){background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-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-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-ripple{display:none}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-start:calc(var(--spacing,.25rem) * 0)}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-end:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item{position:relative}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item):before{background-color:rgba(var(--ax-sys-color-border-lightest-surface));height:100%;transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item:hover:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-disabled),:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled):before{height:100%;width:var(--ax-comp-side-menu-indicator-size);background-color:rgba(var(--ax-comp-side-menu-indicator-active-color,var(--ax-comp-side-menu-bg-color,var(--ax-sys-color-primary-surface))));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children{gap:calc(var(--spacing,.25rem) * 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))}@supports (color:color-mix(in lab,red,red)){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:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}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-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){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-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}ax-side-menu.ax-look-default{gap:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{border-radius:var(--ax-sys-border-radius);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2)}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))}@supports (color:color-mix(in lab,red,red)){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:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 50%,transparent)}}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 10%,transparent)}}ax-side-menu.ax-look-default .ax-side-children{gap:calc(var(--spacing,.25rem) * 1);padding-inline-start:calc(var(--spacing,.25rem) * 9);position:relative}ax-side-menu.ax-look-default .ax-side-children:before{background-color:rgba(var(--ax-sys-color-border-light-surface));--tw-content:\"\";content:var(--tw-content);width:1px;height:100%;margin-inline-start:calc(var(--spacing,.25rem) * 6);position:absolute}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}ax-side-menu.ax-mode-compact{width:fit-content!important}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){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-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){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:calc(var(--spacing,.25rem) * .5)!important}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{--tw-scale-x: -100% ;scale:var(--tw-scale-x) var(--tw-scale-y)}.ax-side-menu-popover{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none}.ax-side-menu-popover .ax-side-children-content{min-width:calc(var(--spacing,.25rem) * 40);gap:calc(var(--spacing,.25rem) * 1);border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex;overflow:visible}.ax-side-menu-popover ax-side-menu-item{width:100%;padding:calc(var(--spacing,.25rem) * 0);display:block;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-children.ax-empty,.ax-side-menu-popover ax-side-menu-item>ax-popover.ax-side-menu-children-popover>.ax-side-menu-popover-host{display:none}.ax-side-menu-popover ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);border-radius:var(--ax-sys-border-radius);width:100%;padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);white-space:nowrap;display:flex;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-start-side,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block;rotate:90deg}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:0deg}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-surface))}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\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 }); }
|
|
487
|
+
], 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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-content:\"\";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer base{:root{--ax-comp-side-menu-indicator-size:2px}}@layer components{ax-side-menu{gap:calc(var(--spacing,.25rem) * 2);width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}ax-side-menu>ax-title{margin-block:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-title{margin-block:calc(var(--spacing,.25rem) * 2);margin-top:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-bottom:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-divider{margin-block:calc(var(--spacing,.25rem) * 1);background-color:rgba(var(--ax-sys-color-border-lightest-surface));width:100%;height:1px;display:block}ax-side-menu ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);font-size:inherit;--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);display:flex;position:relative}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}:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active):not(:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,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{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block}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 .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){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))!important}@supports (color:color-mix(in lab,red,red)){ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 30%,transparent)!important}}ax-side-menu ax-side-menu-item .ax-side-children{opacity:1;transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));grid-template-rows:1fr;padding-inline-start:calc(var(--spacing,.25rem) * 5);display:grid}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{opacity:0;grid-template-rows:0fr}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:var(--ax-comp-side-menu-children-gap,.5rem);padding-top:calc(var(--spacing,.25rem) * 2)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:calc(var(--spacing,.25rem) * 4)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400)}ax-side-menu ax-side-menu-item .ax-side-children-content{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}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:hover.ax-state-d isabled){background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-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-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-ripple{display:none}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-start:calc(var(--spacing,.25rem) * 0)}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-end:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item{position:relative}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item):before{background-color:rgba(var(--ax-sys-color-border-lightest-surface));height:100%;transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item:hover:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-disabled),:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled):before{height:100%;width:var(--ax-comp-side-menu-indicator-size);background-color:rgba(var(--ax-comp-side-menu-indicator-active-color,var(--ax-comp-side-menu-bg-color,var(--ax-sys-color-primary-surface))));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children{gap:calc(var(--spacing,.25rem) * 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))}@supports (color:color-mix(in lab,red,red)){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:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}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-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){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-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}ax-side-menu.ax-look-default{gap:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{border-radius:var(--ax-sys-border-radius);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2)}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))}@supports (color:color-mix(in lab,red,red)){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:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 50%,transparent)}}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 10%,transparent)}}ax-side-menu.ax-look-default .ax-side-children{gap:calc(var(--spacing,.25rem) * 1);padding-inline-start:calc(var(--spacing,.25rem) * 9);position:relative}ax-side-menu.ax-look-default .ax-side-children:before{background-color:rgba(var(--ax-sys-color-border-light-surface));--tw-content:\"\";content:var(--tw-content);width:1px;height:100%;margin-inline-start:calc(var(--spacing,.25rem) * 6);position:absolute}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}ax-side-menu.ax-mode-compact{width:fit-content!important}ax-side-menu.ax-mode-compact>ax-side-menu-item>.ax-side-children,ax-side-menu.ax-mode-compact>ax-side-menu-item>ax-popover.ax-side-menu-children-popover .ax-side-children-content,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){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-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){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:calc(var(--spacing,.25rem) * .5)!important}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{--tw-scale-x: -100% ;scale:var(--tw-scale-x) var(--tw-scale-y)}.ax-side-menu-popover{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none}.ax-side-menu-popover .ax-side-children-content{min-width:calc(var(--spacing,.25rem) * 40);gap:calc(var(--spacing,.25rem) * 1);border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex;overflow:visible}.ax-side-menu-popover ax-side-menu-item{width:100%;padding:calc(var(--spacing,.25rem) * 0);display:block;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-children.ax-empty,.ax-side-menu-popover ax-side-menu-item>ax-popover.ax-side-menu-children-popover>.ax-side-menu-popover-host{display:none}.ax-side-menu-popover ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);border-radius:var(--ax-sys-border-radius);width:100%;padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);white-space:nowrap;display:flex;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-start-side,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block;rotate:90deg}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:0deg}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-surface))}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\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 }); }
|
|
440
488
|
}
|
|
441
489
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: AXSideMenuComponent, decorators: [{
|
|
442
490
|
type: Component,
|
|
@@ -450,7 +498,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
450
498
|
], providers: [
|
|
451
499
|
{ provide: AXComponent, useExisting: AXSideMenuComponent },
|
|
452
500
|
{ provide: AXSideMenuBase, useExisting: AXSideMenuComponent },
|
|
453
|
-
], 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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-content:\"\";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer base{:root{--ax-comp-side-menu-indicator-size:2px}}@layer components{ax-side-menu{gap:calc(var(--spacing,.25rem) * 2);width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}ax-side-menu>ax-title{margin-block:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-title{margin-block:calc(var(--spacing,.25rem) * 2);margin-top:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-bottom:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-divider{margin-block:calc(var(--spacing,.25rem) * 1);background-color:rgba(var(--ax-sys-color-border-lightest-surface));width:100%;height:1px;display:block}ax-side-menu ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);font-size:inherit;--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);display:flex;position:relative}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}:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active):not(:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,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{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block}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 .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){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))!important}@supports (color:color-mix(in lab,red,red)){ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 30%,transparent)!important}}ax-side-menu ax-side-menu-item .ax-side-children{opacity:1;transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));grid-template-rows:1fr;padding-inline-start:calc(var(--spacing,.25rem) * 5);display:grid}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{opacity:0;grid-template-rows:0fr}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:var(--ax-comp-side-menu-children-gap,.5rem);padding-top:calc(var(--spacing,.25rem) * 2)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:calc(var(--spacing,.25rem) * 4)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400)}ax-side-menu ax-side-menu-item .ax-side-children-content{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}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:hover.ax-state-d isabled){background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-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-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-ripple{display:none}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-start:calc(var(--spacing,.25rem) * 0)}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-end:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item{position:relative}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item):before{background-color:rgba(var(--ax-sys-color-border-lightest-surface));height:100%;transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item:hover:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-disabled),:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled):before{height:100%;width:var(--ax-comp-side-menu-indicator-size);background-color:rgba(var(--ax-comp-side-menu-indicator-active-color,var(--ax-comp-side-menu-bg-color,var(--ax-sys-color-primary-surface))));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children{gap:calc(var(--spacing,.25rem) * 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))}@supports (color:color-mix(in lab,red,red)){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:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}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-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){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-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}ax-side-menu.ax-look-default{gap:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{border-radius:var(--ax-sys-border-radius);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2)}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))}@supports (color:color-mix(in lab,red,red)){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:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 50%,transparent)}}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 10%,transparent)}}ax-side-menu.ax-look-default .ax-side-children{gap:calc(var(--spacing,.25rem) * 1);padding-inline-start:calc(var(--spacing,.25rem) * 9);position:relative}ax-side-menu.ax-look-default .ax-side-children:before{background-color:rgba(var(--ax-sys-color-border-light-surface));--tw-content:\"\";content:var(--tw-content);width:1px;height:100%;margin-inline-start:calc(var(--spacing,.25rem) * 6);position:absolute}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}ax-side-menu.ax-mode-compact{width:fit-content!important}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){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-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){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:calc(var(--spacing,.25rem) * .5)!important}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{--tw-scale-x: -100% ;scale:var(--tw-scale-x) var(--tw-scale-y)}.ax-side-menu-popover{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none}.ax-side-menu-popover .ax-side-children-content{min-width:calc(var(--spacing,.25rem) * 40);gap:calc(var(--spacing,.25rem) * 1);border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex;overflow:visible}.ax-side-menu-popover ax-side-menu-item{width:100%;padding:calc(var(--spacing,.25rem) * 0);display:block;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-children.ax-empty,.ax-side-menu-popover ax-side-menu-item>ax-popover.ax-side-menu-children-popover>.ax-side-menu-popover-host{display:none}.ax-side-menu-popover ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);border-radius:var(--ax-sys-border-radius);width:100%;padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);white-space:nowrap;display:flex;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-start-side,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block;rotate:90deg}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:0deg}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-surface))}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"] }]
|
|
501
|
+
], 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: ["@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-font-weight:initial;--tw-content:\"\";--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer base{:root{--ax-comp-side-menu-indicator-size:2px}}@layer components{ax-side-menu{gap:calc(var(--spacing,.25rem) * 2);width:100%;font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}ax-side-menu>ax-title{margin-block:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-title{margin-block:calc(var(--spacing,.25rem) * 2);margin-top:calc(var(--spacing,.25rem) * 2);padding-inline:calc(var(--spacing,.25rem) * 3);padding-bottom:calc(var(--spacing,.25rem) * 1);font-size:var(--text-xs,.75rem);line-height:var(--tw-leading,var(--text-xs--line-height,calc(1 / .75)));--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);text-transform:uppercase;opacity:.5;display:block}ax-side-menu ax-side-menu-item ax-divider{margin-block:calc(var(--spacing,.25rem) * 1);background-color:rgba(var(--ax-sys-color-border-lightest-surface));width:100%;height:1px;display:block}ax-side-menu ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2);font-size:inherit;--tw-font-weight:var(--font-weight-medium,500);font-weight:var(--font-weight-medium,500);display:flex;position:relative}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}:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,ax-side-menu ax-side-menu-item .ax-side-item.ax-state-active):not(:is(ax-side-menu ax-side-menu-item .ax-side-item:hover,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{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block}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 .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){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))!important}@supports (color:color-mix(in lab,red,red)){ax-side-menu ax-side-menu-item .ax-side-item .ax-ripple{background-color:color-mix(in oklab,rgba(var(--ax-sys-color-on-surface)) 30%,transparent)!important}}ax-side-menu ax-side-menu-item .ax-side-children{opacity:1;transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));grid-template-rows:1fr;padding-inline-start:calc(var(--spacing,.25rem) * 5);display:grid}ax-side-menu ax-side-menu-item .ax-side-children.ax-collapsed{opacity:0;grid-template-rows:0fr}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:var(--ax-comp-side-menu-children-gap,.5rem);padding-top:calc(var(--spacing,.25rem) * 2)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item:first-child ax-title{margin-top:calc(var(--spacing,.25rem) * 4)}ax-side-menu ax-side-menu-item .ax-side-children ax-side-menu-item .ax-side-item{--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400)}ax-side-menu ax-side-menu-item .ax-side-children-content{gap:calc(var(--spacing,.25rem) * 2);flex-direction:column;display:flex}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:hover.ax-state-d isabled){background-color:rgba(var(--ax-sys-color-surface));color:rgba(var(--ax-sys-color-on-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-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color{gap:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-ripple{display:none}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-start .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-start:calc(var(--spacing,.25rem) * 0)}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color).ax-location-end .ax-side-item):before{width:calc(var(--ax-comp-side-menu-indicator-size) / 2);inset-inline-end:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item{position:relative}:is(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) ax-side-menu-item,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children,:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item):before{background-color:rgba(var(--ax-sys-color-border-lightest-surface));height:100%;transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item:hover:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-disabled),:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-surface))}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active:not(:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-item.ax-state-active.ax-state-disabled):before{height:100%;width:var(--ax-comp-side-menu-indicator-size);background-color:rgba(var(--ax-comp-side-menu-indicator-active-color,var(--ax-comp-side-menu-bg-color,var(--ax-sys-color-primary-surface))));--tw-content:\"\";content:var(--tw-content);position:absolute}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}:is(ax-side-menu.ax-look-with-line,ax-side-menu.ax-look-with-line-color) .ax-side-children{gap:calc(var(--spacing,.25rem) * 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))}@supports (color:color-mix(in lab,red,red)){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:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 5%,transparent)}}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-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface))}@supports (color:color-mix(in lab,red,red)){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-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-primary-surface)) 10%,transparent)}}ax-side-menu.ax-look-default{gap:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default ax-icon{opacity:.6}ax-side-menu.ax-look-default .ax-side-item{border-radius:var(--ax-sys-border-radius);padding-inline:calc(var(--spacing,.25rem) * 4);padding-block:calc(var(--spacing,.25rem) * 2)}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))}@supports (color:color-mix(in lab,red,red)){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:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 50%,transparent)}}ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:rgba(var(--ax-sys-color-surface))}@supports (color:color-mix(in lab,red,red)){ax-side-menu.ax-look-default .ax-side-item.ax-state-active:not(ax-side-menu.ax-look-default .ax-side-item.ax-state-active.ax-state-disabled){background-color:color-mix(in oklab,rgba(var(--ax-sys-color-surface)) 10%,transparent)}}ax-side-menu.ax-look-default .ax-side-children{gap:calc(var(--spacing,.25rem) * 1);padding-inline-start:calc(var(--spacing,.25rem) * 9);position:relative}ax-side-menu.ax-look-default .ax-side-children:before{background-color:rgba(var(--ax-sys-color-border-light-surface));--tw-content:\"\";content:var(--tw-content);width:1px;height:100%;margin-inline-start:calc(var(--spacing,.25rem) * 6);position:absolute}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item .ax-side-item{padding-inline:calc(var(--spacing,.25rem) * 2);padding-block:calc(var(--spacing,.25rem) * 1)}ax-side-menu.ax-look-default .ax-side-children ax-side-menu-item:first-child{padding-top:calc(var(--spacing,.25rem) * 0)}ax-side-menu.ax-mode-compact{width:fit-content!important}ax-side-menu.ax-mode-compact>ax-side-menu-item>.ax-side-children,ax-side-menu.ax-mode-compact>ax-side-menu-item>ax-popover.ax-side-menu-children-popover .ax-side-children-content,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){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-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){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}ax-side-menu.ax-mode-compact ax-side-menu-item{position:relative;padding:calc(var(--spacing,.25rem) * .5)!important}[dir=rtl] ax-side-menu ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon:before{--tw-scale-x: -100% ;scale:var(--tw-scale-x) var(--tw-scale-y)}.ax-side-menu-popover{font-size:var(--text-sm,.875rem);line-height:var(--tw-leading,var(--text-sm--line-height,calc(1.25 / .875)));color:inherit;-webkit-user-select:none;user-select:none}.ax-side-menu-popover .ax-side-children-content{min-width:calc(var(--spacing,.25rem) * 40);gap:calc(var(--spacing,.25rem) * 1);border-radius:var(--ax-sys-border-radius);background-color:rgba(var(--ax-sys-color-surface));padding:calc(var(--spacing,.25rem) * 1);flex-direction:column;display:flex;overflow:visible}.ax-side-menu-popover ax-side-menu-item{width:100%;padding:calc(var(--spacing,.25rem) * 0);display:block;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-children.ax-empty,.ax-side-menu-popover ax-side-menu-item>ax-popover.ax-side-menu-children-popover>.ax-side-menu-popover-host{display:none}.ax-side-menu-popover ax-side-menu-item .ax-side-item{cursor:pointer;justify-content:space-between;align-items:center;gap:calc(var(--spacing,.25rem) * 3);border-radius:var(--ax-sys-border-radius);width:100%;padding-inline:calc(var(--spacing,.25rem) * 3);padding-block:calc(var(--spacing,.25rem) * 2);--tw-font-weight:var(--font-weight-normal,400);font-weight:var(--font-weight-normal,400);white-space:nowrap;display:flex;position:relative}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-start-side,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side{align-items:center;gap:calc(var(--spacing,.25rem) * 2);display:flex}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon{transition-property:rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function,cubic-bezier(.4, 0, .2, 1)));transition-duration:var(--tw-duration,var(--default-transition-duration,.15s));display:block;rotate:90deg}.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand,.ax-side-menu-popover ax-side-menu-item .ax-side-item .ax-end-side .arrow-icon.arrow-icon-expand:where(:dir(rtl),[dir=rtl],[dir=rtl] *){rotate:0deg}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item:hover:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-darker-surface));color:rgba(var(--ax-sys-color-on-surface))}.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-active:not(.ax-side-menu-popover .ax-side-menu-popover-host.ax-look-pills ax-side-menu-item .ax-side-item.ax-state-disabled){background-color:rgba(var(--ax-sys-color-primary-surface));color:rgba(var(--ax-sys-color-on-primary-surface))}}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-content{syntax:\"*\";inherits:false;initial-value:\"\"}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}\n/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */\n"] }]
|
|
454
502
|
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }, { type: i0.Output, args: ["itemsChange"] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], location: [{ type: i0.Input, args: [{ isSignal: true, alias: "location", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], __hostClass: [{
|
|
455
503
|
type: HostBinding,
|
|
456
504
|
args: ['class']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-side-menu.mjs","sources":["../../../../packages/components/side-menu/src/lib/side-menu-base.ts","../../../../packages/components/side-menu/src/lib/side-menu-item/side-menu-item.component.ts","../../../../packages/components/side-menu/src/lib/side-menu-item/side-menu-item.component.html","../../../../packages/components/side-menu/src/lib/side-menu.component.ts","../../../../packages/components/side-menu/src/lib/side-menu.component.html","../../../../packages/components/side-menu/src/lib/side-menu.directive.ts","../../../../packages/components/side-menu/src/lib/side-menu.module.ts","../../../../packages/components/side-menu/src/acorex-components-side-menu.ts"],"sourcesContent":["import { Signal } from '@angular/core';\n\n/**\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 abstract class AXSideMenuBase {\n abstract readonly mode: Signal<'full' | 'compact'>;\n}\n","import { AXClickEvent, AXComponent, AXRippleDirective, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, DOCUMENT, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n PLATFORM_ID,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, RouterLink, RouterLinkActive, UrlTree } from '@angular/router';\nexport class AXSideMenuItemClickEvent extends AXClickEvent {\n handled = false;\n}\n\n@Component({\n selector: 'ax-side-menu-item',\n inputs: ['disabled'],\n templateUrl: './side-menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXRippleDirective,\n RouterLink,\n RouterLinkActive,\n NgTemplateOutlet,\n AXLoadingComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n AXPopoverComponent,\n ],\n providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }],\n})\nexport class AXSideMenuItemComponent extends MXInteractiveComponent {\n text = model('');\n active = model(false);\n isLoading = model(false);\n isCollapsed = model(true);\n onClick = output<AXSideMenuItemClickEvent>();\n tooltipStatus = signal(false);\n tooltipText = input('');\n\n private elem = inject(ElementRef);\n private document = inject(DOCUMENT);\n private platformId = inject(PLATFORM_ID);\n private destroyRef = inject(DestroyRef);\n private childObserver: MutationObserver | null = null;\n private childrenPopover = viewChild<AXPopoverComponent>('childrenPopover');\n protected menuItemTrigger = viewChild.required<ElementRef<HTMLElement>>('menuItemTrigger');\n\n /** Synced from the parent `ax-side-menu` (source of truth for full vs compact). */\n private menuMode = signal<'full' | 'compact'>('full');\n\n /** True when this item should use compact flyout popovers (rail or inside a flyout). */\n protected isCompactMode = computed(() => {\n if (this.menuMode() === 'compact') {\n return true;\n }\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n const host = this.elem.nativeElement as HTMLElement;\n if (host.closest('.ax-side-menu-popover')) {\n return !!this.document.querySelector('ax-side-menu.ax-mode-compact');\n }\n return !!host.closest('ax-side-menu.ax-mode-compact');\n });\n\n /** Called by `ax-side-menu` so items always know the current display mode. */\n syncMenuMode(mode: 'full' | 'compact') {\n if (this.menuMode() === mode) {\n return;\n }\n this.menuMode.set(mode);\n if (mode === 'full') {\n this.relocateChildren(false);\n this.childrenPopover()?.close();\n } else {\n this.isCollapsed.set(true);\n }\n }\n\n /** Top-level rail button in compact mode (icon only, opens flyout). */\n protected isFirstLevel = computed(() => {\n if (!this.isCompactMode()) {\n return false;\n }\n const host = this.elem.nativeElement as HTMLElement;\n if (host.closest('.ax-side-menu-popover')) {\n return false;\n }\n return !host.parentElement?.closest('.ax-side-children-content');\n });\n\n readonly toggleOnClick = input(true);\n\n readonly href = input<string | null>();\n\n readonly routerLink = input<string | any[] | UrlTree | null>();\n readonly routerLinkActive = input<string | string[]>('ax-state-active');\n readonly routerLinkActiveOptions = input<{ exact: boolean } | IsActiveMatchOptions>({ exact: false });\n\n readonly target = input<'_blank' | '_self' | '_parent' | '_top'>('_self');\n\n private childItems = contentChildren(AXSideMenuItemComponent, { descendants: true });\n private childrenSlot = viewChild<ElementRef<HTMLElement>>('childrenSlot');\n private popoverSlot = viewChild<ElementRef<HTMLElement>>('popoverSlot');\n\n protected hasChild = signal(false);\n\n #childCheckEffect = effect(() => {\n if (this.childItems().length) this.checkForChildren();\n });\n\n /**\n * Run after view init so any nested items projected through `ngTemplateOutlet`\n * (which `contentChildren` does not see) are already in the DOM. A\n * `MutationObserver` on the whole host keeps `hasChild` in sync as recursive\n * content is added/removed at runtime and also relocates any projected\n * `<ax-side-menu-item>` that ended up outside `.ax-side-children-content`\n * (this happens when `<ng-container [ngTemplateOutlet]>` is nested inside\n * `@if`/`@for` and Angular falls back to the catch-all `<ng-content>`).\n */\n #initChildren = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) return;\n this.reparentOrphanedChildren();\n this.checkForChildren();\n this.childObserver = new MutationObserver(() => {\n this.reparentOrphanedChildren();\n this.checkForChildren();\n });\n this.childObserver.observe(this.elem.nativeElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => this.childObserver?.disconnect());\n });\n\n /**\n * Walks up the DOM to find the enclosing `<ax-side-menu>` host element and\n * reads its component instance from `__axContext__`. Needed because items\n * rendered inside `ngTemplateOutlet` embedded views cannot inject the\n * `AXSideMenuBase` token (DI scope is the template's declaration site).\n */\n private resolveMenuHostElement(): HTMLElement | null {\n const host = this.elem.nativeElement as HTMLElement;\n return (\n host.closest('ax-side-menu') ??\n (host.closest('.ax-side-menu-popover')\n ? (this.document.querySelector('ax-side-menu.ax-mode-compact') as HTMLElement | null)\n : null)\n );\n }\n\n /**\n * Moves any `<ax-side-menu-item>` that belongs to this item (its nearest\n * `<ax-side-menu-item>` ancestor in the projected DOM is this host) but is\n * NOT inside our own `.ax-side-children-content` container. Without this\n * step a content-projection edge case in Angular 21+ leaves recursive items\n * stranded inside `.ax-inside-text` (the catch-all `<ng-content>` slot) and\n * the submenu cannot expand.\n */\n private getActiveChildrenSlot(): HTMLElement | undefined {\n if (this.isCompactMode()) {\n return this.popoverSlot()?.nativeElement ?? this.childrenSlot()?.nativeElement;\n }\n return this.childrenSlot()?.nativeElement;\n }\n\n private reparentOrphanedChildren() {\n const host = this.elem.nativeElement as HTMLElement;\n const container = this.getActiveChildrenSlot();\n if (!container) return;\n\n // Only look at this host's *direct* descendants in projection terms:\n // recursive ax-side-menu-items whose nearest ax-side-menu-item ancestor\n // is `host`. Iterate over a static array because we mutate the DOM.\n const items = Array.from(host.querySelectorAll('ax-side-menu-item'));\n for (const el of items) {\n if (el === host) continue;\n if (container.contains(el)) continue;\n const nearestParent = el.parentElement?.closest('ax-side-menu-item');\n if (nearestParent !== host) continue;\n try {\n container.appendChild(el);\n } catch {\n // Guard against HierarchyRequestError (shouldn't happen since we\n // resolve the container via the view-child, not querySelector).\n }\n }\n }\n\n // In compact mode submenus open in an overlay popover; keep collapse state in sync.\n #popoverSync = effect(() => {\n const compact = this.isCompactMode();\n this.isCollapsed();\n this.hasChild();\n\n const popover = this.childrenPopover();\n if (!popover || !isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (!compact) {\n this.relocateChildren(false);\n if (popover.isOpen) {\n popover.close();\n }\n return;\n }\n\n this.syncCompactPopover();\n });\n\n private syncCompactPopover() {\n if (!isPlatformBrowser(this.platformId) || !this.isCompactMode() || !this.hasChild()) return;\n\n const popover = this.childrenPopover();\n if (!popover || popover.disabled) return;\n\n if (this.isCollapsed()) {\n popover.close();\n } else {\n if (this.isFirstLevel()) {\n this.closeSiblingCompactPopovers();\n }\n this.relocateChildren(true);\n void popover.open().then(() => popover.bringToFront());\n }\n }\n\n /** Closes other top-level compact flyouts when a rail item is opened. */\n private closeSiblingCompactPopovers() {\n const menuEl = this.resolveMenuHostElement();\n if (!menuEl) return;\n menuEl.querySelectorAll(':scope > ax-side-menu-item').forEach((el) => {\n const instance = (el as unknown as { __axContext__?: unknown }).__axContext__;\n if (!(instance instanceof AXSideMenuItemComponent) || instance === this) {\n return;\n }\n instance.isCollapsed.set(true);\n const siblingPopover = instance.childrenPopover();\n if (siblingPopover?.isOpen) {\n siblingPopover.close();\n }\n });\n }\n\n /**\n * Moves projected submenu nodes into the popover panel when opening in compact mode.\n * They are not moved back to the inline slot on close (that caused a full-mode flash below the rail).\n */\n private relocateChildren(toPopover: boolean) {\n const source = this.childrenSlot()?.nativeElement;\n const target = this.popoverSlot()?.nativeElement;\n if (!source || !target) {\n return;\n }\n if (this.isCompactMode() && !toPopover) {\n return;\n }\n const from = toPopover ? source : target;\n const to = toPopover ? target : source;\n while (from.firstChild) {\n to.appendChild(from.firstChild);\n }\n }\n\n protected _handlePopoverClosed() {\n if (!this.isCollapsed()) {\n this.isCollapsed.set(true);\n }\n }\n\n private checkForChildren() {\n const host = this.elem.nativeElement as HTMLElement;\n const inlineSlot = this.childrenSlot()?.nativeElement ?? null;\n const flyoutSlot = this.popoverSlot()?.nativeElement ?? null;\n const inlineCount = inlineSlot?.querySelectorAll('ax-side-menu-item').length ?? 0;\n const flyoutCount = flyoutSlot?.querySelectorAll('ax-side-menu-item').length ?? 0;\n const contentEl = inlineSlot ?? flyoutSlot;\n this.hasChild.set(this.hasNestedMenuItems(host, contentEl, inlineCount + flyoutCount));\n }\n\n private hasNestedMenuItems(host: HTMLElement, contentEl: Element | null, domChildCount: number): boolean {\n const inlineSlot = this.childrenSlot()?.nativeElement ?? null;\n const flyoutSlot = this.popoverSlot()?.nativeElement ?? null;\n let strandedCount = 0;\n const all = host.querySelectorAll('ax-side-menu-item');\n all.forEach((el) => {\n if (el === host) return;\n if (inlineSlot?.contains(el) || flyoutSlot?.contains(el)) return;\n const nearestParent = el.parentElement?.closest('ax-side-menu-item');\n if (nearestParent === host) strandedCount++;\n });\n return this.childItems().length > 0 || domChildCount > 0 || strandedCount > 0;\n }\n\n protected _handleClickEvent(e: MouseEvent) {\n if (this.disabled || this.isLoading()) 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 }\n e.stopPropagation();\n }\n\n toggle() {\n if (this.isCompactMode()) {\n if (!this.hasChild()) return;\n this.isCollapsed.update((prev) => !prev);\n this.syncCompactPopover();\n return;\n }\n this.isCollapsed.update((prev) => !prev);\n }\n\n open() {\n this.isCollapsed.set(true);\n }\n\n close() {\n this.isCollapsed.set(false);\n }\n}\n","<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\">\n <ng-content select=\"ax-title\"></ng-content>\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()\"\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 <ax-popover\n #childrenPopover\n class=\"ax-side-menu-children-popover\"\n [target]=\"menuItemTrigger().nativeElement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'end-top'\"\n [offsetX]=\"8\"\n [disabled]=\"!isCompactMode() || disabled || isLoading()\"\n panelClass=\"ax-side-menu-popover\"\n (onClosed)=\"_handlePopoverClosed()\"\n >\n <div #popoverSlot class=\"ax-side-children-content\"></div>\n </ax-popover>\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","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n model,\n PLATFORM_ID,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, RouterLink, RouterLinkActive, UrlTree } from '@angular/router';\nimport { AXSideMenuBase } from './side-menu-base';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\n\nexport type AXSideMenuLook = 'pills' | 'with-line' | 'with-line-color' | 'default';\nexport type AXSideMenuLocation = 'start' | 'end';\nexport type AXSideMenuItem = {\n title?: string;\n routerLink?: string | any[] | UrlTree;\n routerLinkActive?: string | string[];\n routerLinkActiveOptions?: { exact: boolean } | IsActiveMatchOptions;\n href?: string;\n target?: '_blank' | '_self' | '_parent' | '_top';\n text: string;\n active?: boolean;\n disabled?: boolean;\n isLoading?: boolean;\n isCollapsed?: boolean;\n icon?: string;\n data?: unknown;\n suffixText?: string;\n toggleOnClick?: boolean;\n items?: AXSideMenuItem[];\n};\n\n/**\n * @category\n * A component for displaying a side menu with customizable content.\n */\n@Component({\n selector: 'ax-side-menu',\n templateUrl: './side-menu.component.html',\n styleUrls: ['./side-menu.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXSideMenuItemComponent,\n RouterLink,\n RouterLinkActive,\n AXDecoratorIconComponent,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXSideMenuComponent },\n { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },\n ],\n})\nexport class AXSideMenuComponent extends NXComponent implements AXSideMenuBase {\n items = model<AXSideMenuItem[]>();\n readonly look = input<AXSideMenuLook>('pills');\n readonly location = input<AXSideMenuLocation>('start');\n readonly mode = input<'full' | 'compact'>('full');\n private elementRef = inject<ElementRef<HTMLElement>>(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 private _items = signal<AXSideMenuItemComponent[]>([]);\n /** Read-only signal exposing every discovered `ax-side-menu-item` instance. */\n readonly children = this._items.asReadonly();\n private platformId = inject(PLATFORM_ID);\n private destroyRef = inject(DestroyRef);\n hostElement = this.elementRef.nativeElement;\n\n #init = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) 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\n #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 });\n\n /** Push full/compact mode to every menu item whenever mode changes. */\n #syncItemMode = effect(() => {\n const mode = this.mode();\n this._items().forEach((item) => item.syncMenuMode(mode));\n });\n\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 private refreshItemsFromDom() {\n const host = this.elementRef.nativeElement;\n const elements = host.querySelectorAll('ax-side-menu-item');\n const items: AXSideMenuItemComponent[] = [];\n elements.forEach((el) => {\n const instance = (el as unknown as { __axContext__?: unknown }).__axContext__;\n if (instance instanceof AXSideMenuItemComponent) {\n items.push(instance);\n }\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\n this.addFirstLevelClass();\n }\n\n private addFirstLevelClass() {\n const allChildren = this._items();\n allChildren.forEach((item) =>\n item.getHostElement().querySelector('.ax-side-item')?.classList.remove('first-level'),\n );\n\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\n /** @ignore */\n @HostBinding('class')\n private get __hostClass(): string[] {\n return [`ax-look-${this.look()}`, `ax-location-${this.location()}`, `ax-mode-${this.mode()}`];\n }\n}\n","<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","import { AXOutlineContainerDirective, outlineItemType } 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, AXSideMenuItem } from './side-menu.component';\n\n@Directive({\n selector: '[axOutlineSideMenu]',\n exportAs: 'axOutlineSideMenu',\n providers: [AXUnsubscriber],\n})\nexport class AXOutlineSideMenuDirective {\n private router = inject(Router);\n private unsubscriber = inject(AXUnsubscriber);\n private sideMenu = inject(AXSideMenuComponent);\n private container = inject(AXOutlineContainerDirective);\n\n #anr = afterNextRender(() => {\n this.container.outlineItems$\n .pipe(\n this.unsubscriber.takeUntilDestroy,\n map((items) => {\n if (!items || items.length === 0) return [];\n return this.buildNestedMenuItems(items);\n }),\n distinctUntilChanged(isEqual),\n )\n .subscribe((menuItems) => {\n this.updateSideMenu(menuItems);\n });\n });\n\n private updateSideMenu(newMenuItems: AXSideMenuItem[]): void {\n const currentMenuItems = this.sideMenu.items();\n const newSignature = this.getStructuralSignature(newMenuItems);\n const currentSignature = this.getStructuralSignature(currentMenuItems || []);\n\n if (newSignature !== currentSignature) {\n this.sideMenu.items.set(newMenuItems);\n return;\n }\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 /**\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 private getStructuralSignature(items: AXSideMenuItem[]): string {\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\n private flattenMenuItems(items: AXSideMenuItem[]): AXSideMenuItem[] {\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 }, [] as AXSideMenuItem[]);\n }\n\n private textReplace(item: outlineItemType): string {\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\n private buildNestedMenuItems(items: outlineItemType[]): AXSideMenuItem[] {\n const menuItemsMap = new Map<string, AXSideMenuItem>();\n const rootItems: AXSideMenuItem[] = [];\n items.forEach((item) => {\n const menuItem: AXSideMenuItem = {\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) return;\n if (item.parentId) {\n const parentMenuItem = menuItemsMap.get(item.parentId);\n if (parentMenuItem) {\n parentMenuItem.items?.push(menuItem);\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 } else {\n rootItems.push(menuItem);\n }\n });\n return rootItems;\n }\n}\n","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';\n\nconst COMPONENT = [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXRippleDirective,\n AXLoadingModule,\n AXTranslationModule,\n RouterLink,\n RouterLinkActive,\n AXDecoratorModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXSideMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-side-menu.mjs","sources":["../../../../packages/components/side-menu/src/lib/side-menu-base.ts","../../../../packages/components/side-menu/src/lib/side-menu-item/side-menu-item.component.ts","../../../../packages/components/side-menu/src/lib/side-menu-item/side-menu-item.component.html","../../../../packages/components/side-menu/src/lib/side-menu.component.ts","../../../../packages/components/side-menu/src/lib/side-menu.component.html","../../../../packages/components/side-menu/src/lib/side-menu.directive.ts","../../../../packages/components/side-menu/src/lib/side-menu.module.ts","../../../../packages/components/side-menu/src/acorex-components-side-menu.ts"],"sourcesContent":["import { Signal } from '@angular/core';\n\n/**\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 abstract class AXSideMenuBase {\n abstract readonly mode: Signal<'full' | 'compact'>;\n}\n","import { AXClickEvent, AXComponent, AXRippleDirective, MXInteractiveComponent } from '@acorex/cdk/common';\nimport { AXLoadingComponent } from '@acorex/components/loading';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, DOCUMENT, isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n DestroyRef,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n PLATFORM_ID,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, RouterLink, RouterLinkActive, UrlTree } from '@angular/router';\nexport class AXSideMenuItemClickEvent extends AXClickEvent {\n handled = false;\n}\n\n@Component({\n selector: 'ax-side-menu-item',\n inputs: ['disabled'],\n templateUrl: './side-menu-item.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AXRippleDirective,\n RouterLink,\n RouterLinkActive,\n NgTemplateOutlet,\n AXLoadingComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n AXPopoverComponent,\n ],\n providers: [{ provide: AXComponent, useExisting: AXSideMenuItemComponent }],\n})\nexport class AXSideMenuItemComponent extends MXInteractiveComponent {\n text = model('');\n active = model(false);\n isLoading = model(false);\n isCollapsed = model(true);\n onClick = output<AXSideMenuItemClickEvent>();\n tooltipStatus = signal(false);\n tooltipText = input('');\n\n private elem = inject(ElementRef);\n private document = inject(DOCUMENT);\n private platformId = inject(PLATFORM_ID);\n private destroyRef = inject(DestroyRef);\n private childObserver: MutationObserver | null = null;\n private childrenPopover = viewChild<AXPopoverComponent>('childrenPopover');\n protected menuItemTrigger = viewChild.required<ElementRef<HTMLElement>>('menuItemTrigger');\n\n /** Synced from the parent `ax-side-menu` (source of truth for full vs compact). */\n private menuMode = signal<'full' | 'compact'>('full');\n\n /** True when this item should use compact flyout popovers (rail or inside a flyout). */\n protected isCompactMode = computed(() => {\n if (this.menuMode() === 'compact') {\n return true;\n }\n if (!isPlatformBrowser(this.platformId)) {\n return false;\n }\n const host = this.elem.nativeElement as HTMLElement;\n if (host.closest('.ax-side-menu-popover')) {\n return !!this.document.querySelector('ax-side-menu.ax-mode-compact');\n }\n return !!host.closest('ax-side-menu.ax-mode-compact');\n });\n\n /** Called by `ax-side-menu` so items always know the current display mode. */\n syncMenuMode(mode: 'full' | 'compact') {\n if (this.menuMode() === mode) {\n return;\n }\n this.menuMode.set(mode);\n if (mode === 'full') {\n this.moveChildrenToInlineSlot();\n this.childrenPopover()?.close();\n } else {\n this.moveChildrenToInlineSlot();\n this.childrenPopover()?.close();\n this.isCollapsed.set(true);\n }\n }\n\n /** Top-level rail button in compact mode (icon only, opens flyout). */\n protected isFirstLevel = computed(() => {\n if (!this.isCompactMode()) {\n return false;\n }\n const host = this.elem.nativeElement as HTMLElement;\n if (host.closest('.ax-side-menu-popover')) {\n return false;\n }\n return !host.parentElement?.closest('.ax-side-children-content');\n });\n\n readonly toggleOnClick = input(true);\n\n readonly href = input<string | null>();\n\n readonly routerLink = input<string | any[] | UrlTree | null>();\n readonly routerLinkActive = input<string | string[]>('ax-state-active');\n readonly routerLinkActiveOptions = input<{ exact: boolean } | IsActiveMatchOptions>({ exact: false });\n\n readonly target = input<'_blank' | '_self' | '_parent' | '_top'>('_self');\n\n private childItems = contentChildren(AXSideMenuItemComponent, { descendants: true });\n private childrenSlot = viewChild<ElementRef<HTMLElement>>('childrenSlot');\n private popoverSlot = viewChild<ElementRef<HTMLElement>>('popoverSlot');\n\n protected hasChild = signal(false);\n\n #childCheckEffect = effect(() => {\n if (this.childItems().length) this.checkForChildren();\n });\n\n /**\n * Run after view init so any nested items projected through `ngTemplateOutlet`\n * (which `contentChildren` does not see) are already in the DOM. A\n * `MutationObserver` on the whole host keeps `hasChild` in sync as recursive\n * content is added/removed at runtime and also relocates any projected\n * `<ax-side-menu-item>` that ended up outside `.ax-side-children-content`\n * (this happens when `<ng-container [ngTemplateOutlet]>` is nested inside\n * `@if`/`@for` and Angular falls back to the catch-all `<ng-content>`).\n */\n #initChildren = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) return;\n this.reparentOrphanedChildren();\n this.checkForChildren();\n this.childObserver = new MutationObserver(() => {\n this.reparentOrphanedChildren();\n this.checkForChildren();\n });\n this.childObserver.observe(this.elem.nativeElement, { childList: true, subtree: true });\n this.destroyRef.onDestroy(() => this.childObserver?.disconnect());\n });\n\n /**\n * Walks up the DOM to find the enclosing `<ax-side-menu>` host element and\n * reads its component instance from `__axContext__`. Needed because items\n * rendered inside `ngTemplateOutlet` embedded views cannot inject the\n * `AXSideMenuBase` token (DI scope is the template's declaration site).\n */\n private resolveMenuHostElement(): HTMLElement | null {\n const host = this.elem.nativeElement as HTMLElement;\n return (\n host.closest('ax-side-menu') ??\n (host.closest('.ax-side-menu-popover')\n ? (this.document.querySelector('ax-side-menu.ax-mode-compact') as HTMLElement | null)\n : null)\n );\n }\n\n /**\n * Moves any `<ax-side-menu-item>` that belongs to this item (its nearest\n * `<ax-side-menu-item>` ancestor in the projected DOM is this host) but is\n * NOT inside our own `.ax-side-children-content` container. Without this\n * step a content-projection edge case in Angular 21+ leaves recursive items\n * stranded inside `.ax-inside-text` (the catch-all `<ng-content>` slot) and\n * the submenu cannot expand.\n */\n private getActiveChildrenSlot(): HTMLElement | undefined {\n if (this.isCompactMode() && this.isFirstLevel()) {\n const popover = this.childrenPopover();\n if (popover?.isOpen) {\n return this.popoverSlot()?.nativeElement ?? this.childrenSlot()?.nativeElement;\n }\n return this.childrenSlot()?.nativeElement;\n }\n return this.childrenSlot()?.nativeElement;\n }\n\n private reparentOrphanedChildren() {\n const host = this.elem.nativeElement as HTMLElement;\n const container = this.getActiveChildrenSlot();\n if (!container) return;\n\n // Only look at this host's *direct* descendants in projection terms:\n // recursive ax-side-menu-items whose nearest ax-side-menu-item ancestor\n // is `host`. Iterate over a static array because we mutate the DOM.\n const items = Array.from(host.querySelectorAll('ax-side-menu-item'));\n for (const el of items) {\n if (el === host) continue;\n if (container.contains(el)) continue;\n const nearestParent = el.parentElement?.closest('ax-side-menu-item');\n if (nearestParent !== host) continue;\n try {\n container.appendChild(el);\n } catch {\n // Guard against HierarchyRequestError (shouldn't happen since we\n // resolve the container via the view-child, not querySelector).\n }\n }\n }\n\n // In compact mode submenus open in an overlay popover; keep collapse state in sync.\n #popoverSync = effect(() => {\n const compact = this.isCompactMode();\n this.isCollapsed();\n this.hasChild();\n\n const popover = this.childrenPopover();\n if (!popover || !isPlatformBrowser(this.platformId)) {\n return;\n }\n\n if (!compact) {\n this.moveChildrenToInlineSlot();\n if (popover.isOpen) {\n popover.close();\n }\n return;\n }\n\n this.syncCompactPopover();\n });\n\n private syncCompactPopover() {\n if (!isPlatformBrowser(this.platformId) || !this.isCompactMode() || !this.hasChild()) return;\n\n const popover = this.childrenPopover();\n if (!popover || popover.disabled) return;\n\n if (this.isCollapsed()) {\n this.closeCompactFlyout(popover);\n } else {\n if (this.isFirstLevel()) {\n this.closeSiblingCompactPopovers();\n }\n this.relocateChildren(true);\n void popover.open().then(() => popover.bringToFront());\n }\n }\n\n /** Restores submenu nodes to the inline slot before the overlay is disposed. */\n private closeCompactFlyout(popover: AXPopoverComponent) {\n if (popover.isOpen) {\n this.moveChildrenToInlineSlot();\n popover.close();\n } else {\n this.moveChildrenToInlineSlot();\n }\n }\n\n /** Closes other top-level compact flyouts when a rail item is opened. */\n private closeSiblingCompactPopovers() {\n const menuEl = this.resolveMenuHostElement();\n if (!menuEl) return;\n menuEl.querySelectorAll(':scope > ax-side-menu-item').forEach((el) => {\n const instance = (el as unknown as { __axContext__?: unknown }).__axContext__;\n if (!(instance instanceof AXSideMenuItemComponent) || instance === this) {\n return;\n }\n instance.isCollapsed.set(true);\n const siblingPopover = instance.childrenPopover();\n if (siblingPopover) {\n instance.closeCompactFlyout(siblingPopover);\n }\n });\n }\n\n /**\n * Moves projected submenu nodes into the popover panel when opening in compact mode.\n * They are not moved back to the inline slot on close (that caused a full-mode flash below the rail).\n */\n private relocateChildren(toPopover: boolean) {\n const source = this.childrenSlot()?.nativeElement;\n const target = this.popoverSlot()?.nativeElement;\n if (!source || !target) {\n return;\n }\n const from = toPopover ? source : target;\n const to = toPopover ? target : source;\n while (from.firstChild) {\n to.appendChild(from.firstChild);\n }\n }\n\n /**\n * Pulls direct submenu nodes back into the inline slot from the popover host and\n * from any open flyout overlay panel so they are not destroyed on overlay dispose.\n */\n private moveChildrenToInlineSlot() {\n const slot = this.childrenSlot()?.nativeElement;\n if (!slot || !isPlatformBrowser(this.platformId)) {\n return;\n }\n\n const host = this.elem.nativeElement as HTMLElement;\n const sources: HTMLElement[] = [];\n const flyoutHost = this.popoverSlot()?.nativeElement;\n if (flyoutHost) {\n sources.push(flyoutHost);\n }\n\n this.document.querySelectorAll('.ax-side-menu-popover .ax-side-children-content').forEach((el) => {\n if (el instanceof HTMLElement && el !== slot && !slot.contains(el)) {\n sources.push(el);\n }\n });\n\n for (const source of sources) {\n const items = Array.from(source.querySelectorAll(':scope > ax-side-menu-item'));\n for (const el of items) {\n if (el === host) {\n continue;\n }\n const nearestParent = el.parentElement?.closest('ax-side-menu-item');\n if (nearestParent !== host) {\n continue;\n }\n slot.appendChild(el);\n }\n }\n }\n\n protected _handlePopoverClosed() {\n this.moveChildrenToInlineSlot();\n if (!this.isCollapsed()) {\n this.isCollapsed.set(true);\n }\n }\n\n private checkForChildren() {\n const host = this.elem.nativeElement as HTMLElement;\n const inlineSlot = this.childrenSlot()?.nativeElement ?? null;\n const flyoutSlot = this.popoverSlot()?.nativeElement ?? null;\n const inlineCount = inlineSlot?.querySelectorAll('ax-side-menu-item').length ?? 0;\n const flyoutCount = flyoutSlot?.querySelectorAll('ax-side-menu-item').length ?? 0;\n const contentEl = inlineSlot ?? flyoutSlot;\n this.hasChild.set(this.hasNestedMenuItems(host, contentEl, inlineCount + flyoutCount));\n }\n\n private hasNestedMenuItems(host: HTMLElement, contentEl: Element | null, domChildCount: number): boolean {\n const inlineSlot = this.childrenSlot()?.nativeElement ?? null;\n const flyoutSlot = this.popoverSlot()?.nativeElement ?? null;\n let strandedCount = 0;\n const all = host.querySelectorAll('ax-side-menu-item');\n all.forEach((el) => {\n if (el === host) return;\n if (inlineSlot?.contains(el) || flyoutSlot?.contains(el)) return;\n const nearestParent = el.parentElement?.closest('ax-side-menu-item');\n if (nearestParent === host) strandedCount++;\n });\n return this.childItems().length > 0 || domChildCount > 0 || strandedCount > 0;\n }\n\n protected _handleClickEvent(e: MouseEvent) {\n if (this.disabled || this.isLoading()) 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 }\n e.stopPropagation();\n }\n\n toggle() {\n if (this.isCompactMode()) {\n if (!this.hasChild()) return;\n this.isCollapsed.update((prev) => !prev);\n this.syncCompactPopover();\n return;\n }\n this.isCollapsed.update((prev) => !prev);\n }\n\n open() {\n this.isCollapsed.set(true);\n }\n\n close() {\n this.isCollapsed.set(false);\n }\n}\n","<div [axTooltip]=\"tooltipStatus() ? tooltipText() : null\">\n <ng-content select=\"ax-title\"></ng-content>\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 <ax-popover\n #childrenPopover\n class=\"ax-side-menu-children-popover\"\n [target]=\"menuItemTrigger().nativeElement\"\n [openOn]=\"'manual'\"\n [closeOn]=\"'clickOut'\"\n [placement]=\"'end-top'\"\n [offsetX]=\"8\"\n [disabled]=\"!isCompactMode() || disabled || isLoading()\"\n panelClass=\"ax-side-menu-popover\"\n (onClosed)=\"_handlePopoverClosed()\"\n >\n <div #popoverSlot class=\"ax-side-children-content\"></div>\n </ax-popover>\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","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n model,\n PLATFORM_ID,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IsActiveMatchOptions, RouterLink, RouterLinkActive, UrlTree } from '@angular/router';\nimport { AXSideMenuBase } from './side-menu-base';\nimport { AXSideMenuItemComponent } from './side-menu-item/side-menu-item.component';\n\nexport type AXSideMenuLook = 'pills' | 'with-line' | 'with-line-color' | 'default';\nexport type AXSideMenuLocation = 'start' | 'end';\nexport type AXSideMenuItem = {\n title?: string;\n routerLink?: string | any[] | UrlTree;\n routerLinkActive?: string | string[];\n routerLinkActiveOptions?: { exact: boolean } | IsActiveMatchOptions;\n href?: string;\n target?: '_blank' | '_self' | '_parent' | '_top';\n text: string;\n active?: boolean;\n disabled?: boolean;\n isLoading?: boolean;\n isCollapsed?: boolean;\n icon?: string;\n data?: unknown;\n suffixText?: string;\n toggleOnClick?: boolean;\n items?: AXSideMenuItem[];\n};\n\n/**\n * @category\n * A component for displaying a side menu with customizable content.\n */\n@Component({\n selector: 'ax-side-menu',\n templateUrl: './side-menu.component.html',\n styleUrls: ['./side-menu.component.compiled.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n AXDecoratorGenericComponent,\n AXSideMenuItemComponent,\n RouterLink,\n RouterLinkActive,\n AXDecoratorIconComponent,\n ],\n providers: [\n { provide: AXComponent, useExisting: AXSideMenuComponent },\n { provide: AXSideMenuBase, useExisting: AXSideMenuComponent },\n ],\n})\nexport class AXSideMenuComponent extends NXComponent implements AXSideMenuBase {\n items = model<AXSideMenuItem[]>();\n readonly look = input<AXSideMenuLook>('pills');\n readonly location = input<AXSideMenuLocation>('start');\n readonly mode = input<'full' | 'compact'>('full');\n private elementRef = inject<ElementRef<HTMLElement>>(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 private _items = signal<AXSideMenuItemComponent[]>([]);\n /** Read-only signal exposing every discovered `ax-side-menu-item` instance. */\n readonly children = this._items.asReadonly();\n private platformId = inject(PLATFORM_ID);\n private destroyRef = inject(DestroyRef);\n hostElement = this.elementRef.nativeElement;\n\n #init = afterNextRender(() => {\n if (!isPlatformBrowser(this.platformId)) 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\n #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 });\n\n /** Push full/compact mode to every menu item whenever mode changes. */\n #syncItemMode = effect(() => {\n const mode = this.mode();\n this._items().forEach((item) => item.syncMenuMode(mode));\n });\n\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 private refreshItemsFromDom() {\n const host = this.elementRef.nativeElement;\n const elements = host.querySelectorAll('ax-side-menu-item');\n const items: AXSideMenuItemComponent[] = [];\n elements.forEach((el) => {\n const instance = (el as unknown as { __axContext__?: unknown }).__axContext__;\n if (instance instanceof AXSideMenuItemComponent) {\n items.push(instance);\n }\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\n this.addFirstLevelClass();\n }\n\n private addFirstLevelClass() {\n const allChildren = this._items();\n allChildren.forEach((item) =>\n item.getHostElement().querySelector('.ax-side-item')?.classList.remove('first-level'),\n );\n\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\n /** @ignore */\n @HostBinding('class')\n private get __hostClass(): string[] {\n return [`ax-look-${this.look()}`, `ax-location-${this.location()}`, `ax-mode-${this.mode()}`];\n }\n}\n","<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","import { AXOutlineContainerDirective, outlineItemType } 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, AXSideMenuItem } from './side-menu.component';\n\n@Directive({\n selector: '[axOutlineSideMenu]',\n exportAs: 'axOutlineSideMenu',\n providers: [AXUnsubscriber],\n})\nexport class AXOutlineSideMenuDirective {\n private router = inject(Router);\n private unsubscriber = inject(AXUnsubscriber);\n private sideMenu = inject(AXSideMenuComponent);\n private container = inject(AXOutlineContainerDirective);\n\n #anr = afterNextRender(() => {\n this.container.outlineItems$\n .pipe(\n this.unsubscriber.takeUntilDestroy,\n map((items) => {\n if (!items || items.length === 0) return [];\n return this.buildNestedMenuItems(items);\n }),\n distinctUntilChanged(isEqual),\n )\n .subscribe((menuItems) => {\n this.updateSideMenu(menuItems);\n });\n });\n\n private updateSideMenu(newMenuItems: AXSideMenuItem[]): void {\n const currentMenuItems = this.sideMenu.items();\n const newSignature = this.getStructuralSignature(newMenuItems);\n const currentSignature = this.getStructuralSignature(currentMenuItems || []);\n\n if (newSignature !== currentSignature) {\n this.sideMenu.items.set(newMenuItems);\n return;\n }\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 /**\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 private getStructuralSignature(items: AXSideMenuItem[]): string {\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\n private flattenMenuItems(items: AXSideMenuItem[]): AXSideMenuItem[] {\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 }, [] as AXSideMenuItem[]);\n }\n\n private textReplace(item: outlineItemType): string {\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\n private buildNestedMenuItems(items: outlineItemType[]): AXSideMenuItem[] {\n const menuItemsMap = new Map<string, AXSideMenuItem>();\n const rootItems: AXSideMenuItem[] = [];\n items.forEach((item) => {\n const menuItem: AXSideMenuItem = {\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) return;\n if (item.parentId) {\n const parentMenuItem = menuItemsMap.get(item.parentId);\n if (parentMenuItem) {\n parentMenuItem.items?.push(menuItem);\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 } else {\n rootItems.push(menuItem);\n }\n });\n return rootItems;\n }\n}\n","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';\n\nconst COMPONENT = [AXSideMenuComponent, AXSideMenuItemComponent, AXOutlineSideMenuDirective];\nconst MODULES = [\n CommonModule,\n AXCommonModule,\n AXRippleDirective,\n AXLoadingModule,\n AXTranslationModule,\n RouterLink,\n RouterLinkActive,\n AXDecoratorModule,\n];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXSideMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/components",
|
|
3
|
-
"version": "21.0.2-next.
|
|
3
|
+
"version": "21.0.2-next.21",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/core": "21.0.2-next.
|
|
6
|
-
"@acorex/cdk": "21.0.2-next.
|
|
5
|
+
"@acorex/core": "21.0.2-next.21",
|
|
6
|
+
"@acorex/cdk": "21.0.2-next.21",
|
|
7
7
|
"polytype": ">=0.17.0",
|
|
8
8
|
"angular-imask": ">=7.6.1",
|
|
9
9
|
"gridstack": ">=12.0.0",
|
|
@@ -75,6 +75,8 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
75
75
|
private getActiveChildrenSlot;
|
|
76
76
|
private reparentOrphanedChildren;
|
|
77
77
|
private syncCompactPopover;
|
|
78
|
+
/** Restores submenu nodes to the inline slot before the overlay is disposed. */
|
|
79
|
+
private closeCompactFlyout;
|
|
78
80
|
/** Closes other top-level compact flyouts when a rail item is opened. */
|
|
79
81
|
private closeSiblingCompactPopovers;
|
|
80
82
|
/**
|
|
@@ -82,6 +84,11 @@ declare class AXSideMenuItemComponent extends MXInteractiveComponent {
|
|
|
82
84
|
* They are not moved back to the inline slot on close (that caused a full-mode flash below the rail).
|
|
83
85
|
*/
|
|
84
86
|
private relocateChildren;
|
|
87
|
+
/**
|
|
88
|
+
* Pulls direct submenu nodes back into the inline slot from the popover host and
|
|
89
|
+
* from any open flyout overlay panel so they are not destroyed on overlay dispose.
|
|
90
|
+
*/
|
|
91
|
+
private moveChildrenToInlineSlot;
|
|
85
92
|
protected _handlePopoverClosed(): void;
|
|
86
93
|
private checkForChildren;
|
|
87
94
|
private hasNestedMenuItems;
|