@eui/eds 22.0.0-alpha.16 → 22.0.0-alpha.17

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.
@@ -48610,7 +48610,7 @@
48610
48610
  "assetsDirs": [],
48611
48611
  "styleUrlsData": [
48612
48612
  {
48613
- "data": "@use '../base' as base;\n\n.eui-21 {\n :host {\n display: block;\n width: 100%;\n @include base.eds-focus-visible();\n\n .eds-menu-item__content {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n }\n\n // Link base\n .eds-menu-item__link {\n display: flex;\n align-items: center;\n gap: var(--eds-sp-xs);\n padding: var(--eds-sp-xs) var(--eds-sp-l);\n font: var(--eds-f-paragraph-s);\n color: var(--eds-c-foreground-default);\n text-decoration: none;\n cursor: pointer;\n border: none;\n background: none;\n width: 100%;\n min-height: 40px;\n border-left: 3px solid transparent;\n transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;\n\n &:hover:not(.eds-menu-item__link--disabled):not(.eds-menu-item__link--category) {\n background: var(--eds-c-surface-elevation-sunken);\n color: var(--eds-c-foreground-primary);\n }\n\n &--active:not(.eds-menu-item--disabled) {\n background: var(--eds-c-surface-primary-subtle);\n color: var(--eds-c-foreground-primary);\n font-weight: var(--eds-f-w-semi-bold);\n border-left-color: var(--eds-c-border-primary);\n }\n\n &--disabled {\n opacity: var(--eds-op-40);\n pointer-events: none;\n }\n\n &--category {\n cursor: default;\n font: var(--eds-f-label-s-semi-bold);\n color: var(--eds-c-foreground-subtler);\n text-transform: uppercase;\n letter-spacing: 0.02em;\n padding: var(--eds-sp-m) var(--eds-sp-l) var(--eds-sp-xs);\n min-height: auto;\n border-left-color: transparent;\n\n &:hover {\n background: none;\n }\n }\n }\n\n // Sub-blocks\n .eds-menu-item__link-start-block {\n display: flex;\n align-items: center;\n gap: var(--eds-sp-xs);\n flex-shrink: 0;\n position: relative;\n\n &:empty {\n display: none;\n }\n }\n\n .eds-menu-item__link-content-block {\n display: flex;\n align-items: center;\n gap: var(--eds-sp-xs);\n flex: 1;\n min-width: 0;\n }\n\n .eds-menu-item__link-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &--category {\n font: var(--eds-f-label-s-semi-bold);\n color: var(--eds-c-foreground-subtler);\n }\n }\n\n .eds-menu-item__link-end-block {\n display: flex;\n align-items: center;\n gap: var(--eds-sp-xs);\n flex-shrink: 0;\n margin-left: auto;\n }\n\n .eds-menu-item__link-external-icon {\n flex-shrink: 0;\n color: var(--eds-c-foreground-subtler);\n }\n\n // Icon\n .eds-menu-item__icon {\n flex-shrink: 0;\n }\n\n // Marker dot\n .eds-menu-item__marker {\n flex-shrink: 0;\n }\n\n // Initials\n .eds-menu-item__initials {\n display: flex;\n align-items: center;\n justify-content: center;\n font: var(--eds-f-label-m-semi-bold);\n width: 32px;\n height: 32px;\n border-radius: var(--eds-br-s);\n background: var(--eds-c-surface-elevation-sunken);\n border: 1px solid var(--eds-c-border-divider);\n flex-shrink: 0;\n }\n\n // Icon label (collapsed mode with labels)\n .eds-menu-item__icon-label {\n font: var(--eds-f-microcopy-2xs);\n color: var(--eds-c-foreground-subtler);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n text-align: center;\n }\n\n // Badge dot in collapsed mode (positioned relative to start-block / icon)\n .eds-menu-item__badge--dot {\n position: absolute;\n top: -2px;\n right: -2px;\n pointer-events: none;\n }\n\n // Action icon button\n .eds-menu-item__action-icon {\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .eds-menu-item__content:hover .eds-menu-item__action-icon {\n opacity: 1;\n }\n\n // Expand toggle\n .eds-menu-item__expand-toggle {\n flex-shrink: 0;\n }\n\n // Disabled state\n .eds-menu-item--disabled {\n opacity: var(--eds-op-40);\n pointer-events: none;\n }\n\n // Expanded state\n .eds-menu-item--expanded {\n > .eds-menu-item__link {\n font-weight: var(--eds-f-w-medium);\n }\n }\n\n // Active state\n .eds-menu-item--active {\n > .eds-menu-item__link {\n background: var(--eds-c-surface-primary-subtle);\n color: var(--eds-c-foreground-primary);\n font-weight: var(--eds-f-w-semi-bold);\n border-left-color: var(--eds-c-border-primary);\n }\n }\n }\n\n // Bold root level\n :host.eds-menu-item--bold {\n > .eds-menu-item__content > .eds-menu-item__link {\n font-weight: var(--eds-f-w-semi-bold);\n }\n }\n\n // Icon-label mode (collapsed with labels under icons)\n :host.eds-menu-item--icon-label {\n .eds-menu-item__link {\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: var(--eds-sp-xs);\n gap: var(--eds-sp-4xs);\n border-left: none;\n border-radius: var(--eds-br-s);\n }\n\n .eds-menu-item__link-content-block {\n display: none;\n }\n\n .eds-menu-item__link-end-block {\n display: none;\n }\n }\n\n // Collapsed host-level adjustments\n .eds-menu--collapsed {\n :host {\n .eds-menu-item__content {\n position: relative;\n }\n\n .eds-menu-item__link {\n justify-content: center;\n padding: var(--eds-sp-xs) var(--eds-sp-s);\n border-left: none;\n border-radius: var(--eds-br-s);\n margin: var(--eds-sp-4xs) 0;\n }\n\n .eds-menu-item__link-content-block {\n display: none;\n }\n\n .eds-menu-item__link-end-block {\n display: none;\n }\n }\n }\n}\n",
48613
+ "data": "@use '../base' as base;\n\n.eui-21 {\n :host {\n display: block;\n width: 100%;\n @include base.eds-focus-visible();\n\n .eds-menu-item__content {\n display: flex;\n flex-direction: column;\n position: relative;\n width: 100%;\n }\n\n // Link base\n .eds-menu-item__link {\n display: flex;\n align-items: center;\n gap: var(--eds-sp-xs);\n padding: var(--eds-sp-xs) var(--eds-sp-l);\n font: var(--eds-f-paragraph-s);\n color: var(--eds-c-foreground-default);\n text-decoration: none;\n cursor: pointer;\n border: none;\n background: none;\n width: 100%;\n min-height: 40px;\n border-left: 3px solid transparent;\n transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;\n\n &:hover:not(.eds-menu-item__link--disabled):not(.eds-menu-item__link--category) {\n background: var(--eds-c-surface-elevation-sunken);\n color: var(--eds-c-foreground-primary);\n }\n\n &--active:not(.eds-menu-item--disabled) {\n background: var(--eds-c-surface-primary-subtle);\n color: var(--eds-c-foreground-primary);\n font-weight: var(--eds-f-w-semi-bold);\n border-left-color: var(--eds-c-border-primary);\n }\n\n &--disabled {\n opacity: var(--eds-op-40);\n pointer-events: none;\n }\n\n &--category {\n cursor: default;\n font: var(--eds-f-label-s-semi-bold);\n color: var(--eds-c-foreground-subtler);\n text-transform: uppercase;\n letter-spacing: 0.02em;\n padding: var(--eds-sp-m) var(--eds-sp-l) var(--eds-sp-xs);\n min-height: auto;\n border-left-color: transparent;\n\n &:hover {\n background: none;\n }\n }\n }\n\n // Sub-blocks\n .eds-menu-item__link-start-block {\n display: flex;\n align-items: center;\n gap: var(--eds-sp-xs);\n flex-shrink: 0;\n position: relative;\n\n &:empty {\n display: none;\n }\n }\n\n .eds-menu-item__link-content-block {\n display: flex;\n align-items: center;\n gap: var(--eds-sp-xs);\n flex: 1;\n min-width: 0;\n }\n\n .eds-menu-item__link-label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &--category {\n font: var(--eds-f-label-s-semi-bold);\n color: var(--eds-c-foreground-subtler);\n }\n }\n\n .eds-menu-item__link-end-block {\n display: flex;\n align-items: center;\n gap: var(--eds-sp-xs);\n flex-shrink: 0;\n margin-left: auto;\n }\n\n .eds-menu-item__link-external-icon {\n flex-shrink: 0;\n color: var(--eds-c-foreground-subtler);\n }\n\n // Icon\n .eds-menu-item__icon {\n flex-shrink: 0;\n }\n\n // Status/marker dot. The EDS `dot:core` glyph is a tiny dot centered in a 256x256\n // viewbox, so rendered as-is it reads as a barely-visible speck. Draw the marker as a\n // proper CSS disc (using the icon's resolved color) and hide the inner glyph, keeping\n // the eds-icon element + its color handling.\n .eds-menu-item__marker {\n flex-shrink: 0;\n width: var(--eds-sp-xs);\n height: var(--eds-sp-xs);\n border-radius: 50%;\n background: currentColor;\n\n ::ng-deep .eds-icon-svg {\n display: none;\n }\n }\n\n // Initials\n .eds-menu-item__initials {\n display: flex;\n align-items: center;\n justify-content: center;\n font: var(--eds-f-label-m-semi-bold);\n width: 32px;\n height: 32px;\n border-radius: var(--eds-br-s);\n background: var(--eds-c-surface-elevation-sunken);\n border: 1px solid var(--eds-c-border-divider);\n flex-shrink: 0;\n }\n\n // Icon label (collapsed mode with labels)\n .eds-menu-item__icon-label {\n font: var(--eds-f-microcopy-2xs);\n color: var(--eds-c-foreground-subtler);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n text-align: center;\n }\n\n // Badge dot in collapsed mode (positioned relative to start-block / icon)\n .eds-menu-item__badge--dot {\n position: absolute;\n top: -2px;\n right: -2px;\n pointer-events: none;\n }\n\n // Action icon button\n .eds-menu-item__action-icon {\n opacity: 0;\n transition: opacity 0.15s ease;\n }\n\n .eds-menu-item__content:hover .eds-menu-item__action-icon {\n opacity: 1;\n }\n\n // Expand toggle\n .eds-menu-item__expand-toggle {\n flex-shrink: 0;\n }\n\n // Disabled state\n .eds-menu-item--disabled {\n opacity: var(--eds-op-40);\n pointer-events: none;\n }\n\n // Expanded state\n .eds-menu-item--expanded {\n > .eds-menu-item__link {\n font-weight: var(--eds-f-w-medium);\n }\n }\n\n // Active state\n .eds-menu-item--active {\n > .eds-menu-item__link {\n background: var(--eds-c-surface-primary-subtle);\n color: var(--eds-c-foreground-primary);\n font-weight: var(--eds-f-w-semi-bold);\n border-left-color: var(--eds-c-border-primary);\n }\n }\n }\n\n // Bold root level\n :host.eds-menu-item--bold {\n > .eds-menu-item__content > .eds-menu-item__link {\n font-weight: var(--eds-f-w-semi-bold);\n }\n }\n\n // Icon-label mode (collapsed with labels under icons)\n :host.eds-menu-item--icon-label {\n .eds-menu-item__link {\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: var(--eds-sp-xs);\n gap: var(--eds-sp-4xs);\n border-left: none;\n border-radius: var(--eds-br-s);\n }\n\n .eds-menu-item__link-content-block {\n display: none;\n }\n\n .eds-menu-item__link-end-block {\n display: none;\n }\n }\n\n // Collapsed host-level adjustments\n .eds-menu--collapsed {\n :host {\n .eds-menu-item__content {\n position: relative;\n }\n\n .eds-menu-item__link {\n justify-content: center;\n padding: var(--eds-sp-xs) var(--eds-sp-s);\n border-left: none;\n border-radius: var(--eds-br-s);\n margin: var(--eds-sp-4xs) 0;\n }\n\n .eds-menu-item__link-content-block {\n display: none;\n }\n\n .eds-menu-item__link-end-block {\n display: none;\n }\n }\n }\n}\n",
48614
48614
  "styleUrl": "./eds-menu-item.scss"
48615
48615
  }
48616
48616
  ],
package/docs/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # eui documentation
2
2
 
3
- > Generated by compodoc 2.0.0 at 2026-09-23T08:39:17.175Z, llm-md export.
3
+ > Generated by compodoc 2.0.0 at 2026-09-23T15:14:10.875Z, llm-md export.
4
4
 
5
5
  ## Components
6
6
 
@@ -128,7 +128,7 @@
128
128
  </ol>
129
129
  <ul class="properties-list">
130
130
  <li>
131
- <b>Version</b> : 22.0.0-alpha.16</li>
131
+ <b>Version</b> : 22.0.0-alpha.17</li>
132
132
  </ul>
133
133
 
134
134
 
@@ -103,7 +103,7 @@ class EdsMenuItemComponent {
103
103
  this.item().actionIcon?.action?.(event);
104
104
  }
105
105
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsMenuItemComponent, isStandalone: true, selector: "eds-menu-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, hasIcon: { classPropertyName: "hasIcon", publicName: "hasIcon", isSignal: true, isRequired: false, transformFunction: null }, hasIconLabel: { classPropertyName: "hasIconLabel", publicName: "hasIconLabel", isSignal: true, isRequired: false, transformFunction: null }, hasTooltip: { classPropertyName: "hasTooltip", publicName: "hasTooltip", isSignal: true, isRequired: false, transformFunction: null }, hasTooltipOnExpanded: { classPropertyName: "hasTooltipOnExpanded", publicName: "hasTooltipOnExpanded", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, hasCollapsedInitials: { classPropertyName: "hasCollapsedInitials", publicName: "hasCollapsedInitials", isSignal: true, isRequired: false, transformFunction: null }, hasBoldRootLevel: { classPropertyName: "hasBoldRootLevel", publicName: "hasBoldRootLevel", isSignal: true, isRequired: false, transformFunction: null }, hasExpandIcon: { classPropertyName: "hasExpandIcon", publicName: "hasExpandIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", expandToggle: "expandToggle" }, host: { properties: { "class": "hostClasses()", "attr.data-e2e": "item()?.e2eAttr || \"eds-menu-item\"", "attr.role": "\"treeitem\"", "attr.tabindex": "\"-1\"", "attr.aria-haspopup": "item()?.children?.length ? true : undefined", "attr.aria-expanded": "item()?.children ? !!item()?.expanded : undefined", "attr.aria-disabled": "item()?.disabled || undefined" } }, ngImport: i0, template: "@if (isLabelItem()) {\n <!-- Category / label-only item (non-navigable) -->\n <li role=\"none\" class=\"eds-menu-item__content eds-menu-item__content--category\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [attr.title]=\"tooltipText()\">\n <span class=\"eds-menu-item__link eds-menu-item__link--category\" (click)=\"onClick($event)\">\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n </span>\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label eds-menu-item__link-label--category\">{{ item().label }}</span>\n </span>\n </span>\n </li>\n} @else {\n <!-- Navigable / expandable item -->\n <li role=\"none\" class=\"eds-menu-item__content\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [class.eds-menu-item--expanded]=\"item().expanded\"\n [class.eds-menu-item--active]=\"item().active\">\n\n @if (item().url && !item().urlExternal) {\n <!-- Internal router link -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n [routerLink]=\"item().url\"\n [queryParams]=\"item().queryParams\"\n routerLinkActive=\"eds-menu-item__link--active\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n } @else {\n <!-- External link / command / expandable -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n href=\"javascript:void(0)\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n }\n\n <!-- Projected child list -->\n <ng-content />\n </li>\n}\n\n<!-- LINK CONTENT TEMPLATE -->\n<ng-template #linkContent>\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n @if (isCollapsed() && item().tagLabel) {\n <eds-badge class=\"eds-menu-item__badge--dot\" [color]=\"$any(item().tagTypeClass || '')\" iconOnly />\n }\n </span>\n\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label\">{{ item().label }}</span>\n @if (item().urlExternal && item().urlExternalTarget === '_blank') {\n <eds-icon class=\"eds-menu-item__link-external-icon\" icon=\"arrow-square-out:core\" size=\"xs\" />\n }\n </span>\n\n <span class=\"eds-menu-item__link-end-block\">\n @if (item().tagLabel && !isCollapsed()) {\n <eds-badge [color]=\"$any(item().tagTypeClass || '')\" size=\"s\">{{ item().tagLabel }}</eds-badge>\n }\n\n @if (item().actionIcon) {\n <button edsIconButton\n class=\"eds-menu-item__action-icon\"\n [icon]=\"item().actionIcon!.icon\"\n [ariaLabel]=\"item().actionIcon!.label || 'Action'\"\n size=\"xs\"\n (click)=\"onActionIconClick($event)\">\n </button>\n }\n\n @if (hasExpandIcon() && item().children?.length) {\n <button edsIconButton\n class=\"eds-menu-item__expand-toggle\"\n [icon]=\"item().expanded ? 'caret-up' : 'caret-down'\"\n [ariaLabel]=\"item().expanded ? 'Collapse' : 'Expand'\"\n size=\"xs\"\n rounded\n (click)=\"onExpandToggle($event)\">\n </button>\n }\n </span>\n</ng-template>\n\n<!-- ICON BLOCK TEMPLATE -->\n<ng-template #iconBlock>\n @if (!isCollapsed()) {\n @if (hasIcon()) {\n @if (item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else {\n <!-- Collapsed mode -->\n @if (hasCollapsedInitials() && item().initials) {\n <span class=\"eds-menu-item__initials\">{{ item().initials }}</span>\n } @else if (hasIcon() && item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n } @else {\n <span class=\"eds-menu-item__initials\">{{ item().label?.charAt(0) }}</span>\n }\n\n @if (hasIconLabel()) {\n <span class=\"eds-menu-item__icon-label\">{{ item().label }}</span>\n }\n }\n</ng-template>\n\n", styles: [".eui-21 :host{display:block;width:100%}.eui-21 :host:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host .eds-menu-item__content{display:flex;flex-direction:column;position:relative;width:100%}.eui-21 :host .eds-menu-item__link{display:flex;align-items:center;gap:var(--eds-sp-xs);padding:var(--eds-sp-xs) var(--eds-sp-l);font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-default);text-decoration:none;cursor:pointer;border:none;background:none;width:100%;min-height:40px;border-left:3px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}.eui-21 :host .eds-menu-item__link:hover:not(.eds-menu-item__link--disabled):not(.eds-menu-item__link--category){background:var(--eds-c-surface-elevation-sunken);color:var(--eds-c-foreground-primary)}.eui-21 :host .eds-menu-item__link--active:not(.eds-menu-item--disabled){background:var(--eds-c-surface-primary-subtle);color:var(--eds-c-foreground-primary);font-weight:var(--eds-f-w-semi-bold);border-left-color:var(--eds-c-border-primary)}.eui-21 :host .eds-menu-item__link--disabled{opacity:var(--eds-op-40);pointer-events:none}.eui-21 :host .eds-menu-item__link--category{cursor:default;font:var(--eds-f-label-s-semi-bold);color:var(--eds-c-foreground-subtler);text-transform:uppercase;letter-spacing:.02em;padding:var(--eds-sp-m) var(--eds-sp-l) var(--eds-sp-xs);min-height:auto;border-left-color:transparent}.eui-21 :host .eds-menu-item__link--category:hover{background:none}.eui-21 :host .eds-menu-item__link-start-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex-shrink:0;position:relative}.eui-21 :host .eds-menu-item__link-start-block:empty{display:none}.eui-21 :host .eds-menu-item__link-content-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex:1;min-width:0}.eui-21 :host .eds-menu-item__link-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .eds-menu-item__link-label--category{font:var(--eds-f-label-s-semi-bold);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-menu-item__link-end-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex-shrink:0;margin-left:auto}.eui-21 :host .eds-menu-item__link-external-icon{flex-shrink:0;color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-menu-item__icon{flex-shrink:0}.eui-21 :host .eds-menu-item__marker{flex-shrink:0}.eui-21 :host .eds-menu-item__initials{display:flex;align-items:center;justify-content:center;font:var(--eds-f-label-m-semi-bold);width:32px;height:32px;border-radius:var(--eds-br-s);background:var(--eds-c-surface-elevation-sunken);border:1px solid var(--eds-c-border-divider);flex-shrink:0}.eui-21 :host .eds-menu-item__icon-label{font:var(--eds-f-microcopy-2xs);color:var(--eds-c-foreground-subtler);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.eui-21 :host .eds-menu-item__badge--dot{position:absolute;top:-2px;right:-2px;pointer-events:none}.eui-21 :host .eds-menu-item__action-icon{opacity:0;transition:opacity .15s ease}.eui-21 :host .eds-menu-item__content:hover .eds-menu-item__action-icon{opacity:1}.eui-21 :host .eds-menu-item__expand-toggle{flex-shrink:0}.eui-21 :host .eds-menu-item--disabled{opacity:var(--eds-op-40);pointer-events:none}.eui-21 :host .eds-menu-item--expanded>.eds-menu-item__link{font-weight:var(--eds-f-w-medium)}.eui-21 :host .eds-menu-item--active>.eds-menu-item__link{background:var(--eds-c-surface-primary-subtle);color:var(--eds-c-foreground-primary);font-weight:var(--eds-f-w-semi-bold);border-left-color:var(--eds-c-border-primary)}.eui-21 :host.eds-menu-item--bold>.eds-menu-item__content>.eds-menu-item__link{font-weight:var(--eds-f-w-semi-bold)}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link{flex-direction:column;align-items:center;justify-content:center;padding:var(--eds-sp-xs);gap:var(--eds-sp-4xs);border-left:none;border-radius:var(--eds-br-s)}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link-content-block{display:none}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link-end-block{display:none}.eui-21 .eds-menu--collapsed :host .eds-menu-item__content{position:relative}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link{justify-content:center;padding:var(--eds-sp-xs) var(--eds-sp-s);border-left:none;border-radius:var(--eds-br-s);margin:var(--eds-sp-4xs) 0}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link-content-block{display:none}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link-end-block{display:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i1.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }, { kind: "component", type: i2.EdsIconButton, selector: "button[edsIconButton]", inputs: ["icon", "color", "size", "ariaLabel", "rounded", "disabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EdsBadge, selector: "eds-badge, span[edsBadge]", inputs: ["color", "variant", "size", "iconOnly", "maxCharCount", "charReplacement", "e2eAttr", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EdsMenuItemComponent, isStandalone: true, selector: "eds-menu-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, hasIcon: { classPropertyName: "hasIcon", publicName: "hasIcon", isSignal: true, isRequired: false, transformFunction: null }, hasIconLabel: { classPropertyName: "hasIconLabel", publicName: "hasIconLabel", isSignal: true, isRequired: false, transformFunction: null }, hasTooltip: { classPropertyName: "hasTooltip", publicName: "hasTooltip", isSignal: true, isRequired: false, transformFunction: null }, hasTooltipOnExpanded: { classPropertyName: "hasTooltipOnExpanded", publicName: "hasTooltipOnExpanded", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null }, hasCollapsedInitials: { classPropertyName: "hasCollapsedInitials", publicName: "hasCollapsedInitials", isSignal: true, isRequired: false, transformFunction: null }, hasBoldRootLevel: { classPropertyName: "hasBoldRootLevel", publicName: "hasBoldRootLevel", isSignal: true, isRequired: false, transformFunction: null }, hasExpandIcon: { classPropertyName: "hasExpandIcon", publicName: "hasExpandIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", expandToggle: "expandToggle" }, host: { properties: { "class": "hostClasses()", "attr.data-e2e": "item()?.e2eAttr || \"eds-menu-item\"", "attr.role": "\"treeitem\"", "attr.tabindex": "\"-1\"", "attr.aria-haspopup": "item()?.children?.length ? true : undefined", "attr.aria-expanded": "item()?.children ? !!item()?.expanded : undefined", "attr.aria-disabled": "item()?.disabled || undefined" } }, ngImport: i0, template: "@if (isLabelItem()) {\n <!-- Category / label-only item (non-navigable) -->\n <li role=\"none\" class=\"eds-menu-item__content eds-menu-item__content--category\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [attr.title]=\"tooltipText()\">\n <span class=\"eds-menu-item__link eds-menu-item__link--category\" (click)=\"onClick($event)\">\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n </span>\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label eds-menu-item__link-label--category\">{{ item().label }}</span>\n </span>\n </span>\n </li>\n} @else {\n <!-- Navigable / expandable item -->\n <li role=\"none\" class=\"eds-menu-item__content\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [class.eds-menu-item--expanded]=\"item().expanded\"\n [class.eds-menu-item--active]=\"item().active\">\n\n @if (item().url && !item().urlExternal) {\n <!-- Internal router link -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n [routerLink]=\"item().url\"\n [queryParams]=\"item().queryParams\"\n routerLinkActive=\"eds-menu-item__link--active\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n } @else {\n <!-- External link / command / expandable -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n href=\"javascript:void(0)\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n }\n\n <!-- Projected child list -->\n <ng-content />\n </li>\n}\n\n<!-- LINK CONTENT TEMPLATE -->\n<ng-template #linkContent>\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n @if (isCollapsed() && item().tagLabel) {\n <eds-badge class=\"eds-menu-item__badge--dot\" [color]=\"$any(item().tagTypeClass || '')\" iconOnly />\n }\n </span>\n\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label\">{{ item().label }}</span>\n @if (item().urlExternal && item().urlExternalTarget === '_blank') {\n <eds-icon class=\"eds-menu-item__link-external-icon\" icon=\"arrow-square-out:core\" size=\"xs\" />\n }\n </span>\n\n <span class=\"eds-menu-item__link-end-block\">\n @if (item().tagLabel && !isCollapsed()) {\n <eds-badge [color]=\"$any(item().tagTypeClass || '')\" size=\"s\">{{ item().tagLabel }}</eds-badge>\n }\n\n @if (item().actionIcon) {\n <button edsIconButton\n class=\"eds-menu-item__action-icon\"\n [icon]=\"item().actionIcon!.icon\"\n [ariaLabel]=\"item().actionIcon!.label || 'Action'\"\n size=\"xs\"\n (click)=\"onActionIconClick($event)\">\n </button>\n }\n\n @if (hasExpandIcon() && item().children?.length) {\n <button edsIconButton\n class=\"eds-menu-item__expand-toggle\"\n [icon]=\"item().expanded ? 'caret-up' : 'caret-down'\"\n [ariaLabel]=\"item().expanded ? 'Collapse' : 'Expand'\"\n size=\"xs\"\n rounded\n (click)=\"onExpandToggle($event)\">\n </button>\n }\n </span>\n</ng-template>\n\n<!-- ICON BLOCK TEMPLATE -->\n<ng-template #iconBlock>\n @if (!isCollapsed()) {\n @if (hasIcon()) {\n @if (item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else {\n <!-- Collapsed mode -->\n @if (hasCollapsedInitials() && item().initials) {\n <span class=\"eds-menu-item__initials\">{{ item().initials }}</span>\n } @else if (hasIcon() && item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n } @else {\n <span class=\"eds-menu-item__initials\">{{ item().label?.charAt(0) }}</span>\n }\n\n @if (hasIconLabel()) {\n <span class=\"eds-menu-item__icon-label\">{{ item().label }}</span>\n }\n }\n</ng-template>\n\n", styles: [".eui-21 :host{display:block;width:100%}.eui-21 :host:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host .eds-menu-item__content{display:flex;flex-direction:column;position:relative;width:100%}.eui-21 :host .eds-menu-item__link{display:flex;align-items:center;gap:var(--eds-sp-xs);padding:var(--eds-sp-xs) var(--eds-sp-l);font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-default);text-decoration:none;cursor:pointer;border:none;background:none;width:100%;min-height:40px;border-left:3px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}.eui-21 :host .eds-menu-item__link:hover:not(.eds-menu-item__link--disabled):not(.eds-menu-item__link--category){background:var(--eds-c-surface-elevation-sunken);color:var(--eds-c-foreground-primary)}.eui-21 :host .eds-menu-item__link--active:not(.eds-menu-item--disabled){background:var(--eds-c-surface-primary-subtle);color:var(--eds-c-foreground-primary);font-weight:var(--eds-f-w-semi-bold);border-left-color:var(--eds-c-border-primary)}.eui-21 :host .eds-menu-item__link--disabled{opacity:var(--eds-op-40);pointer-events:none}.eui-21 :host .eds-menu-item__link--category{cursor:default;font:var(--eds-f-label-s-semi-bold);color:var(--eds-c-foreground-subtler);text-transform:uppercase;letter-spacing:.02em;padding:var(--eds-sp-m) var(--eds-sp-l) var(--eds-sp-xs);min-height:auto;border-left-color:transparent}.eui-21 :host .eds-menu-item__link--category:hover{background:none}.eui-21 :host .eds-menu-item__link-start-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex-shrink:0;position:relative}.eui-21 :host .eds-menu-item__link-start-block:empty{display:none}.eui-21 :host .eds-menu-item__link-content-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex:1;min-width:0}.eui-21 :host .eds-menu-item__link-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .eds-menu-item__link-label--category{font:var(--eds-f-label-s-semi-bold);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-menu-item__link-end-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex-shrink:0;margin-left:auto}.eui-21 :host .eds-menu-item__link-external-icon{flex-shrink:0;color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-menu-item__icon{flex-shrink:0}.eui-21 :host .eds-menu-item__marker{flex-shrink:0;width:var(--eds-sp-xs);height:var(--eds-sp-xs);border-radius:50%;background:currentColor}.eui-21 :host .eds-menu-item__marker ::ng-deep .eds-icon-svg{display:none}.eui-21 :host .eds-menu-item__initials{display:flex;align-items:center;justify-content:center;font:var(--eds-f-label-m-semi-bold);width:32px;height:32px;border-radius:var(--eds-br-s);background:var(--eds-c-surface-elevation-sunken);border:1px solid var(--eds-c-border-divider);flex-shrink:0}.eui-21 :host .eds-menu-item__icon-label{font:var(--eds-f-microcopy-2xs);color:var(--eds-c-foreground-subtler);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.eui-21 :host .eds-menu-item__badge--dot{position:absolute;top:-2px;right:-2px;pointer-events:none}.eui-21 :host .eds-menu-item__action-icon{opacity:0;transition:opacity .15s ease}.eui-21 :host .eds-menu-item__content:hover .eds-menu-item__action-icon{opacity:1}.eui-21 :host .eds-menu-item__expand-toggle{flex-shrink:0}.eui-21 :host .eds-menu-item--disabled{opacity:var(--eds-op-40);pointer-events:none}.eui-21 :host .eds-menu-item--expanded>.eds-menu-item__link{font-weight:var(--eds-f-w-medium)}.eui-21 :host .eds-menu-item--active>.eds-menu-item__link{background:var(--eds-c-surface-primary-subtle);color:var(--eds-c-foreground-primary);font-weight:var(--eds-f-w-semi-bold);border-left-color:var(--eds-c-border-primary)}.eui-21 :host.eds-menu-item--bold>.eds-menu-item__content>.eds-menu-item__link{font-weight:var(--eds-f-w-semi-bold)}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link{flex-direction:column;align-items:center;justify-content:center;padding:var(--eds-sp-xs);gap:var(--eds-sp-4xs);border-left:none;border-radius:var(--eds-br-s)}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link-content-block{display:none}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link-end-block{display:none}.eui-21 .eds-menu--collapsed :host .eds-menu-item__content{position:relative}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link{justify-content:center;padding:var(--eds-sp-xs) var(--eds-sp-s);border-left:none;border-radius:var(--eds-br-s);margin:var(--eds-sp-4xs) 0}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link-content-block{display:none}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link-end-block{display:none}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i1.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }, { kind: "component", type: i2.EdsIconButton, selector: "button[edsIconButton]", inputs: ["icon", "color", "size", "ariaLabel", "rounded", "disabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EdsBadge, selector: "eds-badge, span[edsBadge]", inputs: ["color", "variant", "size", "iconOnly", "maxCharCount", "charReplacement", "e2eAttr", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
107
  }
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsMenuItemComponent, decorators: [{
109
109
  type: Component,
@@ -115,7 +115,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
115
115
  '[attr.aria-haspopup]': 'item()?.children?.length ? true : undefined',
116
116
  '[attr.aria-expanded]': 'item()?.children ? !!item()?.expanded : undefined',
117
117
  '[attr.aria-disabled]': 'item()?.disabled || undefined',
118
- }, template: "@if (isLabelItem()) {\n <!-- Category / label-only item (non-navigable) -->\n <li role=\"none\" class=\"eds-menu-item__content eds-menu-item__content--category\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [attr.title]=\"tooltipText()\">\n <span class=\"eds-menu-item__link eds-menu-item__link--category\" (click)=\"onClick($event)\">\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n </span>\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label eds-menu-item__link-label--category\">{{ item().label }}</span>\n </span>\n </span>\n </li>\n} @else {\n <!-- Navigable / expandable item -->\n <li role=\"none\" class=\"eds-menu-item__content\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [class.eds-menu-item--expanded]=\"item().expanded\"\n [class.eds-menu-item--active]=\"item().active\">\n\n @if (item().url && !item().urlExternal) {\n <!-- Internal router link -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n [routerLink]=\"item().url\"\n [queryParams]=\"item().queryParams\"\n routerLinkActive=\"eds-menu-item__link--active\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n } @else {\n <!-- External link / command / expandable -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n href=\"javascript:void(0)\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n }\n\n <!-- Projected child list -->\n <ng-content />\n </li>\n}\n\n<!-- LINK CONTENT TEMPLATE -->\n<ng-template #linkContent>\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n @if (isCollapsed() && item().tagLabel) {\n <eds-badge class=\"eds-menu-item__badge--dot\" [color]=\"$any(item().tagTypeClass || '')\" iconOnly />\n }\n </span>\n\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label\">{{ item().label }}</span>\n @if (item().urlExternal && item().urlExternalTarget === '_blank') {\n <eds-icon class=\"eds-menu-item__link-external-icon\" icon=\"arrow-square-out:core\" size=\"xs\" />\n }\n </span>\n\n <span class=\"eds-menu-item__link-end-block\">\n @if (item().tagLabel && !isCollapsed()) {\n <eds-badge [color]=\"$any(item().tagTypeClass || '')\" size=\"s\">{{ item().tagLabel }}</eds-badge>\n }\n\n @if (item().actionIcon) {\n <button edsIconButton\n class=\"eds-menu-item__action-icon\"\n [icon]=\"item().actionIcon!.icon\"\n [ariaLabel]=\"item().actionIcon!.label || 'Action'\"\n size=\"xs\"\n (click)=\"onActionIconClick($event)\">\n </button>\n }\n\n @if (hasExpandIcon() && item().children?.length) {\n <button edsIconButton\n class=\"eds-menu-item__expand-toggle\"\n [icon]=\"item().expanded ? 'caret-up' : 'caret-down'\"\n [ariaLabel]=\"item().expanded ? 'Collapse' : 'Expand'\"\n size=\"xs\"\n rounded\n (click)=\"onExpandToggle($event)\">\n </button>\n }\n </span>\n</ng-template>\n\n<!-- ICON BLOCK TEMPLATE -->\n<ng-template #iconBlock>\n @if (!isCollapsed()) {\n @if (hasIcon()) {\n @if (item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else {\n <!-- Collapsed mode -->\n @if (hasCollapsedInitials() && item().initials) {\n <span class=\"eds-menu-item__initials\">{{ item().initials }}</span>\n } @else if (hasIcon() && item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n } @else {\n <span class=\"eds-menu-item__initials\">{{ item().label?.charAt(0) }}</span>\n }\n\n @if (hasIconLabel()) {\n <span class=\"eds-menu-item__icon-label\">{{ item().label }}</span>\n }\n }\n</ng-template>\n\n", styles: [".eui-21 :host{display:block;width:100%}.eui-21 :host:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host .eds-menu-item__content{display:flex;flex-direction:column;position:relative;width:100%}.eui-21 :host .eds-menu-item__link{display:flex;align-items:center;gap:var(--eds-sp-xs);padding:var(--eds-sp-xs) var(--eds-sp-l);font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-default);text-decoration:none;cursor:pointer;border:none;background:none;width:100%;min-height:40px;border-left:3px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}.eui-21 :host .eds-menu-item__link:hover:not(.eds-menu-item__link--disabled):not(.eds-menu-item__link--category){background:var(--eds-c-surface-elevation-sunken);color:var(--eds-c-foreground-primary)}.eui-21 :host .eds-menu-item__link--active:not(.eds-menu-item--disabled){background:var(--eds-c-surface-primary-subtle);color:var(--eds-c-foreground-primary);font-weight:var(--eds-f-w-semi-bold);border-left-color:var(--eds-c-border-primary)}.eui-21 :host .eds-menu-item__link--disabled{opacity:var(--eds-op-40);pointer-events:none}.eui-21 :host .eds-menu-item__link--category{cursor:default;font:var(--eds-f-label-s-semi-bold);color:var(--eds-c-foreground-subtler);text-transform:uppercase;letter-spacing:.02em;padding:var(--eds-sp-m) var(--eds-sp-l) var(--eds-sp-xs);min-height:auto;border-left-color:transparent}.eui-21 :host .eds-menu-item__link--category:hover{background:none}.eui-21 :host .eds-menu-item__link-start-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex-shrink:0;position:relative}.eui-21 :host .eds-menu-item__link-start-block:empty{display:none}.eui-21 :host .eds-menu-item__link-content-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex:1;min-width:0}.eui-21 :host .eds-menu-item__link-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .eds-menu-item__link-label--category{font:var(--eds-f-label-s-semi-bold);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-menu-item__link-end-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex-shrink:0;margin-left:auto}.eui-21 :host .eds-menu-item__link-external-icon{flex-shrink:0;color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-menu-item__icon{flex-shrink:0}.eui-21 :host .eds-menu-item__marker{flex-shrink:0}.eui-21 :host .eds-menu-item__initials{display:flex;align-items:center;justify-content:center;font:var(--eds-f-label-m-semi-bold);width:32px;height:32px;border-radius:var(--eds-br-s);background:var(--eds-c-surface-elevation-sunken);border:1px solid var(--eds-c-border-divider);flex-shrink:0}.eui-21 :host .eds-menu-item__icon-label{font:var(--eds-f-microcopy-2xs);color:var(--eds-c-foreground-subtler);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.eui-21 :host .eds-menu-item__badge--dot{position:absolute;top:-2px;right:-2px;pointer-events:none}.eui-21 :host .eds-menu-item__action-icon{opacity:0;transition:opacity .15s ease}.eui-21 :host .eds-menu-item__content:hover .eds-menu-item__action-icon{opacity:1}.eui-21 :host .eds-menu-item__expand-toggle{flex-shrink:0}.eui-21 :host .eds-menu-item--disabled{opacity:var(--eds-op-40);pointer-events:none}.eui-21 :host .eds-menu-item--expanded>.eds-menu-item__link{font-weight:var(--eds-f-w-medium)}.eui-21 :host .eds-menu-item--active>.eds-menu-item__link{background:var(--eds-c-surface-primary-subtle);color:var(--eds-c-foreground-primary);font-weight:var(--eds-f-w-semi-bold);border-left-color:var(--eds-c-border-primary)}.eui-21 :host.eds-menu-item--bold>.eds-menu-item__content>.eds-menu-item__link{font-weight:var(--eds-f-w-semi-bold)}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link{flex-direction:column;align-items:center;justify-content:center;padding:var(--eds-sp-xs);gap:var(--eds-sp-4xs);border-left:none;border-radius:var(--eds-br-s)}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link-content-block{display:none}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link-end-block{display:none}.eui-21 .eds-menu--collapsed :host .eds-menu-item__content{position:relative}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link{justify-content:center;padding:var(--eds-sp-xs) var(--eds-sp-s);border-left:none;border-radius:var(--eds-br-s);margin:var(--eds-sp-4xs) 0}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link-content-block{display:none}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link-end-block{display:none}\n"] }]
118
+ }, template: "@if (isLabelItem()) {\n <!-- Category / label-only item (non-navigable) -->\n <li role=\"none\" class=\"eds-menu-item__content eds-menu-item__content--category\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [attr.title]=\"tooltipText()\">\n <span class=\"eds-menu-item__link eds-menu-item__link--category\" (click)=\"onClick($event)\">\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n </span>\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label eds-menu-item__link-label--category\">{{ item().label }}</span>\n </span>\n </span>\n </li>\n} @else {\n <!-- Navigable / expandable item -->\n <li role=\"none\" class=\"eds-menu-item__content\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [class.eds-menu-item--expanded]=\"item().expanded\"\n [class.eds-menu-item--active]=\"item().active\">\n\n @if (item().url && !item().urlExternal) {\n <!-- Internal router link -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n [routerLink]=\"item().url\"\n [queryParams]=\"item().queryParams\"\n routerLinkActive=\"eds-menu-item__link--active\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n } @else {\n <!-- External link / command / expandable -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n href=\"javascript:void(0)\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n }\n\n <!-- Projected child list -->\n <ng-content />\n </li>\n}\n\n<!-- LINK CONTENT TEMPLATE -->\n<ng-template #linkContent>\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n @if (isCollapsed() && item().tagLabel) {\n <eds-badge class=\"eds-menu-item__badge--dot\" [color]=\"$any(item().tagTypeClass || '')\" iconOnly />\n }\n </span>\n\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label\">{{ item().label }}</span>\n @if (item().urlExternal && item().urlExternalTarget === '_blank') {\n <eds-icon class=\"eds-menu-item__link-external-icon\" icon=\"arrow-square-out:core\" size=\"xs\" />\n }\n </span>\n\n <span class=\"eds-menu-item__link-end-block\">\n @if (item().tagLabel && !isCollapsed()) {\n <eds-badge [color]=\"$any(item().tagTypeClass || '')\" size=\"s\">{{ item().tagLabel }}</eds-badge>\n }\n\n @if (item().actionIcon) {\n <button edsIconButton\n class=\"eds-menu-item__action-icon\"\n [icon]=\"item().actionIcon!.icon\"\n [ariaLabel]=\"item().actionIcon!.label || 'Action'\"\n size=\"xs\"\n (click)=\"onActionIconClick($event)\">\n </button>\n }\n\n @if (hasExpandIcon() && item().children?.length) {\n <button edsIconButton\n class=\"eds-menu-item__expand-toggle\"\n [icon]=\"item().expanded ? 'caret-up' : 'caret-down'\"\n [ariaLabel]=\"item().expanded ? 'Collapse' : 'Expand'\"\n size=\"xs\"\n rounded\n (click)=\"onExpandToggle($event)\">\n </button>\n }\n </span>\n</ng-template>\n\n<!-- ICON BLOCK TEMPLATE -->\n<ng-template #iconBlock>\n @if (!isCollapsed()) {\n @if (hasIcon()) {\n @if (item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else {\n <!-- Collapsed mode -->\n @if (hasCollapsedInitials() && item().initials) {\n <span class=\"eds-menu-item__initials\">{{ item().initials }}</span>\n } @else if (hasIcon() && item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n } @else {\n <span class=\"eds-menu-item__initials\">{{ item().label?.charAt(0) }}</span>\n }\n\n @if (hasIconLabel()) {\n <span class=\"eds-menu-item__icon-label\">{{ item().label }}</span>\n }\n }\n</ng-template>\n\n", styles: [".eui-21 :host{display:block;width:100%}.eui-21 :host:focus-visible:not([readonly]){outline:2px solid var(--eds-c-border-primary)!important;outline-offset:-2px!important;transition:none}.eui-21 :host .eds-menu-item__content{display:flex;flex-direction:column;position:relative;width:100%}.eui-21 :host .eds-menu-item__link{display:flex;align-items:center;gap:var(--eds-sp-xs);padding:var(--eds-sp-xs) var(--eds-sp-l);font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-default);text-decoration:none;cursor:pointer;border:none;background:none;width:100%;min-height:40px;border-left:3px solid transparent;transition:background .15s ease,color .15s ease,border-color .15s ease}.eui-21 :host .eds-menu-item__link:hover:not(.eds-menu-item__link--disabled):not(.eds-menu-item__link--category){background:var(--eds-c-surface-elevation-sunken);color:var(--eds-c-foreground-primary)}.eui-21 :host .eds-menu-item__link--active:not(.eds-menu-item--disabled){background:var(--eds-c-surface-primary-subtle);color:var(--eds-c-foreground-primary);font-weight:var(--eds-f-w-semi-bold);border-left-color:var(--eds-c-border-primary)}.eui-21 :host .eds-menu-item__link--disabled{opacity:var(--eds-op-40);pointer-events:none}.eui-21 :host .eds-menu-item__link--category{cursor:default;font:var(--eds-f-label-s-semi-bold);color:var(--eds-c-foreground-subtler);text-transform:uppercase;letter-spacing:.02em;padding:var(--eds-sp-m) var(--eds-sp-l) var(--eds-sp-xs);min-height:auto;border-left-color:transparent}.eui-21 :host .eds-menu-item__link--category:hover{background:none}.eui-21 :host .eds-menu-item__link-start-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex-shrink:0;position:relative}.eui-21 :host .eds-menu-item__link-start-block:empty{display:none}.eui-21 :host .eds-menu-item__link-content-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex:1;min-width:0}.eui-21 :host .eds-menu-item__link-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eui-21 :host .eds-menu-item__link-label--category{font:var(--eds-f-label-s-semi-bold);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-menu-item__link-end-block{display:flex;align-items:center;gap:var(--eds-sp-xs);flex-shrink:0;margin-left:auto}.eui-21 :host .eds-menu-item__link-external-icon{flex-shrink:0;color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-menu-item__icon{flex-shrink:0}.eui-21 :host .eds-menu-item__marker{flex-shrink:0;width:var(--eds-sp-xs);height:var(--eds-sp-xs);border-radius:50%;background:currentColor}.eui-21 :host .eds-menu-item__marker ::ng-deep .eds-icon-svg{display:none}.eui-21 :host .eds-menu-item__initials{display:flex;align-items:center;justify-content:center;font:var(--eds-f-label-m-semi-bold);width:32px;height:32px;border-radius:var(--eds-br-s);background:var(--eds-c-surface-elevation-sunken);border:1px solid var(--eds-c-border-divider);flex-shrink:0}.eui-21 :host .eds-menu-item__icon-label{font:var(--eds-f-microcopy-2xs);color:var(--eds-c-foreground-subtler);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.eui-21 :host .eds-menu-item__badge--dot{position:absolute;top:-2px;right:-2px;pointer-events:none}.eui-21 :host .eds-menu-item__action-icon{opacity:0;transition:opacity .15s ease}.eui-21 :host .eds-menu-item__content:hover .eds-menu-item__action-icon{opacity:1}.eui-21 :host .eds-menu-item__expand-toggle{flex-shrink:0}.eui-21 :host .eds-menu-item--disabled{opacity:var(--eds-op-40);pointer-events:none}.eui-21 :host .eds-menu-item--expanded>.eds-menu-item__link{font-weight:var(--eds-f-w-medium)}.eui-21 :host .eds-menu-item--active>.eds-menu-item__link{background:var(--eds-c-surface-primary-subtle);color:var(--eds-c-foreground-primary);font-weight:var(--eds-f-w-semi-bold);border-left-color:var(--eds-c-border-primary)}.eui-21 :host.eds-menu-item--bold>.eds-menu-item__content>.eds-menu-item__link{font-weight:var(--eds-f-w-semi-bold)}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link{flex-direction:column;align-items:center;justify-content:center;padding:var(--eds-sp-xs);gap:var(--eds-sp-4xs);border-left:none;border-radius:var(--eds-br-s)}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link-content-block{display:none}.eui-21 :host.eds-menu-item--icon-label .eds-menu-item__link-end-block{display:none}.eui-21 .eds-menu--collapsed :host .eds-menu-item__content{position:relative}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link{justify-content:center;padding:var(--eds-sp-xs) var(--eds-sp-s);border-left:none;border-radius:var(--eds-br-s);margin:var(--eds-sp-4xs) 0}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link-content-block{display:none}.eui-21 .eds-menu--collapsed :host .eds-menu-item__link-end-block{display:none}\n"] }]
119
119
  }], propDecorators: { item: [{ type: i0.Input, args: [{ isSignal: true, alias: "item", required: true }] }], hasIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasIcon", required: false }] }], hasIconLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasIconLabel", required: false }] }], hasTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasTooltip", required: false }] }], hasTooltipOnExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasTooltipOnExpanded", required: false }] }], isCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCollapsed", required: false }] }], hasCollapsedInitials: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasCollapsedInitials", required: false }] }], hasBoldRootLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBoldRootLevel", required: false }] }], hasExpandIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasExpandIcon", required: false }] }], itemClick: [{ type: i0.Output, args: ["itemClick"] }], expandToggle: [{ type: i0.Output, args: ["expandToggle"] }] } });
120
120
 
121
121
  class EdsMenu {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-menu.mjs","sources":["../../eds-menu/eds-menu-item.ts","../../eds-menu/eds-menu-item.html","../../eds-menu/eds-menu.ts","../../eds-menu/eds-menu.html","../../eds-menu/index.ts","../../eds-menu/eui-eds-eds-menu.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n computed,\n booleanAttribute,\n ElementRef,\n inject,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { EDS_ICON } from '@eui/eds/eds-icon';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_BADGE } from '@eui/eds/eds-badge';\nimport { EdsMenuItem } from './eds-menu-item.model';\n\n@Component({\n selector: 'eds-menu-item',\n templateUrl: './eds-menu-item.html',\n styleUrl: './eds-menu-item.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, RouterLink, RouterLinkActive, ...EDS_ICON, ...EDS_ICON_BUTTON, ...EDS_BADGE],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'item()?.e2eAttr || \"eds-menu-item\"',\n '[attr.role]': '\"treeitem\"',\n '[attr.tabindex]': '\"-1\"',\n '[attr.aria-haspopup]': 'item()?.children?.length ? true : undefined',\n '[attr.aria-expanded]': 'item()?.children ? !!item()?.expanded : undefined',\n '[attr.aria-disabled]': 'item()?.disabled || undefined',\n },\n})\nexport class EdsMenuItemComponent implements FocusableOption {\n /** The menu item data model. */\n item = input.required<EdsMenuItem>();\n\n /** Whether to display icon. */\n hasIcon = input(false, { transform: booleanAttribute });\n\n /** Whether to display icon with label in collapsed mode. */\n hasIconLabel = input(false, { transform: booleanAttribute });\n\n /** Whether tooltips are enabled. */\n hasTooltip = input(false, { transform: booleanAttribute });\n\n /** Whether tooltips are shown when expanded. */\n hasTooltipOnExpanded = input(false, { transform: booleanAttribute });\n\n /** Whether the menu is collapsed. */\n isCollapsed = input(false, { transform: booleanAttribute });\n\n /** Whether to show initials in collapsed mode. */\n hasCollapsedInitials = input(false, { transform: booleanAttribute });\n\n /** Whether root-level items should be bold. */\n hasBoldRootLevel = input(false, { transform: booleanAttribute });\n\n /** Whether to show the expand/collapse icon. */\n hasExpandIcon = input(true, { transform: booleanAttribute });\n\n /** Emitted when the item is clicked. */\n itemClick = output<EdsMenuItem>();\n\n /** Emitted when expand/collapse is toggled. */\n expandToggle = output<EdsMenuItem>();\n\n hostClasses = computed(() => {\n const item = this.item();\n return [\n 'eds-menu-item',\n this.isCollapsed() && this.hasIconLabel() ? 'eds-menu-item--icon-label' : '',\n !item?.parent && this.hasBoldRootLevel() ? 'eds-menu-item--bold' : '',\n ].join(' ').trim();\n });\n\n /** Whether this is a non-navigable label/category item. */\n protected isLabelItem = computed(() => {\n const item = this.item();\n return !item.url && !item.urlExternal && !item.command && !item.children && !item.link;\n });\n\n /** Whether this is a URL-navigable or expandable item. */\n protected isUrlItem = computed(() => {\n const item = this.item();\n return (item.url || item.urlExternal || item.children || item.command) && !item.link;\n });\n\n /** Whether this is a link-mode item. */\n protected isLinkItem = computed(() => {\n return !this.isUrlItem() && !this.isLabelItem();\n });\n\n /** Tooltip text to display. */\n protected tooltipText = computed(() => {\n const item = this.item();\n if (!this.hasTooltip()) {\n return null;\n }\n if (this.isCollapsed()) {\n return item.tooltip || item.label || null;\n }\n if (this.hasTooltipOnExpanded()) {\n return item.tooltip || item.label || null;\n }\n return null;\n });\n\n elementRef = inject(ElementRef);\n\n /** FocusableOption — focuses the host element. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /** Scroll this element into view. */\n scrollIntoView(): void {\n this.elementRef.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n\n protected onClick(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.itemClick.emit(this.item());\n }\n\n protected onExpandToggle(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.expandToggle.emit(this.item());\n }\n\n protected onActionIconClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.item().actionIcon?.action?.(event);\n }\n}\n","@if (isLabelItem()) {\n <!-- Category / label-only item (non-navigable) -->\n <li role=\"none\" class=\"eds-menu-item__content eds-menu-item__content--category\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [attr.title]=\"tooltipText()\">\n <span class=\"eds-menu-item__link eds-menu-item__link--category\" (click)=\"onClick($event)\">\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n </span>\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label eds-menu-item__link-label--category\">{{ item().label }}</span>\n </span>\n </span>\n </li>\n} @else {\n <!-- Navigable / expandable item -->\n <li role=\"none\" class=\"eds-menu-item__content\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [class.eds-menu-item--expanded]=\"item().expanded\"\n [class.eds-menu-item--active]=\"item().active\">\n\n @if (item().url && !item().urlExternal) {\n <!-- Internal router link -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n [routerLink]=\"item().url\"\n [queryParams]=\"item().queryParams\"\n routerLinkActive=\"eds-menu-item__link--active\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n } @else {\n <!-- External link / command / expandable -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n href=\"javascript:void(0)\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n }\n\n <!-- Projected child list -->\n <ng-content />\n </li>\n}\n\n<!-- LINK CONTENT TEMPLATE -->\n<ng-template #linkContent>\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n @if (isCollapsed() && item().tagLabel) {\n <eds-badge class=\"eds-menu-item__badge--dot\" [color]=\"$any(item().tagTypeClass || '')\" iconOnly />\n }\n </span>\n\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label\">{{ item().label }}</span>\n @if (item().urlExternal && item().urlExternalTarget === '_blank') {\n <eds-icon class=\"eds-menu-item__link-external-icon\" icon=\"arrow-square-out:core\" size=\"xs\" />\n }\n </span>\n\n <span class=\"eds-menu-item__link-end-block\">\n @if (item().tagLabel && !isCollapsed()) {\n <eds-badge [color]=\"$any(item().tagTypeClass || '')\" size=\"s\">{{ item().tagLabel }}</eds-badge>\n }\n\n @if (item().actionIcon) {\n <button edsIconButton\n class=\"eds-menu-item__action-icon\"\n [icon]=\"item().actionIcon!.icon\"\n [ariaLabel]=\"item().actionIcon!.label || 'Action'\"\n size=\"xs\"\n (click)=\"onActionIconClick($event)\">\n </button>\n }\n\n @if (hasExpandIcon() && item().children?.length) {\n <button edsIconButton\n class=\"eds-menu-item__expand-toggle\"\n [icon]=\"item().expanded ? 'caret-up' : 'caret-down'\"\n [ariaLabel]=\"item().expanded ? 'Collapse' : 'Expand'\"\n size=\"xs\"\n rounded\n (click)=\"onExpandToggle($event)\">\n </button>\n }\n </span>\n</ng-template>\n\n<!-- ICON BLOCK TEMPLATE -->\n<ng-template #iconBlock>\n @if (!isCollapsed()) {\n @if (hasIcon()) {\n @if (item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else {\n <!-- Collapsed mode -->\n @if (hasCollapsedInitials() && item().initials) {\n <span class=\"eds-menu-item__initials\">{{ item().initials }}</span>\n } @else if (hasIcon() && item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n } @else {\n <span class=\"eds-menu-item__initials\">{{ item().label?.charAt(0) }}</span>\n }\n\n @if (hasIconLabel()) {\n <span class=\"eds-menu-item__icon-label\">{{ item().label }}</span>\n }\n }\n</ng-template>\n\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n computed,\n booleanAttribute,\n effect,\n signal,\n viewChildren,\n viewChild,\n ElementRef,\n inject,\n OnInit,\n OnDestroy,\n AfterViewInit,\n} from '@angular/core';\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EdsMenuItemComponent } from './eds-menu-item';\nimport { EdsMenuItem } from './eds-menu-item.model';\nimport { EDS_ICON } from '@eui/eds/eds-icon';\n\n@Component({\n selector: 'eds-menu',\n templateUrl: './eds-menu.html',\n styleUrl: './eds-menu.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, EdsMenuItemComponent, ...EDS_ICON],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': '\"eds-menu\"',\n role: 'navigation',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class EdsMenu implements OnInit, OnDestroy, AfterViewInit {\n protected readonly menuItems = viewChildren(EdsMenuItemComponent);\n protected readonly filterInput = viewChild('filterInput', { read: ElementRef });\n\n /** Hierarchical array of menu items to display. */\n items = input<EdsMenuItem[]>([]);\n\n /** Label for the search filter input. */\n searchFilterLabel = input('Search filter');\n\n /** URL fragment identifier for internal navigation. */\n fragmentId = input<string | undefined>(undefined);\n\n /** Current filter value for programmatic filtering. */\n filterValue = input('');\n\n /** Collapses the menu to icon-only state. */\n isCollapsed = input(false, { transform: booleanAttribute });\n\n /** Shows initials when collapsed (instead of icons). */\n hasCollapsedInitials = input(false, { transform: booleanAttribute });\n\n /** Enables the search filter input. */\n hasFilter = input(false, { transform: booleanAttribute });\n\n /** Shows icons for menu items. */\n hasIcons = input(false, { transform: booleanAttribute });\n\n /** Shows labels underneath icons in collapsed mode. */\n hasIconsLabels = input(false, { transform: booleanAttribute });\n\n /** Alias for hasIconsLabels — shows labels underneath icons in collapsed mode. */\n hasCollapsedLabels = input(false, { transform: booleanAttribute });\n\n /** Enables tooltips on menu items (shown in collapsed mode). */\n hasTooltip = input(true, { transform: booleanAttribute });\n\n /** Shows tooltips even when menu is expanded. */\n hasTooltipOnExpanded = input(false, { transform: booleanAttribute });\n\n /** Only shows tooltip from the tooltip property (not auto-generated from label) when expanded. */\n hasTooltipOnlyOnExpanded = input(false, { transform: booleanAttribute });\n\n /** Expands all items that do not have an explicit expanded property. */\n expandAllItems = input(false, { transform: booleanAttribute });\n\n /** Applies flat styling without hierarchical indentation. */\n isFlat = input(false, { transform: booleanAttribute });\n\n /** Automatically scrolls to the active menu item on route changes. */\n hasScrollToItem = input(false, { transform: booleanAttribute });\n\n /** Applies bold font weight to root-level menu items. */\n hasBoldRootLevel = input(false, { transform: booleanAttribute });\n\n /** Emits true when any menu item is clicked. */\n isClick = output<boolean>();\n\n /** Emits the clicked menu item. */\n itemClick = output<EdsMenuItem>();\n\n /** Emits when a menu item's expand state is toggled. */\n expandToggle = output<EdsMenuItem>();\n\n /** Internal configured items with parent refs, visibility, and filtering applied. */\n protected internalItems = signal<EdsMenuItem[]>([]);\n\n /** Whether expand icons should be shown (hidden during filter). */\n protected hasExpandIcon = signal(true);\n\n hostClasses = computed(() => {\n return [\n 'eds-menu',\n this.isCollapsed() ? 'eds-menu--collapsed' : '',\n !this.hasIcons() ? 'eds-menu--no-icons' : '',\n this.isFlat() ? 'eds-menu--flat' : '',\n ].join(' ').trim();\n });\n\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private subscription: Subscription | undefined;\n private focusKeyManager: FocusKeyManager<EdsMenuItemComponent> | undefined;\n\n constructor() {\n // Sync items input → internal state\n effect(() => {\n const items = this.items();\n const expandAll = this.expandAllItems();\n const configured = this.configureItems([...items], undefined, expandAll);\n // Try to expand to current route\n const currentUrl = this.router.url;\n const relevant = this.findMostRelevantItem(currentUrl, configured);\n if (relevant) {\n this.expandToItem(relevant);\n }\n this.internalItems.set(configured);\n });\n\n // Sync filterValue input → filtering\n effect(() => {\n const fv = this.filterValue();\n const hasFilterInput = this.hasFilter();\n if (hasFilterInput && fv) {\n this.applyFilter(fv);\n }\n });\n }\n\n ngOnInit(): void {\n this.subscription = this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe((event: NavigationEnd) => {\n if (this.hasScrollToItem()) {\n this.scrollToItem(event.url);\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initFocusKeyManager();\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n /** Keyboard navigation handler — ArrowUp/Down for linear, ArrowRight to expand, ArrowLeft to collapse, Enter to activate. */\n protected onKeydown(event: KeyboardEvent): void {\n if (!this.focusKeyManager) {\n return;\n }\n\n // Sync active item from DOM focus if FocusKeyManager lost track\n if (!this.focusKeyManager.activeItem) {\n const focused = this.menuItems().find(mi =>\n mi.elementRef.nativeElement.contains(document.activeElement),\n );\n if (focused) {\n this.focusKeyManager.updateActiveItem(focused);\n }\n }\n\n const activeItem = this.focusKeyManager.activeItem;\n\n switch (event.key) {\n case 'Enter':\n case ' ': {\n if (activeItem && !activeItem.item()?.disabled) {\n this.onItemClick(activeItem.item());\n event.preventDefault();\n }\n break;\n }\n case 'ArrowRight': {\n if (activeItem?.item()?.children) {\n if (!activeItem.item().expanded) {\n // Closed node: open it\n this.onExpandToggle(activeItem.item());\n } else {\n // Open node: move focus to first child\n const firstChildComp = this.menuItems().find(mi => mi.item()?.parent?.id === activeItem.item().id);\n if (firstChildComp) {\n this.focusKeyManager.setActiveItem(firstChildComp);\n }\n }\n event.preventDefault();\n }\n break;\n }\n case 'ArrowLeft': {\n if (activeItem?.item()?.children && activeItem.item().expanded) {\n // Open node: close it\n this.onExpandToggle(activeItem.item());\n event.preventDefault();\n } else if (activeItem?.item()?.parent) {\n // Child or closed node: move to parent\n const parentComp = this.menuItems().find(mi => mi.item()?.id === activeItem.item().parent?.id);\n if (parentComp) {\n this.focusKeyManager.setActiveItem(parentComp);\n event.preventDefault();\n }\n }\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.focusKeyManager.setNextItemActive();\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.focusKeyManager.setPreviousItemActive();\n break;\n }\n case 'Home': {\n event.preventDefault();\n this.focusKeyManager.setFirstItemActive();\n break;\n }\n case 'End': {\n event.preventDefault();\n this.focusKeyManager.setLastItemActive();\n break;\n }\n default: {\n this.focusKeyManager.onKeydown(event);\n break;\n }\n }\n }\n\n protected onItemClick(item: EdsMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget || '_blank');\n } else if (item.url) {\n this.router.navigate([item.url], {\n relativeTo: this.route,\n fragment: this.fragmentId(),\n queryParams: item.queryParams,\n });\n } else if (typeof item.command === 'function') {\n item.command();\n } else {\n this.onExpandToggle(item);\n }\n }\n\n this.isClick.emit(true);\n this.itemClick.emit(item);\n }\n\n protected onExpandToggle(item: EdsMenuItem): void {\n if (item.children) {\n item.expanded = !item.expanded;\n this.expandToggle.emit(item);\n // Trigger change detection by updating the signal\n this.internalItems.set([...this.internalItems()]);\n // Re-init FocusKeyManager after DOM updates\n setTimeout(() => this.initFocusKeyManager());\n }\n }\n\n protected onFilter(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.applyFilter(value);\n }\n\n protected onFilterClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n protected shouldRenderChild(item: EdsMenuItem): boolean {\n return !!(item?.children && (item.expanded || (this.hasFilter() && item.filtered && this.isFilterActive())));\n }\n\n protected trackById(index: number, item: EdsMenuItem): string {\n return item.id || item.label || String(index);\n }\n\n private initFocusKeyManager(): void {\n const items = this.menuItems();\n if (items.length > 0) {\n this.focusKeyManager = new FocusKeyManager(items).withWrap();\n }\n }\n\n private applyFilter(value: string): void {\n const items = this.filterMenuItems(this.internalItems(), value);\n this.hasExpandIcon.set(!value);\n this.internalItems.set(items);\n }\n\n private isFilterActive(): boolean {\n return (this.filterInput()?.nativeElement?.value?.length ?? 0) > 0;\n }\n\n private filterMenuItems(items: EdsMenuItem[], filterValue: string): EdsMenuItem[] {\n return items?.map((item: EdsMenuItem) => {\n const found = item.label?.toLowerCase().indexOf(filterValue.toLowerCase()) !== -1;\n if (item.children) {\n item.children = this.filterMenuItems(item.children, filterValue);\n item.filtered = item.children.some(child => child.filtered);\n } else {\n item.filtered = found;\n }\n return item;\n }) || [];\n }\n\n private configureItems(items: EdsMenuItem[], parent?: EdsMenuItem, expandAll?: boolean): EdsMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n item.children = this.configureItems(item.children, item, expandAll);\n if (expandAll && item.expanded === undefined) {\n item.expanded = true;\n }\n }\n if (parent) {\n item.parent = parent;\n }\n if (!item.id) {\n item.id = crypto.randomUUID();\n }\n if (item.label && this.hasCollapsedInitials()) {\n const words = item.label.split(' ');\n item.initials = words.length > 1\n ? `${words[0].charAt(0)}${words[1].charAt(0)}`\n : item.label.substring(0, 2);\n }\n item.visible = item.visible ?? true;\n item.filtered = item.filtered ?? true;\n return item;\n }) || [];\n }\n\n private findMostRelevantItem(url: string, items: EdsMenuItem[], relevantItem?: EdsMenuItem): EdsMenuItem | undefined {\n if (!items) {\n return undefined;\n }\n for (const item of items) {\n if (item.url && url.indexOf(item.url) > -1) {\n if (!relevantItem || url.replace(item.url, '').length < url.replace(relevantItem.url!, '').length) {\n relevantItem = item;\n }\n }\n if (item.children) {\n relevantItem = this.findMostRelevantItem(url, item.children, relevantItem);\n }\n }\n return relevantItem;\n }\n\n private expandToItem(item: EdsMenuItem): void {\n if (item.parent) {\n item.parent.expanded = true;\n this.expandToItem(item.parent);\n }\n }\n\n private scrollToItem(url: string): void {\n const item = this.findMostRelevantItem(url, this.internalItems());\n if (item) {\n this.expandToItem(item);\n this.internalItems.set([...this.internalItems()]);\n setTimeout(() => {\n const menuItemComp = this.menuItems()?.find(mi => mi.item()?.id === item.id);\n if (menuItemComp) {\n menuItemComp.scrollIntoView();\n }\n }, 300);\n }\n }\n}\n","@if (hasFilter()) {\n <div class=\"eds-menu-filter\" [class.eds-menu-filter--collapsed]=\"isCollapsed()\" (click)=\"onFilterClick($event)\">\n <div class=\"eds-menu-filter__input-wrapper\">\n <eds-icon class=\"eds-menu-filter__icon\" icon=\"magnifying-glass:core\" size=\"s\" />\n <input\n #filterInput\n class=\"eds-menu-filter__input\"\n type=\"text\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel()\"\n [attr.aria-label]=\"searchFilterLabel()\"\n [value]=\"filterValue()\" />\n </div>\n </div>\n}\n\n<ul class=\"eds-menu__list\" role=\"tree\" aria-orientation=\"vertical\" tabindex=\"0\">\n @for (item of internalItems(); track trackById($index, item)) {\n <ng-container *ngTemplateOutlet=\"menuItemTpl; context: { $implicit: item }\"></ng-container>\n }\n</ul>\n\n<ng-template #menuItemTpl let-item>\n @if (item.visible && item.filtered) {\n <eds-menu-item\n [item]=\"item\"\n [hasIcon]=\"hasIcons()\"\n [hasIconLabel]=\"hasIconsLabels() || hasCollapsedLabels()\"\n [hasTooltip]=\"hasTooltip()\"\n [hasTooltipOnExpanded]=\"hasTooltipOnExpanded()\"\n [isCollapsed]=\"isCollapsed()\"\n [hasCollapsedInitials]=\"hasCollapsedInitials()\"\n [hasBoldRootLevel]=\"hasBoldRootLevel()\"\n [hasExpandIcon]=\"hasExpandIcon()\"\n (itemClick)=\"onItemClick($event)\"\n (expandToggle)=\"onExpandToggle($event)\">\n @if (shouldRenderChild(item)) {\n <ul class=\"eds-menu__list eds-menu__sublist\" role=\"group\" [attr.aria-label]=\"item.label\">\n @for (child of item.children; track trackById($index, child)) {\n <ng-container *ngTemplateOutlet=\"menuItemTpl; context: { $implicit: child }\"></ng-container>\n }\n </ul>\n }\n </eds-menu-item>\n }\n</ng-template>\n","import { EdsMenu } from './eds-menu';\nimport { EdsMenuItemComponent } from './eds-menu-item';\n\nexport { EdsMenu };\nexport { EdsMenuItemComponent };\nexport { EdsMenuItem } from './eds-menu-item.model';\n\n/** Convenience array for importing all eds-menu components. */\nexport const EDS_MENU = [EdsMenu, EdsMenuItemComponent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;MAkCa,oBAAoB,CAAA;AAhBjC,IAAA,WAAA,GAAA;;QAkBI,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAe;;QAGpC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGvD,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,KAAK,oFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG5D,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG1D,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,KAAK,4FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGpE,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG3D,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,KAAK,4FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGpE,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,KAAK,wFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGhE,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,IAAI,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG5D,IAAA,CAAA,SAAS,GAAG,MAAM,EAAe;;QAGjC,IAAA,CAAA,YAAY,GAAG,MAAM,EAAe;AAEpC,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AACxB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACxB,OAAO;gBACH,eAAe;AACf,gBAAA,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,2BAA2B,GAAG,EAAE;AAC5E,gBAAA,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,GAAG,qBAAqB,GAAG,EAAE;AACxE,aAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;QACtB,CAAC;wFAAC;;AAGQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAClC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI;QAC1F,CAAC;wFAAC;;AAGQ,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI;QACxF,CAAC;sFAAC;;AAGQ,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YACjC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QACnD,CAAC;uFAAC;;AAGQ,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAClC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACpB,gBAAA,OAAO,IAAI;YACf;AACA,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACpB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAC7C;AACA,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC7B,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAC7C;AACA,YAAA,OAAO,IAAI;QACf,CAAC;wFAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AA6BlC,IAAA;;IA1BG,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;IACzC;;IAGA,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC1F;AAEU,IAAA,OAAO,CAAC,KAAY,EAAA;QAC1B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACpC;AAEU,IAAA,cAAc,CAAC,KAAY,EAAA;QACjC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACvC;AAEU,IAAA,iBAAiB,CAAC,KAAiB,EAAA;QACzC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3C;8GAvGS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,uwDClCjC,uwLAiIA,EAAA,MAAA,EAAA,CAAA,m/IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1Gc,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,kPAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAW/C,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhBhC,SAAS;+BACI,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,WACtC,CAAC,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,QAAQ,EAAE,GAAG,eAAe,EAAE,GAAG,SAAS,CAAC,EAAA,IAAA,EAClG;AACF,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,iBAAiB,EAAE,oCAAoC;AACvD,wBAAA,aAAa,EAAE,YAAY;AAC3B,wBAAA,iBAAiB,EAAE,MAAM;AACzB,wBAAA,sBAAsB,EAAE,6CAA6C;AACrE,wBAAA,sBAAsB,EAAE,mDAAmD;AAC3E,wBAAA,sBAAsB,EAAE,+BAA+B;AAC1D,qBAAA,EAAA,QAAA,EAAA,uwLAAA,EAAA,MAAA,EAAA,CAAA,m/IAAA,CAAA,EAAA;;;MEQQ,OAAO,CAAA;AAoFhB,IAAA,WAAA,GAAA;QAnFmB,IAAA,CAAA,SAAS,GAAG,YAAY,CAAC,oBAAoB;sFAAC;QAC9C,IAAA,CAAA,WAAW,GAAG,SAAS,CAAC,aAAa,mFAAI,IAAI,EAAE,UAAU,EAAA,CAAG;;QAG/E,IAAA,CAAA,KAAK,GAAG,KAAK,CAAgB,EAAE;kFAAC;;QAGhC,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,eAAe;8FAAC;;QAG1C,IAAA,CAAA,UAAU,GAAG,KAAK,CAAqB,SAAS;uFAAC;;QAGjD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,EAAE;wFAAC;;QAGvB,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG3D,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,KAAK,4FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGpE,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGzD,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGxD,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,KAAK,sFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG9D,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,KAAK,0FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGlE,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGzD,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,KAAK,4FAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGpE,IAAA,CAAA,wBAAwB,GAAG,KAAK,CAAC,KAAK,gGAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGxE,IAAA,CAAA,cAAc,GAAG,KAAK,CAAC,KAAK,sFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG9D,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,8EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGtD,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,KAAK,uFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAG/D,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAC,KAAK,wFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;QAGhE,IAAA,CAAA,OAAO,GAAG,MAAM,EAAW;;QAG3B,IAAA,CAAA,SAAS,GAAG,MAAM,EAAe;;QAGjC,IAAA,CAAA,YAAY,GAAG,MAAM,EAAe;;QAG1B,IAAA,CAAA,aAAa,GAAG,MAAM,CAAgB,EAAE;0FAAC;;QAGzC,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,IAAI;0FAAC;AAEtC,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YACxB,OAAO;gBACH,UAAU;gBACV,IAAI,CAAC,WAAW,EAAE,GAAG,qBAAqB,GAAG,EAAE;gBAC/C,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,oBAAoB,GAAG,EAAE;gBAC5C,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,GAAG,EAAE;AACxC,aAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;QACtB,CAAC;wFAAC;AAEM,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;;QAMlC,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE;AACvC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC;;AAExE,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC;YAClE,IAAI,QAAQ,EAAE;AACV,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC/B;AACA,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;AACtC,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;AAC7B,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE;AACvC,YAAA,IAAI,cAAc,IAAI,EAAE,EAAE;AACtB,gBAAA,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACxB;AACJ,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;aAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,aAAa,CAAC;AACpD,aAAA,SAAS,CAAC,CAAC,KAAoB,KAAI;AAChC,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AACxB,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;YAChC;AACJ,QAAA,CAAC,CAAC;IACV;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,mBAAmB,EAAE;IAC9B;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;IACpC;;AAGU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACvB;QACJ;;AAGA,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,IACpC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAC/D;YACD,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAClD;QACJ;AAEA,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU;AAElD,QAAA,QAAQ,KAAK,CAAC,GAAG;AACb,YAAA,KAAK,OAAO;YACZ,KAAK,GAAG,EAAE;gBACN,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE;oBAC5C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBACnC,KAAK,CAAC,cAAc,EAAE;gBAC1B;gBACA;YACJ;YACA,KAAK,YAAY,EAAE;AACf,gBAAA,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE;oBAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;;wBAE7B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBAC1C;yBAAO;;AAEH,wBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;wBAClG,IAAI,cAAc,EAAE;AAChB,4BAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,cAAc,CAAC;wBACtD;oBACJ;oBACA,KAAK,CAAC,cAAc,EAAE;gBAC1B;gBACA;YACJ;YACA,KAAK,WAAW,EAAE;AACd,gBAAA,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;;oBAE5D,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBACtC,KAAK,CAAC,cAAc,EAAE;gBAC1B;AAAO,qBAAA,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE;;AAEnC,oBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC9F,IAAI,UAAU,EAAE;AACZ,wBAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC;wBAC9C,KAAK,CAAC,cAAc,EAAE;oBAC1B;gBACJ;gBACA;YACJ;YACA,KAAK,WAAW,EAAE;gBACd,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE;gBACxC;YACJ;YACA,KAAK,SAAS,EAAE;gBACZ,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE;gBAC5C;YACJ;YACA,KAAK,MAAM,EAAE;gBACT,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;gBACzC;YACJ;YACA,KAAK,KAAK,EAAE;gBACR,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE;gBACxC;YACJ;YACA,SAAS;AACL,gBAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC;gBACrC;YACJ;;IAER;AAEU,IAAA,WAAW,CAAC,IAAiB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC;YACrE;AAAO,iBAAA,IAAI,IAAI,CAAC,GAAG,EAAE;gBACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBAC7B,UAAU,EAAE,IAAI,CAAC,KAAK;AACtB,oBAAA,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;AAChC,iBAAA,CAAC;YACN;AAAO,iBAAA,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;gBAC3C,IAAI,CAAC,OAAO,EAAE;YAClB;iBAAO;AACH,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC7B;QACJ;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B;AAEU,IAAA,cAAc,CAAC,IAAiB,EAAA;AACtC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC9B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;AAE5B,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;;YAEjD,UAAU,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChD;IACJ;AAEU,IAAA,QAAQ,CAAC,KAAY,EAAA;AAC3B,QAAA,MAAM,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK;AACtD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAC3B;AAEU,IAAA,aAAa,CAAC,KAAiB,EAAA;QACrC,KAAK,CAAC,eAAe,EAAE;IAC3B;AAEU,IAAA,iBAAiB,CAAC,IAAiB,EAAA;AACzC,QAAA,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAChH;IAEU,SAAS,CAAC,KAAa,EAAE,IAAiB,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IACjD;IAEQ,mBAAmB,GAAA;AACvB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9B,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;QAChE;IACJ;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;AAC7B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,CAAC;QAC/D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;IACjC;IAEQ,cAAc,GAAA;AAClB,QAAA,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;IACtE;IAEQ,eAAe,CAAC,KAAoB,EAAE,WAAmB,EAAA;AAC7D,QAAA,OAAO,KAAK,EAAE,GAAG,CAAC,CAAC,IAAiB,KAAI;AACpC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;AACjF,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC;AAChE,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC;YAC/D;iBAAO;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YACzB;AACA,YAAA,OAAO,IAAI;QACf,CAAC,CAAC,IAAI,EAAE;IACZ;AAEQ,IAAA,cAAc,CAAC,KAAoB,EAAE,MAAoB,EAAE,SAAmB,EAAA;AAClF,QAAA,OAAO,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,KAAI;AACvB,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC;gBACnE,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;AAC1C,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;gBACxB;YACJ;YACA,IAAI,MAAM,EAAE;AACR,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM;YACxB;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AACV,gBAAA,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE;YACjC;YACA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG;sBACzB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,EAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;sBAC1C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;YACpC;YACA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI;YACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI;AACrC,YAAA,OAAO,IAAI;QACf,CAAC,CAAC,IAAI,EAAE;IACZ;AAEQ,IAAA,oBAAoB,CAAC,GAAW,EAAE,KAAoB,EAAE,YAA0B,EAAA;QACtF,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,SAAS;QACpB;AACA,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACxC,gBAAA,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,GAAI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;oBAC/F,YAAY,GAAG,IAAI;gBACvB;YACJ;AACA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC;YAC9E;QACJ;AACA,QAAA,OAAO,YAAY;IACvB;AAEQ,IAAA,YAAY,CAAC,IAAiB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI;AAC3B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC;IACJ;AAEQ,IAAA,YAAY,CAAC,GAAW,EAAA;AAC5B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QACjE,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACjD,UAAU,CAAC,MAAK;gBACZ,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC5E,IAAI,YAAY,EAAE;oBACd,YAAY,CAAC,cAAc,EAAE;gBACjC;YACJ,CAAC,EAAE,GAAG,CAAC;QACX;IACJ;8GAjWS,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,wBAAA,EAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,cAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAC4B,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACE,UAAU,6CC1ChF,2iEA8CA,EAAA,MAAA,EAAA,CAAA,y5CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDdc,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,cAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAQvC,OAAO,EAAA,UAAA,EAAA,CAAA;kBAbnB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,QAAQ,CAAC,EAAA,IAAA,EACxD;AACF,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,iBAAiB,EAAE,YAAY;AAC/B,wBAAA,IAAI,EAAE,YAAY;AAClB,wBAAA,WAAW,EAAE,mBAAmB;AACnC,qBAAA,EAAA,QAAA,EAAA,2iEAAA,EAAA,MAAA,EAAA,CAAA,y5CAAA,CAAA,EAAA;AAG2C,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,oBAAoB,sEACrB,aAAa,EAAA,EAAA,GAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEnClF;MACa,QAAQ,GAAG,CAAC,OAAO,EAAE,oBAAoB;;ACRtD;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-eds-eds-menu.mjs","sources":["../../eds-menu/eds-menu-item.ts","../../eds-menu/eds-menu-item.html","../../eds-menu/eds-menu.ts","../../eds-menu/eds-menu.html","../../eds-menu/index.ts","../../eds-menu/eui-eds-eds-menu.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n computed,\n booleanAttribute,\n ElementRef,\n inject,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { EDS_ICON } from '@eui/eds/eds-icon';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_BADGE } from '@eui/eds/eds-badge';\nimport { EdsMenuItem } from './eds-menu-item.model';\n\n@Component({\n selector: 'eds-menu-item',\n templateUrl: './eds-menu-item.html',\n styleUrl: './eds-menu-item.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, RouterLink, RouterLinkActive, ...EDS_ICON, ...EDS_ICON_BUTTON, ...EDS_BADGE],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'item()?.e2eAttr || \"eds-menu-item\"',\n '[attr.role]': '\"treeitem\"',\n '[attr.tabindex]': '\"-1\"',\n '[attr.aria-haspopup]': 'item()?.children?.length ? true : undefined',\n '[attr.aria-expanded]': 'item()?.children ? !!item()?.expanded : undefined',\n '[attr.aria-disabled]': 'item()?.disabled || undefined',\n },\n})\nexport class EdsMenuItemComponent implements FocusableOption {\n /** The menu item data model. */\n item = input.required<EdsMenuItem>();\n\n /** Whether to display icon. */\n hasIcon = input(false, { transform: booleanAttribute });\n\n /** Whether to display icon with label in collapsed mode. */\n hasIconLabel = input(false, { transform: booleanAttribute });\n\n /** Whether tooltips are enabled. */\n hasTooltip = input(false, { transform: booleanAttribute });\n\n /** Whether tooltips are shown when expanded. */\n hasTooltipOnExpanded = input(false, { transform: booleanAttribute });\n\n /** Whether the menu is collapsed. */\n isCollapsed = input(false, { transform: booleanAttribute });\n\n /** Whether to show initials in collapsed mode. */\n hasCollapsedInitials = input(false, { transform: booleanAttribute });\n\n /** Whether root-level items should be bold. */\n hasBoldRootLevel = input(false, { transform: booleanAttribute });\n\n /** Whether to show the expand/collapse icon. */\n hasExpandIcon = input(true, { transform: booleanAttribute });\n\n /** Emitted when the item is clicked. */\n itemClick = output<EdsMenuItem>();\n\n /** Emitted when expand/collapse is toggled. */\n expandToggle = output<EdsMenuItem>();\n\n hostClasses = computed(() => {\n const item = this.item();\n return [\n 'eds-menu-item',\n this.isCollapsed() && this.hasIconLabel() ? 'eds-menu-item--icon-label' : '',\n !item?.parent && this.hasBoldRootLevel() ? 'eds-menu-item--bold' : '',\n ].join(' ').trim();\n });\n\n /** Whether this is a non-navigable label/category item. */\n protected isLabelItem = computed(() => {\n const item = this.item();\n return !item.url && !item.urlExternal && !item.command && !item.children && !item.link;\n });\n\n /** Whether this is a URL-navigable or expandable item. */\n protected isUrlItem = computed(() => {\n const item = this.item();\n return (item.url || item.urlExternal || item.children || item.command) && !item.link;\n });\n\n /** Whether this is a link-mode item. */\n protected isLinkItem = computed(() => {\n return !this.isUrlItem() && !this.isLabelItem();\n });\n\n /** Tooltip text to display. */\n protected tooltipText = computed(() => {\n const item = this.item();\n if (!this.hasTooltip()) {\n return null;\n }\n if (this.isCollapsed()) {\n return item.tooltip || item.label || null;\n }\n if (this.hasTooltipOnExpanded()) {\n return item.tooltip || item.label || null;\n }\n return null;\n });\n\n elementRef = inject(ElementRef);\n\n /** FocusableOption — focuses the host element. */\n focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /** Scroll this element into view. */\n scrollIntoView(): void {\n this.elementRef.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n\n protected onClick(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.itemClick.emit(this.item());\n }\n\n protected onExpandToggle(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.expandToggle.emit(this.item());\n }\n\n protected onActionIconClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopPropagation();\n this.item().actionIcon?.action?.(event);\n }\n}\n","@if (isLabelItem()) {\n <!-- Category / label-only item (non-navigable) -->\n <li role=\"none\" class=\"eds-menu-item__content eds-menu-item__content--category\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [attr.title]=\"tooltipText()\">\n <span class=\"eds-menu-item__link eds-menu-item__link--category\" (click)=\"onClick($event)\">\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n </span>\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label eds-menu-item__link-label--category\">{{ item().label }}</span>\n </span>\n </span>\n </li>\n} @else {\n <!-- Navigable / expandable item -->\n <li role=\"none\" class=\"eds-menu-item__content\"\n [class.eds-menu-item--disabled]=\"item().disabled\"\n [class.eds-menu-item--expanded]=\"item().expanded\"\n [class.eds-menu-item--active]=\"item().active\">\n\n @if (item().url && !item().urlExternal) {\n <!-- Internal router link -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n [routerLink]=\"item().url\"\n [queryParams]=\"item().queryParams\"\n routerLinkActive=\"eds-menu-item__link--active\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n } @else {\n <!-- External link / command / expandable -->\n <a class=\"eds-menu-item__link\"\n [class.eds-menu-item__link--active]=\"item().active\"\n [class.eds-menu-item__link--disabled]=\"item().disabled\"\n [class.eds-menu-item__link--has-sub]=\"item().children?.length\"\n href=\"javascript:void(0)\"\n [attr.title]=\"tooltipText()\"\n (click)=\"onClick($event)\">\n <ng-container *ngTemplateOutlet=\"linkContent\"></ng-container>\n </a>\n }\n\n <!-- Projected child list -->\n <ng-content />\n </li>\n}\n\n<!-- LINK CONTENT TEMPLATE -->\n<ng-template #linkContent>\n <span class=\"eds-menu-item__link-start-block\">\n <ng-container *ngTemplateOutlet=\"iconBlock\"></ng-container>\n @if (isCollapsed() && item().tagLabel) {\n <eds-badge class=\"eds-menu-item__badge--dot\" [color]=\"$any(item().tagTypeClass || '')\" iconOnly />\n }\n </span>\n\n <span class=\"eds-menu-item__link-content-block\">\n <span class=\"eds-menu-item__link-label\">{{ item().label }}</span>\n @if (item().urlExternal && item().urlExternalTarget === '_blank') {\n <eds-icon class=\"eds-menu-item__link-external-icon\" icon=\"arrow-square-out:core\" size=\"xs\" />\n }\n </span>\n\n <span class=\"eds-menu-item__link-end-block\">\n @if (item().tagLabel && !isCollapsed()) {\n <eds-badge [color]=\"$any(item().tagTypeClass || '')\" size=\"s\">{{ item().tagLabel }}</eds-badge>\n }\n\n @if (item().actionIcon) {\n <button edsIconButton\n class=\"eds-menu-item__action-icon\"\n [icon]=\"item().actionIcon!.icon\"\n [ariaLabel]=\"item().actionIcon!.label || 'Action'\"\n size=\"xs\"\n (click)=\"onActionIconClick($event)\">\n </button>\n }\n\n @if (hasExpandIcon() && item().children?.length) {\n <button edsIconButton\n class=\"eds-menu-item__expand-toggle\"\n [icon]=\"item().expanded ? 'caret-up' : 'caret-down'\"\n [ariaLabel]=\"item().expanded ? 'Collapse' : 'Expand'\"\n size=\"xs\"\n rounded\n (click)=\"onExpandToggle($event)\">\n </button>\n }\n </span>\n</ng-template>\n\n<!-- ICON BLOCK TEMPLATE -->\n<ng-template #iconBlock>\n @if (!isCollapsed()) {\n @if (hasIcon()) {\n @if (item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n }\n } @else {\n <!-- Collapsed mode -->\n @if (hasCollapsedInitials() && item().initials) {\n <span class=\"eds-menu-item__initials\">{{ item().initials }}</span>\n } @else if (hasIcon() && item().icon) {\n <eds-icon class=\"eds-menu-item__icon\" [icon]=\"item().icon!\" size=\"s\" />\n } @else if (item().hasMarker) {\n <eds-icon class=\"eds-menu-item__marker\" icon=\"dot:core\" size=\"xs\"\n [style.color]=\"'var(--eds-c-foreground-' + (item().markerTypeClass || 'primary') + ')'\" />\n } @else {\n <span class=\"eds-menu-item__initials\">{{ item().label?.charAt(0) }}</span>\n }\n\n @if (hasIconLabel()) {\n <span class=\"eds-menu-item__icon-label\">{{ item().label }}</span>\n }\n }\n</ng-template>\n\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n output,\n computed,\n booleanAttribute,\n effect,\n signal,\n viewChildren,\n viewChild,\n ElementRef,\n inject,\n OnInit,\n OnDestroy,\n AfterViewInit,\n} from '@angular/core';\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EdsMenuItemComponent } from './eds-menu-item';\nimport { EdsMenuItem } from './eds-menu-item.model';\nimport { EDS_ICON } from '@eui/eds/eds-icon';\n\n@Component({\n selector: 'eds-menu',\n templateUrl: './eds-menu.html',\n styleUrl: './eds-menu.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, EdsMenuItemComponent, ...EDS_ICON],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': '\"eds-menu\"',\n role: 'navigation',\n '(keydown)': 'onKeydown($event)',\n },\n})\nexport class EdsMenu implements OnInit, OnDestroy, AfterViewInit {\n protected readonly menuItems = viewChildren(EdsMenuItemComponent);\n protected readonly filterInput = viewChild('filterInput', { read: ElementRef });\n\n /** Hierarchical array of menu items to display. */\n items = input<EdsMenuItem[]>([]);\n\n /** Label for the search filter input. */\n searchFilterLabel = input('Search filter');\n\n /** URL fragment identifier for internal navigation. */\n fragmentId = input<string | undefined>(undefined);\n\n /** Current filter value for programmatic filtering. */\n filterValue = input('');\n\n /** Collapses the menu to icon-only state. */\n isCollapsed = input(false, { transform: booleanAttribute });\n\n /** Shows initials when collapsed (instead of icons). */\n hasCollapsedInitials = input(false, { transform: booleanAttribute });\n\n /** Enables the search filter input. */\n hasFilter = input(false, { transform: booleanAttribute });\n\n /** Shows icons for menu items. */\n hasIcons = input(false, { transform: booleanAttribute });\n\n /** Shows labels underneath icons in collapsed mode. */\n hasIconsLabels = input(false, { transform: booleanAttribute });\n\n /** Alias for hasIconsLabels — shows labels underneath icons in collapsed mode. */\n hasCollapsedLabels = input(false, { transform: booleanAttribute });\n\n /** Enables tooltips on menu items (shown in collapsed mode). */\n hasTooltip = input(true, { transform: booleanAttribute });\n\n /** Shows tooltips even when menu is expanded. */\n hasTooltipOnExpanded = input(false, { transform: booleanAttribute });\n\n /** Only shows tooltip from the tooltip property (not auto-generated from label) when expanded. */\n hasTooltipOnlyOnExpanded = input(false, { transform: booleanAttribute });\n\n /** Expands all items that do not have an explicit expanded property. */\n expandAllItems = input(false, { transform: booleanAttribute });\n\n /** Applies flat styling without hierarchical indentation. */\n isFlat = input(false, { transform: booleanAttribute });\n\n /** Automatically scrolls to the active menu item on route changes. */\n hasScrollToItem = input(false, { transform: booleanAttribute });\n\n /** Applies bold font weight to root-level menu items. */\n hasBoldRootLevel = input(false, { transform: booleanAttribute });\n\n /** Emits true when any menu item is clicked. */\n isClick = output<boolean>();\n\n /** Emits the clicked menu item. */\n itemClick = output<EdsMenuItem>();\n\n /** Emits when a menu item's expand state is toggled. */\n expandToggle = output<EdsMenuItem>();\n\n /** Internal configured items with parent refs, visibility, and filtering applied. */\n protected internalItems = signal<EdsMenuItem[]>([]);\n\n /** Whether expand icons should be shown (hidden during filter). */\n protected hasExpandIcon = signal(true);\n\n hostClasses = computed(() => {\n return [\n 'eds-menu',\n this.isCollapsed() ? 'eds-menu--collapsed' : '',\n !this.hasIcons() ? 'eds-menu--no-icons' : '',\n this.isFlat() ? 'eds-menu--flat' : '',\n ].join(' ').trim();\n });\n\n private router = inject(Router);\n private route = inject(ActivatedRoute);\n private subscription: Subscription | undefined;\n private focusKeyManager: FocusKeyManager<EdsMenuItemComponent> | undefined;\n\n constructor() {\n // Sync items input → internal state\n effect(() => {\n const items = this.items();\n const expandAll = this.expandAllItems();\n const configured = this.configureItems([...items], undefined, expandAll);\n // Try to expand to current route\n const currentUrl = this.router.url;\n const relevant = this.findMostRelevantItem(currentUrl, configured);\n if (relevant) {\n this.expandToItem(relevant);\n }\n this.internalItems.set(configured);\n });\n\n // Sync filterValue input → filtering\n effect(() => {\n const fv = this.filterValue();\n const hasFilterInput = this.hasFilter();\n if (hasFilterInput && fv) {\n this.applyFilter(fv);\n }\n });\n }\n\n ngOnInit(): void {\n this.subscription = this.router.events\n .pipe(filter(event => event instanceof NavigationEnd))\n .subscribe((event: NavigationEnd) => {\n if (this.hasScrollToItem()) {\n this.scrollToItem(event.url);\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.initFocusKeyManager();\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n }\n\n /** Keyboard navigation handler — ArrowUp/Down for linear, ArrowRight to expand, ArrowLeft to collapse, Enter to activate. */\n protected onKeydown(event: KeyboardEvent): void {\n if (!this.focusKeyManager) {\n return;\n }\n\n // Sync active item from DOM focus if FocusKeyManager lost track\n if (!this.focusKeyManager.activeItem) {\n const focused = this.menuItems().find(mi =>\n mi.elementRef.nativeElement.contains(document.activeElement),\n );\n if (focused) {\n this.focusKeyManager.updateActiveItem(focused);\n }\n }\n\n const activeItem = this.focusKeyManager.activeItem;\n\n switch (event.key) {\n case 'Enter':\n case ' ': {\n if (activeItem && !activeItem.item()?.disabled) {\n this.onItemClick(activeItem.item());\n event.preventDefault();\n }\n break;\n }\n case 'ArrowRight': {\n if (activeItem?.item()?.children) {\n if (!activeItem.item().expanded) {\n // Closed node: open it\n this.onExpandToggle(activeItem.item());\n } else {\n // Open node: move focus to first child\n const firstChildComp = this.menuItems().find(mi => mi.item()?.parent?.id === activeItem.item().id);\n if (firstChildComp) {\n this.focusKeyManager.setActiveItem(firstChildComp);\n }\n }\n event.preventDefault();\n }\n break;\n }\n case 'ArrowLeft': {\n if (activeItem?.item()?.children && activeItem.item().expanded) {\n // Open node: close it\n this.onExpandToggle(activeItem.item());\n event.preventDefault();\n } else if (activeItem?.item()?.parent) {\n // Child or closed node: move to parent\n const parentComp = this.menuItems().find(mi => mi.item()?.id === activeItem.item().parent?.id);\n if (parentComp) {\n this.focusKeyManager.setActiveItem(parentComp);\n event.preventDefault();\n }\n }\n break;\n }\n case 'ArrowDown': {\n event.preventDefault();\n this.focusKeyManager.setNextItemActive();\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n this.focusKeyManager.setPreviousItemActive();\n break;\n }\n case 'Home': {\n event.preventDefault();\n this.focusKeyManager.setFirstItemActive();\n break;\n }\n case 'End': {\n event.preventDefault();\n this.focusKeyManager.setLastItemActive();\n break;\n }\n default: {\n this.focusKeyManager.onKeydown(event);\n break;\n }\n }\n }\n\n protected onItemClick(item: EdsMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget || '_blank');\n } else if (item.url) {\n this.router.navigate([item.url], {\n relativeTo: this.route,\n fragment: this.fragmentId(),\n queryParams: item.queryParams,\n });\n } else if (typeof item.command === 'function') {\n item.command();\n } else {\n this.onExpandToggle(item);\n }\n }\n\n this.isClick.emit(true);\n this.itemClick.emit(item);\n }\n\n protected onExpandToggle(item: EdsMenuItem): void {\n if (item.children) {\n item.expanded = !item.expanded;\n this.expandToggle.emit(item);\n // Trigger change detection by updating the signal\n this.internalItems.set([...this.internalItems()]);\n // Re-init FocusKeyManager after DOM updates\n setTimeout(() => this.initFocusKeyManager());\n }\n }\n\n protected onFilter(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n this.applyFilter(value);\n }\n\n protected onFilterClick(event: MouseEvent): void {\n event.stopPropagation();\n }\n\n protected shouldRenderChild(item: EdsMenuItem): boolean {\n return !!(item?.children && (item.expanded || (this.hasFilter() && item.filtered && this.isFilterActive())));\n }\n\n protected trackById(index: number, item: EdsMenuItem): string {\n return item.id || item.label || String(index);\n }\n\n private initFocusKeyManager(): void {\n const items = this.menuItems();\n if (items.length > 0) {\n this.focusKeyManager = new FocusKeyManager(items).withWrap();\n }\n }\n\n private applyFilter(value: string): void {\n const items = this.filterMenuItems(this.internalItems(), value);\n this.hasExpandIcon.set(!value);\n this.internalItems.set(items);\n }\n\n private isFilterActive(): boolean {\n return (this.filterInput()?.nativeElement?.value?.length ?? 0) > 0;\n }\n\n private filterMenuItems(items: EdsMenuItem[], filterValue: string): EdsMenuItem[] {\n return items?.map((item: EdsMenuItem) => {\n const found = item.label?.toLowerCase().indexOf(filterValue.toLowerCase()) !== -1;\n if (item.children) {\n item.children = this.filterMenuItems(item.children, filterValue);\n item.filtered = item.children.some(child => child.filtered);\n } else {\n item.filtered = found;\n }\n return item;\n }) || [];\n }\n\n private configureItems(items: EdsMenuItem[], parent?: EdsMenuItem, expandAll?: boolean): EdsMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n item.children = this.configureItems(item.children, item, expandAll);\n if (expandAll && item.expanded === undefined) {\n item.expanded = true;\n }\n }\n if (parent) {\n item.parent = parent;\n }\n if (!item.id) {\n item.id = crypto.randomUUID();\n }\n if (item.label && this.hasCollapsedInitials()) {\n const words = item.label.split(' ');\n item.initials = words.length > 1\n ? `${words[0].charAt(0)}${words[1].charAt(0)}`\n : item.label.substring(0, 2);\n }\n item.visible = item.visible ?? true;\n item.filtered = item.filtered ?? true;\n return item;\n }) || [];\n }\n\n private findMostRelevantItem(url: string, items: EdsMenuItem[], relevantItem?: EdsMenuItem): EdsMenuItem | undefined {\n if (!items) {\n return undefined;\n }\n for (const item of items) {\n if (item.url && url.indexOf(item.url) > -1) {\n if (!relevantItem || url.replace(item.url, '').length < url.replace(relevantItem.url!, '').length) {\n relevantItem = item;\n }\n }\n if (item.children) {\n relevantItem = this.findMostRelevantItem(url, item.children, relevantItem);\n }\n }\n return relevantItem;\n }\n\n private expandToItem(item: EdsMenuItem): void {\n if (item.parent) {\n item.parent.expanded = true;\n this.expandToItem(item.parent);\n }\n }\n\n private scrollToItem(url: string): void {\n const item = this.findMostRelevantItem(url, this.internalItems());\n if (item) {\n this.expandToItem(item);\n this.internalItems.set([...this.internalItems()]);\n setTimeout(() => {\n const menuItemComp = this.menuItems()?.find(mi => mi.item()?.id === item.id);\n if (menuItemComp) {\n menuItemComp.scrollIntoView();\n }\n }, 300);\n }\n }\n}\n","@if (hasFilter()) {\n <div class=\"eds-menu-filter\" [class.eds-menu-filter--collapsed]=\"isCollapsed()\" (click)=\"onFilterClick($event)\">\n <div class=\"eds-menu-filter__input-wrapper\">\n <eds-icon class=\"eds-menu-filter__icon\" icon=\"magnifying-glass:core\" size=\"s\" />\n <input\n #filterInput\n class=\"eds-menu-filter__input\"\n type=\"text\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel()\"\n [attr.aria-label]=\"searchFilterLabel()\"\n [value]=\"filterValue()\" />\n </div>\n </div>\n}\n\n<ul class=\"eds-menu__list\" role=\"tree\" aria-orientation=\"vertical\" tabindex=\"0\">\n @for (item of internalItems(); track trackById($index, item)) {\n <ng-container *ngTemplateOutlet=\"menuItemTpl; context: { $implicit: item }\"></ng-container>\n }\n</ul>\n\n<ng-template #menuItemTpl let-item>\n @if (item.visible && item.filtered) {\n <eds-menu-item\n [item]=\"item\"\n [hasIcon]=\"hasIcons()\"\n [hasIconLabel]=\"hasIconsLabels() || hasCollapsedLabels()\"\n [hasTooltip]=\"hasTooltip()\"\n [hasTooltipOnExpanded]=\"hasTooltipOnExpanded()\"\n [isCollapsed]=\"isCollapsed()\"\n [hasCollapsedInitials]=\"hasCollapsedInitials()\"\n [hasBoldRootLevel]=\"hasBoldRootLevel()\"\n [hasExpandIcon]=\"hasExpandIcon()\"\n (itemClick)=\"onItemClick($event)\"\n (expandToggle)=\"onExpandToggle($event)\">\n @if (shouldRenderChild(item)) {\n <ul class=\"eds-menu__list eds-menu__sublist\" role=\"group\" [attr.aria-label]=\"item.label\">\n @for (child of item.children; track trackById($index, child)) {\n <ng-container *ngTemplateOutlet=\"menuItemTpl; context: { $implicit: child }\"></ng-container>\n }\n </ul>\n }\n </eds-menu-item>\n }\n</ng-template>\n","import { EdsMenu } from './eds-menu';\nimport { EdsMenuItemComponent } from './eds-menu-item';\n\nexport { EdsMenu };\nexport { EdsMenuItemComponent };\nexport { EdsMenuItem } from './eds-menu-item.model';\n\n/** Convenience array for importing all eds-menu components. */\nexport const EDS_MENU = [EdsMenu, EdsMenuItemComponent] as const;\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,6 +1,6 @@
1
1
  {
2
2
  "name": "@eui/eds",
3
- "version": "22.0.0-alpha.16",
3
+ "version": "22.0.0-alpha.17",
4
4
  "tag": "next",
5
5
  "description": "eUI EDS components package",
6
6
  "homepage": "https://eui.ecdevops.eu",